Configure U-Boot from Linux¶
Updating the U-Boot configuration stored on SD card¶
When booting from MMC, the U-Boot configuration is loaded from a file called uEnv.txt on the boot partition. To view or change this file from Linux, mount the boot partition and edit the file with a text editor. For example,
$ mkdir /mnt $ mount /dev/mmcblk0p1 /mnt $ vi /mnt/uEnv.txt [[ .. make changes .. ]] $ umount /mnt
Writing the U-Boot configuration stored in NAND¶
The U-Boot source includes a utility called mkenvimage
that will prepare a U-Boot configuration for nandwrite. After building U-Boot, the utility is located at tools/mkenvimage
. To use the tool, first save the U-Boot configuration file, then invoke mkenvimage
as follows:
tools/mkenvimage -s 131072 -o ~/uEnv.dat ~/uEnv.txt
This will create a uEnv.dat file from a uEnv.txt file. To write the uEnv.dat file to NAND, copy it to the target board and run:
flash_erase /dev/mtd6 0 0 nandwrite -p /dev/mtd6 uEnv.dat
The U-Boot Env is stored in NAND partition 6 for every MitySOM-335x configuration as explained in the UBIFS NAND boot Wiki page.
Reading the U-Boot configuration stored in NAND¶
U-Boot also includes a utility to inspect the installed environment, fw_printenv
, located in tools/env. To build the fw_printenv
tool, build the env target and transfer the program to the device:
~/u-boot-mityarm-335x> make HOSTCC=arm-arago-linux-gnueabi-gcc env ~/u-boot-mityarm-335x> scp tools/env/fw_printenv root@10.0.0.4:/sbin/
The /etc/fw_env.config file will need to be created to tell fw_printenv where to find the U-Boot configuration. For a 512MB NAND module, /etc/fw_env.config should appear as follows:
# MTD Device Name Device offset Env. size Flash sector size Number of sectors /dev/mtd6 0x0000 0x20000 0x40000These settings may need to change based on the amount of NAND installed on your MitySOM-335x module:
- All NAND sizes use /dev/mtd6 "Device Name" with a 0x0000 "Device Offset."
- All NAND sizes use a 0x20000 byte "Env. size."
- The "Flash Sector Size" depends on the NAND size:
- 256MB NAND (128kB): 0x20000
- 512MB NAND (256kB): 0x40000
- 1GB NAND (512kB): 0x80000
- All NAND sizes use a blank "Number of Sectors" field. It will default to 1, the only amount supported by the 335x U-Boot.
The source of these values can be found in the UBIFS NAND boot Wiki page.
Go to top