| 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> |