[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v8] vpci: Add resizable bar support
On 2025/2/11 17:21, Roger Pau Monné wrote: > On Tue, Feb 11, 2025 at 10:22:57AM +0800, Jiqian Chen wrote: >> Some devices, like AMDGPU, support resizable bar capability, >> but vpci of Xen doesn't support this feature, so they fail >> to resize bars and then cause probing failure. >> >> According to PCIe spec, each bar that supports resizing has >> two registers, PCI_REBAR_CAP and PCI_REBAR_CTRL. So, add >> handlers to support resizing the size of BARs. >> >> Note that Xen will only trap PCI_REBAR_CTRL, as PCI_REBAR_CAP >> is read-only register and the hardware domain already gets >> access to it without needing any setup. >> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@xxxxxxx> > > Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Thank you! May I know whether this can be merged in Xen version 4.20? > >> --- >> Hi all, >> v7->v8 changes: >> * Modified commit message and some comments. >> * Deleted unused function vpci_hw_write32. >> >> Best regards, >> Jiqian Chen. >> --- >> xen/drivers/vpci/Makefile | 2 +- >> xen/drivers/vpci/rebar.c | 131 +++++++++++++++++++++++++++++++++++++ >> xen/include/xen/pci_regs.h | 15 +++++ >> xen/include/xen/vpci.h | 1 + >> 4 files changed, 148 insertions(+), 1 deletion(-) >> create mode 100644 xen/drivers/vpci/rebar.c >> >> diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile >> index 1a1413b93e76..a7c8a30a8956 100644 >> --- a/xen/drivers/vpci/Makefile >> +++ b/xen/drivers/vpci/Makefile >> @@ -1,2 +1,2 @@ >> -obj-y += vpci.o header.o >> +obj-y += vpci.o header.o rebar.o >> obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o >> diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c >> new file mode 100644 >> index 000000000000..794f1168adf8 >> --- /dev/null >> +++ b/xen/drivers/vpci/rebar.c >> @@ -0,0 +1,131 @@ >> +/* SPDX-License-Identifier: GPL-2.0-only */ >> +/* >> + * Copyright (C) 2025 Advanced Micro Devices, Inc. All Rights Reserved. >> + * >> + * Author: Jiqian Chen <Jiqian.Chen@xxxxxxx> >> + */ >> + >> +#include <xen/sched.h> >> +#include <xen/vpci.h> >> + >> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev, >> + unsigned int reg, >> + uint32_t val, >> + void *data) >> +{ >> + struct vpci_bar *bar = data; >> + const unsigned int index = bar - pdev->vpci->header.bars; >> + uint64_t size = PCI_REBAR_CTRL_SIZE(val); > > Since you define index as const you could also do the same with size. > Can adjust at commit, but I also don't have a strong opinion about > it. Got it. If there aren't other comments, then I don't need to send a new version, right? > > Thanks, Roger. -- Best regards, Jiqian Chen.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |