Upgrade Exception of RK3566/RK3568

If the board RK3566/RK3568 have both Nor Flash and EMMC storage media, and we upgrading firmware miss some steps, it may cause some exceptions such as system failed to start normally

The following summarizes some exceptions and handling methods for reference:

Download Firmware Fail

R: Without switching storage media to EMMC, the firmware is directly upgraded. At this time, the firmware is burned into Nor Flash. The capacity of Nor Flash cannot load a complete firmware with a size of 1GB +, so it will fail. In case of upgrading failure, it is recommended to click EraseFlash to erase to prevent entering Nor Flash after restart

S: Refer to steps of wiki https://wiki.t-firefly.com/en/Co … are_with_flash.html

List Storage Fail

R: Without downloading MiniLoaderAll.bin , and directly click to read the storage list. A typical step is missing,

S:

  1. downloading MiniLoaderAll.bin, we could get it in this link https://www.t-firefly.com/share/ … 2084e383074ada.html

  2. Follow the steps to download MiniLoaderAll.bin to the boot column of the tool, and then click to read the storage list

Click Download Exception


R:

  1. There is a problem of MiniLoaderAll.bin that we got
  2. Downloaded MiniLoaderAll.bin repeatedly

S: Download MiniLoaderAll.bin again. After the boot column is downloaded successfully, there is no need to click download repeatedly

System Failed to Start Normally

Bootdev(atags): mtd 2
GUID Partition Table Header signature is wrong: 0xA9425BF5A94153F3 != 0x5452415020494645
*** ERROR: Can't write GPT header ***
Backup GPT repair fail!
PartType: EFI
boot mode: recovery (misc)
FIT: No fdt blob
boot mode: None
Android 11.0, Build 2021.4, v2
Found DTB in boot part
Failed to read resource hdr
Failed to create resource list
Failed to load DTB
Failed to get kernel dtb, ret=-19
io-domain: OK
Model: Rockchip RK3568 Evaluation Board
rockchip_set_ethaddr: vendor_storage_write failed -5
rockchip_set_serialno: could not find efuse/otp device
no recovery key node
CLK: (sync kernel. arm: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
  apll 816000 KHz
  dpll 780000 KHz
  gpll 1188000 KHz
  cpll 1000000 KHz
  npll 24000 KHz
  vpll 24000 KHz
  hpll 24000 KHz
  ppll 100000 KHz
  armclk 816000 KHz
  aclk_bus 150000 KHz
  pclk_bus 50000 KHz
  aclk_top_high 300000 KHz
  aclk_top_low 200000 KHz
  hclk_top 150000 KHz
  pclk_top 50000 KHz
  aclk_perimid 300000 KHz
  hclk_perimid 150000 KHz
  pclk_pmu 50000 KHz
Net:   No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
## Booting FIT Image FIT: No fit blob
FIT: No FIT image
ANDROID: reboot reason: "(none)"
optee api revision: 2.0
TEEC: blk_dread fail
TEEC: OpteeClientRkFsInit fail!
Can't read vboot flag
Android boot failed, error -1.
no mmc device at slot 1
no mmc device at slot 0
starting USB...
Bus dwc3@fcc00000: usb maximum-speed not found
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus dwc3@fd000000: usb maximum-speed not found
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus dwc3@fcc00000 for devices... 1 USB Device(s) found
scanning bus dwc3@fd000000 for devices... cannot reset port 1!?
1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-rockchip
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.
=>

R: System boot from Nor Flash, check the log “Bootdev(atags): mtd 2”.

S:

  1. erase Nor flash directly in this uboot mode
=> mtd erase nor0
Erasing 0x00000000 ... 0x01ffffff (8192 eraseblock(s))
=> reboot
  1. Enter maskrom mode and erase Nor flash by AndroidTool(RKdevTool), refer to https://wiki.t-firefly.com/en/Co … are_with_flash.html

There are two situations when we entering maskrom mode, one EMMC is empty, another one EMMC has burned into a firmware

If EMMC is empty, we could refer to chapter 《MaskRom Mode》 to short Nor FLash circuit to enter maskrom

AIO-3568J: 3. MaskRom mode — Firefly Wiki
ROC-RK3568-PC: 3. MaskRom mode — Firefly Wiki
ROC-RK3566-PC: 3. MaskRom mode — Firefly Wiki

If EMMC has burned into a firmware, the system will boot from EMMC to normal mode after short circuit Nor Flash. Each time we want to boot from EMMC to normal mode, we must short Nor Flash, it’s cumbersome and inconformity. So we need to go back maskrom mode to erase Nor Flash, there are two ways for us to enter maskrom:
①Short circuit Nor Flash and EMMC at the same time

②When shorting circuit of Nor Flash, press ctrl+c to enter uboot command line mode during EMMC startup. and then enter command rbrom to go back maskrom mode

U-Boot 2017.09 (Jul 07 2021 - 10:03:57 +0800)
...
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
...
  pclk_pmu 100000 KHz
Net:   eth1: ethernet@fe010000, eth0: ethernet@fe2a0000
Hit key to stop autoboot('CTRL+C'):  0
=> <INTERRUPT>
=> <INTERRUPT>
=> rbrom

“Bootdev(atags): mmc 0” means system boot from EMMC

Trapped in “Starting kernel”

Starting kernel ...

=>

R: It may be caused by improper configuration of the serial port debug module or software used. The system may have been up. At this time, we can connect the screen like HDMI to see whether there is a display or whether ADB can be used normally

S: Try to use official serial port module https://www.firefly.store/goods.php?id=32
MiniLoaderAll20210715.rar (565 KB)

How can I disable Loader mode?

nice to meet u

nnn