|
本帖最后由 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 "0 SEE"
mtd4: 00080000 00020000 "0 EVCFG"
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
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|