| U-Boot for arm64 |
| |
| Summary |
| ======= |
| No hardware platform of arm64 is available now. The U-Boot is |
| simulated on Foundation Model and Fast Model for ARMv8. |
| |
| Notes |
| ===== |
| |
| 1. Currenly, U-Boot run at the highest exception level processor |
| supported and jump to EL2 or optionally EL1 before enter OS. |
| |
| 2. U-Boot for arm64 is compiled with AArch64-gcc. AArch64-gcc |
| 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, |
| the U-Boot will be relocated to destination again. |
| |
| 3. Fdt should be placed at a 2-megabyte boundary and within the first 512 |
| megabytes from the start of the kernel image. So, fdt_high should be |
| defined specially. |
| 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. |
| |
| |
| |
| Contributor |
| =========== |
| 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> |