1      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
18
19Address:      sysram_ns_base_addr
20Offset        Value                                        Purpose
21=============================================================================
220x08          exynos_cpu_resume_ns, mcpm_entry_point       System suspend
230x0c          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
32
33Address:      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=============================================================================
450x0800        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
490x0814        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)
55
56Address:      pmu_base_addr
57Offset        Value                           Purpose
58=============================================================================
590x0908        Non-zero                        Secondary CPU boot up indicator
60                                              on Exynos3250 and Exynos542x
61
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
68