Lines Matching +full:boot +full:- +full:method

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
75 Boot process
77 The on-die BROM code will try several methods to load and execute the firmware.
78 On a typical board like the Pine64 this will result in the following boot order:
84 controller, typically an on-board eMMC chip. If there is no eMMC or it does
85 not contain a valid boot header, it will:
94 To boot the Pine64 board, you can use U-Boot and any of the described methods.
96 FEL boot (USB OTG)
97 ------------------
98 FEL is the name of the Allwinner defined USB boot protocol built in the
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
141 Now boot the board without an SD card inserted and you should see the
142 U-Boot prompt on the serial console.
144 (Legacy) boot0 method
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,
150 but this method is described here for the sake of completeness.
151 Please note that this method works only with the boot0 files shipped with
153 by this method.
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