介绍
Rocku*** 是 Rockchip 的供应商特定 USB 类,用于 Rockchip SoC 的固件下载。
进入 Rocku***
Rockchip SoC 有几个案例可以进入 Rocku***。
maskrom 模式,在芯片上找不到固件,目标运行 maskrom rocku*** 驱动程序; USB插头模式, miniLoader rocku*** 模式,目标运行 miniloader rocku*** 驱动。 uboot rocku*** 模式。
掩码模式
如果板上没有找到可启动的固件,SoC 会自动运行 Rocku*** 驱动程序,我们称之为 Bootrom 模式或 Maskrom 模式。
如果固件在板子的某个地方,为了进入这个模式,我们可以做一些事情来阻止 cpu 读取固件成功:
对于 SD 卡,拔下 SD 卡; 对于 eMMC,将 eMMC 时钟短接到 GND; 对于NAND,短接数据线或时钟线; 对于 SPI,将 spi 信号短接到 GND; 通过 U-Boot 和内核、WIP 中的“reboot bootrom”命令。 擦除 eMMC 或其他媒体设备中具有不可引导数据的可引导区域
在 Maskrom 模式下,DRAM 不可用,因此下载大小受内部存储器大小的限制。
此模式下可用的命令:
'db' 命令:系统初始化 DRAM 并运行到 u***plug(带有 rocku*** 驱动程序)模式,下载大小没有大小限制。 'ul' 命令:'db' 命令并将 idbloader 下载到 eMMC 0x40; 'uf' 命令:'db' 命令并将 update.img 中的图像下载到 eMMC 中;
所有其他需要访问 DRAM 的命令都应该在“db”命令之后。
USB插头模式
u***plug 是一个固件,用于通过 rkdeveloptool db 命令进行 USB 下载,内部带有 rocku*** 驱动程序,该模式下 DRAM 已经初始化。
Miniloader Rocku*** 模式
Rockchip 旧版镜像(使用 U-Boot 2014.10)使用 miniloader 作为默认 USB 固件升级路径,进入此模式时:
- 开机时按“恢复”或“音量+”键; - 没有找到下一阶段固件。
例如,擦除 U-Boot 中的可引导数据:
- 在内核中运行“reboot loader”命令。
注意:在这个 miniloader rocku*** 中,rkdeveloptool 的偏移量不是物理地址,
物理偏移 0~0x2000 无法通过 wl 命令写入;
wl命令中偏移量的物理地址是偏移 量加上 0x2000,例如:
“rkdeveloptool wl 0x2000 uboot.img”会将uboot.img写入emmc 0x4000地址。
U-Boot Rocku*** 模式
进入此模式:
- 开机时按“恢复”或“音量+”键; - 在内核中运行“reboot loader”命令; - 在 U-Boot shell 中以 cmd 启动
Rocku*** 的 USB VID/PID
Rockchip Vendor ID为0x2207,不同SoC的产品ID不同。
Rocku*** 产品编号:
RK3288: 0x320a RK3328: 0x320c RK3399: 0x330c
请在 Linux PC 中使用lsu***命令检查是否有 Rocku*** 设备连接。
固件下载
rkdeveloptool 和upgrade_tool是通过 USB 为使用 Rocku*** 协议的 Rockchip SoC 进行固件升级的工具。
请按照从 eMMC 启动的步骤了解如何使用该工具。
|