AM335x + Norflash
疑问:“如果我把内核镜像uImage烧写在norflash的不同分区中,uboot的代码应该如何的调整”(即在uboot代码中哪边的代码来定义我们从哪个“指定的分区”来读取uImage)?
期待你们的回复,谢谢~!
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.
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中的。