Linux 内核 eMMC 驱动移植

本文介绍了如何在STM32MP1芯片上移植Linux内核的eMMC驱动。首先,根据原理图确定sdmmc2总线的管脚配置,接着在设备树中添加相应的节点信息,参考其他设备树文件完成详细配置。然后,导入交叉编译工具链,修改设备树配置文件,配置内核选项,编译内核和设备树。最后,通过tftp引导加载新内核,成功启动并挂载eMMC上的文件系统。
摘要由CSDN通过智能技术生成
  1. 实验原理

参考原理图可知 eMMC 使用的是 sdmmc2 总线,当前所使用的设备树文件中没有sdmmc2 的支持,所以需要增加相关内容才能正常驱动 eMMC。

由于在使 STM32MP1 芯片很多管脚为多功能复用管脚,且很多管脚具备同样的功能,所以移植eMMC时需要确认硬件设计是使用的是那些管脚,根据原理图确认后管脚对应关系为:

1) eMMC 设备树节点

参考文档:

Documentation/devicetree/bindings/mmc/mmc-controller.yaml
Documentation/devicetree/bindings/mmc/mmci.txt

内核中 ST 对 STM32MP15x 系列芯片的设备树资源了做了定义,可参见:

arch/arm/boot/dts/stm32mp151.dtsi

stm32mp151 中 sdmmc2 定义如下:

sdmmc2: sdmmc@58007000 {
    compatible = "arm,pl18x", "arm,primecell";
    arm,primecell-periphid = <0x00253180>;
    reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
    interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
    interrupt-names = "cmd_irq";
    cloc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐的记事本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值