mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 10:56:40 +00:00
97d5c7a77e
Update the documentation about: 1. Usage of PMU_SPARE2 register. Bootloaders on Exynos542x-based boards often use the register PMU_SPARE2 (0x908) in the same way as on Exynos3250: as a indicator the secondary CPU was booted on. The bootloader will set this value to non-zero, after sucessfull power up of secondary CPU. In the same time this booted CPU will stuck (spin) waiting for software reset. 2. Exynos542x entry address for secondary CPU boot up after system suspend (with MCPM enabled and in non-secure mode). See arch/arm/mach-exynos/mcpm-exynos.c for source code. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Kukjin Kim <kgene@kernel.org>
68 lines
3.0 KiB
Plaintext
68 lines
3.0 KiB
Plaintext
Interface between kernel and boot loaders on Exynos boards
|
|
==========================================================
|
|
|
|
Author: Krzysztof Kozlowski
|
|
Date : 6 June 2015
|
|
|
|
The document tries to describe currently used interface between Linux kernel
|
|
and boot loaders on Samsung Exynos based boards. This is not a definition
|
|
of interface but rather a description of existing state, a reference
|
|
for information purpose only.
|
|
|
|
In the document "boot loader" means any of following: U-boot, proprietary
|
|
SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
|
|
executing kernel.
|
|
|
|
|
|
1. Non-Secure mode
|
|
|
|
Address: sysram_ns_base_addr
|
|
Offset Value Purpose
|
|
=============================================================================
|
|
0x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend
|
|
0x0c 0x00000bad (Magic cookie) System suspend
|
|
0x1c exynos4_secondary_startup Secondary CPU boot
|
|
0x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
|
|
0x20 0xfcba0d10 (Magic cookie) AFTR
|
|
0x24 exynos_cpu_resume_ns AFTR
|
|
0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
|
|
|
|
|
|
2. Secure mode
|
|
|
|
Address: sysram_base_addr
|
|
Offset Value Purpose
|
|
=============================================================================
|
|
0x00 exynos4_secondary_startup Secondary CPU boot
|
|
0x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
|
|
4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
|
|
0x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
|
|
0x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
|
|
|
|
Address: pmu_base_addr
|
|
Offset Value Purpose
|
|
=============================================================================
|
|
0x0800 exynos_cpu_resume AFTR, suspend
|
|
0x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend
|
|
0x0804 0xfcba0d10 (Magic cookie) AFTR
|
|
0x0804 0x00000bad (Magic cookie) System suspend
|
|
0x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
|
|
0x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
|
|
0x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
|
|
|
|
|
|
3. Other (regardless of secure/non-secure mode)
|
|
|
|
Address: pmu_base_addr
|
|
Offset Value Purpose
|
|
=============================================================================
|
|
0x0908 Non-zero Secondary CPU boot up indicator
|
|
on Exynos3250 and Exynos542x
|
|
|
|
|
|
4. Glossary
|
|
|
|
AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
|
|
modules are power gated, except the TOP modules
|
|
MCPM - Multi-Cluster Power Management
|