Blame view

kernel/linux-rt-4.4.41/Documentation/arm/Samsung/Bootloader-interface.txt 2.99 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
        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