U-boot environment: Difference between revisions

From embeddedTS Manuals
No edit summary
No edit summary
Line 25: Line 25:
</source>
</source>


For a production environment the best option for setting depends on the number of units.  For a smaller number of units it may be simplest to update any required commands manually.  For example, a custom cmdline when booting to eMMC may look like this:
For a production environment the best option for setting depends on the number of units.  For a smaller number of units it may be simplest to update any required commands manually.  For example, a custom cmdline option like "debug":
<source lang=bash>
<source lang=bash>
env set bootdelay 0;
env set cmdline_append 'console=ttymxc0,115200 ro init=/sbin/init debug'
env set bootcmd 'load mmc 1:1 ${fdtaddr} /boot/imx6q-ts4900-8390.dtb; load mmc 1:1 ${loadaddr} /boot/uImage; env set bootargs 'console=ttymxc0,115200 debug root=/dev/mmcblk1p1 rootwait rw init=/sbin/init'; bootm ${loadaddr} - ${fdtaddr};'
env save
env save
</source>
</source>
If you are blasting many boards you can use a script to automate this.  There are multiple hooks in our default software image.  By default we load and source a script from USB or SD/eMMC if either exist.

Revision as of 18:22, 12 October 2015

On the SPI flash U-boot has both the U-boot application and the U-boot environment. Our default build has 8KB of environment which can be used for variables and scripts to control booting your operating system. These commands are relevant to manipulating the environment:

# Print all environment variables
env print -a

# Sets the variable bootdelay to 5 seconds
env set bootdelay 5;

# Variables can also contain commands
env set hellocmd 'led red on; echo Hello world; led green on;'

# Execute commands saved in a variable
env run hellocmd;

# Commit env changes to the spi flash
# Otherwise changes are lost
env save

# Restore env to default
env default -a

# Remove a variable
env delete emmcboot

For a production environment the best option for setting depends on the number of units. For a smaller number of units it may be simplest to update any required commands manually. For example, a custom cmdline option like "debug":

env set cmdline_append 'console=ttymxc0,115200 ro init=/sbin/init debug'
env save