当前位置: 首页 > news >正文

RK3568 SD卡调试记录

文章目录

  • 1、环境介绍
  • 2、概念理清
  • 3、原理图查看
  • 4、dts配置
  • 5、验证
  • 6、SD卡启动
    • 6.1、启动优先级
    • 6.2、启动流程
      • 6.2.1、Maskrom(Boot ROM)启动优先级
      • 6.2.2、Pre-loader(SPL)启动优先级
    • 6.3、如何从sd卡启动?
      • 6.3.1、制作sd启动卡
      • 6.3.2、sd卡启动
  • 7、总结

1、环境介绍

硬件:飞凌ok3568-c开发板

软件:原厂rk356x sdk

2、概念理清

SD卡就是标准SD卡。而TF卡早期叫TF卡,后被SD标准化组织命名为Micro SD。SD卡和Micro SD卡支持SDIO协议和SPI协议。

RK3568有三个SDIO 3.0接口,用于连接外部SDIO卡设备,而SD卡或Micro SD卡就可以作为外部卡设备与SDIO控制器相连。

3、原理图查看

ok3568开发板中,tf卡接到了rk3568的SDMMC0接口,也就是SDIO0控制器。

4、dts配置

&sdmmc0 {
	max-frequency = <150000000>;		/* 配置SDMMC0的最大工作频率为150MHz */
	supports-sd;										/* 表明该SDMMC控制器支持SD卡 */
	bus-width = <4>;								/* 设置数据总线宽度为4位 */
	cap-mmc-highspeed;							/* 表明该SDMMC控制器支持MMC卡的高速模式 */
	cap-sd-highspeed;								/* 表明该SDMMC控制器支持SD卡的高速模式 */
	disable-wp;											/* 禁用写保护(Write Protect)功能,这意味着系统可以忽略SD卡上的写保护开关 */
	sd-uhs-sdr104;									/* 表明该SDMMC控制器支持SD UHS-SDR104模式(Ultra High Speed - SDR104,一种高速数据传输模式) */
	vmmc-supply = <&vcc3v3_sd>;
	vqmmc-supply = <&vccio_sd>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
	status = "okay";
};

5、验证

请使用MBR分区表,fat32格式文件系统的tf卡验证。

登入系统后,查看未插入tf卡的挂载情况:

插入tf卡后,打印信息和挂载情况如下:

6、SD卡启动

6.1、启动优先级

rk文档《Rockchip_Developer_Guide_UBoot_Nextdev_CN.pdf》有描述如下:

6.2、启动流程

第一阶段:Boot ROM(Maskrom)从存储设备加载Pre-loader(SPL),其中emmc优先级大于sd卡。

第二阶段:Pre-loader(SPL)会从存储设备加载uboot,其中sd卡优先级大于emmc。

6.2.1、Maskrom(Boot ROM)启动优先级

关于Maskrom的启动优先级可以通过硬件来配置,如下图:

但似乎所有的配置中,emmc的优先级一直大于sd卡。

6.2.2、Pre-loader(SPL)启动优先级

SPL启动优先级可以通过设备树rkxxx-u-boot.dtsi来指定,但目前没体会到其作用:

6.3、如何从sd卡启动?

6.3.1、制作sd启动卡

6.3.2、sd卡启动

提前把emmc里的镜像擦除掉,系统断电,插入sd启动卡,系统上电,最后就可以从sd卡启动了。这是因为maskroom阶段中,在emmc找不到preloader,从而去sd卡里找。

那如何在emmc有镜像的前提下,还能从sd卡启动?

看很多博客说可以在uboot设备树rkxxxx-u-boot-dtsi里指定spl的启动优先级,但不知道为什么没有效果。

7、总结

参考文章:

RK3568开发笔记-sdmmc3.0 error -110 whilst initialising SD card问题解决-CSDN博客

https://zhuanlan.zhihu.com/p/654132684

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序_zhangsz的技术博客_51CTO博客

相关文章:

  • listen EACCES: permission denied 0.0.0.0:811
  • AI Agent开发框架分析:前端视角
  • C++ Qt开发成长之路,从入门到企业级实战项目,保姆级学习路线
  • 机器学习——逻辑回归实战2——预测拖欠款
  • 春风有信 温暖传情---平安养老险陕西分公司开展妇女节特别活动
  • Spring上下文工具类
  • 语文-文章题材
  • 02_LangChain整合DeepSeek提示词工程应用实践
  • 深入理解pytest框架中的conftest.py:使用与作用原理
  • 探索AI对冲基金:开源自动化交易系统的革新之路
  • 配置Hadoop集群
  • Markdown编辑器使用指南(适用于Typora)
  • 牛客周赛 Round 84——小红的陡峭值(四)
  • FPGA入门教程
  • Gini系数的应用 - 指标波动贡献分析
  • 【Matlab仿真】如何解决三相交流信号源输出波形失真问题?
  • 多模态推理模型相关开源工作
  • 【TMS570LC4357】之工程创建
  • 【Leetcode 每日一题】2269. 找到一个数字的 K 美丽值
  • 通义万相2.1技术深度解析
  • 41年轮回,从洛杉矶奔向洛杉矶,李宁故地重游再出发
  • 哈马斯官员:进一步停火谈判毫无意义
  • 这个五一假期,外贸拓内销好货和识货人在上海“双向奔赴”
  • 抗战回望18︱《广西学生军》:“广西的政治基础是青年”
  • 在海拔3980米驻守:“全国先进工作者”刘鹏与洛戈梁子警务站的9年
  • 2类药物别乱吃,严重可致肝肾衰竭!多人已中招