Interface between kernel and boot loaders on Exynos boards¶
Author: Krzysztof Kozlowski
Date : 6 June 2015
The document tries to describe currently used interface between Linux kernel and boot loaders on Samsung Exynos based boards. This is not a definition of interface but rather a description of existing state, a reference for information purpose only.
In the document “boot loader” means any of following: U-boot, proprietary SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before executing kernel.
Non-Secure mode
Address: sysram_ns_base_addr
Offset  | 
Value  | 
Purpose  | 
|---|---|---|
0x08  | 
exynos_cpu_resume_ns, mcpm_entry_point  | 
System suspend  | 
0x0c  | 
0x00000bad (Magic cookie)  | 
System suspend  | 
0x1c  | 
exynos4_secondary_startup  | 
Secondary CPU boot  | 
0x1c + 4*cpu  | 
exynos4_secondary_startup (Exynos4412)  | 
Secondary CPU boot  | 
0x20  | 
0xfcba0d10 (Magic cookie)  | 
AFTR  | 
0x24  | 
exynos_cpu_resume_ns  | 
AFTR  | 
0x28 + 4*cpu  | 
0x8 (Magic cookie, Exynos3250)  | 
AFTR  | 
0x28  | 
0x0 or last value during resume (Exynos542x)  | 
System suspend  | 
Secure mode
Address: sysram_base_addr
Offset  | 
Value  | 
Purpose  | 
|---|---|---|
0x00  | 
exynos4_secondary_startup  | 
Secondary CPU boot  | 
0x04  | 
exynos4_secondary_startup (Exynos542x)  | 
Secondary CPU boot  | 
4*cpu  | 
exynos4_secondary_startup (Exynos4412)  | 
Secondary CPU boot  | 
0x20  | 
exynos_cpu_resume (Exynos4210 r1.0)  | 
AFTR  | 
0x24  | 
0xfcba0d10 (Magic cookie, Exynos4210 r1.0)  | 
AFTR  | 
Address: pmu_base_addr
Offset  | 
Value  | 
Purpose  | 
|---|---|---|
0x0800  | 
exynos_cpu_resume  | 
AFTR, suspend  | 
0x0800  | 
mcpm_entry_point (Exynos542x with MCPM)  | 
AFTR, suspend  | 
0x0804  | 
0xfcba0d10 (Magic cookie)  | 
AFTR  | 
0x0804  | 
0x00000bad (Magic cookie)  | 
System suspend  | 
0x0814  | 
exynos4_secondary_startup (Exynos4210 r1.1)  | 
Secondary CPU boot  | 
0x0818  | 
0xfcba0d10 (Magic cookie, Exynos4210 r1.1)  | 
AFTR  | 
0x081C  | 
exynos_cpu_resume (Exynos4210 r1.1)  | 
AFTR  | 
Other (regardless of secure/non-secure mode)
Address: pmu_base_addr
Offset  | 
Value  | 
Purpose  | 
|---|---|---|
0x0908  | 
Non-zero  | 
Secondary CPU boot up indicator on Exynos3250 and Exynos542x  | 
Glossary
AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other modules are power gated, except the TOP modules MCPM - Multi-Cluster Power Management