Lines Matching +full:rom +full:- +full:19 +full:h
1 Allwinner 64-bit boards README
4 Newer Allwinner SoCs feature ARMv8 cores (ARM Cortex-A53) with support for
5 both the 64-bit AArch64 mode and the ARMv7 compatible 32-bit AArch32 mode.
8 These SoCs are wired to start in AArch32 mode on reset and execute 32-bit
9 code from the Boot ROM (BROM). As this has some implications on U-Boot, this
10 file describes how to make full use of the 64-bit capabilities.
14 - Build the ARM Trusted Firmware binary (see "ARM Trusted Firmware (ATF)" below)
15 $ cd /src/arm-trusted-firmware
17 - Build U-Boot (see "SPL/U-Boot" below)
19 $ make pine64_plus_defconfig && make -j5
20 - Transfer to an uSD card (see "microSD card" below)
21 $ dd if=u-boot-sunxi-with-spl.bin of=/dev/sdx bs=8k seek=1
22 - Boot and enjoy!
27 The Allwinner A64/H5 firmware consists of three parts: U-Boot's SPL, an
28 ARM Trusted Firmware (ATF) build and the U-Boot proper.
29 The SPL will load both ATF and U-Boot proper along with the right device
31 drop into the U-Boot proper (in EL2).
32 As the ATF binary will become part of the U-Boot image file, you will need
36 ----------------------------
39 $ export CROSS_COMPILE=aarch64-linux-gnu-
43 the root of your U-Boot build directory (or create a symbolic link).
44 $ export BL31=/src/arm-trusted-firmware/build/sun50i_a64/debug/bl31.bin
50 If you run into size issues with the resulting U-Boot image file, it might
56 SPL/U-Boot
57 ------------
58 Both U-Boot proper and the SPL are using the 64-bit mode. As the boot ROM
61 U-Boot proper runs in EL2 and can load any AArch64 code (using the "go"
66 $ export CROSS_COMPILE=aarch64-linux-gnu-
70 This will build the SPL in spl/sunxi-spl.bin and a FIT image called u-boot.itb,
71 which contains the rest of the firmware. u-boot-sunxi-with-spl.bin joins those
77 The on-die BROM code will try several methods to load and execute the firmware.
84 controller, typically an on-board eMMC chip. If there is no eMMC or it does
94 To boot the Pine64 board, you can use U-Boot and any of the described methods.
97 ------------------
99 mask ROM of most Allwinner SoCs. It allows to bootstrap a board solely
100 by using the USB-OTG interface and a host port on another computer.
101 As the FEL mode is controlled by the boot ROM, it expects to be running in
105 off-tree branch to generate 32-bit ARM code (along with instructions
106 how to re-create them).
109 ------------
110 Transfer the SPL and the U-Boot FIT image directly to an uSD card:
111 # dd if=spl/sunxi-spl.bin of=/dev/sdx bs=8k seek=1
112 # dd if=u-boot.itb of=/dev/sdx bs=8k seek=5
117 Alternatively you can use the SPL and the U-Boot FIT image combined into a
119 # dd if=u-boot-sunxi-with-spl.bin of=/dev/sdx bs=8k seek=1
125 ---------
128 can be connected to the SPI0/CS0 pins on the PI-2 headers.
131 or get an adaptor and use a regular A-microB cable connected to it. Other
132 boards often have a proper micro-B USB socket connected to the USB OTB port.
134 On your host computer download and build the sunxi-tools package[2], then
135 use "sunxi-fel" to access the board:
136 $ ./sunxi-fel ver -v -p
138 Now use the sunxi-fel tool to write to the NOR flash:
139 $ ./sunxi-fel spiflash-write 0 spl/sunxi-spl.bin
140 $ ./sunxi-fel spiflash-write 32768 u-boot.itb
142 U-Boot prompt on the serial console.
145 ---------------------
147 of SPL replacement to get U-Boot up and running from an microSD card.
149 With working DRAM init code in U-Boot's SPL this is no longer necessary,
160 file. Apparently Allwinner allows re-distribution of this proprietary code
161 "as-is".
164 The original boot0 code looks for U-Boot at a certain place on an uSD card
167 U-Boot binary (plus other binaries) and will populate that header accordingly.
169 there is sufficient space at the beginning of the U-Boot binary.
172 trampoline code. See the output of "boot0img -h" for more information.
173 boot0img can also patch boot0 to avoid loading U-Boot from 19MB, instead
174 fetching it from just behind the boot0 binary (-B option).
175 $ ./boot0img -o firmware.img -B boot0.img -u u-boot-dtb.bin -e -s bl31.bin \
176 -a 0x44008 -d trampoline64:0x44000
181 [1] https://github.com/ARM-software/arm-trusted-firmware.git
182 [2] git://github.com/linux-sunxi/sunxi-tools.git