blob: a56f325dae780ba5e0ff954dc670ea202ab136a6 [file] [log] [blame]
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -03001==========================================================
2Interface between kernel and boot loaders on Exynos boards
3==========================================================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +09004
5Author: Krzysztof Kozlowski
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -03006
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +09007Date : 6 June 2015
8
9The document tries to describe currently used interface between Linux kernel
10and boot loaders on Samsung Exynos based boards. This is not a definition
11of interface but rather a description of existing state, a reference
12for information purpose only.
13
14In the document "boot loader" means any of following: U-boot, proprietary
15SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
16executing kernel.
17
18
191. Non-Secure mode
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090020
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090021Address: sysram_ns_base_addr
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030022
23============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090024Offset Value Purpose
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030025============= ============================================ ==================
Krzysztof Kozlowski97d5c7a2015-10-24 04:43:31 +0900260x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +0900270x0c 0x00000bad (Magic cookie) System suspend
280x1c exynos4_secondary_startup Secondary CPU boot
290x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
300x20 0xfcba0d10 (Magic cookie) AFTR
310x24 exynos_cpu_resume_ns AFTR
320x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
Krzysztof Kozlowskie0b35c12018-07-24 18:49:46 +0200330x28 0x0 or last value during resume (Exynos542x) System suspend
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030034============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090035
36
372. Secure mode
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090038
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090039Address: sysram_base_addr
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030040
41============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090042Offset Value Purpose
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030043============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +0900440x00 exynos4_secondary_startup Secondary CPU boot
450x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
464*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
470x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
480x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030049============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090050
51Address: pmu_base_addr
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030052
53============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090054Offset Value Purpose
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030055============= ============================================ ==================
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +0900560x0800 exynos_cpu_resume AFTR, suspend
570x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend
580x0804 0xfcba0d10 (Magic cookie) AFTR
590x0804 0x00000bad (Magic cookie) System suspend
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +0900600x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
610x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
620x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030063============= ============================================ ==================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090064
653. Other (regardless of secure/non-secure mode)
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090066
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090067Address: pmu_base_addr
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030068
69============= =============================== ===============================
Krzysztof Kozlowskia28ab162015-06-06 19:05:51 +090070Offset Value Purpose
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030071============= =============================== ===============================
Krzysztof Kozlowski97d5c7a2015-10-24 04:43:31 +0900720x0908 Non-zero Secondary CPU boot up indicator
73 on Exynos3250 and Exynos542x
Mauro Carvalho Chehabdc7a12b2019-04-14 15:51:10 -030074============= =============================== ===============================
Krzysztof Kozlowski9ba6e982015-07-05 11:56:51 +090075
76
774. Glossary
78
79AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
80modules are power gated, except the TOP modules
81MCPM - Multi-Cluster Power Management