zyk 发表于 2021-7-15 09:45:08

rk3566/rk3568 烧写异常问题

本帖最后由 zyk 于 2021-12-9 17:15 编辑

rk356x maskrom烧写过程或烧写后出现异常的主要原因是 同时存在Nor flash和emmc存储介质的情况下,烧写步骤有遗漏或操作不当引起的,严重情况会导致系统起不来。

maskrom下烧写方法有两种:
第一种:
先烧写RK356x_NorFlash2eMMC-Loader_xxx.img,然后再烧写需要升级的固件。如果我们操作不当导致系统起不来,在进入maskrom后可以尝试用这种方法去烧写。具体参考wiki 《切换升级存储器》部分的“方法一(Firefly)”

第二种:
使用原厂提供的方法,烧写MiniLoaderAll.bin后切换存储器再烧写。具体参考wiki 《切换升级存储器》部分的“方法二(原厂)”

下面汇总一些异常的情况和处理方法以供参考



一、烧写固件失败提示Download Firmware Fail


原因:没有切换存储为emmc,直接烧录固件,此时固件是烧写到nor flash中,nor flash的容量无法装载一个大小为1GB+的完整固件,所以会出现失败。出现烧写失败时建议点击EraseFlash进行擦除,防止重启后进入nor flash中


解决方法:参考维基的操作步骤https://wiki.t-firefly.com/Core- ... an-xia-zai-dao-emmc进行烧写即可

二、读取存储列表(List Storage)失败


原因:没有下载 MiniLoaderAll.bin 就直接点 读取存储列表(List Storage),缺少步骤的一个典型

解决方法:
1. 下载好对应主控的MiniLoaderAll.bin,下载链接https://www.t-firefly.com/share/ ... 2084e383074ada.html 或 本帖附件

2. 按照步骤下载MiniLoaderAll.bin到工具的Boot一栏再点读取存储列表(List Storage)


三、点击下载(Download)异常





原因:
1. 获取的MiniLoaderAll.bin有问题
2. 重复下载了MiniLoaderAll.bin

解决方法:
重新下一个MiniLoaderAll.bin,如https://www.t-firefly.com/share/ ... 2084e383074ada.html 或 本帖附件;Boot一栏下载成功后无需重复点击下载Download

四、烧写成功后无法启动




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.
=>


原因: 系统从nor flash中启动了,见log信息Bootdev(atags): mtd 2,这种情况是因为nor flash不为空,nor flash有一部分不完整的固件,通常是直接把固件烧到nor flash引起的

解决方法:
1.此uboot命令行中直接把nor flash擦除
=> mtd erase nor0
Erasing 0x00000000 ... 0x01ffffff (8192 eraseblock(s))
=> reboot


2.进入maskrom通过AndroidTool工具把nor flash给擦除掉,具体参考维基https://wiki.t-firefly.com/Core- ... an-xia-zai-dao-emmc


该情况进入maskrom过程中会遇到两种情况,第一种是emmc是空的(被擦除过了),第二种是emmc烧写过固件。

emmc为空的情况下,参考维基章节<<Maskrom模式>>短接nor flash就可以进入maskrom了;

AIO-3568J: https://wiki.t-firefly.com/Core-3568J/04-maskrom_mode.html
ROC-RK3568-PC: https://wiki.t-firefly.com/ROC-RK3568-PC/04-maskrom_mode.html
ROC-RK3566-PC: https://wiki.t-firefly.com/ROC-RK3566-PC/04-maskrom_mode.html

emmc烧写过固件,此时短接nor flash后,系统从emmc启动到正常模式。每次重启进入正常模式都需要短接nor flash,比较麻烦,所以还是要把nor flash给擦除掉,建议还是使用AndroidTool工具擦除,所以我们要重新回到maskrom模式。不改硬件的情况下有以下方法:


① 系统从spi flash启动过程长按ctrl+c组合键进入spi flash的uboot命令行模式,输入rbrom回车进入maskrom

②同时短接nor flash和emmc 进入maskrom

③(部分旧固件)短接nor flash时,系统从emmc启动过程长按ctrl+c组合键进入emmc正常的uboot命令行模式,输入rbrom回车进入maskrom



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说明是从emmc中启动的

五、烧写成功后卡在Starting kernel
Starting kernel ...

=>原因: 可能是使用的串口模块或串口软件配置不当引起的,系统可能已经起来了,此时可以接上屏幕看看有没有显示或ADB能否正常使用

解决方法:可以尝试使用官方的串口模块https://store.t-firefly.com/goods.php?id=24


tom_liu 发表于 2021-7-15 11:31:07

It's really helpful and useful. Excellent!

kat 发表于 2021-7-15 17:26:29

请问RK3568 需要提前烧写RPMB key吗

zyk 发表于 2021-7-16 10:39:02

kat 发表于 2021-7-15 17:26
请问RK3568 需要提前烧写RPMB key吗

烧录固件就可以了

nj1tony 发表于 2021-7-23 09:08:37

设置了权限,这个文件没法下载呀

zyk 发表于 2021-7-23 15:38:41

本帖最后由 zyk 于 2021-7-23 15:39 编辑

nj1tony 发表于 2021-7-23 09:08
设置了权限,这个文件没法下载呀
无法下载具体是什么现象,可以试一下从该链接https://www.t-firefly.com/share/ ... 2084e383074ada.html下载

wangshunren 发表于 2021-7-25 21:26:57

可以了吗

walter.chen 发表于 2021-8-4 14:00:15

买了3566板子,下载boot显示设备不匹配,chip信息显示 -RK3568,下载了3566的和3568的MiniLoaderAll.bin,还是都显示设备不匹配,什么原因啊

zyk 发表于 2021-8-4 23:13:41

walter.chen 发表于 2021-8-4 14:00
买了3566板子,下载boot显示设备不匹配,chip信息显示 -RK3568,下载了3566的和3568的MiniLoaderAll.bin, ...

使用的AndroidTool工具版本是v2.81?从哪里获取的MiniLoaderAll.bin

No.小丑 发表于 2021-8-6 16:39:22

tom_liu 发表于 2021-7-15 11:31
It's really helpful and useful. Excellent!

6666
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: rk3566/rk3568 烧写异常问题