LINUX内核PCI扫描过程
LINUX内核PCI扫描过程
内核版本 3.10.103
1. ACPI热插拔扫描
subsys_initcall(acpi_init)@drivers/acpi/bus.c
|-acpi_scan_init@drivers/acpi/scan.c
|->acpi_pci_root_init@drivers/acpi/pci_root.c
| |->acpi_scan_add_handler(&pci_root_handler)@drivers/acpi/scan.c
| |->list_add_tail(&handler->list_node, &acpi_scan_handlers_list);
|->acpi_pci_link_init@drivers/acpi/pci_link.c
| |->acpi_scan_add_handler(&pci_link_handler);
|->acpi_bus_scan(ACPI_ROOT_OBJECT)
|->acpi_bus_scan@drivers/acpi/scan.c
|->acpi_walk_namespace@drivers/acpi/acpica/nsxfeval.c
|->acpi_ns_walk_namespace@drivers/acpi/acpica/nswalk.c
|->acpi_bus_device_attach(即post_order_visit)
|->acpi_scan_attach_handler
|->acpi_scan_match_handler
|->handler->attach(即acpi_pci_root_add)
|->pci_acpi_scan_root@arch/x86/pci/probe.c
|->probe_pci_root_info
|->pci_scan_child_bus@drivers/pci/probe.c
|->pci_scan_slot
2. 传统扫描
subsys_initcall(pci_subsys_init)@arch/x86/pci/legacy.c
|->pci_legacy_init
|->pcibios_scan_root@arch/x86/pci/common.c
|->pci_scan_bus_on_node
|->pci_scan_root_bus
|->pci_scan_root_bus@drivers/pci/probe.c
|->pci_create_root_bus
|->pci_scan_child_bus
|->pci_scan_slot
LINUX内核PCI扫描过程的更多相关文章
- Linux内核启动分析过程-《Linux内核分析》week3作业
环境搭建 环境的搭建参考课件,主要就是编译内核源码和生成镜像 start_kernel 从start_kernel开始,才真正进入了Linux内核的启动过程.我们可以把start_kernel看做平时 ...
- 跟踪分析Linux内核的启动过程--实验报告 分析 及知识重点
跟踪分析Linux内核的启动过程 攥写人:杨光 学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.stud ...
- 20135202闫佳歆--week3 跟踪分析Linux内核的启动过程--实验及总结
实验三:跟踪分析Linux内核的启动过程 一.调试步骤如下: 使用gdb跟踪调试内核 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd r ...
- 跟踪分析Linux内核的启动过程小解
跟踪分析Linux内核的启动过程 “20135224陈实 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...
- 作业三:LINUX内核的启动过程
作业三:LINUX内核的启动过程 一.使用GDB跟踪内核从start_kernel到init进程启动(附实验截图) (一)使用自己的Linux系统环境搭建MenuOS的过程 下载内核源代码编译内核 c ...
- 实验三:跟踪分析Linux内核的启动过程
实验三:跟踪分析Linux内核的启动过程 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.16 ...
- 跟踪调试Linux内核的启动过程
跟踪调试Linux内核的启动过程---使用gdb 符钰婧 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/UST ...
- 20135239 益西拉姆 linux内核分析 跟踪分析Linux内核的启动过程
回顾 1.中断上下文的切换——保存现场&恢复现场 本节主要课程内容 Linux内核源代码简介 1.打开内核源代码页面 arch/目录:支持不同CPU的源代码:其中的X86是重点 init/目录 ...
- Linux内核分析第三周学习博客——跟踪分析Linux内核的启动过程
Linux内核分析第三周学习博客--跟踪分析Linux内核的启动过程 实验过程截图: 过程分析: 在Linux内核的启动过程中,一共经历了start_kernel,rest_init,kernel_t ...
随机推荐
- HDFS之HA
HDFS高可用环境HA的架构 HDFS组件由一个对外提供服务的namenode(存储元数据)和N个datanode组成:Zookeeper有三个作用:1.为了统一配置文件 config 2.多个节点的 ...
- caffe程序中出现的db.cpp:#line(行号) unknown database backend问题
报错原因:lmdb不可用 解决方法:Makefile.config将此处更改 CPU_ONLY := 1 #如果只使用CPU的话就改这个,使用GPU的不需要改 USE_OPENCV := 1 #有安装 ...
- Spring Boot 2.x中的management.security.enabled=false无效问题
look: https://blog.csdn.net/qq_27385301/article/details/82899303
- layer —— 一个简单的jQuery弹出层插件
layer的使用 4.24更新:注意:layer现在有旧版1.8.5版本和新版本3.0版本的,对应引入的JQ也要不同,相对应的JQ引入1.1和3.1,否则JQ会出问题 4.21更新: 解答4-19的问 ...
- Linux基础命令---tload显示系统负载
tload tload指令以字符的方式显示当前系统的平均负载情况. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUSE.openSUSE. 1.语法 ...
- Windows Server 2008安装IIS 7与配置
一.安装IIS 7 1.鼠标右键[我的电脑(Computer)]→[管理(Manager)] 2.选择[角色(Roles)],右键[添加角色(Add Roles)],弹出[添加角色向导(Add Rol ...
- nginx 环境不支持thinkPHP
在linux+Nginx+mysql+PHP 新装的服务器下,不支持重写pathinfo功能 . 需要加入这个代码 让Nginx 支持重写功能 location / { if (!-e $reques ...
- 二分法bug修复
public class Main { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7,8,9,10}; int ...
- k8s构建镜像-基于centos的python环境+pip
FROM centos:7.4.1708 #维护者信息MAINTAINER by icdss # 标签LABEL version="1.0" # 安装依赖RUN yum -y up ...
- xlrd & xlwd
一.安装xlrd http://pypi.python.org/pypi/xlrd 二.使用介绍 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open ...