<<Linux那些事儿之我是PCI>> 已经告诉我们如何从do_initcalls找到找到PCI 驱动的入口
postcore_initcall(pcibus_class_init);
postcore_initcall(pci_driver_init);
| 文件 |
函数 |
入口 |
内存位置 |
| arch/i386/pci/acpi.c |
pci_acpi_init |
subsys_initcall |
.initcall4.init |
| arch/i386/pci/common.c |
pcibios_init |
subsys_initcall |
.initcall4.init |
| arch/i386/pci/i386.c |
pcibios_assign_resources |
fs_initcall |
.initcall5.init |
| arch/i386/pci/legacy.c |
pci_legacy_init |
|
|
| drivers/pci/pci-acpi.c |
acpi_pci_init |
arch_initcall |
.initcall3.init |
| drivers/pci/pci- driver.c |
pci_driver_init |
postcore_initcall |
.initcall2.init |
| drivers/pci/pci- sysfs.c |
pci_sysfs_init |
late_initcall |
.initcall7.init |
| drivers/pci/pci.c |
pci_init |
device_initcall |
.initcall6.init |
| drivers/pci/probe.c |
pcibus_class_init |
postcore_initcall |
.initcall2.init |
| drivers/pci/proc.c |
pci_proc_init |
__initcall |
.initcall6.init |
| arch/i386/pci/init.c |
pci_access_init |
arch_initcall |

本文介绍了海思3536 ARM系统中PCIe驱动的工作原理,从`hisi_pcie_init`函数分析,包括设备和驱动的注册,以及`pcie_init`中的硬件寄存器配置。讲解了`__arch_pcie_info_setup`完成的内存/IO基地址映射,`pci_common_init`中的PCI控制器初始化。重点在于PCIe配置空间的读写函数实现,这些函数使得访问PCIe配置空间成为可能。
最低0.47元/天 解锁文章
779

被折叠的 条评论
为什么被折叠?



