RK3566如何制作并启动SD卡中的preloader

各位前辈晚上好!阅读过RK3566的UBOOT文档和RK官方wiki中的Boot option文档后关于ROC-RK3566的板子有以下问题:
1、目前我想让Bootrom直接引导存放在SD中的preloader(SPL+TPL),然后引导SD中的UBOOT,想问下各位是否可行?目前引导的Uboot-SPL我不太清楚是存储在哪里的?EMMC or Nor flash?我猜测是EMMC。
2、如果可行,通过看RK官方的Boot option文档我了解到:要实现这个过程首先要将SD卡首先烧录一个叫“idblock.img”的镜像,因为我尝试按照使用u-boot/tools下的mkimage来生成,它报错说仅支持rkxxx,rvxxx等CPU,并无RK3566这个型号。请问下有途径来实现吗?

不清楚用哪个系统,可以用制卡工具SD_Firmware_Tool制作sd启动卡,使用sd启动卡把高优先级的nor flash和emmc擦除

zyk 发表于 2021-10-22 19:17
不清楚用哪个系统,可以用制卡工具SD_Firmware_Tool制作sd启动卡,使用sd启动卡把高优先级的nor flash和emm …

制作SD启动卡并启动时候,启动的UBOOT-SPL是SD卡中的吗?或者在哪一步进行擦除?UBOOT?
我用的就是Linux系统,系统是什么我目前还不关心,因为只到UBOOT这一级就可以,我需要保证preloader和uboot都是在SD卡中的。

本帖最后由 zyk 于 2021-10-23 23:20 编辑

可以通过AndroidTool烧写工具把nor flash、eMMC存储器擦除,也就是maskrom,插上sd启动卡后重启系统从sd卡启动,uboot什么的都是sd卡里面的

zyk 发表于 2021-10-23 23:18
可以通过AndroidTool烧写工具把nor flash、eMMC存储器擦除,也就是maskrom,插上sd启动卡后重启系统从sd卡 …

好的,后续我试一下,结果会发在帖子中。
谢谢你,zyk!

本帖最后由 13210800751 于 2021-11-7 20:55 编辑

zyk 发表于 2021-10-23 23:18
可以通过AndroidTool烧写工具把nor flash、eMMC存储器擦除,也就是maskrom,插上sd启动卡后重启系统从sd卡 …

zyk,你好。我试过了你的方法,但是还是有问题。
是这样,我按照你的方法擦除了EMMC和Nor flash,这一步是完成的了。但是我重启板子(未插SD卡)之后还是输出了DDR初始和Uboot-spl的相关日志,这说明这部分代码还是没有被擦除。我在下面附上串口的日志:

DDR Version V1.09 20210630
ln
ddrconfig:7
LPDDR4X, 324MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
tdqss: cs0 dqs0: -72ps, dqs1: -168ps, dqs2: -120ps, dqs3: -241ps,
tdqss: cs1 dqs0: -72ps, dqs1: -168ps, dqs2: -120ps, dqs3: -241ps,

change to: 324MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x66

change to: 528MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58

change to: 780MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58

change to: 1056MHz(final freq)
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:22%
dram drv:40,odt:80
vref_ca:00000071
clk skew:0x49
cs 0:
the read training result:
DQS0:0x3f, DQS1:0x3c, DQS2:0x44, DQS3:0x38,
min  :0x11 0x11 0x11 0x10  0x2  0x5  0x8  0x2 , 0x9  0x9  0x5  0x1  0xb  0x7  0xa  0x5 ,
      0x15 0x14 0x10  0xf  0x7  0x1  0x3  0x6 , 0x9  0x7  0x4  0x1  0xb  0xa  0x7  0x9 ,
mid  :0x2f 0x2f 0x30 0x2e 0x22 0x24 0x27 0x20 ,0x27 0x28 0x23 0x20 0x29 0x26 0x28 0x24 ,
      0x34 0x33 0x2e 0x2c 0x26 0x20 0x23 0x25 ,0x28 0x26 0x23 0x20 0x29 0x29 0x26 0x28 ,
max  :0x4d 0x4e 0x4f 0x4d 0x42 0x43 0x46 0x3f ,0x46 0x48 0x41 0x3f 0x47 0x46 0x46 0x44 ,
      0x53 0x53 0x4d 0x4a 0x46 0x40 0x43 0x44 ,0x47 0x45 0x42 0x40 0x48 0x48 0x45 0x47 ,
range:0x3c 0x3d 0x3e 0x3d 0x40 0x3e 0x3e 0x3d ,0x3d 0x3f 0x3c 0x3e 0x3c 0x3f 0x3c 0x3f ,
      0x3e 0x3f 0x3d 0x3b 0x3f 0x3f 0x40 0x3e ,0x3e 0x3e 0x3e 0x3f 0x3d 0x3e 0x3e 0x3e ,
the write training result:
DQS0:0x40, DQS1:0x33, DQS2:0x39, DQS3:0x29,
min  :0x62 0x66 0x65 0x64 0x56 0x59 0x5a 0x59 0x58 ,0x52 0x53 0x4d 0x4d 0x54 0x54 0x53 0x54 0x4f ,
      0x5a 0x5a 0x54 0x55 0x4d 0x49 0x4a 0x50 0x4f ,0x4b 0x4a 0x46 0x44 0x4d 0x4c 0x47 0x4e 0x47 ,
mid  :0x7e 0x82 0x81 0x7f 0x72 0x74 0x76 0x74 0x73 ,0x6f 0x6f 0x68 0x69 0x6f 0x6d 0x6e 0x6e 0x6a ,
      0x76 0x76 0x6e 0x70 0x69 0x62 0x65 0x6a 0x6a ,0x67 0x63 0x60 0x5e 0x68 0x67 0x60 0x68 0x60 ,
max  :0x9b 0x9e 0x9d 0x9a 0x8e 0x8f 0x93 0x8f 0x8f ,0x8c 0x8c 0x84 0x85 0x8b 0x86 0x8a 0x88 0x86 ,
      0x93 0x92 0x89 0x8b 0x86 0x7c 0x80 0x85 0x85 ,0x83 0x7d 0x7b 0x79 0x83 0x82 0x79 0x83 0x79 ,
range:0x39 0x38 0x38 0x36 0x38 0x36 0x39 0x36 0x37 ,0x3a 0x39 0x37 0x38 0x37 0x32 0x37 0x34 0x37 ,
      0x39 0x38 0x35 0x36 0x39 0x33 0x36 0x35 0x36 ,0x38 0x33 0x35 0x35 0x36 0x36 0x32 0x35 0x32 ,
cs 1:
the read training result:
DQS0:0x3f, DQS1:0x3d, DQS2:0x42, DQS3:0x36,
min  :0x11  0xf 0x11  0xf  0x3  0x5  0x8  0x1 , 0xa  0xa  0x5  0x1  0xc  0x8  0xb  0x6 ,
      0x14 0x14  0xe  0xd  0x5  0x1  0x2  0x4 , 0x9  0x7  0x4  0x1  0xc  0x9  0x7  0x7 ,
mid  :0x2e 0x2d 0x2f 0x2d 0x21 0x23 0x26 0x20 ,0x28 0x29 0x23 0x20 0x2a 0x27 0x29 0x25 ,
      0x32 0x32 0x2c 0x2a 0x25 0x20 0x21 0x22 ,0x27 0x25 0x22 0x1f 0x29 0x28 0x25 0x26 ,
max  :0x4c 0x4c 0x4e 0x4b 0x40 0x42 0x45 0x3f ,0x47 0x48 0x41 0x40 0x48 0x47 0x47 0x45 ,
      0x51 0x51 0x4a 0x48 0x45 0x3f 0x41 0x41 ,0x46 0x43 0x40 0x3e 0x47 0x47 0x44 0x46 ,
range:0x3b 0x3d 0x3d 0x3c 0x3d 0x3d 0x3d 0x3e ,0x3d 0x3e 0x3c 0x3f 0x3c 0x3f 0x3c 0x3f ,
      0x3d 0x3d 0x3c 0x3b 0x40 0x3e 0x3f 0x3d ,0x3d 0x3c 0x3c 0x3d 0x3b 0x3e 0x3d 0x3f ,
the write training result:
DQS0:0x40, DQS1:0x33, DQS2:0x39, DQS3:0x29,
min  :0x62 0x66 0x66 0x65 0x56 0x57 0x5a 0x59 0x58 ,0x52 0x53 0x4e 0x4c 0x55 0x54 0x53 0x54 0x4f ,
      0x5c 0x5c 0x56 0x56 0x50 0x4c 0x4c 0x52 0x52 ,0x4d 0x4c 0x48 0x46 0x4e 0x4d 0x49 0x50 0x48 ,
mid  :0x7e 0x81 0x81 0x7f 0x72 0x73 0x76 0x73 0x73 ,0x6f 0x6f 0x68 0x67 0x70 0x6d 0x6d 0x6d 0x6a ,
      0x78 0x78 0x71 0x72 0x6c 0x65 0x67 0x6c 0x6c ,0x6a 0x68 0x64 0x61 0x6a 0x69 0x63 0x6b 0x61 ,
max  :0x9b 0x9d 0x9c 0x9a 0x8e 0x8f 0x92 0x8e 0x8e ,0x8c 0x8b 0x83 0x83 0x8c 0x86 0x88 0x86 0x86 ,
      0x95 0x95 0x8c 0x8e 0x88 0x7f 0x82 0x87 0x87 ,0x87 0x84 0x80 0x7c 0x86 0x85 0x7e 0x86 0x7a ,
range:0x39 0x37 0x36 0x35 0x38 0x38 0x38 0x35 0x36 ,0x3a 0x38 0x35 0x37 0x37 0x32 0x35 0x32 0x37 ,
      0x39 0x39 0x36 0x38 0x38 0x33 0x36 0x35 0x35 ,0x3a 0x38 0x38 0x36 0x38 0x38 0x35 0x36 0x32 ,
CA Training result:
cs:0 min  :0x55 0x4a 0x4b 0x3c 0x4a 0x3c 0x4a ,0x50 0x42 0x46 0x38 0x46 0x39 0x4a ,
cs:0 mid  :0x8d 0x8f 0x82 0x81 0x82 0x81 0x75 ,0x89 0x87 0x7f 0x7e 0x7f 0x7d 0x75 ,
cs:0 max  :0xc6 0xd4 0xba 0xc7 0xba 0xc7 0xa0 ,0xc2 0xcc 0xb9 0xc5 0xb8 0xc2 0xa0 ,
cs:0 range:0x71 0x8a 0x6f 0x8b 0x70 0x8b 0x56 ,0x72 0x8a 0x73 0x8d 0x72 0x89 0x56 ,
cs:1 min  :0x50 0x4b 0x46 0x3f 0x46 0x3f 0x47 ,0x4d 0x46 0x43 0x3e 0x45 0x3b 0x48 ,
cs:1 mid  :0x8c 0x8d 0x82 0x81 0x82 0x80 0x73 ,0x88 0x88 0x80 0x7e 0x80 0x7d 0x74 ,
cs:1 max  :0xc9 0xcf 0xbf 0xc3 0xbe 0xc1 0xa0 ,0xc4 0xca 0xbd 0xbf 0xbc 0xbf 0xa0 ,
cs:1 range:0x79 0x84 0x79 0x84 0x78 0x82 0x59 ,0x77 0x84 0x7a 0x81 0x77 0x84 0x58 ,
out
U-Boot SPL board init
U-Boot SPL 2017.09-ga1f6fc00a0-210413 #ldq (Apr 13 2021 - 11:35:00)
unknown raw ID phN
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC error: The cmd index is 1, ret is -110
Card did not respond to voltage select!
mmc_init: -95, time 10
spl: mmc init failed with error: -95
Trying to boot from MMC1
No bootable slots found, use lastboot.
Not fit magic
Trying fit image at 0x5000 sector
Not fit magic
No bootable slots found, use lastboot.
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
# Reset the board to bootrom #

所以现在我想知道如何让这两个程序位于SD上,而不是现在的情况。我其实也不知道现在他们是存在哪里的?

我从Rockchip_Developer_Guide_UBoot_Nextdev_CN.pdf文档中得知这样是可以实现的:

TRM中给的顺序是:

应该只要把前面Flash的给清除,就能正确启动SD卡中的吧?
谢谢!!

1.把eMMC和Nor Flash擦除后确保是maskrom了,硬件断电重启试一下
2.根据流程图,高优先级的存储媒介都擦空了,从SD卡启动

zyk 发表于 2021-11-8 08:56
1.把eMMC和Nor Flash擦除后确保是maskrom了,硬件断电重启试一下
2.根据流程图,高优先级的存储媒介都擦空 …

我这样做了,真的不行。
和您说下我的工作流程吧:
1、按住Maskrom键开机,RKDevTool工具能够显示进入Maskrom。
2、下载miniloader固件,显示存储设备的列表。
3、切换存储设备到EMMC,点击“擦除所有”。
4、等待3成功后切换设备到SPINorFlash,点击“擦除所有”
5、等待4成功后,重启设备,没插SD卡的情况下串口还是会打印DDR初始化和uboot-SPL的信息。

很奇怪,这些到底是存储在哪里的呢?

擦除后,硬件断开电源重启也还是有吗

本帖最后由 13210800751 于 2021-11-10 15:40 编辑

zyk 发表于 2021-11-10 08:51
擦除后,硬件断开电源重启也还是有吗

是的,还是有。因为这一块都是按照Wiki上的教程做的,所以我自己也没办法找到原因。
不知道您是否方便,手头是否有板子帮助我试一下这个流程能否正确完成任务。

本帖最后由 zyk 于 2021-11-10 17:23 编辑

我这边也有,关系不大,如果要确定是否从sd卡启动,可以对比两者的log判断一下是否从sd卡启动。如果觉得有影响可以试一下短接eMMC,应该就不会打印出来了

zyk 发表于 2021-11-10 17:18
我这边也有,关系不大,如果要确定是否从sd卡启动,可以对比两者的log判断一下是否从sd卡启动。如果觉得有 …

确实是这样,虽然每次都要按住MASKROM才能启动SD卡的,但是好歹找到一个方法了。
希望贵公司更新下wiki的描述,其中现在并没有短接EMMC的步骤。
再次感谢!!!!

您好 楼主问题解决了吗?

兄弟,你搞定了吗?我的硬件是rk3566,我也是用的rk社区的uboot,kernel,我的uboot似乎起来了,但是卡在uboot引导kernel这里,能跟你一起探索下吗