找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 17950|回复: 41

[AX3600] AX3600 改SPI启动的探索 可救砖

  [复制链接]
本帖最后由 huah0235 于 2021-3-9 10:11 编辑

接上个帖子,尝试将AX3600的512MB内存改为1G。新一代wifi6方案和以前有很大不同,更加复杂。有一个cdt分区控制内存布局。想要更改内存需要刷cdt分区,刷了大佬编译的测试cdt,uboot读取错误的cdt无法启动,直接变砖,故开始了艰难的尝试。目前已经救活,但坑很多,写出来给大家点启发,也记录一下这次折腾,给后续自己留一点参考。特别感谢群里志平大佬提供的支持和帮助!在此鸣谢
前期需要了解的


一、元器件工作电压
这个机器SPI,NAND,TTL的电压全部都是1.8v,而不是常见的3.3v。这就导致我手里现成的芯片全部无法使用。
1.8v 的SPI芯片很少,这里我用的型号W25Q128FW,同时,那种简易的编程器,大部分也不支持。需要购买支持1.8v新编程器或者电平转换板
NAND用的也是1.8v,老一点的编程器或者有些大神用双启路由器改的编程器没法使用,而且电压过高有可能烧毁芯片。本人使用的RT809H可以支持。
TTL兼容性差。老的土豪金ttl线,插上去之后机器会无法启动,必须拔掉先上电,再插ttl。很多时候需要中断进入uboot,会错过。推荐使用支持1.8v的FT232 TTL线,无上述问题。

其他高通方案的wifi6芯片,电压貌似也是1.8,想折腾这类机器要提前准备好需要的硬件。

二、NAND混用
AX3600的NAND芯片是混用的,分winbond W29N02GZ和gigadevice GD9FS2G8F2A两种。本身这种做法无所谓,但是这两颗芯片的实际容量是不一样的。W29N02GZ编程器读出来的容量是264MB,GD9FS2G8F2A是272MB,如果把GD的编程器固件往winbond中刷,肯定是刷不进去的。NAND编程器固件又不能随便修改,会导致ecc出错。应该有解决方法,但我没研究出来,欢迎知道方法的大佬指点。



---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------

开始折腾



1.添加SPI的外围元件,焊接烧录好数据的SPI,CPU旁边的R103(4.7k)电阻摘掉。即可切换为SPI启动。此机器有SPI焊盘,但是后面有两个电阻需要补上
R87 R88两颗10k贴片电阻,0402封装。
C77 1uf电容,0201封装

参考openwrt官方论坛https://forum.openwrt.org/t/addi ... mi-ax3600/55049/166



2.进入uboot,输入print,查看ip地址,网线连接路由器和电脑,电脑手动设置为192.168.1.10(官方固件可能是192.168.31.100,具体看print输出的信息),

3.打开tftp64,将所需文件复制到tftp目录,调整好ip

4.输入命令刷机

#擦除整片flash
nand erase 0x0 10000000
#由于uboot最多只能刷入大概100MB的固件,所以我将原本的128MB的固件拆分成了两部分,两次上传,两次刷入入。先下载第一部分
tftpboot ax3600_0-0x3ffffff.bin
#刷入第一部分
nand write 0x44000000 0x0 0x4000000
#下载第二部分
tftpboot ax3600_0x4000000-0x7ffffff.bin

#刷入第二部分
nand write 0x44000000 0x4000000 0x8000000

5.将R103装回去,切换回nand启动。机器成功启动之后web更新一遍固件,救砖完成


---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------

技巧
1.刷这种固件会覆盖掉原机的所有信息,包括art,mac,bdata,序列号等。可以参考使用这个帖子(https://www.wutaijie.cn/?p=254)提到的方法还原原机备份。比较麻烦。可以在uboot中刷入,也可以先修改,再刷入。
两个需要修改的部分(art,bdata),都在ax3600_0-0x3ffffff.bin中。
art十六进制地址0x800000-0x880000
bdata十六进制地址0x880000-0x900000








2.原机分区信息
root@XiaoQiang:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01000000 00010000 "spi32766.0"
mtd1: 00100000 00020000 "0:SBL1"
mtd2: 00100000 00020000 "0:MIBIB"
mtd3: 00300000 00020000 "0SEE"
mtd4: 00080000 00020000 "0EVCFG"
mtd5: 00080000 00020000 "0:RPM"
mtd6: 00080000 00020000 "0:CDT"
mtd7: 00080000 00020000 "0:APPSBLENV"
mtd8: 00100000 00020000 "0:APPSBL"
mtd9: 00080000 00020000 "0:ART"
mtd10: 00080000 00020000 "bdata"
mtd11: 00080000 00020000 "crash"
mtd12: 00080000 00020000 "crash_syslog"
mtd13: 023c0000 00020000 "rootfs"
mtd14: 08000000 00020000 "rootfs_1"
mtd15: 01ec0000 00020000 "overlay"
mtd16: 00080000 00020000 "rsvd0"
mtd17: 00900000 00020000 "0:WIFIFW"
mtd18: 0041e000 0001f000 "kernel"
mtd19: 016c4000 0001f000 "ubi_rootfs"
mtd20: 01876000 0001f000 "data"




3.刷cdt卡死的ttl输出

IPQ807x# sf probe
SPI_ADDR_LEN=3
SF: Detected W25Q128FW with page size 256 Bytes, erase size 4 KiB, total 16 MiB
IPQ807x# sf erase 0x1e0000 0x10000
SF: 65536 bytes @ 0x1e0000 Erased: OK
IPQ807x# sf write 0x44000000 0x1e0000 0x10000
device 0 offset 0x1e0000, size 0x10000
SF: 65536 bytes @ 0x1e0000 Written: OK
IPQ807x# reset
resetting ...

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=file:///C:\Users\16429\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.pngBOOT.BF.3.3.1-00148
S - IMAGE_VARIANT_STRING=HAABANAZA
S - OEM_IMAGE_VERSION_STRING=CRM
S - Boot Config, 0x000002e1
B -       201 - PBL, Start
B -      2735 - bootable_media_detect_entry, Start
B -      2881 - bootable_media_detect_success, Start
B -      2885 - elf_loader_entry, Start
B -     11375 - auth_hash_seg_entry, Start
B -     11617 - auth_hash_seg_exit, Start
B -    250130 - elf_segs_hash_verify_entry, Start
B -    310648 - PBL, End
B -    490897 - SBL1, Start
B -    569709 - GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
B -    579561 - pm_device_init, Start
B -    761158 - PM_SET_VAL:Skip
D -    179340 - pm_device_init, Delta
B -    763415 - pm_driver_init, Start
D -      5307 - pm_driver_init, Delta
B -    769911 - clock_init, Start
D -      2135 - clock_init, Delta
B -    773876 - boot_flash_init, Start
D -     16134 - boot_flash_init, Delta
B -    793793 - boot_config_data_table_init, Start
D -      1098 - boot_config_data_table_init, Delta - (575 Bytes)
B -    801448 - Boot Setting :  0x00000618
B -    805169 - CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:16
B -    812215 - sbl1_ddr_set_params, Start
B -    816027 - CPR configuration: 0x30c
B -    819413 - cpr_init, Start
B -    822188 - Rail:0 Mode: 5 Voltage: 808000
B -    827434 - CL CPR settled at 760000mV
B -    830271 - Rail:1 Mode: 5 Voltage: 880000
B -    834449 - Rail:1 Mode: 7 Voltage: 904000
D -     16561 - cpr_init, Delta
B -    841342 - Pre_DDR_clock_init, Start
B -    845368 - Pre_DDR_clock_init, End
B -    848662 - DDR Type : PCDDR3
IPQ807x# sf probe
SPI_ADDR_LEN=3
SF: Detected W25Q128FW with page size 256 Bytes, erase size 4 KiB, total 16 MiB
IPQ807x# sf erase 0x1e0000 0x10000
SF: 65536 bytes @ 0x1e0000 Erased: OK
IPQ807x# sf write 0x44000000 0x1e0000 0x10000
device 0 offset 0x1e0000, size 0x10000
SF: 65536 bytes @ 0x1e0000 Written: OK
IPQ807x# reset
resetting ...

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=file:///C:\Users\16429\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.pngBOOT.BF.3.3.1-00148
S - IMAGE_VARIANT_STRING=HAABANAZA
S - OEM_IMAGE_VERSION_STRING=CRM
S - Boot Config, 0x000002e1
B -       201 - PBL, Start
B -      2735 - bootable_media_detect_entry, Start
B -      2881 - bootable_media_detect_success, Start
B -      2885 - elf_loader_entry, Start
B -     11375 - auth_hash_seg_entry, Start
B -     11617 - auth_hash_seg_exit, Start
B -    250130 - elf_segs_hash_verify_entry, Start
B -    310648 - PBL, End
B -    490897 - SBL1, Start
B -    569709 - GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
B -    579561 - pm_device_init, Start
B -    761158 - PM_SET_VAL:Skip
D -    179340 - pm_device_init, Delta
B -    763415 - pm_driver_init, Start
D -      5307 - pm_driver_init, Delta
B -    769911 - clock_init, Start
D -      2135 - clock_init, Delta
B -    773876 - boot_flash_init, Start
D -     16134 - boot_flash_init, Delta
B -    793793 - boot_config_data_table_init, Start
D -      1098 - boot_config_data_table_init, Delta - (575 Bytes)
B -    801448 - Boot Setting :  0x00000618
B -    805169 - CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:16
B -    812215 - sbl1_ddr_set_params, Start
B -    816027 - CPR configuration: 0x30c
B -    819413 - cpr_init, Start
B -    822188 - Rail:0 Mode: 5 Voltage: 808000
B -    827434 - CL CPR settled at 760000mV
B -    830271 - Rail:1 Mode: 5 Voltage: 880000
B -    834449 - Rail:1 Mode: 7 Voltage: 904000
D -     16561 - cpr_init, Delta
B -    841342 - Pre_DDR_clock_init, Start
B -    845368 - Pre_DDR_clock_init, End
B -    848662 - DDR Type : PCDDR3



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +1 收起 理由
fe*** + 1 大佬能不能发一个3600原厂分区文件,我的没备份,买了工具准备救砖

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
升了最新版本没了ssh没法帮你了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

备份出来的分区可以用编程器写进吗?

点评

普通的不可以,ECC校验部分读不出来,nanddump出来的应该行  详情 回复 发表于 2021-3-9 10:12
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
130011388 发表于 2021-3-9 09:53
备份出来的分区可以用编程器写进吗?

普通的不可以,ECC校验部分读不出来,nanddump出来的应该行
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

huah0235 发表于 2021-3-9 10:12
普通的不可以,ECC校验部分读不出来,nanddump出来的应该行

大神!有个问题困扰我好久了,我通过ttl线用uboot命令还原分区,怎么不成功,每次还原后都变砖,把备份出来的uboot分区备份出来,再写进去重启就砖了,同样的方法还原art分区没问题,是不是uboot分区有锁
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

130011388 发表于 2021-3-9 11:22
大神!有个问题困扰我好久了,我通过ttl线用uboot命令还原分区,怎么不成功,每次还原后都变砖,把备份出 ...

是好的机器,ttl命令备份出uboot分区,不做任何修改,再写进去,就变砖,是什么情况
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

130011388 发表于 2021-3-9 11:22
大神!有个问题困扰我好久了,我通过ttl线用uboot命令还原分区,怎么不成功,每次还原后都变砖,把备份出 ...

是好的机器,ttl命令备份出uboot分区,不做任何修改,再写进去,就变砖,是什么情况

点评

  详情 回复 发表于 2021-3-10 11:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好文章,谢谢分享,先收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
130011388  2021-3-9 11:32
ttlubootκд

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

搭接的内存做多大的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢你分享好教程,收藏备用。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

130011388 发表于 2021-3-9 11:32
是好的机器,ttl命令备份出uboot分区,不做任何修改,再写进去,就变砖,是什么情况

坏块,可以发来我给你修好。qq1947958141
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

Maximilian 发表于 2021-7-3 12:11
坏块,可以发来我给你修好。qq1947958141

现在整好了,不是坏块问题

点评

大佬最后怎么搞定的?  详情 回复 发表于 2022-4-6 15:18
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


学习学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

能否提供一下SPI闪存刷入的U-BOOT文件啊。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 05:46

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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