Back to home page

OSCL-LXR

 
 

    


0001 ==========================================================
0002 Interface between kernel and boot loaders on Exynos boards
0003 ==========================================================
0004 
0005 Author: Krzysztof Kozlowski
0006 
0007 Date  : 6 June 2015
0008 
0009 The document tries to describe currently used interface between Linux kernel
0010 and boot loaders on Samsung Exynos based boards. This is not a definition
0011 of interface but rather a description of existing state, a reference
0012 for information purpose only.
0013 
0014 In the document "boot loader" means any of following: U-boot, proprietary
0015 SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
0016 executing kernel.
0017 
0018 
0019 1. Non-Secure mode
0020 
0021 Address:      sysram_ns_base_addr
0022 
0023 ============= ============================================ ==================
0024 Offset        Value                                        Purpose
0025 ============= ============================================ ==================
0026 0x08          exynos_cpu_resume_ns, mcpm_entry_point       System suspend
0027 0x0c          0x00000bad (Magic cookie)                    System suspend
0028 0x1c          exynos4_secondary_startup                    Secondary CPU boot
0029 0x1c + 4*cpu  exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
0030 0x20          0xfcba0d10 (Magic cookie)                    AFTR
0031 0x24          exynos_cpu_resume_ns                         AFTR
0032 0x28 + 4*cpu  0x8 (Magic cookie, Exynos3250)               AFTR
0033 0x28          0x0 or last value during resume (Exynos542x) System suspend
0034 ============= ============================================ ==================
0035 
0036 
0037 2. Secure mode
0038 
0039 Address:      sysram_base_addr
0040 
0041 ============= ============================================ ==================
0042 Offset        Value                                        Purpose
0043 ============= ============================================ ==================
0044 0x00          exynos4_secondary_startup                    Secondary CPU boot
0045 0x04          exynos4_secondary_startup (Exynos542x)       Secondary CPU boot
0046 4*cpu         exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
0047 0x20          exynos_cpu_resume (Exynos4210 r1.0)          AFTR
0048 0x24          0xfcba0d10 (Magic cookie, Exynos4210 r1.0)   AFTR
0049 ============= ============================================ ==================
0050 
0051 Address:      pmu_base_addr
0052 
0053 ============= ============================================ ==================
0054 Offset        Value                                        Purpose
0055 ============= ============================================ ==================
0056 0x0800        exynos_cpu_resume                            AFTR, suspend
0057 0x0800        mcpm_entry_point (Exynos542x with MCPM)      AFTR, suspend
0058 0x0804        0xfcba0d10 (Magic cookie)                    AFTR
0059 0x0804        0x00000bad (Magic cookie)                    System suspend
0060 0x0814        exynos4_secondary_startup (Exynos4210 r1.1)  Secondary CPU boot
0061 0x0818        0xfcba0d10 (Magic cookie, Exynos4210 r1.1)   AFTR
0062 0x081C        exynos_cpu_resume (Exynos4210 r1.1)          AFTR
0063 ============= ============================================ ==================
0064 
0065 3. Other (regardless of secure/non-secure mode)
0066 
0067 Address:      pmu_base_addr
0068 
0069 ============= =============================== ===============================
0070 Offset        Value                           Purpose
0071 ============= =============================== ===============================
0072 0x0908        Non-zero                        Secondary CPU boot up indicator
0073                                               on Exynos3250 and Exynos542x
0074 ============= =============================== ===============================
0075 
0076 
0077 4. Glossary
0078 
0079 AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
0080 modules are power gated, except the TOP modules
0081 MCPM - Multi-Cluster Power Management