Exynos 板上内核与引导加载程序之间的接口

作者:Krzysztof Kozlowski

日期:2015 年 6 月 6 日

本文档试图描述三星 Exynos 板上 Linux 内核与引导加载程序之间当前使用的接口。这并非接口的定义,而只是对现有状态的描述,仅供参考。

在本文档中,“引导加载程序”指以下任何一种:U-boot、专有 SBOOT 或任何其他用于在执行内核之前初始化开发板的 ARMv7 和 ARMv8 固件。

  1. 非安全模式

地址: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)

系统挂起

  1. 安全模式

地址: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

  1. 其他(无论安全/非安全模式)

地址:pmu_base_addr

偏移量

目的

0x0908

非零

Exynos3250 和 Exynos542x 上的辅助 CPU 启动指示器

  1. 词汇表

AFTR - ARM Off Top Running,一种低功耗模式,Cortex 核心和许多其他模块都被断电,但 TOP 模块除外。 MCPM - 多集群电源管理