krynin
1
Hi my Xiaomi AX3600 stopped working and weird stuff happen as it wont accept any image in recovery or normal mode(Tftpboot/bootm/dhcp)
In U-Boot i see only
IPQ807x# bootm
## Loading kernel from FIT Image at 44000000 ...
Using 'config@ac04' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-5.15.137
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x440000ec
Data Size: 12348293 Bytes = 11.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x41000000
Entry Point: 0x41000000
Hash algo: crc32
Hash value: ca8e9dd6
Hash algo: sha1
Hash value: 2c5fcaa43151941e5b4eeef48e58bc51eb42f0fb
Verifying Hash Integrity ... crc32 error!
Bad hash value for 'hash-1' hash node in 'kernel-1' image node
Bad Data Hash
ERROR: can't get kernel image!
IPQ807x#
Can someone help me?
Router is European version and U-boot says
IPQ807x# is_sec_boot_enabled
is_sec_boot_enabled
secure boot fuse is not enabled
IPQ807x#
so it should work with any image(i think
)
slh
2
You have serial console access, so tftpboot and initramfs image and write a new image from there.
krynin
3
In recovery mode when flashing stock FW it says
detect button press, continue check 5 secs
detect button pressed 5 secs !
confirm to launch xq_upgrade !
cmd=dhcp
Net: MAC0 addr:9c:9d:7e:xx:xx:xx
PHY ID1: 0x4d
PHY ID2: 0xd0b1
EDMA ver 1 hw init
Num rings - TxDesc:1 (0-0) TxCmpl:1 (7-7)
RxDesc:1 (15-15) RxFill:1 (7-7)
ipq807x_edma_alloc_rings: successfull
ipq807x_edma_setup_ring_resources: successfull
ipq807x_edma_configure_rings: successfull
ipq807x_edma_hw_init: successfull
board_eth_init: ipq807x_edma_init successed
eth0
ipq807x_eth_halt: done
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 up Speed :10 Full duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :1000 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
eth0 PHY5 Down Speed :10 Half duplex
ipq807x_eth_init: done
BOOTP broadcast 1
*** Unhandled DHCP Option in OFFER/ACK: 13
*** Unhandled DHCP Option in OFFER/ACK: 175
*** Unhandled DHCP Option in OFFER/ACK: 13
*** Unhandled DHCP Option in OFFER/ACK: 175
DHCP client bound to address 192.168.31.1 (226 ms)
Using eth0 device
TFTP from server 192.168.31.100; our IP address is 192.168.31.1
Filename 'miwifi_r3600_firmware_5da25_1.0.17.bin'.
Load address: 0x44000000
Loading: *
Got TFTP_OACK: TFTP remote port: changes from 69 to 59246
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
############################################
4.8 MiB/s
done
Bytes transferred = 28312508 (1b003bc hex)
ipq807x_eth_halt: done
LoadAddr=44000000 NetBootFileXferSize= 1b003bc
CRC verify failed!
Image verify failed!
========Upgrade fail!========
krynin
4
I may be using it wrong but when booting initramfs image i have this
TFTP from server 192.168.31.100; our IP address is 192.168.31.1
Filename 'openwrt-23.05.0-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi'.
Load address: 0x44000000
Loading: *
Got TFTP_OACK: TFTP remote port: changes from 69 to 54037
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################################################
4.8 MiB/s
done
Bytes transferred = 13107200 (c80000 hex)
ipq807x_eth_halt: done
IPQ807x# bootm
Wrong Image Format for bootm command
ERROR: can't get kernel image!
IPQ807x#
slh
5
openwrt-qualcommax-ipq807x-xiaomi_ax3600-initramfs-uImage.itb?
krynin
6
Where do i get this file? Only ones i have found are with
ipq807x-generic
in name
krynin
7
TFTP from server 192.168.31.100; our IP address is 192.168.31.1
Filename 'openwrt-23.05.2-ipq807x-generic-xiaomi_ax3600-initramfs-uImage.itb'.
Load address: 0x44000000
Loading: *
Got TFTP_OACK: TFTP remote port: changes from 69 to 64260
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
4.8 MiB/s
done
Bytes transferred = 12392876 (bd19ac hex)
ipq807x_eth_halt: done
IPQ807x# bootm
## Loading kernel from FIT Image at 44000000 ...
Using 'config@ac04' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-5.15.137
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x440000ec
Data Size: 12348293 Bytes = 11.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x41000000
Entry Point: 0x41000000
Hash algo: crc32
Hash value: ca8e9dd6
Hash algo: sha1
Hash value: 2c5fcaa43151941e5b4eeef48e58bc51eb42f0fb
Verifying Hash Integrity ... crc32 error!
Bad hash value for 'hash-1' hash node in 'kernel-1' image node
Bad Data Hash
ERROR: can't get kernel image!
IPQ807x#
this is the only one with .itb extension that i have
Sorry for my incompetence im noob at software side
I dont understand why there is always CRC error when it could work 
Before type bootm
try call command crc32
:
IPQ807x> crc32
crc32 - checksum calculation
Usage:
crc32 address count [addr]
- compute CRC32 checksum [save at addr]
IPQ807x> crc32 0x44000000 0xbd19ac
krynin
9
When I do CRC32 check it just reboots(bootm still dont work)
IPQ807x# crc32 0x44000000 12392876
data abort
pc : [<4a950cf4>] lr : [<e2b87a14>]
reloc pc : [<4a950cf4>] lr : [<e2b87a14>]
sp : 4a7df884 ip : 00000002 fp : 4a950d78
r10: 12392876 r9 : 4a7dfea0 r8 : 44000000
r7 : 00000002 r6 : 4a7e2194 r5 : 56392874 r4 : 4ac00000
r3 : 4a957500 r2 : 12392874 r1 : 44000000 r0 : e2011303
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
EDIT:
Used different formula and it kinda worked
IPQ807x# crc32 0x44000000 0xbd19ac
crc32 for 44000000 ... 44bd19ab ==> 6370eb41
IPQ807x#
krynin
10
I wonder is my last hope to use Programmer on nand
I own Xgecu T48 so technically im able to write whole nand with proper image.
krynin
11
I spotted one error(if im right) and it seems to be my problem
IPQ807x# crc32 0x44000000 0xbd19ac
crc32 for 44000000 ... 44bd19ab ==> 6370eb41
IPQ807x# bootm
## Loading kernel from FIT Image at 44000000 ...
Using 'config@ac04' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-5.15.137
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x440000ec
Data Size: 12348293 Bytes = 11.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x41000000
Entry Point: 0x41000000
Hash algo: crc32
Hash falue: ca8e9dd6
Hash algo: sha1
Hash value: 2c5fcaa43151941e5b4eeef48e58bc51eb42f0fb
Verifying Hash Integrity ... crc32 error!
Bad hash value for 'hash-1' hash node in 'kernel-1' image node
Bad Data Hash
ERROR: can't get kernel image!
IPQ807x#
It is image size different as tftp-ed image is 12392876 in size and bootm says 12348293
And in reality, what is the amount of crc in this file?
Its file? https://downloads.openwrt.org/releases/23.05.2/targets/ipq807x/generic/openwrt-23.05.2-ipq807x-generic-xiaomi_ax3600-initramfs-uImage.itb
crc32 = 0x53339DF9
12392876 - size of FDT-image
12348293 - size of kernel-1
proof
Try this:
setenv loadaddr 0x46000000
tftpboot
crc32 0x46000000 0xbd19ac
Try set 10Mbps ethernet connection.
krynin
15
It passes but after bootm it bootloops still telling me that hash is wrong
IPQ807x# <INTERRUPT>
Q807x# setenv loadaddr 0x46000000
Q807x# saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x680000 -- 25% complete.
Erasing at 0x6a0000 -- 50% complete.
Erasing at 0x6c0000 -- 75% complete.
Erasing at 0x6e0000 -- 100% complete.
Writing to NAND... OK
Q807x# tftpboot
ipq807x_eth_halt: done
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 up Speed :10 Full duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :10 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
eth0 PHY5 Down Speed :10 Half duplex
ipq807x_eth_init: done
Using eth0 device
TFTP from server 192.168.31.100; our IP address is 192.168.31.101
Filename 'openwrt-23.05.2-ipq807x-generic-xiaomi_ax3600-initramfs-uImage.itb'.
Load address: 0x46000000
Loading: *
Got TFTP_OACK: TFTP remote port: changes from 69 to 57057
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
4.7 MiB/s
done
Bytes transferred = 12392876 (bd19ac hex)
ipq807x_eth_halt: done
Q807x# crc32 0x46000000 0xbd19ac crc32 0x46000000 0xbd19ac
crc32 for 46000000 ... 46bd19ab ==> 53339df9
Q807x# bootm
## Loading kernel from FIT Image at 46000000 ...
Using 'config@ac04' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-5.15.137
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x460000ec
Data Size: 12348293 Bytes = 11.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x41000000
Entry Point: 0x41000000
Hash algo: crc32
Hash value: ca8e9dd6
Hash algo: sha1
Hash value: 2c5fcaa43151941e5b4eeef48e58bc51eb42f0fb
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 46000000 ...
Using 'config@ac04' configuration
Trying 'fdt-1' fdt subimage
Description: ARM64 OpenWrt xiaomi_ax3600 device tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x46bc6db4
DatĆôÄB>˝ý!¤ý©6J˘F©FĄBŻ…J#ŘFçOwrite phy_id=1, reg(0x8074):0x0670
write phy_id=2, reg(0x8074):0x0670
write phy_id=3, reg(0x8074):0x0670
write phy_id=4, reg(0x8074):0x0670
bootwait is on, bootdelay=5
Hit any key to stop autoboot: 5 4 3 2 1 0
trigger button release!
... crc32+ sha1+ OK
Boot failure detected on both systems
db4
boot from rootfs 0
el Image ... OK
miwifi: check crash in rmem !
end 4a3ff6b0 ... OK
ubi0: attaching mtd1
from environment
ubi0: scanning is finished
ubi0: attached mtd1 (name "mtd=0", size 35 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 286, bad PEBs: 0, corrupted PEBs: 0
ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 16
76478972
ubi0: available PEBs: 28, total reserved PEBs: 258, PEBs reserved for bad PEB ha
ndling: 40
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (4317184)
Could not find PCI in device tree
Boot failure detected on both systems
## Loading kernel from FIT Image at 44000000 ...
Using 'config@ac04' configuration
Trying 'kernel@1' kernel subimage
Description: ARM64 OpenWrt Linux-4.4.60
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x440000e8
Data Size: 3961632 Bytes = 3.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x41080000
Entry Point: 0x41080000
Hash algo: crc32
Hash value: 1959a154
Hash algo: sha1
Hash value: 0f5663def0580cbaa75e6979dd20b0c1414d7b88
Verifying Hash Integrity ... crc32 error!
Bad hash value for 'hash@1' hash node in 'kernel@1' image node
Bad Data Hash
ERROR: can't get kernel image!
Erasing NAND...
Erasing at 0x680000 -- 25% complete.
Erasing at 0x6a0000 -- 50% complete.
Erasing at 0x6c0000 -- 75% complete.
Erasing at 0x6e0000 -- 100% complete.
Writing to NAND... OK
resetting ...
It looks like there was a hard reset at this point.
krynin
17
Yes as my interface reconnected to router. The question is why it resets instead booting the kernel. Is it a dead CPU?