linux内核代码阅读笔记,欢迎大家批评指正
函数流程
理解:读取当前物理CPU,映射到逻辑CPU0,设置当前task id为0,打印启动信息
相关寄存器说明
MPIDR
MPIDR_EL1 多处理器亲和性寄存器
目的
- 在多处理器系统中,为调度提供一个额外处理器标识,并指示实现是否包括多处理扩展。
- 该寄存器属于ID寄存器功能组
使用限制
EL0 | EL1(NS) | EL1(S) | EL2 | EL3(SCR.NS=1) | EL3(SCR.NS=0) |
---|---|---|---|---|---|
- | RO | RO | RO | RO | RO |
说明:
- SCR: Secure Configuration Register
- NS: Non-secure bit
bit assignments
Bits | Func | Desc |
---|---|---|
63:40 | RES0 | Reserved |
39:32 | Aff3 | Affinity level 3, 最高等级affinity域 |
31 | RES1 | Reserved |
30 | U | 0: Processor is part of multiprocessor system 1: Processor is part of a uniprocessor system |
29:25 | RES0 | Reserved |
24 | MT | 指示最低级别的affinity,是否由使用多线程类型方法实现的逻辑处理器组成。该位的可能值为: 0: 处理器在最低关联级别的性能,在很大程度上是独立的。 1: 处理器在最低关联级别的性能,是高度相互依赖的 |
23:16 | Aff2 | 第二高等级affinity域 |
15:8 | Aff1 | 第三高等级affinity域 |
7:0 | Aff0 | 最低等级affinity域 |
TPIDR
TPIDR_EL1 线程指针/ID寄存器
目的
- 为运行在EL1的软件,提供一个用于保存进程ID的地址,用于操作系统管理
- 该寄存器属于进程、线程ID寄存器功能组
使用限制
EL0 | EL1(NS) | EL1(S) | EL2 | EL3(SCR.NS=1) | EL3(SCR.NS=0) |
---|---|---|---|---|---|
- | RW | RW | RW | RW | RW |
bit assignments
Bits | Func | Desc |
---|---|---|
63:0 | Thread ID | 运行于该异常级别的软件保存的Thread ID信息 |