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 (魔术字) |
系统挂起 |
0x1c |
exynos4_secondary_startup |
辅助 CPU 启动 |
0x1c + 4*cpu |
exynos4_secondary_startup (Exynos4412) |
辅助 CPU 启动 |
0x20 |
0xfcba0d10 (魔术字) |
AFTR |
0x24 |
exynos_cpu_resume_ns |
AFTR |
0x28 + 4*cpu |
0x8 (魔术字, 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 (魔术字, Exynos4210 r1.0) |
AFTR |
地址:pmu_base_addr
偏移量 |
值 |
目的 |
---|---|---|
0x0800 |
exynos_cpu_resume |
AFTR, 挂起 |
0x0800 |
mcpm_entry_point (带有 MCPM 的 Exynos542x) |
AFTR, 挂起 |
0x0804 |
0xfcba0d10 (魔术字) |
AFTR |
0x0804 |
0x00000bad (魔术字) |
系统挂起 |
0x0814 |
exynos4_secondary_startup (Exynos4210 r1.1) |
辅助 CPU 启动 |
0x0818 |
0xfcba0d10 (魔术字, 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 - 多集群电源管理