Blame view

doc/README.arm64 2.34 KB
a187559e3   Bin Meng   Use correct spell...
1
  U-Boot for arm64
0ae765312   David Feng   arm64: core support
2
3
4
  
  Summary
  =======
8add67911   Andre Przywara   doc: update READM...
5
6
7
8
  The initial arm64 U-Boot port was developed before hardware was available,
  so the first supported platforms were the Foundation and Fast Model for ARMv8.
  These days U-Boot runs on a variety of 64-bit capable ARM hardware, from
  embedded development boards to servers.
0ae765312   David Feng   arm64: core support
9
10
11
  
  Notes
  =====
8add67911   Andre Przywara   doc: update READM...
12
13
14
15
16
17
  1. U-Boot can run at any exception level it is entered in, it is
     recommened to enter it in EL3 if U-Boot takes some responsibilities of a
     classical firmware (like initial hardware setup, CPU errata workarounds
     or SMP bringup). U-Boot can be entered in EL2 when its main purpose is
     that of a boot loader. It can drop to lower exception levels before
     entering the OS.
0ae765312   David Feng   arm64: core support
18

a187559e3   Bin Meng   Use correct spell...
19
  2. U-Boot for arm64 is compiled with AArch64-gcc. AArch64-gcc
0ae765312   David Feng   arm64: core support
20
21
     use rela relocation format, a tool(tools/relocate-rela) by Scott Wood
     is used to encode the initial addend of rela to u-boot.bin. After running,
a187559e3   Bin Meng   Use correct spell...
22
     the U-Boot will be relocated to destination again.
0ae765312   David Feng   arm64: core support
23

8add67911   Andre Przywara   doc: update READM...
24
25
26
27
28
  3. Earlier Linux kernel versions required the FDT to be placed at a
     2 MB boundary and within the same 512 MB section as the kernel image,
     resulting in fdt_high to be defined specially.
     Since kernel version 4.2 Linux is more relaxed about the DT location, so it
     can be placed anywhere in memory.
0ae765312   David Feng   arm64: core support
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
     Please reference linux/Documentation/arm64/booting.txt for detail.
  
  4. Spin-table is used to wake up secondary processors. One location
     (or per processor location) is defined to hold the kernel entry point
     for secondary processors. It must be ensured that the location is
     accessible and zero immediately after secondary processor
     enter slave_cpu branch execution in start.S. The location address
     is encoded in cpu node of DTS. Linux kernel store the entry point
     of secondary processors to it and send event to wakeup secondary
     processors.
     Please reference linux/Documentation/arm64/booting.txt for detail.
  
  5. Generic board is supported.
  
  6. CONFIG_ARM64 instead of CONFIG_ARMV8 is used to distinguish aarch64 and
     aarch32 specific codes.
94f7ff36e   Sergey Temerkhanov   armv8: New MMU se...
45

8add67911   Andre Przywara   doc: update READM...
46
47
  Contributors
  ============
94f7ff36e   Sergey Temerkhanov   armv8: New MMU se...
48
49
50
51
52
53
54
     Tom Rini            <trini@ti.com>
     Scott Wood          <scottwood@freescale.com>
     York Sun            <yorksun@freescale.com>
     Simon Glass         <sjg@chromium.org>
     Sharma Bhupesh      <bhupesh.sharma@freescale.com>
     Rob Herring         <robherring2@gmail.com>
     Sergey Temerkhanov  <s.temerkhanov@gmail.com>