|
发表于 2021-7-15 09:45:08
本帖最后由 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
四、烧写成功后无法启动
原因: 系统从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
原因: 可能是使用的串口模块或串口软件配置不当引起的,系统可能已经起来了,此时可以接上屏幕看看有没有显示或ADB能否正常使用
解决方法:可以尝试使用官方的串口模块https://store.t-firefly.com/goods.php?id=24
|
|