ST意法半导体
直播中

听风说梦

10年用户 965经验值
擅长:可编程逻辑 嵌入式技术 EMC/EMI设计
私信 关注
[问答]

STM32MP157AAB3板连接SDMMC1接口出错是什么问题呢?

我们正在启动我们的自定义 STM32MP157AAB3 板,我们在 linux 中遇到一些错误,因为它连接到 SDMMC1 接口。
以下是我们的设置:
  • 硬件
    • SDMMC1 连接到 uSD 连接器,PE9 用作卡检测
    • SDMMC2 连接到 4GB eMMC
    • SDMMC3 连接到自定义连接器(主要用于 WiFi 模块)
  • 软件
    • OpenSTLinux-2.1.0
    • 使用从 EVKs dts 派生的用户代码从 STM32CubeMX 工具开始创建的自定义设备树
    • tf-a和u-boot通过SDMMC1读取
    • 内核通过 tftp 加载
    • RFS 通过 NFS 挂载

当我们插入 uSD 卡时,内核会定期打印此错误:
[134.448880]mmci-pl18x 58005000.sdmmc:错误-110请求状态
但是该设备是可用的。
使用几个 uSD 卡(不同制造商的)我们看到一些在插入时被检测到并且卷被自动安装,一些被检测到(内核创建设备)但没有执行其他操作(尝试手动安装卷卡住工具),甚至没有检测到其他一些。在最后 2 种情况下,总线似乎被卡住了,因为在重新启动之前没有检测到其他 uSD(甚至是前者)。
所以我们在 SDMMC3 总线上进行了一些测试,手动将 uSD 连接器连接到自定义连接器的对应部分(长度不匹配且没有阻抗匹配,这可能是一种降级配置),dts 绑定是相同的,除了缺少卡检测. 将任何 uSD 卡连接到此总线会导致正确的检测和卷安装,没有总线卡住或错误打印。
对于 SDMMC1 总线,在插入 uSD 时删除 dts 中的卡检测信号会导致检测循环:
[39.036173]mmc0:地址为59b4的新高速SDHC卡
[39.052012]mmcblk0:mmc0:59b4 USDU1 14.9 GiB
[39.078961]mmcblk0:p1
[40.009720]mmc0:卡59b4已移除
[40.131304]mmc0:地址为59b4的新高速SDHC卡
[40.150951]mmcblk0:mmc0:59b4 USDU1 14.9 GiB
[40.161140]mmcblk0:p1
[40.532040]mmc0:卡59b4已移除
[40.631149]mmc0:地址为59b4的新高速SDHC卡
[40.648180]mmcblk0:mmc0:59b4 USDU1 14.9 GiB
[40.657286]mmcblk0:p1
[ 40.659641] debugfs:目录“mmcblk0”与父“块”已经存在!
[ 41.129170] FAT-fs (mmcblk0p1): 卷未正确卸载。某些数据可能已损坏。请运行 fsck。
[ 42.483563] FAT-fs (mmcblk0p1): 卷未正确卸载。某些数据可能已损坏。请运行 fsck。
[43.769061]mmc0:卡59b4已移除
[43.899232]mmc0:地址为59b4的新高速SDHC卡
[43.915101]mmcblk0:mmc0:59b4 USDU1 14.9 GiB
[43.925600]mmcblk0:p1
[ 44.000230] FAT-fs (mmcblk0p1): FAT 读取失败 (blocknr 584)
[44.270267]mmc0:卡59b4已移除
关于此行为是否存在任何已知问题?
这可能是硬件问题还是软件问题?


回帖(1)

姜薇

2023-1-4 17:09:53
因为你的板上没有上拉(我们的 DK2 上有),你是否在 DT sdmmc1_pins_mxsdmmc1_opendrain_pins_mx节点内的所有 SDMMC1 相关引脚上设置了上拉?

  • bias-pull-up;

举报

更多回帖

发帖
×
20
完善资料,
赚取积分