Environment¶
U-Boot configuration and startup behaviour is defined in its environment and therein held variables. While the environment’s default values are pre-defined in the U-Boot source code, these settings and values can be overwritten by editing the respecitive variables, either for short term till the next reboot or permantly by writing the changed values into area in the permanent memory (NVM: NAND or eMMC). Which in turn will be loaded at boot time.
Comprehensive description of these features is available in the The U-Boot Documentation, there specifically in the Environment Variables section.
Reset of Variables¶
Users can reset the environment as a whole, or can reset just specific variables. Selectively resetting variables can be used to access variables or environment settings that have been updated or added between releases. To unset an environment variable the same common procedure as setting is used; but instead setting it to an empty string.
Warning
As long as the command saveenv
is not executed, changes to the
environment will be lost upon reset.
Examples:
Unset a variable
unset
append_bootargs
(set empty string)setenv append_bootargs saveenv
Reset the whole environment
env default -a saveenv
Reset a specific variable to its compiled-in default value
env default <variable> saveenv
E.g. resetting
fdtsave
env default fdtsave saveenv
Note
Resetting a variable that’s not part of the compiled in default environment will be deleted, accompanied by the following message:
WARNING: '<variable>' not in imported env, deleting it!
Automatically assigned variables¶
U-Boot will automagically assign some environment variables upon boot or after certain actions.
Variable |
Purpose |
Remarks |
---|---|---|
ethaddr eth1addr |
MAC address(es) assigned to the ethernet interface(s) |
Initialized from OTP memory, if unset Once saved, the value won’t be changed by U-Boot |
uuid_rootfs uuid_boot uuid_userfs |
UUIDs of various mass storage partitions |
partition UUID from the GPT |
serial# |
Globally Unique Identifier from the processor’s OTP memory |
will be used e.g. for setting the name of the mass storage
device on the host created with the |
fileaddr filesize |
convey information about the most recent ‘load’ or ‘tftpboot/bootp’ command |
will be unset upon boot |
fdt_size |
provides the size of the in-memory FDT |
will be changed by fdt resize |
fdtcontroladdr |
RAM address of the U-Boot internal FDT |
You may inspect the FDT that is used to configure the U-Boot internal devices: fdt addr ${fdtcontroladdr}
fdt print
|