U-Boot 之十 详解 MMC 子系统、命令、初始化流程

  前段时间,在博文 U-Boot 之三 移植过程详解、 STM32F769I-EVAL 开发板适配 中处理了 SD 卡不能正常识别的问题,现在 SD 卡可以正常读取,今天就学习一下 SD 卡相关的命令及初始化流程。目前网上绝大多数都是针对旧版 U-Boot 的说明,我这里使用的是 U-Boot-v2022.10 这个版本。

架构

  与 Linux kernel 一样,U-Boot 也是使用 MMC subsystem 统一管理 eMMC、SD 等存储设备,这些设备统称为 MMC 设备。要启用 MMC 子系统,必须配置如下所示的配置项:

  • CONFIG_MMC:全局开关
  • CONFIG_DM_MMC:MMC 的 DM 驱动,从源码来看,MMC 驱动中还支持非 DM 驱动,但是我没有用过。我这里使用的 U-Boot 中的 MMC 驱动使用了 2014 年 4 月引入的 Driver Model(DM) 这个驱动架构。
    U-Boot 之十 详解 MMC 子系统、命令、初始化流程_第1张图片
  • CONFIG_ARM_PL180_MMC:我这里的 STM32F769I-EVAL 开发板实际使用的 MMC 驱动 ./drivers/mmc/arm_pl180_mmci.c,根据自己的开发板来选择的。

你可能感兴趣的:(U-Boot,stm32,u-boot,mmc,SD,emmc)