当前位置: 首页 > news >正文

Rockchip | 使用SD卡启动或升级固件到本地存储

1 简介

Rockchip 现将 SD 卡划分为常规 SD 卡,SD 升级卡,SD 启动卡,SD 修复卡。可以通过瑞芯微创建升级磁盘工具将镜像文件下载到 SD 卡内,制作不同的卡类型。

_images/sdfirmwaretool.zh_CN.png

2 分类

2.1 常规卡

普通 SD 卡与 PC 使用完全一样,可以在 U-Boot 和 Kernel 系统中作为普通的存储空间使用,无需工具对SD 卡做任何操作。

2.2 升级卡

SD 升级卡是通过 RK 的工具制作,实现 SD 卡对本地存储(如 eMMC,nand flash)固件的升级。SD 卡升级是可以脱离 PC 机或网络的一种固件升级方法。具体是将 SD 卡启动代码写到 SD 卡的保留区,然后将固件拷贝到 SD 卡可见分区上,主控从 SD 卡启动时,SD 卡启动代码和升级代码将固件烧写到本地主存储中。同时 SD 升级卡支持 PCBA 测试和 Demo 文件的拷贝。SD 升级卡的这些功能可以使固件升级做到脱离 PC 机进行,提高生产效率。已经制作好的升级用 SD 卡,如果只需要更新固件和 demo 文件时,可以按下面步骤来完成:

1. 拷贝固件到 SD 卡根目录,并重命名为 sdupdate.img
2. 拷贝 demo 文件到 SD 卡根目录下的 Demo 目录中

SD 引导升级卡格式(非 GPT)

SD 引导升级卡格式(GPT)

2.3 启动卡

SD 启动卡是通过 RK 的工具制作,实现直接从 SD 卡启动,极大的方便用户更新启动新固件而不用重新烧写固件到设备存储内。具体实现是将固件烧写到 SD 卡中,把 SD 卡当作主存储使用。主控从 SD 卡启动时,固件以及临时文件都存放在 SD 卡上,有没有本地主存储都可以正常工作。目前主要用于设备系统从 SD 卡启动,或用于 PCBA 测试。注意:PCBA 测试只是 recovery 下面的一个功能项,可用于升级卡与启动卡。

SD 引导启动卡格式(非 GPT)

SD 引导启动卡格式(GPT)

2.4 修复卡

SD 修复卡类似于 SD 卡升级功能,但固件升级工作由 miniloader完成。首先工具会将启动代码写到 SD
卡的保留区,然后将固件拷贝到 SD 卡可见分区上,主控从 SD 卡启动时,SD 卡升级代码将固件升级到
本地主存储中。主要用于设备固件损坏,SD 卡可以修复设备。

SD 修复卡格式(非 GPT)

SD 修复卡格式(GPT)

3 固件标志

SD 卡作为各种不同功能的卡,会在 sd 卡内做一些标志。在 SD 卡的第 64 扇区处,起始标志若为(magic number)为 0xFCDC8C3B,则为一些特殊卡,会从 SD卡内读取固件,启动设备。如果不是,则作为普通 SD 卡看待。在第(64 扇区 + 616bytes)地方,存放各种卡的标志。目前有三种类型:

4 启动流程

SD 卡的 boot 流程可分为 pre-loader 启动流程与 uboot 启动流程,这两个流程都需要加载检测 SD 卡及SD 卡内 IDB Block 内 Startup Flag 标志,并且会依据这些标志执行不同的功能。流程如下:

 

4.1 pre-loader 启动

  • maskrom 首先先找到一份可用的 miniloader 固件(可以从 TRM 确定 Maskrom 支持的启动存储介质和优先顺序,maskrom 会依次扫描可用存储里的固件),然后跳转到 miniloader。miniloader 重新查找存储设备,如果检测到 SD 卡,检测 SD 卡是否包含 IDB 格式固件。如果是,再判断卡标志。如果 SD 卡可用且标志位为 '0' 或 ‘1’,则从 SD 卡内读取 U-Boot 固件,加载启动 U-Boot。如果标志为‘2’,则进入修复卡流程,在 loader 下更新固件。正常启动流程为扫描其他存储,加载启动下级 loader。

 

4.2 U-Boot 启动

  • 升级卡:U-Boot 重新查找存储设备,如果检测到 SD 卡,检测 SD 卡是否包含 IDB 格式固件。如果是,再判断偏卡标志是否为 0,传递给 kernel 的 cmdline 添加'sdfwupdate'。最后读取 SD 卡的 misc 分区,读取卡启动模式,若为 recovery 模式,加载启动 recovery。
  • 启动卡:U-Boot 重新查找存储设备,如果检测到 SD 卡, 检测 SD 卡是否包含 IDB 格式固件。如果是,再判断卡标志是否为 1。最后读取 SD 卡的 misc 分区,读取卡启动模式,如果为 recovery,加载启动recovery。如果是 normal 模式,则加载启动 kernel。

        

 

5 注意事项

  • 制作非GPT 格式固件时,U-Boot 需要配置 CONFIG_RKPARM_PARTITION。
  • 制作 SD 升级卡时,update.img 必须包含 MiniloaderAll.bin,parameter.txt,uboot.img,trust.img,misc.img,resource.img,recovery.img 这些固件,否则烧写 update.img 会出现写入 MBR 失败的提示。
http://www.xdnf.cn/news/853453.html

相关文章:

  • 世界顶级五大女程序媛,不仅技术强还都是美女
  • Windows的EXE文件(1)
  • 卡巴斯基KAV/KIS 6.0/7.0 永久免费激活方法
  • 怎么做英文外链代发
  • ThinkPad T41/43 -- 安装Windows XP及其驱动程序
  • Visual SourceSafe 6.0 安装配置简要说明(转)
  • 低格格式化过程及与高级格式化的区别
  • Joomla安装图文教程 (送 Joomla 中文语言包)
  • 3.4 DLL注入:全局消息钩子注入
  • CSS3 经典教程系列:CSS3 圆角(border-radius)详解
  • 网卡参数设置建议与各个网卡参数含义详解
  • cortex-a8原理实践及应用
  • 获取IP地址
  • java开源的cms系统jsp cms系统
  • 第四章 数据字典详解
  • Discuz论坛设置论坛版块横排后,如何设置显示版块图标
  • nero刻录错误 序列号问题
  • 如何破解XP开机密码
  • Discuz!6.0 升级至 Discuz!7.2
  • C++在线五子棋对战(网页版)项目:实用工具类模块代码实现
  • 主流WebService框架
  • 2021年月薪多少,才能在北上广深“体面”生活?
  • android视频播放器排行榜,安卓视频播放器哪个好 五款主流视频播放器对比
  • iOS开发 swift 3dTouch实现 附代码
  • 黑马点评项目学习笔记(15w字详解,堪称史上最详细,欢迎收藏)
  • 解决 IE 选项卡重启的问题(此选项卡已经恢复)(ZT)
  • 对日软件外包
  • 谢国忠观点
  • Windows11系统提示找不到d3dx9_26.dll文件如何处理?
  • C++ Qt 学习(五):Qt Web 编程