]> git.ipfire.org Git - people/ms/u-boot.git/blame - doc/README.arm64
rockchip: video: rk_vop: migrate to livetree
[people/ms/u-boot.git] / doc / README.arm64
CommitLineData
a187559e 1U-Boot for arm64
0ae76531
DF
2
3Summary
4=======
8add6791
AP
5The initial arm64 U-Boot port was developed before hardware was available,
6so the first supported platforms were the Foundation and Fast Model for ARMv8.
7These days U-Boot runs on a variety of 64-bit capable ARM hardware, from
8embedded development boards to servers.
0ae76531
DF
9
10Notes
11=====
12
8add6791
AP
131. U-Boot can run at any exception level it is entered in, it is
14 recommened to enter it in EL3 if U-Boot takes some responsibilities of a
15 classical firmware (like initial hardware setup, CPU errata workarounds
16 or SMP bringup). U-Boot can be entered in EL2 when its main purpose is
17 that of a boot loader. It can drop to lower exception levels before
18 entering the OS.
0ae76531 19
a187559e 202. U-Boot for arm64 is compiled with AArch64-gcc. AArch64-gcc
0ae76531
DF
21 use rela relocation format, a tool(tools/relocate-rela) by Scott Wood
22 is used to encode the initial addend of rela to u-boot.bin. After running,
a187559e 23 the U-Boot will be relocated to destination again.
0ae76531 24
8add6791
AP
253. Earlier Linux kernel versions required the FDT to be placed at a
26 2 MB boundary and within the same 512 MB section as the kernel image,
27 resulting in fdt_high to be defined specially.
28 Since kernel version 4.2 Linux is more relaxed about the DT location, so it
29 can be placed anywhere in memory.
0ae76531
DF
30 Please reference linux/Documentation/arm64/booting.txt for detail.
31
324. Spin-table is used to wake up secondary processors. One location
33 (or per processor location) is defined to hold the kernel entry point
34 for secondary processors. It must be ensured that the location is
35 accessible and zero immediately after secondary processor
36 enter slave_cpu branch execution in start.S. The location address
37 is encoded in cpu node of DTS. Linux kernel store the entry point
38 of secondary processors to it and send event to wakeup secondary
39 processors.
40 Please reference linux/Documentation/arm64/booting.txt for detail.
41
425. Generic board is supported.
43
446. CONFIG_ARM64 instead of CONFIG_ARMV8 is used to distinguish aarch64 and
45 aarch32 specific codes.
46
94f7ff36 47
8add6791
AP
48Contributors
49============
94f7ff36
ST
50 Tom Rini <trini@ti.com>
51 Scott Wood <scottwood@freescale.com>
52 York Sun <yorksun@freescale.com>
53 Simon Glass <sjg@chromium.org>
54 Sharma Bhupesh <bhupesh.sharma@freescale.com>
55 Rob Herring <robherring2@gmail.com>
56 Sergey Temerkhanov <s.temerkhanov@gmail.com>