U-Boot
Introduction
Das U-Boot - the Universal Boot Loader wiki website is the main entry point for this bootloader / debugging tool available on several processors. It is of course available for AT91 ARM processors.
U-Boot documentation is very rich ; in addition to the official U-Boot website, several others are dealing with U-Boot getting started or configuration. Note that a detailed documentation is simply available in the source code package as the README file. Thematic documentation is also available in the doc/ directory.
U-Boot takes place in the Linux demo as a third stage bootloader. It is responsible of configuring main interfaces and launching a Linux system. Note however that it is possible to avoid this step and to directly boot Linux from AT91 Bootstrap v3.x (Archive), in a production phase for instance.
Now U-Boot moves to the Driver model and use of the Device Tree. Please check the FAQ page about Driver Model in U-Boot for more information.
Use U-Boot
U-Boot Main Commands
setenv this command is used to set variables
saveenv this command saves variables previously set in the environment permanent storage space
printenv this command print the current variables
The help command show a brief summary of the built-in commands of U-Boot. Here is a selection of useful commands :
? - alias for 'help'
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
bootz - boot Linux zImage image from memory
cls - clear screen
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dhcp - boot image via network using DHCP/TFTP protocol
echo - echo args to console
editenv - edit environment variable
env - environment handling commands
erase - erase FLASH memory
exit - exit script
false - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt - flattened device tree utility commands
flinfo - print FLASH memory information
go - start application at address 'addr'
help - print command description/usage
iminfo - print header information for application image
imls - list all images found in flash
imxtract- extract a part of a multi-image
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loadx - load binary file over serial line (xmodem mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mdio - MDIO utility commands
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - display MMC info
mw - memory write (fill)
nand - NAND sub-system
nboot - boot from NAND device
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
sf - SPI flash sub-system
showvar - print local hushshell variables
sleep - delay execution for some time
source - run script from memory
test - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true - do nothing, successfully
usb - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
U-Boot>
Refer to the U-Boot manual page for the command line interface.
U-Boot script capability
You can create script or complex variables, which prevents you to type commands. Here is a summary of several variables built to make a network loading of linux easier :
setenv linux 'tftp ${boot_addr} linux-2.6.x.img'
setenv ramdisk_addr 0x21100000
setenv ramdisk 'tftp ${ramdisk_addr} sam9-ramdisk.gz'
setenv go 'run linux; run ramdisk; bootm ${boot_addr}'
saveenv
The setenv linux 'tftp ${boot_addr} linux-2.6.x.img' line is equivalent of typing tftp 0x21400000 linux-2.6.x.img but combined with others and stored in flash, it allows you to save time, and automate. For executing a Linux kernel bootup, using this snippet, simply type run go
Boot pre-defined variables and command:
bootcmd when set, this variable content is executed automatically after the boot delay. It enables the U-Boot autoboot mode
- Here is a example of bootcmd in default at91 board:
bootargs this variable it used as an exchange area to pass information to the main application started by U-Boot (Linux kernel for instance)
- Here are examples of bootargs:
bootargs_nfs=console=ttyS0,115200 mtdparts=atmel_nand:8M(kernel)ro,220M(rootfs),20M(test),-(protect) rw root=/dev/nfs rw nfsroot=10.217.12.45:/nfsroot/rootfs/yocto ip=dhcp
bootm this command executes an application generated by the mkimage tool
PDA Detection at Boot
Since U-boot 2018.07, released with linux4sam_6.0, we have the feature of auto detection of the connected PDA screen
One Wire EEPROM
The PDAs have a 512-byte Maxim DS24 1wire EEPROM which is available on the pin 1 of the LCD connector. This memory holds the specific information for the PDA type.
Please check below table for information and hardware required adjustments:
Board name | Hardware changes required |
Sama5d4Xplained | R32 must be moved to position R33 |
Sama5d3Xplained | None |
Sama5d2Xplained | None |
Sama5d2PtcEK | R95 must be populated |
Sama5d27Som1EK | None |
Sama5d27WLSom1EK | None |
Sam9x60EK | None |
U-boot Behavior
At boot time, U-boot will:
- Initialize 1wire bus and protocol on the GPIO connected on pin 1 of the LCD connector
- Read the EEPROM memory of the PDA
- Copy the contents of the PDA memory at the offset where the screen type is stored into an environment variable called 'pda'
- Print an information message in the booting log with the detected PDA
Example
CPU: SAMA5D27-CU
Crystal frequency: 12 MHz
CPU clock : 498 MHz
Master clock : 166 MHz
DRAM: 512 MiB
MMC: sdio-host@a0000000: 0, sdio-host@b0000000: 1
Loading Environment from SPI Flash... SF: Detected at25df321a with page size 256 Bytes, erase size 4 KiB, total 4 MiB
OK
In: serial@f8020000
Out: serial@f8020000
Err: serial@f8020000
PDA TM5000 detected
Net: eth0: ethernet@f8008000
Hit any key to stop autoboot: 0
In this example we can see that PDA TM5000 was detected.
Further more, if we inspect the U-boot environment:
baudrate=115200
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait atmel.pm_modes=standby,ulp1
bootcmd=ext4load mmc 0 0x24000000 boot/sama5d2_xplained.itb; bootm 0x24000000#kernel_dtb
bootdelay=1
ethaddr=fc:c2:3d:0d:1f:4b
fdtcontroladdr=3fb773c8
pda=5000
stderr=serial@f8020000
stdin=serial@f8020000
stdout=serial@f8020000
We can see that the variable 'pda' was configured. This can be used in the booting mechanism to inform the OS that the PDA is connected.
Load Linux with U-Boot on AT91 boards
This section describes the loading of a Linux kernel and its root file system. Keep in mind useful U-Boot commands to setup your U-Boot behavior.
Preparing linux image (optional)
If you want to use an uImage file with U-Boot, you can use the mkimage tool which encapsulates kernel image with header information, CRC32 checksum, etc.
mkimage comes in source code with U-Boot distribution and it is built during U-Boot compilation (u-boot-source-dir/tools/mkimage).
See U-Boot README file for more information.
Command to generate an uncompressed uImage file (1) :
Commands to generate a compressed uImage file (2) :
Preparing Kernel DTB image
U-Boot supports the Device Tree Binary which describes the hardware in a binary file.
U-Boot can load both the DTB and kernel. The only change is running bootm or bootz with two arguments:
bootm 0x22000000 - 0x21000000 or bootz 0x22000000 - 0x21000000
First argument is the address in memory of the Linux kernel, second one is the initrd (missing in the example, we can see a dash), third one is the address of the DTB binary.
How to patch Device Tree Blob in U-boot using Overlays
Starting from U-boot 2018.07 released in Linux4SAM6.0, we can use the feature of patching the Device Tree Blob (DTB) with additional Device Tree Overlays (DTBO).
Traditional way of kernel booting
So far, to boot kernel with zImage and normal DTB, we would use a command like this:</br>
We can see the DTB is passed as the third argument to the command.
Loading overlays and applying them on top of the DTB
To apply the DTBO on top of the DTB, we need following commands:</br> This will load the original DTB.</br>
fatload mmc 0:1 ${fdtaddr} board.dtb
This will load the DTBO into memory</br>
fatload mmc 0:1 ${fdtovaddr} someoverlay.dtbo;
This will configure the address for fdt operations (we set it to the DRAM address where we loaded the base DTB)</br>
This will resize the original DTB to accommodate more space for the overlay</br>
This will apply the DTBO loaded at _fdtovaddr_ on top of the DTB at the address we configured with fdt addr </br>
This will boot the kernel with the DTB at _fdtaddr_ which now includes both the original DTB and the applied DTBO
Loading through network
On a development system, it is useful to get the kernel and root file system through the network. U-Boot provides support for loading binaries from a remote host on the network using the TFTP protocol.
To manage to use TFTP with U-Boot, you will have to configure a TFTP server on your host machine. Check your distribution manual or Internet resources to configure a Linux or Windows TFTP server on your host:
On the U-Boot side, you will have to setup the networking parameters:
- setup an Ethernet address (MAC address)
Check this U-Boot network BuildRootFAQ entry to choose a proper MAC address.
setenv ethaddr 3e:36:65:ba:6f:be - setup IP parameters
- setup the server ip address where the TFTP server is running
setenv serverip 10.159.245.186 - setup board with static IP address
- the board ip address
setenv ipaddr 10.159.245.180
- the board ip address
- setup board with DHCP
- Using dhcp command if you already have DHCP server in your network.
setenv get_ip 'setenv old_serverip ${serverip};setenv autoload no;dhcp;setenv serverip ${old_serverip}'
run get_ip
- Using dhcp command if you already have DHCP server in your network.
- setup the server ip address where the TFTP server is running
- saving Environment to flash
saveenv - if Ethernet Phy has not been detected during former bootup, reset the board to reload U-Boot : the Ethernet address and Phy initialization shall be ok, now
- download the Linux uImage and the root file system to a ram location using the U-Boot tftp command (Cf. U-Boot script capability chapter).
- launch Linux issuing a bootm or boot command.
setenv ethprime gmac0
Using FIT with overlays
Since U-boot 2018.07, released with linux4sam_6.0, we have the feature of adding Device Tree overlays to the base Device Tree at boot time, from U-boot. To achieve this, we use a FIT image, which embeds the Kernel + Device Tree blobs in a single file.
Device Tree Overlays
Device Tree Overlays are available in our repository at Github. Compiling the Device Tree overlays with the corresponding kernel zImage results in a FIT image. The Makefile will do that for you.
Loading FIT image with U-boot
The FIT image is a placeholder that has the zImage and the base Device Tree, plus additional overlays that can be selected at boot time.
The following steps are required to boot the FIT Image from U-boot:
- Load the FIT image like you would normally load the uImage or zImage.
- There is no need to load additional Device Tree Blob, the FIT image includes it
- When booting the FIT image, specify the FIT configuration to use. Several configurations can be appended to the basic configuration, which we name 'kernel_dtb'
Example:
bootm 0x24000000#kernel_dtb
This will load the FIT image from address 0x24000000 in memory and then run the configuration named 'kernel_dtb'. This configuration includes the kernel plus the base Device Tree Blob built with the kernel.
To load additional FIT configurations, just append another configuration to the command.
Example to load the image sensor controller Device Tree overlay + sensor omnivision 0v7740:
bootm 0x24000000#kernel_dtb#isc#ov7740
U-Boot for AT91 source code
Branches
Name | Board Supported | Comment | Related Tags |
---|---|---|---|
github sources: u-boot-2024.07-mchp | All Microchip boards supported Boards with demo available: SAMA7D65 Curiosity, SAM9X75 Curiosity, SAMA5D29 Curiosity SAM9X60-EK, SAM9X60 Curiosity, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, SAMA7G5-EK, | Maintained, stable | |
github sources: u-boot-2023.07-mchp | All Microchip boards supported Boards with demo available: SAMA5D29 Curiosity SAM9X60-EK, SAM9X60 Curiosity, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, SAMA7G5-EK, | Maintained, stable | |
github sources: u-boot-2022.01-at91 | All Microchip boards supported Boards with demo available: SAM9X60-EK, SAM9X60 Curiosity, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, SAMA7G5-EK, | Old branch don't use for new developments | |
github sources: u-boot-2021.04-at91 | All Microchip boards supported Boards with demo available: SAM9X60-EK, SAMA5D4 Xplained, SAMA5D3 Xplained, SAMA5D2 Xplained, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, | Old branch don't use for new developments | |
github sources: u-boot-2020.01-at91 | All Microchip boards supported Boards with demo available: SAM9X60-EK, SAMA5D4 Xplained, SAMA5D3 Xplained, SAMA5D2 Xplained, SAMA5D2 PTC EK, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, | Old branch don't use for new developments | |
github sources: u-boot-2019.04-at91 | All Microchip boards supported Boards with demo available: SAM9X60-EK, SAMA5D4 Xplained, SAMA5D3 Xplained, SAMA5D2 Xplained, SAMA5D2 PTC EK, SAMA5D2 SOM1 EK, SAMA5D2 WLSOM1 EK, SAMA5D2-ICP, | Old branch don't use for new developments | |
github sources: u-boot-2018.07-at91 | All Atmel boards supported Boards with demo available: SAMA5D4 Xplained, SAMA5D3 Xplained, SAMA5D2 Xplained, SAMA5D2 PTC EK, SAMA5D2 SOM1 EK, | Old branch don't use for new developments | linux4sam_6.0 |
github sources: u-boot-2015.01-at91 | All Atmel boards supported Boards with demo available: SAMA5D4 Xplained, SAMA5D4-EK, SAMA5D3 Xplained, SAMA5D3-EK SAMA5D2 Xplained, | Old branch don't use for new developments | |
github sources: u-boot-2014.07-at91 | All Atmel boards supported Boards with demo available: SAMA5D4 Xplained, SAMA5D4-EK, SAMA5D3 Xplained, SAMA5D3-EK, AT91SAM9X5-EK, AT91SAM9N12, Legacy | Old branch don't use for new developments |
Changes in u-boot-2024.07-mchp
- Based on U-Boot v2024.07
- Support for sama7g5 OP-TEE
- Support for sama7d65 SoC
- Support for new board SAMA7D65 Curiosity
- Fixes for Atmel NAND driver
- Misc fixes
Changes in u-boot-2023.07-mchp
- Based on U-Boot v2023.07
- MTD enhancements
- Support for new board SAMA5D29 Curiosity
- Support for new board SAM9X75 Curiosity
- Support for LAN8840 ethernet phy
- Support automatic detection and loading of extension boards
- Misc fixes
Changes in u-boot-2022.01-at91
- Based on U-Boot v2022.01
- Moved sama5d2 boards to TCB timer for OP-TEE support
- Support for new board SAMA7G5-EK
- Misc fixes
Changes in u-boot-2021.04-at91
- Based on U-Boot v2021.04
- Support for sam9x60 clock tree
- Misc fixes
Changes in u-boot-2020.01-at91
- Based on U-Boot v2020.01
- Support for SST QSPI Unlock feature, will allow erase and write on QSPI SST flashes.
- Misc fixes.
Changes in u-boot-2019.04-at91
- Based on U-Boot v2019.04
- Support for new board SAM9X60-EK
- Support for new board SAMA5D2 WLSOM1 EK
- Support for new board SAMA5D2-ICP
- Misc fixes.
Changes in u-boot-2018.07-at91
- Based on U-Boot v2018.07
- Support for PDA detection at boot and manual selection
- Support for FIT image and overlays
- Support for manually built overlays
- Support for selecting which CPU is connected for the SAM9x5EK board variants
- Misc fixes.
Changes in u-boot-2015.01-at91
- Based on U-Boot v2015.01
- Support SAMA5D4EK, SAMA5D4 Xplained and SAMA5D2 Xplained board
- Support FIT image for SAMA5D3X-EK board
- Enable SPL support for SAMA5D4 and SAMA5D3 series board.
- Support Software I2C.
- Support AT24MAC mac address
- Misc fixes.
Changes in u-boot-2014.07-at91
- Support SAMA5D4EK and SAMA5D4 Xplained board
- Support FIT image for SAMA5D3X-EK board
Tags
linux4microchip_2025.04 tag
- Support for sama7d65 SoC
- Support for new board SAMA7D65 Curiosity
- Fixes for Atmel NAND driver
- Include all features in linux4microchip_2025.04
linux4microchip_2024.10 tag
- QSPI driver enhancements
- I2C, SPI Utils fixes
- Include all features in linux4microchip_2024.10
linux4microchip_2024.04 tag
- Support for new board SAM9X75 Curiosity
- Support for LAN8840 ethernet phy
- Support automatic detection and loading of extension boards
- Include all features in linux4microchip_2024.04
linux4microchip_2023.10 tag
- MTD enhacements
- Support for new board SAMA5D29 Curiosity
- Include all features in linux4microchip_2023.10
linux4sam_2023.04 tag
- Fix clock id for ebi node on SAMA7G5
linux4sam_2022.10 tag
- New Common Clock Framework (CCF) support for sama5d2 SoC and associated boards
- New defconfigs for booting under OP-TEE and in ARM Normal World for SAMA5D2 SOM1 EK
- Support for new board SAM9X60 Curiosity
- SPL on sama5d2 based boards is no longer available
- Support for new DM converted NAND flash driver (EBI, HSMC, Nand flash)
- Various fixes on Devicetree alignment, QSPI probing, SD-Card reinsertion, etc.
- Include all features in linux4sam_2022.10
linux4sam_2022.04 tag
- Moved sama5d2 boards to TCB timer for OP-TEE support
- Support for new board SAM9x5EK
- Include all features in linux4sam_2022.04
linux4sam_2021.10 tag
- Include all features in linux4sam_2021.10
linux4sam_2021.04 tag
- Support for sam9x60 clock tree
- Include all features in linux4sam_2021.04
linux4sam_2020.10 tag
- Galois table definition fixed for sama5d3 pmecc nand bitflips correction
- Include all features in linux4sam_2020.10
linux4sam_2020.04 tag
- Support for SST QSPI Unlock feature, will allow erase and write on QSPI SST flashes.
- Include all features in linux4sam_2020.04
linux4sam_6.2-icp tag
- Support SAMA5D2-ICP board
- Include all features in linux4sam_6.2
linux4sam_6.2 tag
- Support SAM9X60-EK board
- Support SAMA5D27 WLSOM1 EK board
- Include all features in linux4sam_6.2
linux4sam_6.1 tag
- Update U-boot to mainline 2019.04 version
- Include all features in linux4sam_6.1
linux4sam_6.0 tag
- Include all features in linux4sam_6.0
linux4sam_5.0-alpha7 tag
- Support SAMA5D2 Xplained board
- Support AT24MAC mac address
- Include all features in linux4sam_4.7
linux4sam_4.7 tag
- Based on U-Boot v2015.01
- Support SAMA5D4EK and SAMA5D4 Xplained board
- Support FIT image for SAMA5D3X-EK board
- Enable SPL support for SAMA5D4 and SAMA5D3 series board.
- Support Software I2C.
- Misc fixes.
linux4sam_4.6 tag
- Add support for SAMA5D4 Xplained board
- Include all features in linux4sam_4.5
linux4sam_4.5 tag
- Based on U-Boot v2014.07
- Add support for SAMA5D4EK board
- Support FIT image for SAMA5D3X-EK board
Build U-Boot from sources
To build the binary found above, you will have to go through the following steps.
Getting U-Boot sources
Dedicated page on U-Boot wiki: http://www.denx.de/wiki/U-Boot/SourceCode
You can easily download U-Boot source code from Linux4Microchip GitHub U-Boot repository:
- clone the Linux4microchip GitHub U-Boot repository$ git clone https://github.com/linux4microchip/u-boot-mchp.git
Cloning into 'u-boot-mchp'...
remote: Enumerating objects: 951876, done.
remote: Counting objects: 100% (17718/17718), done.
remote: Compressing objects: 100% (5735/5735), done.
remote: Total 951876 (delta 12391), reused 15314 (delta 11846), pack-reused 934158
Receiving objects: 100% (951876/951876), 164.77 MiB | 401.00 KiB/s, done.
Resolving deltas: 100% (790362/790362), done.
$ cd u-boot-mchp/
- The source code has been taken from the master branch which is pointing to the latest branch we use. If you want to use the other branch, you can list them and use one of them by doing:$ git branch -r
origin/HEAD -> origin/master
origin/dev/tony/sama7g5ek_optee
origin/master
origin/sam9x60_curiosity_early
origin/sam9x60_early
origin/sam9x60_iar
origin/sam9x7_early
origin/sama5d27wlsom1ek_ear
origin/sama7g5_early
origin/u-boot-2012.10-at91
origin/u-boot-2013.07-at91
origin/u-boot-2014.07-at91
origin/u-boot-2015.01-at91
origin/u-boot-2016.01-at91
origin/u-boot-2016.03-at91
origin/u-boot-2017.03-at91
origin/u-boot-2018.07-at91
origin/u-boot-2019.04-at91
origin/u-boot-2020.01-at91
origin/u-boot-2021.04-at91
origin/u-boot-2022.01-at91
origin/u-boot-2023.07-mchp
origin/u-boot-2024.07-mchp
origin/uboot_5series_1.x
$ git checkout origin/u-boot-2024.07-mchp -b u-boot-2024.07-mchp
Branch 'u-boot-2024.07-mchp' set up to track remote branch 'u-boot-2024.07-mchp' from 'origin'.
Switched to a new branch 'u-boot-2024.07-mchp'
Setup ARMCross Compiler
Since U-boot 2018.07, it is mandatory to use a toolchain newer than 6.0. Be warned that Linux distrubutions like Ubuntu may come with older toolchains. In such case, below is detailed how to download and install the Linaro toolchain, in the example we use 7.3.1.
- Ubuntu:
In Ubuntu, you can install the ARM Cross Compiler by doing:sudo apt-get install gcc-arm-linux-gnueabi
export CROSS_COMPILE=arm-linux-gnueabi-
- Others:
For others, you can download the Linaro cross compiler and setup the environment by doing:wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabi/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi.tar.xz
export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-
Cross-compiling U-Boot
U-Boot environment
The U-Boot environment is a little read/write persistent space that stores variables needed by the bootloader to configure itself properly and to adapt to its environment (network configuration, boot arguments, storage location, etc.). It is located in the same media that it has booted from.
Build U-Boot binary
In this section we take SAM9x60-EK board as a example. Before compile the U-Boot, you need setup cross compile toolchain in the section.
Once the AT91 U-Boot sources available, cross-compile U-Boot is made in two steps: configuration and compiling. Check the Configuration chapter in U-Boot reference manual.
Go to the configs/ to find the exact target when invoking make.
The U-Boot environment variables can be stored in different media, above config files can specify where to store the U-Boot environment.
sam9x60ek_nandflash_defconfig
# To put environment variables in SD/MMC card:
sam9x60ek_mmc_defconfig
# To put environment variables in qspi flash:
sam9x60ek_qspiflash_defconfig
Here are the building steps for the SAM9X60-EK board:
make sam9x60ek_mmc_defconfig
make
The result of these operations is a fresh U-Boot binary called u-boot.bin corresponding to the binary ELF file u-boot.
- u-boot.bin is the file you should store on the board
- u-boot is the ELF format binary file you may use to debug U-Boot through a JTag link for instance.
Program U-Boot binary into nandflash
Using SAM-BA to flash U-Boot to board
Launch SAM-BA tools
- Make sure that the chip can execute the SAM-BA Monitor
- Launch SAM-BA
- Make a connection to the chip with SAM-BA
Configure NAND ECC config
Programming U-Boot
Failed to execute the [include] macro. Cause: [Cannot find section [HProgramU-Bootbinary] in document [xwiki:applications.linux4sam.subsections.sam-ba.WebHome]]. Click on this message for details.
Using U-Boot to flash U-Boot binary to board
setenv erase_uboot 'nand erase 40000 80000' # erase U-Boot in nand.
setenv mmc_uboot_file 'u-boot.bin' # u-boot file name in mmc card
setenv flash_uboot_from_mmc 'run erase_uboot;fatload mmc 0 ${load_addr} ${mmc_uboot_file}; nand write ${load_addr} 40000 ${filesize};'
run flash_uboot_from_mmc
U-Boot FAQ
- How does U-Boot auto-detect the connected PDA on my board ?
- How can I add another Device Tree overlay to my base Device Tree blob at runtime ?
- My U-boot detects some screens but not mine. What can I do ?
- Which screens can be connected to my board? Does U-boot detect them all ?
- I have a connected screen, but U-boot detects it wrong. Can I force U-boot to load another screen configuration?
- My screen is black, although it's a right screen, it is supposed to be detected. What can I do?
- What is a FIT image and how does this work with U-boot?
- I have a working setup with a specific PDA. I want to connect another PDA. Do I need to reflash my board or change any configuration ?
- How do I use U-Boot to store binaries in FLASH ?
Related Topics
- Console no longer receives characters
- Driver Model in U-Boot
- Hash Error When Booting FIT Image
- How to patch Device Tree Blob in U-boot using Overlays
- PDA Detection at Boot Time
- How to manually select (or enforce) the PDA at boot time
- U-Boot FAQ
- U-Boot FIT image support
- How to use U-boot with FIT image to load overlays
- SAM9X60-EK Evaluation Kit - Attaching the TM5000 WVGA Display
Foot Notes
1 , 2 : for AT91SAM9G45 family: use proper location for RAM: 0x70000000 instead of 0x20000000
3 , 4 : for at91sam9g45 family: use proper location for RAM: 0x70000000 instead of 0x20000000