Firefly开源社区

【Firefly-RK3399 试用体验】05-MaskRom模式

148

积分

3

威望

0

贡献

技术小白

积分
148
发表于 2017-8-14 11:02:08     
本帖最后由 F_Developer_X 于 2017-8-14 11:02 编辑

一、启动模式简介

     RK3399有三种启动模式:1Normal模式;2Loader模式;3MaskRom模式。
     Normal模式是正常的启动过程,各个组件依次加载,直到正常进入系统。
     Loader模式会让bootloader进入升级状态,等待主机命令,用于固件升级等。Firefly-RK3399要进入Loader模式,需要在bootloader启动时检测到RECOVERY(恢复)键被按下,并且USB处于和PC连接的状态。
     MaskRom模式是设备变砖的最后一条防线,用于bootloader损坏时进行系统修复。一般情况下是不用进入MaskRom模式的,只有在设备进入不了Loader模式(bootloader校验失败,读取不了IDR块,或bootloader损坏)、SD卡启动也失效的情况下,BootRom代码才会进入MaskRom模式。此时BootRom代码等待主机通过USB接口传送bootloader代码,传送完成后进行加载并运行,并进入Loader模式。

二、启动流程分析

      RK3399支持灵活的启动方式,可以从NandFlashSPI FlasheMMC FlashSD卡启动。


    上图是RK3399的启动流程图。上电后,A53核从0xffff0000地址得到第一条执行指令,之后,BootRom代码在SRAM上运行,依次校验存储设备里的bootloader,如果校验通过,则加载并运行bootloader引导代码,bootloader引导代码负责初始化DDR内存,加载bootloader完整代码到DDR内存中并运行,最后,bootloader加载存储设备上的Linux内核,并将执行权交给Linux内核。如果所有的存储设备的bootloader都无法校验通过,则会自动进入MaskRom模式。

三、准备IDB失败问题

    在从Flint OS固件刷回Ubuntu固件的过程中,出现了“准备IDB失败”的问题,无论是哪一个版本的固件都无法成功烧写,应该是检查ID Block的过程出现了问题,这种情况下是比较麻烦的,既无法进入U-Boot,又没有自动进入MaskRom模式,所以需要强制进入MaskRom模式来进行修复。要强行进入MaskRom模式,可以人为的把Flash的数据脚与地线短接,让系统会认为Flash数据出错,从而清除Flash数据,Flash数据被清除后,无法通过ID Block检查,从而进入MaskRom模式。

四、进入MaskRom模式

    出现了“准备IDB失败”也就宣告了无法通过Loader模式进行固件更新了,只能通过强制进入MaskRom模式重新下载U-boot进行固件更新。
    Firefly-rk3399在硬件上预留了焊点(TP31,TP32),可以通过以下方式强制进入MaskRom模式:
    1、设备断开所有电源,拔出SD卡,并用USBType-C线连接好设备和主机;
    2、  在开发板的背面找到预留的焊点(TP31, TP32),如下图所示;
    3、用金属针接通的预留的焊点(TP31,TP32),并保持;
    4、给设备上电;
    5、稍候片刻,之后松开金属针,设备就会进入MaskRom模式。






    从下图可以看到,进入MaskRom模式后,进行固件升级时,首先会下载Boot,当Boot成功更新后,MaskRom模式会自动进入Loader模式,对固件进行进一步的更新,这时可以发现IDB的准备过程不再提示出现错误,固件可以成功烧录。


回复

使用道具 举报

24

积分

0

威望

0

贡献

技术小白

积分
24
发表于 2018-6-22 16:28:39     
按照上述步骤进行操作 我的板子还是提示准备IDB失败,求打神指点
回复

使用道具 举报

16

积分

0

威望

0

贡献

游客

积分
16
发表于 2018-7-19 10:20:45     
leopard_hq 发表于 2018-6-22 16:28
按照上述步骤进行操作 我的板子还是提示准备IDB失败,求打神指点

我之前有个板子也一直IDB失败,后来发现是PMU没有焊好,有电没有起来,重焊就烧录成功了
回复

使用道具 举报

50

积分

0

威望

0

贡献

技术小白

积分
50
发表于 2019-5-25 09:10:28     
https://pastebin.ubuntu.com/p/xRQfzjYdck/
这个砖怎么救活?短路TP31 和 TP32 电脑认不到USB
回复

使用道具 举报

6

积分

0

威望

0

贡献

技术小白

积分
6
发表于 2019-9-8 16:38:06     
QQ645116977 发表于 2019-5-25 09:10
https://pastebin.ubuntu.com/p/xRQfzjYdck/
这个砖怎么救活?短路TP31 和 TP32 电脑认不到USB

在0x6000,没找到turst.img
回复

使用道具 举报

14

积分

0

威望

0

贡献

技术小白

积分
14
发表于 2020-7-26 14:17:59     
从下载boot开始到结束要多久
回复

使用道具 举报

17

积分

0

威望

0

贡献

技术小白

积分
17
发表于 2021-7-25 20:32:43     
进入MaskRom模式后还能不能把bootloader抢救回来?
回复

使用道具 举报

56

积分

0

威望

0

贡献

技术小白

积分
56
发表于 2022-5-1 19:20:48     
谢谢分享!!!
回复

使用道具 举报

7

积分

0

威望

0

贡献

吃瓜的群众

积分
7
发表于 2023-3-6 17:24:04     
支持支持支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表