(ROC-RK3568-PC) 裸机12_Loader 分析整理

loader.bin 包含 一个TPL文件 和 两个 SPL 文件。
通过 "./RKLoaderTools/boot_merger   RKLoader.ini" 命令行生成
RKLoader.ini 中需要指定 tpl.bin usb.bin spl.bin三个bin文件的路径

从官方的开源uboot项目(u-boot-next-dev)来看:

TPL 默认是官方rkbin中的 rk3568_ddr_1560MHz_v1.08.bin

SPL 默认是官方rkbin中的 rk356x_usbplug_v1.08.bin + 编译出来的 ./spl/u-boot-spl.bin

当TPL运行完退回 bootrom 后, bootrom 会加载哪一个SPL 由TPL退出时的返回值决定。
(哪一个SPL指:usbplug.bin 或者 ./spl/u-boot-spl.bin)
官方的TPL(rk3568_ddr_1560MHz_v1.08.bin) 中,会根据启动设备决定该返回值:

如果启动设备是 eMMC (loader from emmc ) 会返回 0 给 bootrom, 让它加载 spl.bin
如果启动设备是 usbDnl(loader from usb dnl) 会返回 1 给 bootrom,让它加载 usb.bin

也就是,

如果想通过电脑端软件usb下载运行你的 loader.bin,应该在制作时把spl.bin放到usb路径处
而如果想让板子从  emmc 加载运行你的 loader.bin,应该在制作时把spl.bin放到spl 路径处

明显的, 在测试时,使用usb下载运行 loader.bin 的方式要方便得多。
​​但不好的是, 因为占用了usb路径,bootrom 将无法为电脑端软件提供高级烧写功能。

两种运行方式的操作步骤:
一). 电脑端软件usb下载运行 loader.bin
a. 设备启动到maskrom模式
b. RKDevTool_Release_v2.84 切换到第三页("高级功能"页)
c. 选把 loader.bin ,再点击下载按钮即可。

二). 烧写到emmc再重启运行loader.bin
a. 设备启动到maskrom模式
b. RKDevTool_Release_v2.84 切换到第一页("下载镜像"页)
c. 把 loader.bin 烧到存储地址0x00000000 ,烧完重启即可。
d. 如果你的 rk3568 设备除了 emmc 还是 nor flash 存储,那要先切换存储。

切换存储的操作步骤:
    RKDevTool 切换到 "高级功能" 页, 在此页面下载 MiniLoaderAll.bin 到内存运行,
    下载完不需要重启,->
    点击此页面的 "读取存储列表" ->
    在右边列表中选择 Emmc,->
    再点击 "切换存储",->
    就可以切换要烧写的目标存储为eMMC。

MiniLoaderAll.bin 可以从官网下载, 也可以根据前面的介绍自己制作一个。
(制作时 ini 中 usbplug.bin 放对位置即可)。

最后,因为 tpl 的运行内存只有64kb的iRam,  并且不会写初始化rk3568的DDR,
只能写SPL代码了。

后来发现有文档的:Rockchip RK3568 TRM Part2 V1.1-20210301.pdf
但还是不会写DDR初始化的代码,空了读这个文档,结合 rk3399 的代码来试试。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值