瑞芯微Rockchip开发者社区
直播中

王飞

7年用户 1155经验值
私信 关注
[经验]

介绍一种Rockchip提供的USB类工具Rocku***

1 介绍

Rocku***是Rockchip提供的一个供应商特定的USB类工具,用于Rockchip SoCs的固件下载。

2 进入到Rocku***模式

对于Rockchip SoCs,有以下几点可进入到Rocku***模式。

maskrom 模式, 片上SoC无固件, 目标板子会运行maskrom rocku***驱动程序。

u***plug 模式。

miniLoader rocku*** 模式, 目标板子运行miniloader rocku***驱动程序。

uboot rocku***模式。

2.1 Maskrom 模式

如果板子内没有可引导的固件被发现,SoC会自动运行Rocku***驱动程序,我们把这个定义为Bootrom模式或者Maskrom模式。

如果固件在板子的某个存储媒介, 为了进入这种模式,我们可以采取措施防止cpu成功读取固件:

对于SD-card, 可以不插入SD-card;
对于eMMC, 短接eMMC时钟引脚到GND;
对于NAND, 短接数据引脚或者时钟引脚到GND;
对于SPI, 短接spi信号引脚到GND;

在U-Boot and Kernel, WIP执行"reboot bootrom"命令;

在eMMC或其他媒体设备中,用不可引导数据擦除可引导区域

在Maskrom模式下,DRAM不可用,因此下载大小受内部存储大小的限制。

这种模式下允许使用以下命令:

'db' 命令: 系统初始化DRAM并运行到u***plug(带rocku***驱动程序)模式,该模式对下载大小没有大小限制。

'ul' 命令: 首先运行'db' 命令,然后下载idbloader到eMMC的0x40地址处;

'uf' 命令: 首先运行'db' 命令,然后将update.img中的image下载到eMMC中;

访问DRAM所需的所有其他命令都应在使用“db”命令之后才能使用。

2.2 U***plug 模式

u***plug是一个固件,用于使用rkdeveloptool db 命令进行USB下载,内置rocku***驱动程序,DRAM已经在此模式下初始化。

2.3 Miniloader Rocku*** 模式

Rockchip早期image(带U-Boot 2014.10)使用miniloader作为默认USB固件升级路径, 使用以下选项进入此模式:

- 上电之时按下'recovery' 或者'volumn +'按键。

-  找不到下一阶段固件。

  例如, erase U-Boot中可引导的数据:

mmc erase 0x4000 0x2000

-  在内核中执行"reboot loader" 命令。

注意: 在这个miniloader rocku***模式, rkdeveloptool的偏移量不是实际物理地址,
物理偏移量0~0x2000不能通过wl命令写入;

wl 命令的物理偏移量是偏移增加0x2000, 例如:

执行"rkdeveloptool wl 0x2000 uboot.img"命令会把uboot.img烧写到emmc的0x4000地址处。

2.4 U-Boot Rocku*** 模式

进入这种模式:

- 上电之时按下'recovery' 或者'volumn +'按键。

- 在内核执行"reboot loader"命令。

- 从U-Boot shell执行以下命令:

rocku*** 0 mmc 0

3 rocku***的USB VID/PID

Rockchip供应商ID为0x2207, 对于产品ID,不同的SoCs是不同的。

Rocku***产品ID:

RK3288: 0x320a
RK3328: 0x320c
RK3399: 0x330c

在有Rocku***设备连接到Linux PC机下,使用 lsu*** 命令进行查看。

4 固件下载

rkdeveloptool 和 upgrade_tool 是对Rockchip SoCs进行固件升级的工具,该SoCs通过USB使用Rocku***协议。

更多回帖

发帖
×
20
完善资料,
赚取积分