mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
![]() The XEA board now has several HW revisions for SoM boards. This patch provides support for reading this revision ID values in early u-boot proper as production devices boot via falcon boot with correct DTB flashed at production (so there is no need to alter SPL). Additionally, the maximal SPL size (~55KiB) constraint is not allowing having even simplified FIT support in it. As a result it was necessary to handle reading GPIOs values solely in u-boot proper as one configuration (i.e. 'single binary' - imx28_xea_sb_defconfig) is not using SPL framework. Moreover, the 'board_som_rev' environment variable will be used to point correct configuration from the Linux FIT file. Additionally, as now XEA has its second HW revision - this information is printed when u-boot proper starts. Signed-off-by: Lukasz Majewski <lukma@denx.de> |
||
---|---|---|
.. | ||
boot_img_scr.h | ||
Kconfig | ||
MAINTAINERS | ||
Makefile | ||
README | ||
spl_xea.c | ||
xea.c | ||
xea.env |
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.