blob: 3e55d3ea43e42d62fcabebe08ae5ee0cac13ab02 [file] [log] [blame]
Lukasz Majewski010e58d2019-12-08 22:06:56 +01001Building SPL/U-Boot for xea board
2=================================
3
4Setup environment, configure and build, e.g. by:
5
6 $ make imx28_xea_defconfig
7 $ make -j4 u-boot.sb u-boot.img
8
9Now you should see u-boot.sb and u-boot.img files in the build directory.
10
11
12Booting
13=======
14
15The boot ROM loads SPL from SPI NOR flash into SRAM. SPL configures
16DRAM and loads either a Linux kernel (falcon mode) or, if the rescue
17pin is asserted, the main U-Boot. Both kernel and U-Boot reside in
18eMMC boot partition 0. For redundancy, a copy of U-Boot is also
19stored in SPI flash. If a valid kernel image is not found, U-Boot is
20loaded from eMMC or, if this fails, SPI flash.
21
22Boot area layout
23----------------
24
25SPI NOR
26Offset Function File
27------------------------------------------
280x00000000 SPL u-boot.sb
290x00010000 U-Boot u-boot.img
300x00080000 Environment
31
32eMMC
33Offset Function File
34------------------------------------------
350x00000000 U-Boot u-boot.img
360x00080000 Devicetree imx28-bttc.dtb
370x00100000 Kernel uImage
38
39
40Falcon mode
41===========
42
43In falcon mode, the default, SPL loads the kernel and devicetree
44directly. For this to work, the stored devicetree must include
45correct "memory" and "chosen" nodes as these are not updated by SPL
46before booting the kernel.
47
48
49Updating from U-Boot
50====================
51
52The default U-Boot environment includes command sequences to update
53SPL, U-Boot, and kernel over TFTP. These are as follows:
54
55- update_spl: writes u-boot.sb to SPI NOR
56- update_uboot: writes u-boot.img to eMMC and SPI NOR
57- update_kernel: writes kernel and devicetree to eMMC
58
59They can be invoked at the U-Boot prompt using the "run" command,
60e.g. "run update_spl" to update the SPL.
61
62These update commands download the above-named files from the
63${hostname} directory on the server provided by DHCP.