mirror of https://gitlab.com/qemu-project/qemu
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.
![]() Introduce PCIe config (H2X) support for the AST2700 SoC. Unlike the AST2600, the AST2700 provides three independent Root Complexes, each with its own H2X (AHB to PCIe bridge) register block of size 0x100. All RCs use the same MSI address (0x000000F0). The H2X block includes two different access paths: 1. CFGI (internal bridge): used to access the host bridge itself, always with BDF=0. The AST2700 controller simplifies the design by exposing only one register (H2X_CFGI_TLP) with fields for ADDR[15:0], BEN[19:16], and WR[20]. This is not a full TLP descriptor as in the external case. For QEMU readability and code reuse, the model converts H2X_CFGI_TLP into a standard TLP TX descriptor with BDF forced to 0 and then calls the existing helpers aspeed_pcie_cfg_readwrite() and aspeed_pcie_cfg_translate_write(). 2. CFGE (external EP access): used to access external endpoints. The AST2700 design provides H2X_CFGE_TLP1 and a small FIFO at H2X_CFGE_TLPN. For reads, TX DESC0 is stored in TLP1 and DESC1/DESC2 in TLPN FIFO slots. For writes, TX DESC0 is stored in TLP1, DESC1/DESC2 in TLPN FIFO[0..1], and TX write data in TLPN FIFO[2]. The implementation extends AspeedPCIECfgState with a small FIFO and index, wires up new register definitions for AST2700, and adds a specific ops table and class (TYPE_ASPEED_2700_PCIE_CFG). The reset handler clears the FIFO state. Interrupt and MSI status registers are also supported. This provides enough modeling for firmware and drivers to use any of the three PCIe RCs on AST2700 with their own dedicated H2X config window, while reusing existing TLP decode helpers in QEMU. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20250919093017.338309-11-jamin_lin@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com> |
4 days ago | |
---|---|---|
.. | ||
articia.h | 2 years ago | |
aspeed_pcie.h | 4 days ago | |
astro.h | 8 months ago | |
bonito.h | 3 years ago | |
designware.h | 7 months ago | |
dino.h | 5 months ago | |
fsl_imx8m_phy.h | 5 months ago | |
gpex.h | 3 months ago | |
grackle.h | 3 years ago | |
i440fx.h | 2 years ago | |
ls7a.h | 5 days ago | |
mv64361.h | ||
pam.h | 5 months ago | |
pnv_phb3.h | 1 year ago | |
pnv_phb3_regs.h | 3 years ago | |
pnv_phb4.h | 7 months ago | |
pnv_phb4_regs.h | 2 years ago | |
ppc4xx.h | 2 years ago | |
ppce500.h | ||
q35.h | 1 year ago | |
remote.h | 5 months ago | |
sabre.h | 3 years ago | |
spapr.h | 11 months ago | |
uninorth.h | ||
xilinx-pcie.h | 3 years ago |