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