[PATCH 0/5] Add PCIe support to Sophgo SG2042 SoC
Chen Wang
unicornxw at gmail.com
Sun Nov 10 21:59:17 PST 2024
From: Chen Wang <unicorn_wang at outlook.com>
Sophgo's SG2042 SoC uses Cadence PCIe core to implement RC mode.
SG2042 PCIe controller supports two ways to report MSI:
Method A, the PICe controller implements an MSI interrupt controller
inside, and connect to PLIC upward through one interrupt line. Provides
memory-mapped msi address, and by programming the upper 32 bits of the
address to zero, it can be compatible with old pcie devices that only
support 32-bit msi address.
Method B, the PICe controller connects to PLIC upward through an
independent MSI controller "sophgo,sg2042-msi" on the SOC. The MSI
controller provides multiple(up to 32) interrupt sources to PLIC.
Compared with the first method, the advantage is that the interrupt
source is expanded, but because for SG2042, the msi address provided
by the MSI controller is fixed and only supports 64-bit address(> 2^32),
it is not compatible with old pcie devices that only support 32-bit
msi address.
This patchset depends on another patchset for the SG2042 MSI controller[msi].
If you need to test the DTS part, you need to apply the corresponding
patchset.
Link: https://lore.kernel.org/linux-riscv/cover.1731296803.git.unicorn_wang@outlook.com/ [msi]
Thanks,
Chen
Chen Wang (5):
dt-bindings: pci: Add Sophgo SG2042 PCIe host
PCI: sg2042: Add Sophgo SG2042 PCIe driver
dt-bindings: mfd: syscon: Add sg2042 pcie ctrl compatible
riscv: sophgo: dts: add pcie controllers for SG2042
riscv: sophgo: dts: enable pcie for PioneerBox
.../devicetree/bindings/mfd/syscon.yaml | 2 +
.../bindings/pci/sophgo,sg2042-pcie-host.yaml | 88 +++
.../boot/dts/sophgo/sg2042-milkv-pioneer.dts | 12 +
arch/riscv/boot/dts/sophgo/sg2042.dtsi | 82 +++
drivers/pci/controller/cadence/Kconfig | 11 +
drivers/pci/controller/cadence/Makefile | 1 +
drivers/pci/controller/cadence/pcie-sg2042.c | 611 ++++++++++++++++++
7 files changed, 807 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/sophgo,sg2042-pcie-host.yaml
create mode 100644 drivers/pci/controller/cadence/pcie-sg2042.c
base-commit: 2d5404caa8c7bb5c4e0435f94b28834ae5456623
--
2.34.1
More information about the linux-riscv
mailing list