64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
Building SPL/U-Boot for xea board
|
|
=================================
|
|
|
|
Setup environment, configure and build, e.g. by:
|
|
|
|
$ make imx28_xea_defconfig
|
|
$ make -j4 u-boot.sb u-boot.img
|
|
|
|
Now you should see u-boot.sb and u-boot.img files in the build directory.
|
|
|
|
|
|
Booting
|
|
=======
|
|
|
|
The boot ROM loads SPL from SPI NOR flash into SRAM. SPL configures
|
|
DRAM and loads either a Linux kernel (falcon mode) or, if the rescue
|
|
pin is asserted, the main U-Boot. Both kernel and U-Boot reside in
|
|
eMMC boot partition 0. For redundancy, a copy of U-Boot is also
|
|
stored in SPI flash. If a valid kernel image is not found, U-Boot is
|
|
loaded from eMMC or, if this fails, SPI flash.
|
|
|
|
Boot area layout
|
|
----------------
|
|
|
|
SPI NOR
|
|
Offset Function File
|
|
------------------------------------------
|
|
0x00000000 SPL u-boot.sb
|
|
0x00010000 U-Boot u-boot.img
|
|
0x00080000 Environment
|
|
|
|
eMMC
|
|
Offset Function File
|
|
------------------------------------------
|
|
0x00000000 U-Boot u-boot.img
|
|
0x00080000 Devicetree imx28-bttc.dtb
|
|
0x00100000 Kernel uImage
|
|
|
|
|
|
Falcon mode
|
|
===========
|
|
|
|
In falcon mode, the default, SPL loads the kernel and devicetree
|
|
directly. For this to work, the stored devicetree must include
|
|
correct "memory" and "chosen" nodes as these are not updated by SPL
|
|
before booting the kernel.
|
|
|
|
|
|
Updating from U-Boot
|
|
====================
|
|
|
|
The default U-Boot environment includes command sequences to update
|
|
SPL, U-Boot, and kernel over TFTP. These are as follows:
|
|
|
|
- update_spl: writes u-boot.sb to SPI NOR
|
|
- update_uboot: writes u-boot.img to eMMC and SPI NOR
|
|
- update_kernel: writes kernel and devicetree to eMMC
|
|
|
|
They can be invoked at the U-Boot prompt using the "run" command,
|
|
e.g. "run update_spl" to update the SPL.
|
|
|
|
These update commands download the above-named files from the
|
|
${hostname} directory on the server provided by DHCP.
|