龙芯2F BIOS解析:pmon探索之旅
5星 · 超过95%的资源 需积分: 46 142 浏览量
更新于2024-08-02
收藏 1.17MB PDF 举报
"龙芯2F pmon学习笔记"
本文档是关于龙芯2F处理器上pmon(Power-on Monitor)的学习笔记,pmon是系统上电后首先执行的代码,类似于x86平台的BIOS,它兼备引导加载器的功能。pmon的源代码源自早期的BSD内核,经过多次迭代,现在已经有了显著的变化。
1. **pmon的启动与作用**
- pmon是在CPU上电后从固定地址0xbfc00000开始执行的,这个地址对应物理地址0x1fc00000。在x86架构中,上电初期执行的地址也是实地址,但x86有实模式和保护模式之分,而MIPS架构从一开始就使用虚拟地址,这些虚拟地址需要通过页表映射到物理地址。
2. **内存与配置空间访问**
- pmon需要初始化内存管理和配置空间的访问,以识别和配置系统中的硬件设备。这部分涉及到内存管理的基本结构,如页表的设置,以及超级I/O(SuperIO)芯片的初始化,该芯片通常用于控制串口、键盘、鼠标等设备。
3. **汇编与C语言的过渡**
- pmon的启动部分通常由汇编语言编写,以实现最小化和高效的启动过程。随着系统的初始化,pmon会逐渐过渡到C语言代码,提供更高级的抽象和功能。
4. **系统初始化**
- 包括`initmips`、`dbginit`等函数,它们负责初始化MIPS架构的特定组件,如调试接口,并进行系统级别的初始化工作。
5. **PCI总线初始化**
- `_pci_businit`函数处理PCI总线的初始化,识别并配置PCI设备,如网卡、显卡等。
6. **PCI设备的修复**
- `cs5536_pci_fixup`函数可能针对特定的PCI设备,如CS5536芯片,进行额外的配置调整。
7. **网络初始化**
- `Init_net`函数启动网络子系统,包括`tgt_devconfig`,用于配置网络设备。对于显卡和配置初始化的部分,笔记详细描述了显卡的配置过程以及配置初始化函数`config_init`。
8. **USB支持**
- 龙芯2F的pmon笔记中提到了USB设备的初始化,这是现代计算机系统中不可或缺的一部分。
9. **回到网络初始化**
- 在处理完其他设备后,笔记再次回到网络初始化,继续完成网络设备的设置。
10. **设备初始化**
- `DevicesInit`函数负责整个系统的设备初始化,确保所有关键硬件都能正常工作。
11. **文件系统与加载内核**
- `load内核`部分讨论了如何加载操作系统内核,这通常是pmon的主要任务之一。内核的加载可能涉及特定的文件系统操作,如open函数。
12. **输入输出系统**
- 文档中还包含了对Termio、printf和write函数的讨论,这些都是与用户交互和输出信息的基础。另外,还介绍了键盘事件的响应机制和ioctl函数,用于控制设备。
13. **环境变量与Flash存储**
- 环境变量的处理涉及到系统配置的持久化,而Flash存储则通常用于保存pmon本身以及这些环境变量。
14. **GPIO(通用输入/输出)**
- GPIO的介绍表明pmon可以控制和检测系统的数字输入输出信号,这对于控制硬件状态非常有用。
15. **图像显示**
- 文档末尾提到图片显示,这可能涉及图形界面的支持,如初始化显卡后显示启动画面。
总结:这篇笔记详尽地记录了pmon在龙芯2F处理器上从启动到初始化系统各个组件的过程,包括硬件识别、设备配置、网络设置、文件系统交互等多个层面,是理解MIPS架构下BIOS级别的系统启动流程的重要参考资料。
2022-06-02 上传
2018-08-22 上传
点击了解资源详情
2023-07-16 上传
2023-07-25 上传
2023-05-22 上传
2023-05-22 上传
2024-08-07 上传
guobamantou
- 粉丝: 0
- 资源: 14
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展