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.

关于BeagleBone Black sdk7.0版本烧写emmc的问题

大家好:

      之前sdk6.0的烧写,按照文档的描述已经得到验证,现在换sdk7.0版本参照Sitara Linux Program the eMMC on Beaglebone Black这个文档出现错误,log如下:

TFTP from server 192.168.100.1; our IP address is 192.168.100.2
Filename 'u-boot-restore.img'.
Load address: 0x807fffc0
Loading: ###########################
785.2 KiB/s
done
Bytes transferred = 390016 (5f380 hex)


U-Boot 2013.10-00189-g78d8ebd-dirty (Jan 19 2015 - 10:22:35)

I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Error - No Valid Environment Area found
*** Warning - bad CRC, using default environment

Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
Card did not respond to voltage select!
mmc0(part 0) is current device
Scanning mmc 0...
Card did not respond to voltage select!
** Bad device mmc 0 **
Card did not respond to voltage select!
mmc0(part 0) is current device
Card did not respond to voltage select!
mmc1(part 0) is current device
SD/MMC found on device 1
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
** No partition table - mmc 1 **
Booting from nand ...

no devices available

no devices available
Bad Linux ARM zImage magic!
U-Boot# <INTERRUPT>

请各位帮帮忙,这个该怎么设置。


  • 难道没人帮我一下吗?

  • 6.0我们验证成功了,只能在win7下可以。winxp还是不行。

    7.0我们测试情况 也还没有成功。

  • 我也是和你一样的问题,启动时显示也是这样,同样的文件复制到tf卡中就可以启动,复制到emmc中就无法启动,应该是uboot中还需要修改,请ti员工尽快更新使得可以支持SDK7.0或SDK8.0

  • SDK07和SDK06应该没什么太大区别,都是引导一个特殊的Linux kernel去烧写eMMC

  • 用tf卡自动烧写文件到emmc的2个分区,这个已经实现,关键是编译好后的uboot和kernel不能使emmc启动,应该还是需要修改一些地方

  • 启动到什么位置停掉的?有没有log信息?

  • 和楼主的一样,找不到zImage

    U-Boot 2013.10-00189-g78d8ebd-dirty (Jan 19 2015 - 10:22:35)

    I2C: ready
    DRAM: 512 MiB
    NAND: 0 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Error - No Valid Environment Area found
    *** Warning - bad CRC, using default environment

    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    Card did not respond to voltage select!
    mmc0(part 0) is current device
    Scanning mmc 0...
    Card did not respond to voltage select!
    ** Bad device mmc 0 **
    Card did not respond to voltage select!
    mmc0(part 0) is current device
    Card did not respond to voltage select!
    mmc1(part 0) is current device
    SD/MMC found on device 1
    Failed to mount ext2 filesystem...
    ** Unrecognized filesystem type **
    ** No partition table - mmc 1 **
    Booting from nand ...

    no devices available

    no devices available
    Bad Linux ARM zImage magic!

  • 我现在已经成功了大半,每次从emmc启动如果uboot中不输入命令就无法找到zImage,打印信息如下,每次必须要在启动时在uboot中手动输入run mmc_boot才能启动,这应该是uboot的am335x_evm.h设置没有正确配置所致,请问TI员工如果设置可以emmc顺利启动,不用输入命令

    U-Boot 2013.10-00189-g78d8ebd (Nov 17 2015 - 15:01:02)

    I2C: ready
    DRAM: 512 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Net: cpsw, usb_ether
    Hit any key to stop autoboot: 0
    Card did not respond to voltage select!
    mmc0(part 0) is current device
    Scanning mmc 0...
    Card did not respond to voltage select!
    ** Bad device mmc 0 **
    mmc1(part 0) is current device
    SD/MMC found on device 1
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    Card did not respond to voltage select!
    ** Bad device mmc 0 **
    mmc1(part 0) is current device
    SD/MMC found on device 1
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    3740088 bytes read in 220 ms (16.2 MiB/s)
    ** File not found /boot/undefined **
    Kernel image @ 0x80200000 [ 0x000000 - 0x3911b8 ]

    Starting kernel ...

  • 看一下你的am335x_evm.h这个文件的mmc_dev的参数是多少,如果是0将其改为1试试

  • 不是mmc_dev的问题,而是fdtfile是undefined,在uboot启动时手动改成am335x-boneblack.dtb就可以以后每次都启动,但是这个fdtfile不知道是保存在哪里的,如果一个新的bbb用sd卡烧录系统后,必须将fdtfile手动改成am335x-boneblack.dtb才行,在uboot的am335x_evm.h中已经设置了"fdtfile=am335x-boneblack.dtb\0" \,但是烧录好的系统,第一次启动时,还是得手动改一次

  • 也就是说在U-boot的am335x_evm.h中修改以后没有生效么?

  • 修改后没有生效,格式化EMMC之后,uboot中还是保存之前设置的fdtfile值,所以不知道fdtfile保存在哪个位置,格式化之后没有被清空

  • 默认的话,头文件中这个值修改后重新编译就可以生效的。

    我检查下是否有宏嵌套包含了。

  • 我怀疑uboot的env参数可能有些保存在eeprom中了,比如fdtfile, 这样即使把emmc重新分区格式化,参数还在

  • 要使用emmc,ti的工程师推荐的uboot编译参数是

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_boneblack

    以此方式编译出来的uboot,即使在am335x_evm.h中修改了fdtfile和devnum等参数,但是启动时却是默认参数,也就是修改am335x_evm.h文件无效,只有编译时以make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_evm方式,修改am335x_evm.h文件参数才会有效,请问是什么原因

x 出现错误。请重试或与管理员联系。