blob: ed494ac0beb2acc0a7a102224cda6e1055c15a3a [file] [log] [blame]
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +09001 Interface between kernel and boot loaders on Exynos boards
2 ==========================================================
3
4Author: Krzysztof Kozlowski
5Date : 6 June 2015
6
7The document tries to describe currently used interface between Linux kernel
8and boot loaders on Samsung Exynos based boards. This is not a definition
9of interface but rather a description of existing state, a reference
10for information purpose only.
11
12In the document "boot loader" means any of following: U-boot, proprietary
13SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
14executing kernel.
15
16
171. Non-Secure mode
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090018
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090019Address: sysram_ns_base_addr
20Offset Value Purpose
21=============================================================================
Krzysztof Kozlowski97d5c7a2015-10-24 04:43:31 +0900220x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +0900230x0c 0x00000bad (Magic cookie) System suspend
240x1c exynos4_secondary_startup Secondary CPU boot
250x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
260x20 0xfcba0d10 (Magic cookie) AFTR
270x24 exynos_cpu_resume_ns AFTR
280x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
29
30
312. Secure mode
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090032
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090033Address: sysram_base_addr
34Offset Value Purpose
35=============================================================================
360x00 exynos4_secondary_startup Secondary CPU boot
370x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
384*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
390x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
400x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
41
42Address: pmu_base_addr
43Offset Value Purpose
44=============================================================================
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +0900450x0800 exynos_cpu_resume AFTR, suspend
460x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend
470x0804 0xfcba0d10 (Magic cookie) AFTR
480x0804 0x00000bad (Magic cookie) System suspend
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +0900490x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
500x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
510x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
52
53
543. Other (regardless of secure/non-secure mode)
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090055
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090056Address: pmu_base_addr
57Offset Value Purpose
58=============================================================================
Krzysztof Kozlowski97d5c7a2015-10-24 04:43:31 +0900590x0908 Non-zero Secondary CPU boot up indicator
60 on Exynos3250 and Exynos542x
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090061
62
634. Glossary
64
65AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
66modules are power gated, except the TOP modules
67MCPM - Multi-Cluster Power Management