summaryrefslogtreecommitdiff
path: root/components/drivers/pci
AgeCommit message (Collapse)Author
8 days[ARCH/RISC-V] Next RISC-V (#10320)GUI
* [libcpu][risc-v] Refactor the RISC-V architecture port Introduce an opt-in unified RISC-V common layer for RV32 and RV64 while keeping existing BSPs on the legacy implementation during migration. - use ARCH_RISCV and ARCH_CPU_64BIT for architecture and XLEN selection - unify context, trap, MMU, cache, timer, SBI, SMP and ISA handling - add PLIC, CLIC, ACLINT, APLIC and IMSIC support - map physical hart IDs to contiguous logical CPU IDs - add T-Head vendor overrides while preserving legacy ports - migrate qemu-virt64-riscv with RV32 and RV64 support - update clock_time, MM, LWP, OFW, PCI and Rust integration Existing BSPs continue using legacy_common or common64 unless they select RT_USING_RISCV_NEW_COMMON. Signed-off-by: GuEe-GUI <[email protected]> * [libcpu][risc-v] skip disabled CPU nodes in early FDT walk Rbb666 noted that rt_hw_fdt_install_early() walked every /cpus child without checking status, so disabled cores still joined hart registration and MMU capability probing. Skip nodes that are not okay/ok via rt_fdt_device_is_available() before reading reg or mmu-type. Signed-off-by: seteiro <[email protected]> * [libcpu][risc-v] Fix per-CPU page table mapping - reuse existing non-leaf page table entries when mapping per-CPU areas - reject leaf entry conflicts instead of overwriting mappings Signed-off-by: GuEe-GUI <[email protected]> --------- Signed-off-by: GuEe-GUI <[email protected]> Signed-off-by: seteiro <[email protected]> Co-authored-by: seteiro <[email protected]>
2026-08-14[DM/OFW][PCI] Fix address translation and PCI resource enumeration (#11677)GUI
* [DM/OFW][PCI] Fix address translation and PCI resource enumeration Rework OFW address translation to walk nested bus ranges in the correct direction and cache "ranges" and "dma-ranges" independently. Handle PCI three-cell addresses without treating the PCI flags cell as part of the address, and fix CPU-to-DMA and DMA-to-CPU translation across nested buses. Fix PCI BAR sizing and assignment by disabling address decoding during probing, preserving BAR attribute bits, and programming 64-bit BARs correctly. Add device enable and disable helpers so resources and bus mastering are enabled before driver probe. Program bridge memory and prefetch windows while scanning downstream buses, correctly link child buses into the PCI bus hierarchy, and avoid unnecessary PCIe link retraining when the link is already active. Allow host bridges without a device-tree pci-domain property by allocating unique domains dynamically, while preserving explicit domain assignments. Fix MSI and MSI-X IRQ setup, rollback, vector addressing, and affinity selection. Add the Raspberry Pi PCI vendor ID for RP1 and other downstream devices. Signed-off-by: GuEe-GUI <[email protected]> * style: format code with clang-format * style: format complete changed files with clang-format * drivers: pci: address OFW review feedback * style: format PCI and OFW changes for current master --------- Signed-off-by: GuEe-GUI <[email protected]>
2026-07-08drivers: pci: Fix endpoint MSI setupOld-Ding
rt_pci_ep_set_msi() checked the set_msix callback before calling set_msi. That rejects endpoint controllers that implement MSI without MSI-X, and can call through a NULL set_msi pointer when only MSI-X is provided. The same helper converts a requested MSI vector count into the log2 field passed to the controller. Stop after the first value large enough for the request so smaller requests are not widened by later loop iterations. Generated-by: OpenAI Codex Signed-off-by: Old-Ding <[email protected]>
2026-03-02[dm][pci] fixup the shift of class in probeGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-12-04[DM/PCI] Fixup the C99, 6.8.1 Labeled statements p4GuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-08-25[DM/PCI] Add SoC PCI Kconfig importGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-08-25[DM/PCI] Fixup the DWC PCI resource releaseGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-08-25[DM/PCI] Fixup the bus-range probeGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-08-25[DM/PCI] Fixup the MSI info shuold freeGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2025-05-23[DM/PCI] Add /proc access in RT-Smart user.GuEe-GUI
1. Add ROM base info. 2. Save th PM status. Signed-off-by: GuEe-GUI <[email protected]>
2025-02-11[DM] Replace spinlock static init by RT_DEFINE_SPINLOCKGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-12-13[DM/FIXUP] Fixup PCI buildGuEe-GUI
1. Add PCI include in rtdevice.h 2. Fixup `RT_KEY_ENABLED` loss. 3. remove waring type of `dw_pcie_ep_get_func_from_ep` return. Signed-off-by: GuEe-GUI <[email protected]>
2024-11-28[DM/PCI] Add DesignWare PCIe RC/EP base driversGuEe-GUI
Too many PCI controllers base on DesignWare PCIe. This is a modules. Signed-off-by: GuEe-GUI <[email protected]>
2024-11-28[DM/PCI] Add memory window pool for EPGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-11-26[DM/FIXUP] Add ms sleep for link status changeGuEe-GUI
We should wait a while for success or failure after link status change or will communicate fail with the endpoint. Signed-off-by: GuEe-GUI <[email protected]>
2024-11-26[DM/FIXUP] Fixup PCI device ofw private node for MSIGuEe-GUI
Some PCI device devicetree is like: ```dts pcie@fe270000 { device_type = "pci"; msi-map = <0x1000 0x9c 0x1000 0x1000>; pcie@10 { reg = <0x100000 0x00 0x00 0x00 0x00>; #address-cells = <0x03>; #size-cells = <0x02>; pcie@10,0 { reg = <0x00 0x00 0x00 0x00 0x00>; }; }; }; ``` that the pcie@10,0 have a private ofw node, it will find property name `msi-map` or `msi-parent` fail. We should only find the property in host bridge's ofw node. Signed-off-by: GuEe-GUI <[email protected]>
2024-11-20[DM/FIXUP] Fixup MSI first IRQ read offsetGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-11-20[DM/FIXUP] Fixup PCI MSI global irq mapGuEe-GUI
Don't use `irq` as a var when clear MSI global irq map, the irq which alloc before will rewrite. Signed-off-by: GuEe-GUI <[email protected]>
2024-10-05[feat] add pci api,the pci/pcie driverzhuzhuzhu
add pci api,the pci/pcie driver writer can use this to get resource of current device with flag,there are three flag : 1. PCI_BUS_REGION_F_MEM it mean memory space 2. PCI_BUS_REGION_F_IO it mean io space 3. PCI_BUS_REGION_F_PREFETCH it mean prefetchable memory
2024-09-06[DM/Feature] Basic PCI/PCIe (Peripheral Component Interconnect Express) busGuEe-GUI
PCI/PCIe have better performance and more devices support, such as NVMe, GPU, Powerful NIC (Like RDMA). PCI/PCIe can access control by IOMMU that the virtualiztion and userspace driver will more safety. PCI/PCIe device could hot plugging, no design modifications SoC required, PCI/PCIe on Embedded SoC is popular now. We make a simple framework to support them. Feature Lists: 1.PCI INTx: the INT[A-D] pin IRQ for legacy PCI, work with platform PIC. 2.MSI/MSI-X: the message write IRQ for PCIe, work with platform's PIC. 3.PME: we only support the D0, D1, D2, D3HOT, D3COLD init by framework. 4.Endpoint: a simple EP framework for PCI FPGA or NTB function. 5.OFW: we only support work on OFW SoC, ACPI support in the future maybe. Host controller: 1. Common PCI host controller on ECAM. 2. Generic PCI host controller on ECAM. Signed-off-by: GuEe-GUI <[email protected]>