mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-04 11:53:21 +09:00
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.
|