You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/hw/pci-host
Jamin Lin e9a8b04dbb hw/pci-host/aspeed_pcie: Update ASPEED PCIe Root Port capabilities and enable MSI to support hotplug
This patch updates the ASPEED PCIe Root Port capability layout and interrupt
handling to match the hardware-defined capability structure as documented in
the PCI Express Controller (PCIE) chapter of the ASPEED SoC datasheet.

The following capability offsets and fields are now aligned with the actual
hardware implementation (validated using EVB config-space dumps via
'lspci -s <bdf> -vvv'):

- Added MSI capability at offset 0x50 and enabled 1-vector MSI support
- Added PCI Express Capability structure at offset 0x80
- Added Secondary Subsystem Vendor ID (SSVID) at offset 0xC0
- Added AER capability at offset 0x100
- Implemented aer_vector() callback and MSI init/uninit hooks
- Updated Root Port SSID to 0x1150 to reflect the platform default

Enabling MSI is required for proper PCIe Hotplug event signaling. This change
improves correctness and ensures QEMU Root Port behavior matches the behavior
of ASPEED hardware and downstream kernel expectations.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Fixes: 2af56518fa ("hw/pci-host/aspeed: Add AST2600 PCIe Root Port and make address configurable")
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Link: https://lore.kernel.org/qemu-devel/20251121050108.3407445-2-jamin_lin@aspeedtech.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2 weeks ago
..
Kconfig hw/pci-host/aspeed: Add AST2600 PCIe PHY model 2 months ago
articia.c qom: Make InterfaceInfo[] uses const 7 months ago
aspeed_pcie.c hw/pci-host/aspeed_pcie: Update ASPEED PCIe Root Port capabilities and enable MSI to support hotplug 2 weeks ago
astro.c hw/pci-host/astro: Don't call pci_regsiter_root_bus() in init 2 months ago
bonito.c qom: remove redundant typedef when use OBJECT_DECLARE_SIMPLE_TYPE 1 month ago
designware.c hw/pci-host/designware: Fix viewport configuration 7 months ago
dino.c hw/pci-host/dino: Don't call pci_register_root_bus() in init 2 months ago
fsl_imx8m_phy.c qom: Have class_init() take a const data argument 7 months ago
gpex-acpi.c hw/pci-host/gpex-acpi: Fix _DSM function 0 support return value 4 weeks ago
gpex.c qom: Make InterfaceInfo[] uses const 7 months ago
grackle.c qom: Make InterfaceInfo[] uses const 7 months ago
gt64120.c qemu: Declare all load/store helper in 'qemu/bswap.h' 5 months ago
i440fx.c qom: Make InterfaceInfo[] uses const 7 months ago
meson.build hw/pci-host/aspeed: Add AST2600 PCIe PHY model 2 months ago
mv643xx.h mv64361: Add dummy gigabit ethernet PHY access registers 2 years ago
mv64361.c qom: Make InterfaceInfo[] uses const 7 months ago
pam.c hw/pci-host/pam: Make init_pam() usage more readable 3 years ago
pnv_phb.c qom: Have class_init() take a const data argument 7 months ago
pnv_phb.h include/hw/ppc include/hw/pci-host: Drop extra typedefs 3 years ago
pnv_phb3.c qemu: Declare all load/store helper in 'qemu/bswap.h' 5 months ago
pnv_phb3_msi.c qom: Have class_init() take a const data argument 7 months ago
pnv_phb3_pbcq.c qom: Make InterfaceInfo[] uses const 7 months ago
pnv_phb4.c qemu: Declare all load/store helper in 'qemu/bswap.h' 5 months ago
pnv_phb4_pec.c qom: Make InterfaceInfo[] uses const 7 months ago
ppc4xx_pci.c qom: Make InterfaceInfo[] uses const 7 months ago
ppc440_pcix.c qom: Have class_init() take a const data argument 7 months ago
ppce500.c qemu: Declare all load/store helper in 'qemu/bswap.h' 5 months ago
q35.c q35: increase default tseg size 4 weeks ago
raven.c hw/pci-host/raven: Simplify PCI bus creation 1 month ago
remote.c qom: Have class_init() take a const data argument 7 months ago
sabre.c qom: Make InterfaceInfo[] uses const 7 months ago
sh_pci.c qemu: Declare all load/store helper in 'qemu/bswap.h' 5 months ago
trace-events hw/pci-host/aspeed: Add MSI support and per-RC IOMMU address space 2 months ago
trace.h trace: switch position of headers to what Meson requires 5 years ago
uninorth.c qom: Make InterfaceInfo[] uses const 7 months ago
versatile.c qom: Make InterfaceInfo[] uses const 7 months ago
xen_igd_pt.c qom: Have class_init() take a const data argument 7 months ago
xilinx-pcie.c qom: Make InterfaceInfo[] uses const 7 months ago