Exynos 开发板上内核与引导加载程序之间的接口¶
作者:Krzysztof Kozlowski
日期:2015 年 6 月 6 日
本文档尝试描述当前在基于三星 Exynos 的开发板上 Linux 内核和引导加载程序之间使用的接口。这并非接口的定义,而只是对现有状态的描述,仅供参考。
在本文档中,“引导加载程序”是指以下任何一项:U-boot、专有 SBOOT 或任何其他用于 ARMv7 和 ARMv8 的固件,它们在执行内核之前初始化开发板。
非安全模式
地址:sysram_ns_base_addr
偏移量 |
值 |
目的 |
---|---|---|
0x08 |
exynos_cpu_resume_ns, mcpm_entry_point |
系统挂起 |
0x0c |
0x00000bad(魔术 Cookie) |
系统挂起 |
0x1c |
exynos4_secondary_startup |
辅助 CPU 启动 |
0x1c + 4*cpu |
exynos4_secondary_startup (Exynos4412) |
辅助 CPU 启动 |
0x20 |
0xfcba0d10(魔术 Cookie) |
AFTR |
0x24 |
exynos_cpu_resume_ns |
AFTR |
0x28 + 4*cpu |
0x8(魔术 Cookie,Exynos3250) |
AFTR |
0x28 |
0x0 或恢复期间的最后一个值(Exynos542x) |
系统挂起 |
安全模式
地址:sysram_base_addr
偏移量 |
值 |
目的 |
---|---|---|
0x00 |
exynos4_secondary_startup |
辅助 CPU 启动 |
0x04 |
exynos4_secondary_startup (Exynos542x) |
辅助 CPU 启动 |
4*cpu |
exynos4_secondary_startup (Exynos4412) |
辅助 CPU 启动 |
0x20 |
exynos_cpu_resume (Exynos4210 r1.0) |
AFTR |
0x24 |
0xfcba0d10(魔术 Cookie,Exynos4210 r1.0) |
AFTR |
地址:pmu_base_addr
偏移量 |
值 |
目的 |
---|---|---|
0x0800 |
exynos_cpu_resume |
AFTR,挂起 |
0x0800 |
mcpm_entry_point(带有 MCPM 的 Exynos542x) |
AFTR,挂起 |
0x0804 |
0xfcba0d10(魔术 Cookie) |
AFTR |
0x0804 |
0x00000bad(魔术 Cookie) |
系统挂起 |
0x0814 |
exynos4_secondary_startup (Exynos4210 r1.1) |
辅助 CPU 启动 |
0x0818 |
0xfcba0d10(魔术 Cookie,Exynos4210 r1.1) |
AFTR |
0x081C |
exynos_cpu_resume (Exynos4210 r1.1) |
AFTR |
其他(无论安全/非安全模式)
地址:pmu_base_addr
偏移量 |
值 |
目的 |
---|---|---|
0x0908 |
非零 |
Exynos3250 和 Exynos542x 上辅助 CPU 启动指示符 |
词汇表
AFTR - ARM Off Top Running,一种低功耗模式,Cortex 内核和许多其他模块都断电,除了 TOP 模块 MCPM - 多集群电源管理