Hello,
As many people, I updated the firmware of my Xiaomi hub v3 ZNDMWG03LM to v1.4.7_0065 and now I am screwed because the latest supported version was 1.4.6_0030 [1]. I’ve read on this forum that it is possible to downgrade the firmware: here [3] [4] thanks to @serrj-sv.
I applied the procedure:
- solder UART (TP8=GND, TP11=Tx, TP4=Rx, TP10=VCC)
- solder btn1 reboot switch TP5 / GND (not really needed IMO)
- solder btn2 interrupt communication between flash chip and CPU TP16 / GND
- make the boot failed by pressing btn2 at boot time (check boot log via UART)
- access the bootloader console via UART
- check help message by sending ?
<RealTek>?
----------------- COMMAND MODE HELP ------------------
HELP (?) : Print this help message
boot : Boot kernel
boot_info : Show boot info
root_sum_check on|off : Turn on or off rootfs boot sum check
wd_time <value> : Set booting watch dog
DB <Address> <Len>
DW <Address> <Len>
EB <Address> <Value1> <Value2>...
EW <Address> <Value1> <Value2>...
CMP: CMP <dst><src><length>
IPCONFIG:<TargetAddress>
MEMCPY:<dst><src><length>
AUTOBURN: 0/1
LOADADDR: <Load Address>
J: Jump to <TargetAddress>
reboot
NANDID: Read NAND Flash ID
NANDBE:<offset><len>
NANDSCRUB:<offset><len>
NANDPIOR:<flash_Paddress><image_addr><image_size>
NANDPIOW:<flash_Paddress><image_addr><image_size>
NANDR:<flash_Paddress><image_addr><image_size>
NANDW:<flash_Paddress><image_addr><image_size>
NANDECCGEN: <source_addr><des_addr><ecc working buffer><length in hex>
NANDBBD:<offset><len>
NANDMARKB:<offset>
NANDFEATURE:<cmd> <address> <value>
NANDT: <cmd> <param>
MDIOR: MDIOR phyid reg
MDIOW: MDIOW phyid reg data
PHYR: PHYR <PHYID><reg>
PHYW: PHYW <PHYID><reg><data>
PHYPR: PHYPR <PHYID><page><reg>
PHYPW: PHYPW <PHYID><page><reg><data>
COUNTER: Dump Asic Counter
XMOD <addr> [jump]
TI : timer init
T : test
ETH : startup Ethernet
CPUClk:
CP0
My question here: how can I restore the previous version of the firmware?
I do not understand the above commands
I tried some commands to make it reboot normally without success:
<RealTek>boot_info
=== bootloader for mijia_gw ===
boot_info: ver:0
kernel: newest:0, curr:0
rootfs: newest:0, curr:0
kernel[0]: sum:0x0000, size:0, fail:0
[1]: sum:0x0000, size:0, fail:0
rootfs[0]: sum:0x0000, size:0, fail:0
[1]: sum:0x0000, size:0, fail:0
root_sum_check: on
watchdog_time: 0
boot_version: 1.0.2.005
priv mode
status:Sync
<RealTek>boot
Info: kernel 0 is invalid
Info: kernel 1 is invalid
Warn: all kernels are invalid !
<RealTek>
Thanks for any hint / help.
Luc
[1] https://github.com/AlexxIT/XiaomiGateway3#supported-firmwares
[2] Xiaomi Mijia Smart Multi-Mode Gateway (ZNDMWG03LM) support
[3] Xiaomi Mijia Smart Multi-Mode Gateway (ZNDMWG03LM) support