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.

nand启动uboot起不来的问题

前提:之前sd卡启动的实验uboot,然后烧写uImage和rootfs到nand,都正常运行了。现在是将MLO也uboot也烧写到了nand启动后提示:

从告警的信息上看SPL段的代码以及是运行成功了。

The Expected Linux image was not found. Please check your NAND configuration.
Trying to start u-boot now...

求指导,这是什么原因??

  • 有没有遇到类似的问题的??

  • 上面的问题怀疑是ECC问题。

    nand启动也两种硬件ECC,1bit和8bit.

    但是我尝试使用了两种方式写入u-boot.bin文件都依然是不成功。

    之前启动nand里面的文件系统也遇到ecc问题,最后是用sw模式的ECC解决了。

  • 是不是烧错了分区了,NAND 分区如下:

    /* NAND partition information */
    static struct mtd_partition am335x_nand_partitions[] = {
    /* All the partition sizes are listed in terms of NAND block size */
     {
      .name           = "SPL",
      .offset         = 0,   /* Offset = 0x0 */
      .size           = SZ_128K,
     },
     {
      .name           = "SPL.backup1",
      .offset         = MTDPART_OFS_APPEND, /* Offset = 0x20000 */
      .size           = SZ_128K,
     },
     {
      .name           = "SPL.backup2",
      .offset         = MTDPART_OFS_APPEND, /* Offset = 0x40000 */
      .size           = SZ_128K,
     },
     {
      .name           = "SPL.backup3",
      .offset         = MTDPART_OFS_APPEND, /* Offset = 0x60000 */
      .size           = SZ_128K,
     },
     {
      .name           = "U-Boot",
      .offset         = MTDPART_OFS_APPEND,   /* Offset = 0x80000 */
      .size           = 15 * SZ_128K,
     },
     {
      .name           = "U-Boot Env",
      .offset         = MTDPART_OFS_APPEND,   /* Offset = 0x260000 */
      .size           = 1 * SZ_128K,
     },
     {
      .name           = "Kernel",
      .offset         = MTDPART_OFS_APPEND,   /* Offset = 0x280000 */
      .size           = 40 * SZ_128K,
     },
     {
      .name           = "File System",
      .offset         = MTDPART_OFS_APPEND,   /* Offset = 0x780000 */
      .size           = MTDPART_SIZ_FULL,
     },
    };

  • 检查过,肯定不是分区问题。

    现在仍然怀疑是nand ecc问题。

  • 问题还是没有解决。

    现在跟踪代码,打印信息:

    mkimage signature not found - ih_magic = ea000013      //这个是什么意思????

    Jumping to U-Boot
    image entry point: 0x80800000   //打印到这里就是掉了,这是为什么???

  • 问题解决了,

    总结一下:

    这是由于自己编译的u-boot.bin文件大于200k,而官方的代码上u-boot.bin的大小是200k。

    在spl.c文件中进行修改。
    #ifndef CONFIG_SYS_MONITOR_LEN
    #define CONFIG_SYS_MONITOR_LEN (512 * 1024)
    #endif
  • 请问你用的是SDK06么?应该是烧u-boot.img吧,SDK里带的有356K呀

  • 我用的不是sdk6.0,是uboot官方的源码。uboot-2013.10... 

  • 您前面的那个宏是定义什么的啊,为啥开那么大