【MIPS CPU 体系结构概述2】连载1:

Linux/MIPS核心剖析

mips kernel的一般介绍

(下面一些具体代码基于2.4.8的内核)

我们来跟随内核启动运行的过程看看mips内核有什么特别之处.

加电后,mips kernel从系统固件程序(类似bios,可能烧在eprom,flash中)得到控制 之后(head.S),初始化内核栈,调用init_arch初始化硬件平台相关的代码.

init_arch(setup.c)首先监测使用的CPU(通过MIPS CPU的CP0控制寄存器PRID) 确定使用的指令集和一些CPU参数,如TLB大小等.然后调用prom_init做一些底层 参数初始化. prom_init是和具体的硬件相关的.

使用MIPS CPU的平台多如牛毛, 所以大家在arch/mips下面可以看到很多的子目录, 每个子目录是一个或者一系列相似的平台.这里的平台差不多可以理解成一块主板 加上它的系统固件,其中很多还包括一些专用的显卡什么的硬件(比如一些工作站). 这些目录的主要任务是:

1. 提供底层板子上的一些重要信息,包括系统固件传递的参数,io的映射基地址
,内存的大小的分布等.多数还包括提供早期的信息输入输出接口(通常是一个
简单的串口驱动)以方便调试,因为pmon往往不提供键盘和显示卡的支持.?

2. 底层中断代码,包括中断控制器编程和中断的分派,应答等

3. pci子系统底层代码. 实现pci配置空间的读写,以及pci设备的中断,IO/Mem 空间的分配

4. 其它,特定的硬件.常见的有实时时钟等

--电子创新网--
粤ICP备12070055号