天嵌 ARM开发社区

 找回密码
 注册
查看: 3973|回复: 2

急!急!急!如何修改TQ2416的UBOOT中SD卡自动烧录的分区地址?

[复制链接]
hunhunzi 发表于 2017-4-30 23:05:22 | 显示全部楼层 |阅读模式
本帖最后由 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卡自动烧录到自定义的分区地址呢?
肯请赐教!


support_lyl 发表于 2017-5-2 13:28:51 | 显示全部楼层
修改之后用usb烧写分区是正常的么?另外fat那个问题帖子里面有回复的
xcm19880720 发表于 2017-6-8 11:11:46 | 显示全部楼层
我也觉得TQ他的uboot从SD卡烧写到nandflash时,不是从page0处烧写,不知道他们是烧写到nand哪个地方
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-3-29 19:19 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表