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.

请教TI的 Jian Zhou 以及Yaoming qin一个uboot的问题



AM335x + Norflash

疑问:“如果我把内核镜像uImage烧写在norflash的不同分区中,uboot的代码应该如何的调整”(即在uboot代码中哪边的代码来定义我们从哪个“指定的分区”来读取uImage)?

期待你们的回复,谢谢~!

  • 请问您在nor flash上会用什么文件系统?

    只有uboot支持该文件系统,才能去读该文件系统的分区,否则只能根据offset直接去读Image。

  • 秦工 你好

    文件系统是 jfss2的,我看到现在的uboot是支持的

  • 您可以在uboot中,用jfss2的相关的命令(http://blog.csdn.net/lianyq1986/article/details/6878103)读取uImage,然后再boot

  • 秦工:
    可能我的疑问跟你的答复有点偏离
    我主要问的是 uImage的在norflash中的存放地址变化了的话,uboot中的代码该如何的调整?而非rootfs文件
    比如在nand flash的启动内核的时候,可会有如下的bootcmd命令来作从nand flash中读内核映像到内存,然后启动内核
    bootcmd=nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; bootm ${loadaddr}

    我们的代码中是否也是有这个类似的bootcmd,具体在哪边?
    应该就是在如下的文件中定义的(对这个宏定义我目前还没理解好,请问下秦工,${loadaddr} ${nandsrcaddr} ${nandimgsize}这个数值是在code中那边传入的?又是在code中哪边调用的呢?)
    uboot代码中/include/configs/am335x_evm.h
    #define CONFIG_EXTRA_ENV_SETTINGS \
    ......
    "nandboot=echo Booting from nand ...; " \
    "run nandargs; " \
    "nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; " \
    "bootm ${loadaddr}\0" \
    ...

  • 1. uImage的读取可以直接通过offset,也可以通过文件系统访问。如果您存在offset,就通过offset读取,此时,需要用到uboot访问spi flash的相关指令。

    2. 关于bootcmd等的环境变量的存储,默认是存在nand flash的,您可以查查代码,应该有宏定义把环境变量存在您所需的spi flash中的。

  • 既然你已经把uimage烧写到norflash的对应地址,那么就从对应的地址读取呗