Bin Meng | 7557405 | 2016-02-05 19:30:11 -0800 | [diff] [blame] | 1 | U-Boot for arm64 |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 2 | |
| 3 | Summary |
| 4 | ======= |
Bin Meng | 7557405 | 2016-02-05 19:30:11 -0800 | [diff] [blame] | 5 | No hardware platform of arm64 is available now. The U-Boot is |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 6 | simulated on Foundation Model and Fast Model for ARMv8. |
| 7 | |
| 8 | Notes |
| 9 | ===== |
| 10 | |
Bin Meng | 7557405 | 2016-02-05 19:30:11 -0800 | [diff] [blame] | 11 | 1. Currenly, U-Boot run at the highest exception level processor |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 12 | supported and jump to EL2 or optionally EL1 before enter OS. |
| 13 | |
Bin Meng | 7557405 | 2016-02-05 19:30:11 -0800 | [diff] [blame] | 14 | 2. U-Boot for arm64 is compiled with AArch64-gcc. AArch64-gcc |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 15 | use rela relocation format, a tool(tools/relocate-rela) by Scott Wood |
| 16 | is used to encode the initial addend of rela to u-boot.bin. After running, |
Bin Meng | 7557405 | 2016-02-05 19:30:11 -0800 | [diff] [blame] | 17 | the U-Boot will be relocated to destination again. |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 18 | |
| 19 | 3. Fdt should be placed at a 2-megabyte boundary and within the first 512 |
| 20 | megabytes from the start of the kernel image. So, fdt_high should be |
| 21 | defined specially. |
| 22 | Please reference linux/Documentation/arm64/booting.txt for detail. |
| 23 | |
| 24 | 4. Spin-table is used to wake up secondary processors. One location |
| 25 | (or per processor location) is defined to hold the kernel entry point |
| 26 | for secondary processors. It must be ensured that the location is |
| 27 | accessible and zero immediately after secondary processor |
| 28 | enter slave_cpu branch execution in start.S. The location address |
| 29 | is encoded in cpu node of DTS. Linux kernel store the entry point |
| 30 | of secondary processors to it and send event to wakeup secondary |
| 31 | processors. |
| 32 | Please reference linux/Documentation/arm64/booting.txt for detail. |
| 33 | |
| 34 | 5. Generic board is supported. |
| 35 | |
| 36 | 6. CONFIG_ARM64 instead of CONFIG_ARMV8 is used to distinguish aarch64 and |
| 37 | aarch32 specific codes. |
| 38 | |
Sergey Temerkhanov | 78eaa49 | 2015-10-14 09:55:45 -0700 | [diff] [blame] | 39 | |
| 40 | |
David Feng | 85fd5f1 | 2013-12-14 11:47:35 +0800 | [diff] [blame] | 41 | Contributor |
| 42 | =========== |
Sergey Temerkhanov | 78eaa49 | 2015-10-14 09:55:45 -0700 | [diff] [blame] | 43 | Tom Rini <trini@ti.com> |
| 44 | Scott Wood <scottwood@freescale.com> |
| 45 | York Sun <yorksun@freescale.com> |
| 46 | Simon Glass <sjg@chromium.org> |
| 47 | Sharma Bhupesh <bhupesh.sharma@freescale.com> |
| 48 | Rob Herring <robherring2@gmail.com> |
| 49 | Sergey Temerkhanov <s.temerkhanov@gmail.com> |