linux 系统移植(第十五期)---Linux 内核移植(4)-- 修改 EMMC 驱动--- Ubuntu20.04

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

[一、使能 8 线 EMMC 驱动](#一、使能 8 线 EMMC 驱动)

[二、关闭 EMMC 1.8V 供电选项](#二、关闭 EMMC 1.8V 供电选项)

总结


前言

上两期我们把主频设置好了,接下来我们得修改一下 EMMC 驱动,因为Linux 内核驱动里EMMC 默认是 4 线模式的,而我们用的I.MX6U-ALPHA 开发板是8线模式,所以得修改一下驱动。


一、使能 8 线 EMMC 驱动

I.MX6U-ALPHA 开发板C 采用的是 8位数据线,原理图如下图所示:

4 线模式肯定没有 8 线模式的速度快,所以本节我们将 EMMC 的驱动修改为 8 线模式。修改方法很简单,直接修改设备树即可,打开文件 imx6ull-alientek-emmc.dts,找到如下所示内容:

复制代码
&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2>;
	non-removable;
	status = "okay";
};

改成下列代码:

复制代码
&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2_8bit>;
	pinctrl-1 = <&pinctrl_usdhc2_8bit_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_8bit_200mhz>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

二、关闭 EMMC 1.8V 供电选项

从原理图中可以看出,此时 EMMC 工作电压是 3.3V 的,因此我们要在上一节提到的代码中的 usdhc2 设备树节点中添加"no-1-8-v"选项,也就是关闭 1.8V 这个功能选项。防止内核在运行的时候用 1.8V 去驱动 EMMC,导致 EMMC 驱动出现问题,修改后的 usdhc2 节点内容如下所示:

复制代码
&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2_8bit>;
	pinctrl-1 = <&pinctrl_usdhc2_8bit_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_8bit_200mhz>;
	bus-width = <8>;
	non-removable;
	no-1-8-v;
	status = "okay";
};

修改完成以后保存一下 imx6ull-alientek-emmc.dts,然后使用命令"make dtbs"重新编译一

下设备树,编译完成以后使用新的设备树重启 Linux 系统即可。


总结

这一期我们主要把EMMC驱动修改了一下,改成了8线模式,适配我们自己使用的开发板。

相关推荐
BI专家之路1 小时前
安装linux/hadoop/jdk/hive
linux·hive·hadoop
GeW14 小时前
超详细!RHCE10版通用备考策略,内含评分细则解读
linux
用户0413284651314 小时前
Linux 服务开机自启动怎么配置?systemctl enable 原理详解
linux
草莓熊Lotso1 天前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
张文君1 天前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
AOI小白新手上路1 天前
江科协51单片机 17-2 红外遥控电机调速实验调试总结
单片机·嵌入式硬件·51单片机
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
oshan20121 天前
零基础STM32入门教程--10-PWM 呼吸灯
stm32·单片机·嵌入式硬件
记帖1 天前
STM32C5A3R开发(7)----ADC电压采集
嵌入式硬件·adc·dac·stm32cubeide·stm32c5·stm32cubemx2·stm32c5a3rgt6