Write u-Boot environment variable to SD card

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Write u-Boot environment variable to SD card

3,406 次查看
khang_letruong
Senior Contributor III

Dear Community,

We designed an iMX8MP based system booting from SD card only and we would like to know if there's any efficient way to set some u-Boot environment variable (such as the ethaddr) into a file in the SD card before booting and being taken effect by the u-Boot then the kernel, please ?

This might be u-Boot relevant question and I thought about uEnv.txt or boot.scr script but I am not sure that they are not obsolete as I do not see them in the u-Boot of recent BSPs (we are using hardknott 5.10.52).

Thanks in advance for your advice.

Khang

0 项奖励
回复
1 回复

3,314 次查看
giraffe508
Contributor IV

Hello Khang,

 

Yes, you can use a uEnv.txt or boot.scr file to set u-Boot environment variables from the SD card. These methods are still valid and can be used with recent BSPs like hardknott 5.10.52.

 

To use the uEnv.txt method, create a plain text file named 'uEnv.txt' in the root directory of your SD card. Add the environment variables you want to set, one per line, in the following format:

 

 variable_name=value 

 

For example, to set the ethaddr variable, your uEnv.txt file should contain:

 

 ethaddr=00:11:22:33:44:55 

 

Next, you need to modify the u-Boot configuration to read and apply the uEnv.txt file during the boot process. Add the following lines to your u-Boot configuration:

 

 # Load uEnv.txt from SD card load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt env import -t ${loadaddr} ${filesize} 

 

Alternatively, you can use the boot.scr method. Create a plain text file with the same environment variable settings as in the uEnv.txt method, and then convert it to a boot.scr file using the following command:

 

 mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' -d input.txt boot.scr 

 

Place the generated boot.scr file in the root directory of your SD card. The u-Boot will automatically execute the script during the boot process, setting the environment variables accordingly.

 

Both methods should work for setting u-Boot environment variables from the SD card. Choose the one that best fits your needs.

 

Best regards,