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 ...
随机推荐
- 架构设计---soa与msa的概念(转)
https://blog.csdn.net/qq_15001229/article/details/79535037
- 再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6
Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. Javascript社区做了很多努力,在现有的运行环境中,实现” ...
- html5 css练习 定位布局
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- rabbitMQ Management http://localhost:15672/ 打不开
C:\RabbitMQ Server\rabbitmq_server-3.7.7\sbin>rabbitmq-plugins enable rabbitmq_management 安装rabbi ...
- mysql_study_5
代码 mysql> CREATE TABLE shop ( ) UNSIGNED ZEROFILL ' NOT NULL, ) DEFAULT '' NOT NULL, ,) DEFAULT ' ...
- 常用的tcpdump操作
tcpdump -i eth0 icmp and host 192.168.0.111 -nn -tttt 用ping检测网络情况时抓包,-nn 显示ip和端口而不是机器名和进程名,-tttt 显示详 ...
- PO、POJO、BO、DTO、VO之间的区别(转)
PO:persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与in ...
- idea本地调试spark,hive,kafka
https://note.youdao.com/share/?id=753c443aa4a665679d8d00c9c50363b0&type=note#/
- 【做题】CSA49F - Card Collecting Game——思维&dp
原文链接 https://www.cnblogs.com/cly-none/p/CSA49F.html 题意:Alice和Bob在玩游戏.有\(n\)种卡牌,每种卡牌有\(b_i\)张,保证\(\su ...
- 从客户端取到浏览器返回的oauth凭证
这个随便记录一下,也是朋友问我的一个问题. 在网上找了下,没找到相关的,用英文也搜索了一下,可能我的关键词没找对,找了一会没找到. 想到以前用过的rclone也是用的这样的方式,去看了下相关部分源码. ...