162306a36Sopenharmony_ci========================================================== 262306a36Sopenharmony_ciInterface between kernel and boot loaders on Exynos boards 362306a36Sopenharmony_ci========================================================== 462306a36Sopenharmony_ci 562306a36Sopenharmony_ciAuthor: Krzysztof Kozlowski 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciDate : 6 June 2015 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciThe document tries to describe currently used interface between Linux kernel 1062306a36Sopenharmony_ciand boot loaders on Samsung Exynos based boards. This is not a definition 1162306a36Sopenharmony_ciof interface but rather a description of existing state, a reference 1262306a36Sopenharmony_cifor information purpose only. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciIn the document "boot loader" means any of following: U-boot, proprietary 1562306a36Sopenharmony_ciSBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before 1662306a36Sopenharmony_ciexecuting kernel. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci1. Non-Secure mode 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciAddress: sysram_ns_base_addr 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci============= ============================================ ================== 2462306a36Sopenharmony_ciOffset Value Purpose 2562306a36Sopenharmony_ci============= ============================================ ================== 2662306a36Sopenharmony_ci0x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend 2762306a36Sopenharmony_ci0x0c 0x00000bad (Magic cookie) System suspend 2862306a36Sopenharmony_ci0x1c exynos4_secondary_startup Secondary CPU boot 2962306a36Sopenharmony_ci0x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot 3062306a36Sopenharmony_ci0x20 0xfcba0d10 (Magic cookie) AFTR 3162306a36Sopenharmony_ci0x24 exynos_cpu_resume_ns AFTR 3262306a36Sopenharmony_ci0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR 3362306a36Sopenharmony_ci0x28 0x0 or last value during resume (Exynos542x) System suspend 3462306a36Sopenharmony_ci============= ============================================ ================== 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci2. Secure mode 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciAddress: sysram_base_addr 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci============= ============================================ ================== 4262306a36Sopenharmony_ciOffset Value Purpose 4362306a36Sopenharmony_ci============= ============================================ ================== 4462306a36Sopenharmony_ci0x00 exynos4_secondary_startup Secondary CPU boot 4562306a36Sopenharmony_ci0x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot 4662306a36Sopenharmony_ci4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot 4762306a36Sopenharmony_ci0x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR 4862306a36Sopenharmony_ci0x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR 4962306a36Sopenharmony_ci============= ============================================ ================== 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciAddress: pmu_base_addr 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci============= ============================================ ================== 5462306a36Sopenharmony_ciOffset Value Purpose 5562306a36Sopenharmony_ci============= ============================================ ================== 5662306a36Sopenharmony_ci0x0800 exynos_cpu_resume AFTR, suspend 5762306a36Sopenharmony_ci0x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend 5862306a36Sopenharmony_ci0x0804 0xfcba0d10 (Magic cookie) AFTR 5962306a36Sopenharmony_ci0x0804 0x00000bad (Magic cookie) System suspend 6062306a36Sopenharmony_ci0x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot 6162306a36Sopenharmony_ci0x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR 6262306a36Sopenharmony_ci0x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR 6362306a36Sopenharmony_ci============= ============================================ ================== 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci3. Other (regardless of secure/non-secure mode) 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciAddress: pmu_base_addr 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci============= =============================== =============================== 7062306a36Sopenharmony_ciOffset Value Purpose 7162306a36Sopenharmony_ci============= =============================== =============================== 7262306a36Sopenharmony_ci0x0908 Non-zero Secondary CPU boot up indicator 7362306a36Sopenharmony_ci on Exynos3250 and Exynos542x 7462306a36Sopenharmony_ci============= =============================== =============================== 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci4. Glossary 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciAFTR - ARM Off Top Running, a low power mode, Cortex cores and many other 8062306a36Sopenharmony_cimodules are power gated, except the TOP modules 8162306a36Sopenharmony_ciMCPM - Multi-Cluster Power Management 82