mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-22 20:17:35 +08:00
2168ed8e7d
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 <2991707448@qq.com>
29 lines
640 B
Python
29 lines
640 B
Python
from building import *
|
|
|
|
objs = []
|
|
|
|
if not GetDepend(['RT_USING_PCI']):
|
|
Return('objs')
|
|
|
|
cwd = GetCurrentDir()
|
|
list = os.listdir(cwd)
|
|
CPPPATH = [cwd + '/../include']
|
|
|
|
src = ['access.c', 'host-bridge.c', 'irq.c', 'pci.c', 'pme.c', 'probe.c']
|
|
|
|
if GetDepend(['RT_USING_OFW']):
|
|
src += ['ofw.c']
|
|
|
|
if GetDepend(['RT_PCI_ECAM']):
|
|
src += ['ecam.c']
|
|
|
|
group = DefineGroup('DeviceDrivers', src, depend = [''], CPPPATH = CPPPATH)
|
|
|
|
for d in list:
|
|
path = os.path.join(cwd, d)
|
|
if os.path.isfile(os.path.join(path, 'SConscript')):
|
|
objs = objs + SConscript(os.path.join(d, 'SConscript'))
|
|
objs = objs + group
|
|
|
|
Return('objs')
|