1========================================================== 2Interface between kernel and boot loaders on Exynos boards 3========================================================== 4 5Author: Krzysztof Kozlowski 6 7Date : 6 June 2015 8 9The document tries to describe currently used interface between Linux kernel 10and boot loaders on Samsung Exynos based boards. This is not a definition 11of interface but rather a description of existing state, a reference 12for information purpose only. 13 14In the document "boot loader" means any of following: U-boot, proprietary 15SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before 16executing kernel. 17 18 191. Non-Secure mode 20 21Address: sysram_ns_base_addr 22 23============= ============================================ ================== 24Offset Value Purpose 25============= ============================================ ================== 260x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend 270x0c 0x00000bad (Magic cookie) System suspend 280x1c exynos4_secondary_startup Secondary CPU boot 290x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot 300x20 0xfcba0d10 (Magic cookie) AFTR 310x24 exynos_cpu_resume_ns AFTR 320x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR 330x28 0x0 or last value during resume (Exynos542x) System suspend 34============= ============================================ ================== 35 36 372. Secure mode 38 39Address: sysram_base_addr 40 41============= ============================================ ================== 42Offset Value Purpose 43============= ============================================ ================== 440x00 exynos4_secondary_startup Secondary CPU boot 450x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot 464*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot 470x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR 480x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR 49============= ============================================ ================== 50 51Address: pmu_base_addr 52 53============= ============================================ ================== 54Offset Value Purpose 55============= ============================================ ================== 560x0800 exynos_cpu_resume AFTR, suspend 570x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend 580x0804 0xfcba0d10 (Magic cookie) AFTR 590x0804 0x00000bad (Magic cookie) System suspend 600x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot 610x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR 620x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR 63============= ============================================ ================== 64 653. Other (regardless of secure/non-secure mode) 66 67Address: pmu_base_addr 68 69============= =============================== =============================== 70Offset Value Purpose 71============= =============================== =============================== 720x0908 Non-zero Secondary CPU boot up indicator 73 on Exynos3250 and Exynos542x 74============= =============================== =============================== 75 76 774. Glossary 78 79AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other 80modules are power gated, except the TOP modules 81MCPM - Multi-Cluster Power Management 82