|
本帖最后由 hunhunzi 于 2017-4-30 23:07 编辑
最近需要研究TQ2416的u-boot-2009.11_TQ2416在SD卡自动烧录模式,发现TQ2416配套资料上的u-boot-2009.11_TQ2416_V1.4源码并不是全部开放,
关于UBOOT中的SD卡自动烧录、以及FAT文件系统的代码,一点都没有开放出来,很多东西想改一下都不行。
目前TQ2416的UBOOT的SD卡自动烧录模式,是通过解释SD卡中的images\EmbedSky.ini文件,读取相关文件内容,写入NAND里面的。
通过串口LOG显示,UBOOT默认的下载的地址分区如下:
uboot分区:0x0~0x100000;-----1024KB
Logo分区:0x100000~0x300000;-----2MB
Kernel分区:0x300000~0x700000;----4MB
Root分区:0x700000~END;----
通过分析代码,发现这个分区表信息和include/configs/TQ2416.h文件中的MTDPARTS_DEFAULT宏定义一致,定义如下:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:512k@0(bios)," \
"512k(params)," \
/*"256k(toc),"*/ \
/*"384k(eboot),"*/ \
"2048K(logo)," \
"4m(kernel)," \
"-(root)"
后面,我把这个宏修为我想要的分区:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:2048k@0(bios)," \
"1024k(params)," \
/*"256k(toc),"*/ \
/*"384k(eboot),"*/ \
"2048K(logo)," \
"43m(root)," \
"16m(kernel)"
结果SD卡烧录的地址,仍然一点都没变,后面想想,这是因为SD卡自动烧录部分的代码已经编译,这个是宏定义,肯定不能再次联编的。
我想让SD卡自动烧模式下将uboot,logo,kernel,rootfs镜像文件按照以下分区地址来烧录:
uboot分区:0x0~0x300000;-----3MB
Logo分区:0x300000~0x500000;-----2MB
Rootfs分区:0x500000~0x3000000;----43MB(Cramfs类型的文件系统)
Kernel分区:0x3000000~0x4000000;----16MB
(在此之前,我也尝试过打开TQ2416的UBOOT中的fatload命令,但是该命令怎么修改到最后都无法使用,详情请见我发的另外一贴:http://www.armbbs.net/forum.php? ... 30&page=1#pid277242)
请问有什么方式能修改SD卡自动烧录到自定义的分区地址呢?
肯请赐教!
|
|