Merge tag 'm68k-for-v4.20-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / arm / Samsung / Bootloader-interface.txt
1       Interface between kernel and boot loaders on Exynos boards
2       ==========================================================
3
4 Author: Krzysztof Kozlowski
5 Date  : 6 June 2015
6
7 The document tries to describe currently used interface between Linux kernel
8 and boot loaders on Samsung Exynos based boards. This is not a definition
9 of interface but rather a description of existing state, a reference
10 for information purpose only.
11
12 In the document "boot loader" means any of following: U-boot, proprietary
13 SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
14 executing kernel.
15
16
17 1. Non-Secure mode
18
19 Address:      sysram_ns_base_addr
20 Offset        Value                                        Purpose
21 =============================================================================
22 0x08          exynos_cpu_resume_ns, mcpm_entry_point       System suspend
23 0x0c          0x00000bad (Magic cookie)                    System suspend
24 0x1c          exynos4_secondary_startup                    Secondary CPU boot
25 0x1c + 4*cpu  exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
26 0x20          0xfcba0d10 (Magic cookie)                    AFTR
27 0x24          exynos_cpu_resume_ns                         AFTR
28 0x28 + 4*cpu  0x8 (Magic cookie, Exynos3250)               AFTR
29 0x28          0x0 or last value during resume (Exynos542x) System suspend
30
31
32 2. Secure mode
33
34 Address:      sysram_base_addr
35 Offset        Value                                        Purpose
36 =============================================================================
37 0x00          exynos4_secondary_startup                    Secondary CPU boot
38 0x04          exynos4_secondary_startup (Exynos542x)       Secondary CPU boot
39 4*cpu         exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
40 0x20          exynos_cpu_resume (Exynos4210 r1.0)          AFTR
41 0x24          0xfcba0d10 (Magic cookie, Exynos4210 r1.0)   AFTR
42
43 Address:      pmu_base_addr
44 Offset        Value                                        Purpose
45 =============================================================================
46 0x0800        exynos_cpu_resume                            AFTR, suspend
47 0x0800        mcpm_entry_point (Exynos542x with MCPM)      AFTR, suspend
48 0x0804        0xfcba0d10 (Magic cookie)                    AFTR
49 0x0804        0x00000bad (Magic cookie)                    System suspend
50 0x0814        exynos4_secondary_startup (Exynos4210 r1.1)  Secondary CPU boot
51 0x0818        0xfcba0d10 (Magic cookie, Exynos4210 r1.1)   AFTR
52 0x081C        exynos_cpu_resume (Exynos4210 r1.1)          AFTR
53
54
55 3. Other (regardless of secure/non-secure mode)
56
57 Address:      pmu_base_addr
58 Offset        Value                           Purpose
59 =============================================================================
60 0x0908        Non-zero                        Secondary CPU boot up indicator
61                                               on Exynos3250 and Exynos542x
62
63
64 4. Glossary
65
66 AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
67 modules are power gated, except the TOP modules
68 MCPM - Multi-Cluster Power Management