PCI设备初始化:PMON中的扫描、映射与资源分配
需积分: 9 154 浏览量
更新于2024-07-19
收藏 246KB PDF 举报
本文档深入探讨了在PMON环境中,PCI设备的初始化过程,特别是针对PCI设备的枚举、资源分配以及初始化代码的详细分析。文章从系统刚上电时的执行流程开始,描述了CPU如何首先在Rom空间进行基本的TLB、Cache和UART等硬件初始化,然后将启动代码复制到内存空间的0x8010.0000地址,接着调用initmips()函数进入内存执行。
在initmips函数中,关键步骤包括:
1. 内存地址解码器设置:函数开始时,通过计算内存大小(memsz参数)的高位和低位,确保内存映射的完整性和正确性,将BootROM映射移至高内存区域,以便为后续操作腾出空间。
2. 时钟频率探测:为了确保延迟控制准确,函数执行了对CPU时钟频率的探测(tgt_cpufreq()),这是初始化过程中至关重要的一步。
3. PMON和调试初始化:接下来,initmips函数设置PMON寄存器,并调用dbginit()函数进行调试功能的初始化,这有助于系统的故障检测和调试支持。
4. 异常向量设置:异常向量用于处理处理器在运行时遇到的错误或中断情况。该函数将预定义的MipsException向量复制到TLB_MISS_EXC_VEC和GEN_EXC_VEC地址,确保处理器能够正确响应各种异常事件。同时,清空缓存并设置初始的异常向量地址。
5. 最终调用main():在完成所有必要的基础设置后,程序最后调用main()函数,正式进入操作系统或应用的主循环,此时系统初始化过程已经全面展开,包括对PCI设备的扫描、配置和资源分配。
通过跟踪initmips函数的执行,读者可以深入了解PMON环境下PCI设备初始化的细节,这对理解整个系统的架构和调试至关重要。这一过程展示了操作系统如何有序地为硬件组件提供服务,以及如何确保系统稳定运行。
2023-05-18 上传
2023-06-03 上传
2023-07-27 上传
2023-08-30 上传
2023-08-16 上传
2023-07-25 上传
2023-05-03 上传
liwendong12321
- 粉丝: 0
- 资源: 9
最新资源
- 最优条件下三次B样条小波边缘检测算子研究
- 深入解析:wav文件格式结构
- JIRA系统配置指南:代理与SSL设置
- 入门必备:电阻电容识别全解析
- U盘制作启动盘:详细教程解决无光驱装系统难题
- Eclipse快捷键大全:提升开发效率的必备秘籍
- C++ Primer Plus中文版:深入学习C++编程必备
- Eclipse常用快捷键汇总与操作指南
- JavaScript作用域解析与面向对象基础
- 软通动力Java笔试题解析
- 自定义标签配置与使用指南
- Android Intent深度解析:组件通信与广播机制
- 增强MyEclipse代码提示功能设置教程
- x86下VMware环境中Openwrt编译与LuCI集成指南
- S3C2440A嵌入式终端电源管理系统设计探讨
- Intel DTCP-IP技术在数字家庭中的内容保护