This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335 SDK中有uEnv.txt吗?



在启动uboot时,会读取SD卡中的uEnv.txt文件,这个文件是环境变量吗?



U-Boot 2014.07-00107-ga6ef75a-dirty (Nov 24 2015 - 16:36:55) I2C: ready DRAM: 512 MiB NAND: 0 MiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 reading uboot.env ** Unable to read "uboot.env" from mmc0:1 ** Using default environment Net: <ethaddr> not set. Validating first E-fuse MAC cpsw Hit any key to stop autoboot: 0 WARNING: Could not determine device tree to use switch to partitions #0, OK mmc0 is current device SD/MMC found on device 0 reading uEnv.txt ** Unable to read file uEnv.txt ** ** Invalid partition 2 ** Card did not respond to voltage select! SD/MMC found on device 1 Card did not respond to voltage select! ** Bad device mmc 1 ** Card did not respond to voltage select! ** Bad device mmc 1 ** Booting from nand ... no devices available no devices available Bad Linux ARM zImage magic! U-Boot#

但是这个uEnv.txt从何而来? 在create.sdcard.sh 758行发现以下shell片段:



#check that files are in SDK BOOTFILEPATH="$PARSEPATH/board-support/prebuilt-images" MLO=`ls $BOOTFILEPATH | grep MLO | awk {'print $1'}` KERNELIMAGE=`ls $BOOTFILEPATH | grep [uz]Image | awk {'print $1'}` BOOTIMG=`ls $BOOTFILEPATH | grep u-boot | grep .img | awk {'print $1'}` BOOTBIN=`ls $BOOTFILEPATH | grep u-boot | grep .bin | awk {'print $1'}` BOOTUENV=`ls $BOOTFILEPATH | grep uEnv.txt | awk {'print $1'}`

但是prebuilt-images 目录下并没有发现这个uEnv.txt,是需要手动保存吗?执行save命令,也只是保存为uboot.env文件。

  • 那个是可以设置环境变量,但一般来说,默认SDK中并没有用该文件来配置。没有这个文件是正常的,所以你的启动失败还是要查kernel的配置编译流程和环境变量的配置,一般用的是默认的环境变量配置的话,不会有啥问题,kernel配置编译确认没有问题吗?

  • 明白了,参考:

    http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide#Setting_U-Boot_environment_using_uEnv.txt

    主要是设置环境变量的,想用的话写3个环境变量就行了(根据自己需要修改):

    bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=512M rootwait
    bootcmd=mmc rescan; fatload mmc 0 0x82000000 uImage; bootm 0x82000000
    uenvcmd=boot

    没有uEnv.txt也没关系,只要bootargs正确就行了。内核测试过了没问题,下一步开始移植u-boot的nand,现在还打印

    NAND:  0 MiB