Firefly开源社区

标题: 关于SPL开源方案的疑问 [打印本页]

作者: 腺嘌呤    时间: 2021-6-30 11:15
标题: 关于SPL开源方案的疑问
仔细阅读了NAND FLASH官方文档
《Rockchip_Developer_Guide_Linux_Nand_Flash_Open_Source_Solution_CN.pdf》
文档中描述“Rockchip SDK默认采用闭源的miniloader 加载 trust 和 u-boot,所有存储设备(eMMc NAND/NOR Flash)都以block接口访问,对于想通过MTD 接口访问NAND / NOR Flash的开发者,Rockchip 提供了开源的SPL来加载trust和u-boot,并且在 u-boot中通过MTD接口访问NAND/NOR Fash”。
我理解大概意思是可以通过开源SPL替代闭源miniloader,但是通过研究编译脚本发现,miniloader的生成依赖于RV1126MINIALL.ini文件,通过boot_merger工具拼接生成,所需要拼接的东西如下:
Path1=bin/rv11/rv1126_usbplug_v1.17.bin
FlashData=bin/rv11/rv1126_ddr_924MHz_v1.05.bin
FlashBoot=bin/rv11/rv1126_spl_v1.06.bin
切换开源SPL方案后脚本可以自动将最后一个FlashBoot替换成开源的
FlashBoot=./tmp/u-boot-spl.bin
但是另外两个文件并没有找到开源方案
Path1=bin/rv11/rv1126_usbplug_v1.17.bin
FlashData=bin/rv11/rv1126_ddr_924MHz_v1.05.bin
所以瑞芯微这个开源方案也只是部分开源吗?上述两个所需文件是否也能够开源?或者说有什么方式能够全部开源MiniLoader吗?
作者: 腺嘌呤    时间: 2021-6-30 11:17
[CHIP_NAME]
NAME=RV1126
[VERSION]
MAJOR=1
MINOR=5
[CODE471_OPTION]
NUM=1
Path1=bin/rv11/rv1126_ddr_924MHz_v1.05.bin
Sleep=1
[CODE472_OPTION]
NUM=1
Path1=bin/rv11/rv1126_usbplug_v1.17.bin
[LOADER_OPTION]
NUM=2
LOADER1=FlashData
LOADER2=FlashBoot
FlashData=bin/rv11/rv1126_ddr_924MHz_v1.05.bin
FlashBoot=./tmp/u-boot-spl.bin
[OUTPUT]
PATH=rv1126_spl_loader_v1.05.106.bin


请问
bin/rv11/rv1126_ddr_924MHz_v1.05.bin
bin/rv11/rv1126_usbplug_v1.17.bin
bin/rv11/rv1126_spl_v1.06.bin
都是做什么用的,没有找到官方的说明文档。
作者: 板蓝根    时间: 2021-7-1 09:16
腺嘌呤 发表于 2021-6-30 11:17
[CHIP_NAME]
NAME=RV1126
[VERSION]

Rokchicp 没有全开源的,不知道用主线的话可不可以实现。
请问你是出于什么原因需要 ddr 初始化阶段全开源代码呢?
作者: 腺嘌呤    时间: 2021-7-1 10:51
板蓝根 发表于 2021-7-1 09:16
Rokchicp 没有全开源的,不知道用主线的话可不可以实现。
请问你是出于什么原因需要 ddr 初始化阶段全开 ...

现在预研准备以后商业用途,所以希望全部开源。
作者: wershner    时间: 2022-1-7 22:29
腺嘌呤 发表于 2021-7-1 10:51
现在预研准备以后商业用途,所以希望全部开源。

你好,你找到了DDR初始化的源码了吗?可以分享给我吗?感谢
作者: wershner    时间: 2022-1-7 22:33
板蓝根 发表于 2021-7-1 09:16
Rokchicp 没有全开源的,不知道用主线的话可不可以实现。
请问你是出于什么原因需要 ddr 初始化阶段全开 ...

主线是什么意思呀?可以讲讲吗?有啥方案可以实现DDR初始化呢?
作者: sprhawk    时间: 2022-8-15 14:48
腺嘌呤 发表于 2021-7-1 10:51
现在预研准备以后商业用途,所以希望全部开源。

对于 RK3399, u-boot 的部分是有全开源的版本的,可以从头引导(包括 DDR 初始化),但是我采购的 Rockpi 4B 的版本,大概是因为更换了 DDR4 内存的频率,导致原始的 u-boot 的 spl 不能正确初始化 DDR4。
理论上,DDR4 的部分可以从官方的 ddr 的二进制包中抽出来特定的初始化数据,不过之前尝试并未成功。为了尽快实现产品功能,还是采用了官方的 loader 来加载 u-boot 和 tee 了。因为 DDR 初始化的参数跟 SoC 关系太过紧密,想在没有 原厂支持的情况下来实现,挺有难度(当然,原厂很大可能上不会去积极支持全开源的方案的。

RV11系列的开放程度似乎不如 RK3399 。

PS: 你想用全开源的方案来实现 RV,我猜是想做个开源的开发板?像树莓派那样?RV 的 NPU 的驱动和 Security System 的部分都是封闭的,你也那不到开源的版本




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1