Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

[技术讨论] RK3566如何制作并启动SD卡中的preloader

32

积分

0

威望

0

贡献

技术小白

积分
32

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

发表于 2021-10-19 21:27:11      浏览:11489 | 回复:14        打印      只看该作者   [复制链接] 楼主
各位前辈晚上好!阅读过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这个型号。请问下有途径来实现吗?
回复

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10851

突出贡献

发表于 2021-10-22 19:17:11        只看该作者  沙发
不清楚用哪个系统,可以用制卡工具SD_Firmware_Tool制作sd启动卡,使用sd启动卡把高优先级的nor flash和emmc擦除
回复

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2021-10-23 10:21:39        只看该作者  板凳
zyk 发表于 2021-10-22 19:17
不清楚用哪个系统,可以用制卡工具SD_Firmware_Tool制作sd启动卡,使用sd启动卡把高优先级的nor flash和emm ...

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

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10851

突出贡献

发表于 2021-10-23 23:18:49        只看该作者  地板
本帖最后由 zyk 于 2021-10-23 23:20 编辑

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

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2021-10-24 16:53:03        只看该作者  5#
zyk 发表于 2021-10-23 23:18
可以通过AndroidTool烧写工具把nor flash、eMMC存储器擦除,也就是maskrom,插上sd启动卡后重启系统从sd卡 ...

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

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2021-11-7 20:48:13        只看该作者  6#
本帖最后由 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的相关日志,这说明这部分代码还是没有被擦除。我在下面附上串口的日志:
  1. DDR Version V1.09 20210630
  2. ln
  3. ddrconfig:7
  4. LPDDR4X, 324MHz
  5. BW=32 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
  6. tdqss: cs0 dqs0: -72ps, dqs1: -168ps, dqs2: -120ps, dqs3: -241ps,
  7. tdqss: cs1 dqs0: -72ps, dqs1: -168ps, dqs2: -120ps, dqs3: -241ps,

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

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

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

  23. change to: 1056MHz(final freq)
  24. PHY drv:clk:36,ca:36,DQ:29,odt:60
  25. vrefinner:16%, vrefout:22%
  26. dram drv:40,odt:80
  27. vref_ca:00000071
  28. clk skew:0x49
  29. cs 0:
  30. the read training result:
  31. DQS0:0x3f, DQS1:0x3c, DQS2:0x44, DQS3:0x38,
  32. min  :0x11 0x11 0x11 0x10  0x2  0x5  0x8  0x2 , 0x9  0x9  0x5  0x1  0xb  0x7  0xa  0x5 ,
  33.       0x15 0x14 0x10  0xf  0x7  0x1  0x3  0x6 , 0x9  0x7  0x4  0x1  0xb  0xa  0x7  0x9 ,
  34. mid  :0x2f 0x2f 0x30 0x2e 0x22 0x24 0x27 0x20 ,0x27 0x28 0x23 0x20 0x29 0x26 0x28 0x24 ,
  35.       0x34 0x33 0x2e 0x2c 0x26 0x20 0x23 0x25 ,0x28 0x26 0x23 0x20 0x29 0x29 0x26 0x28 ,
  36. max  :0x4d 0x4e 0x4f 0x4d 0x42 0x43 0x46 0x3f ,0x46 0x48 0x41 0x3f 0x47 0x46 0x46 0x44 ,
  37.       0x53 0x53 0x4d 0x4a 0x46 0x40 0x43 0x44 ,0x47 0x45 0x42 0x40 0x48 0x48 0x45 0x47 ,
  38. range:0x3c 0x3d 0x3e 0x3d 0x40 0x3e 0x3e 0x3d ,0x3d 0x3f 0x3c 0x3e 0x3c 0x3f 0x3c 0x3f ,
  39.       0x3e 0x3f 0x3d 0x3b 0x3f 0x3f 0x40 0x3e ,0x3e 0x3e 0x3e 0x3f 0x3d 0x3e 0x3e 0x3e ,
  40. the write training result:
  41. DQS0:0x40, DQS1:0x33, DQS2:0x39, DQS3:0x29,
  42. min  :0x62 0x66 0x65 0x64 0x56 0x59 0x5a 0x59 0x58 ,0x52 0x53 0x4d 0x4d 0x54 0x54 0x53 0x54 0x4f ,
  43.       0x5a 0x5a 0x54 0x55 0x4d 0x49 0x4a 0x50 0x4f ,0x4b 0x4a 0x46 0x44 0x4d 0x4c 0x47 0x4e 0x47 ,
  44. mid  :0x7e 0x82 0x81 0x7f 0x72 0x74 0x76 0x74 0x73 ,0x6f 0x6f 0x68 0x69 0x6f 0x6d 0x6e 0x6e 0x6a ,
  45.       0x76 0x76 0x6e 0x70 0x69 0x62 0x65 0x6a 0x6a ,0x67 0x63 0x60 0x5e 0x68 0x67 0x60 0x68 0x60 ,
  46. max  :0x9b 0x9e 0x9d 0x9a 0x8e 0x8f 0x93 0x8f 0x8f ,0x8c 0x8c 0x84 0x85 0x8b 0x86 0x8a 0x88 0x86 ,
  47.       0x93 0x92 0x89 0x8b 0x86 0x7c 0x80 0x85 0x85 ,0x83 0x7d 0x7b 0x79 0x83 0x82 0x79 0x83 0x79 ,
  48. range:0x39 0x38 0x38 0x36 0x38 0x36 0x39 0x36 0x37 ,0x3a 0x39 0x37 0x38 0x37 0x32 0x37 0x34 0x37 ,
  49.       0x39 0x38 0x35 0x36 0x39 0x33 0x36 0x35 0x36 ,0x38 0x33 0x35 0x35 0x36 0x36 0x32 0x35 0x32 ,
  50. cs 1:
  51. the read training result:
  52. DQS0:0x3f, DQS1:0x3d, DQS2:0x42, DQS3:0x36,
  53. min  :0x11  0xf 0x11  0xf  0x3  0x5  0x8  0x1 , 0xa  0xa  0x5  0x1  0xc  0x8  0xb  0x6 ,
  54.       0x14 0x14  0xe  0xd  0x5  0x1  0x2  0x4 , 0x9  0x7  0x4  0x1  0xc  0x9  0x7  0x7 ,
  55. mid  :0x2e 0x2d 0x2f 0x2d 0x21 0x23 0x26 0x20 ,0x28 0x29 0x23 0x20 0x2a 0x27 0x29 0x25 ,
  56.       0x32 0x32 0x2c 0x2a 0x25 0x20 0x21 0x22 ,0x27 0x25 0x22 0x1f 0x29 0x28 0x25 0x26 ,
  57. max  :0x4c 0x4c 0x4e 0x4b 0x40 0x42 0x45 0x3f ,0x47 0x48 0x41 0x40 0x48 0x47 0x47 0x45 ,
  58.       0x51 0x51 0x4a 0x48 0x45 0x3f 0x41 0x41 ,0x46 0x43 0x40 0x3e 0x47 0x47 0x44 0x46 ,
  59. range:0x3b 0x3d 0x3d 0x3c 0x3d 0x3d 0x3d 0x3e ,0x3d 0x3e 0x3c 0x3f 0x3c 0x3f 0x3c 0x3f ,
  60.       0x3d 0x3d 0x3c 0x3b 0x40 0x3e 0x3f 0x3d ,0x3d 0x3c 0x3c 0x3d 0x3b 0x3e 0x3d 0x3f ,
  61. the write training result:
  62. DQS0:0x40, DQS1:0x33, DQS2:0x39, DQS3:0x29,
  63. min  :0x62 0x66 0x66 0x65 0x56 0x57 0x5a 0x59 0x58 ,0x52 0x53 0x4e 0x4c 0x55 0x54 0x53 0x54 0x4f ,
  64.       0x5c 0x5c 0x56 0x56 0x50 0x4c 0x4c 0x52 0x52 ,0x4d 0x4c 0x48 0x46 0x4e 0x4d 0x49 0x50 0x48 ,
  65. mid  :0x7e 0x81 0x81 0x7f 0x72 0x73 0x76 0x73 0x73 ,0x6f 0x6f 0x68 0x67 0x70 0x6d 0x6d 0x6d 0x6a ,
  66.       0x78 0x78 0x71 0x72 0x6c 0x65 0x67 0x6c 0x6c ,0x6a 0x68 0x64 0x61 0x6a 0x69 0x63 0x6b 0x61 ,
  67. max  :0x9b 0x9d 0x9c 0x9a 0x8e 0x8f 0x92 0x8e 0x8e ,0x8c 0x8b 0x83 0x83 0x8c 0x86 0x88 0x86 0x86 ,
  68.       0x95 0x95 0x8c 0x8e 0x88 0x7f 0x82 0x87 0x87 ,0x87 0x84 0x80 0x7c 0x86 0x85 0x7e 0x86 0x7a ,
  69. range:0x39 0x37 0x36 0x35 0x38 0x38 0x38 0x35 0x36 ,0x3a 0x38 0x35 0x37 0x37 0x32 0x35 0x32 0x37 ,
  70.       0x39 0x39 0x36 0x38 0x38 0x33 0x36 0x35 0x35 ,0x3a 0x38 0x38 0x36 0x38 0x38 0x35 0x36 0x32 ,
  71. CA Training result:
  72. cs:0 min  :0x55 0x4a 0x4b 0x3c 0x4a 0x3c 0x4a ,0x50 0x42 0x46 0x38 0x46 0x39 0x4a ,
  73. cs:0 mid  :0x8d 0x8f 0x82 0x81 0x82 0x81 0x75 ,0x89 0x87 0x7f 0x7e 0x7f 0x7d 0x75 ,
  74. cs:0 max  :0xc6 0xd4 0xba 0xc7 0xba 0xc7 0xa0 ,0xc2 0xcc 0xb9 0xc5 0xb8 0xc2 0xa0 ,
  75. cs:0 range:0x71 0x8a 0x6f 0x8b 0x70 0x8b 0x56 ,0x72 0x8a 0x73 0x8d 0x72 0x89 0x56 ,
  76. cs:1 min  :0x50 0x4b 0x46 0x3f 0x46 0x3f 0x47 ,0x4d 0x46 0x43 0x3e 0x45 0x3b 0x48 ,
  77. cs:1 mid  :0x8c 0x8d 0x82 0x81 0x82 0x80 0x73 ,0x88 0x88 0x80 0x7e 0x80 0x7d 0x74 ,
  78. cs:1 max  :0xc9 0xcf 0xbf 0xc3 0xbe 0xc1 0xa0 ,0xc4 0xca 0xbd 0xbf 0xbc 0xbf 0xa0 ,
  79. cs:1 range:0x79 0x84 0x79 0x84 0x78 0x82 0x59 ,0x77 0x84 0x7a 0x81 0x77 0x84 0x58 ,
  80. out
  81. U-Boot SPL board init
  82. U-Boot SPL 2017.09-ga1f6fc00a0-210413 #ldq (Apr 13 2021 - 11:35:00)
  83. unknown raw ID phN
  84. unrecognized JEDEC id bytes: 00, 00, 00
  85. Trying to boot from MMC2
  86. MMC error: The cmd index is 1, ret is -110
  87. Card did not respond to voltage select!
  88. mmc_init: -95, time 10
  89. spl: mmc init failed with error: -95
  90. Trying to boot from MMC1
  91. No bootable slots found, use lastboot.
  92. Not fit magic
  93. Trying fit image at 0x5000 sector
  94. Not fit magic
  95. No bootable slots found, use lastboot.
  96. SPL: failed to boot from all boot devices
  97. ### ERROR ### Please RESET the board ###
  98. # Reset the board to bootrom #
复制代码


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

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


TRM中给的顺序是:


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

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10851

突出贡献

发表于 2021-11-8 08:56:59        只看该作者  7#
1.把eMMC和Nor Flash擦除后确保是maskrom了,硬件断电重启试一下
2.根据流程图,高优先级的存储媒介都擦空了,从SD卡启动
回复

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2021-11-9 18:00:20        只看该作者  8#
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的信息。

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

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10851

突出贡献

发表于 2021-11-10 08:51:38        只看该作者  9#
擦除后,硬件断开电源重启也还是有吗
回复

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2021-11-10 15:39:01        只看该作者  10#
本帖最后由 13210800751 于 2021-11-10 15:40 编辑
zyk 发表于 2021-11-10 08:51
擦除后,硬件断开电源重启也还是有吗

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

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表