|
本帖最后由 pupie 于 2011-10-26 21:10 编辑
参考:
https://right.com.cn/forum/viewt ... &highlight=3420
1. 下载解压源代码不再赘述 http://www.tp-link.com/support/t ... 5F3220v1%2Etar%2Egz
2. 进入build 目录:/home/colin/mr3420_3220v1/build
3. 备份make文件名
mv Makefile Makefile.bak
mv Makefile.ap99 Makefile
4. 在你的代码的home目录下建立一个目录,因为脚本最后会拷贝uboot.bin过来,起始不建立也可以。/home/用户名/images/ap99
5. 替换修改的/home/用户米/mr3420_3220v1/ap99/boot/u-boot/include/configs/ap99.h 头文件,此文件中定义了16M flash,如果是8M Flash,请修改ap99.h 头文件中的 FLASH_SIZE 8
6. 启动编译make BOARD_TYPE=ap99 uboot
7. 最后到/home/用户名/images/ap99 下取得编译出来的u-boot.bin
8.由于uboot定义为128k长度,故用需要将其后面填满已达到128k,即每个由于NOR flash的特性,每个比特位初始化置为1,故ultraedit将后面填满,活的一个128k长度的uboot
9. uboot 1FC00 开始6字节是MAC,1FE00 开始 8字节是PIN,用uboot和编程器固件前记得修改,一般机器背面标贴会有MAC和PIN,保存加了mac和pin的uboot,的到一个新的uboot
压缩包包含2个,一个是原始编译出来的,一个是填到128k的
写flash的时候,用MR3420_16M_u-boot-128k.bin
如果是在TLL中更新uboot的时候,注意几点:
flash基址为:0x9f000000
CFG_FLASH_BASE 0x9f000000
使用16M flash的时候,查data sheet注意满足ap99.h中定义:
CFG_FLASH_SECTOR_SIZE (64*1024) flash扇区大小为64k
CFG_MAX_FLASH_SECT 256 flash扇区数为256,即整个flash为64K*256=16384k=16M
查看openwrt 源代码 m25p80.c
支持的串行flash有:mx25l12805d,64k扇区,256个扇区。
类似的还有
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
如果没有,要自己查data sheet 把device id he manufacturer id 等参数加入,注意如果不过64k扇区大小的flash会出错,对于16m芯片而言一定要用64k扇区256个扇区的flash
由于我没有焊台和编程器,无法验证,故买了一台全新3420找一位有焊接手艺朋友修改,我理论他实践,楼主以身试火。终于成功,另向此修改的原作者lzn致敬。
固件编译分区是按照16m的来的
8M:
41                 .name           = "u-boot",
42                 .offset         = 0,
43                 .size           = 0x020000,
44                 .mask_flags     = MTD_WRITEABLE,
45         }, {
46                 .name           = "kernel",
47                 .offset         = 0x020000,
48                 .size           = 0x140000,
49         }, {
50                 .name           = "rootfs",
51                 .offset         = 0x160000,
52                 .size           = 0x690000,
53         }, {
54                 .name           = "art",
55                 .offset         = 0x7f0000,
56                 .size           = 0x010000,
57                 .mask_flags     = MTD_WRITEABLE,
58         }, {
59                 .name           = "firmware",
60                 .offset         = 0x020000,
61                 .size           = 0x7d0000,
62         }
63 };
16M:
41                 .name           = "u-boot",
42                 .offset         = 0,
43                 .size           = 0x020000,
44                 .mask_flags     = MTD_WRITEABLE,
45         }, {
46                 .name           = "kernel",
47                 .offset         = 0x020000,
48                 .size           = 0x140000,
49         }, {
50                 .name           = "rootfs",
51                 .offset         = 0x160000,
52                 .size           = 0xe90000,
53         }, {
54                 .name           = "art",
55                 .offset         = 0xff0000,
56                 .size           = 0x010000,
57                 .mask_flags     = MTD_WRITEABLE,
58         }, {
59                 .name           = "firmware",
60                 .offset         = 0x020000,
61                 .size           = 0xfd0000,
62         }
63 };
然后按照楼下我的回帖做编程器固件
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|