- pci 初始化
memory@memory-153:~$ cat /boot/System.map-3.16.0 | grep pci | grep *initcall
ffffffff81e5bba0 t *initcall_pcibus_class_init2
ffffffff81e5bba8 t *initcall_pci_driver_init2
ffffffff81e5bc58 t *initcall_acpi_pci_init3
ffffffff81e5bc78 t *initcall_register_xen_pci_notifier3
ffffffff81e5bc98 t *initcall_pci_arch_init3
ffffffff81e5bde0 t *initcall_pci_slot_init4
ffffffff81e5bfe8 t *initcall_pci_subsys_init4
ffffffff81e5c1a8 t *initcall_pcibios_assign_resources5
ffffffff81e5c1d8 t *initcall_pci_apply_final_quirks5s
ffffffff81e5c1e8 t *initcall_pci_iommu_initrootfs
ffffffff81e5c650 t *initcall_pci_proc_init6
ffffffff81e5c658 t *initcall_pcie_portdrv_init6
ffffffff81e5c668 t *initcall_pcie_pme_service_init6
ffffffff81e5c678 t *initcall_pci_hotplug_init6
ffffffff81e5c680 t *initcall_pcied_init6
ffffffff81e5c730 t *initcall_virtio_pci_driver_init6
ffffffff81e5c760 t *initcall_platform_pci_module_init6
ffffffff81e5c7a0 t *initcall_serial_pci_driver_init6
ffffffff81e5c878 t *initcall_sis_pci_driver_init6
ffffffff81e5c880 t *initcall_ata_generic_pci_driver_init6
ffffffff81e5c958 t *initcall_ehci_pci_init6
ffffffff81e5c970 t *initcall_ohci_pci_init6
ffffffff81e5cb90 t *initcall_pci_resource_alignment_sysfs_init7
ffffffff81e5cb98 t *initcall_pci_sysfs_init7
ffffffff81e5cc08 t *initcall_pci_mmcfg_late_insert_resources7
- pci hotplug 流程
1) 通过 acpi_install_notify_handler 向 acpi 模块注册消息处理函数消息处理函数为 handle_hotplug_event
handle_hotplug_event–>hotplug_event_work–>hotplug_event–>acpiphp_rescan_slot–>pci_scan_slot
–>pci_scan_single_device–>pci_scan_device–>pci_setup_device
–>pci_device_add–>device_add