因为使用的WiFi模块是mt7612u,正点原子核心板目前提供的4.1内核没有此模块驱动,便移植更新的5.4内核
1 下载内核源码
NXP官方linux仓库地址为: https://github.com/Freescale/linux-fslc/tree/5.4-2.1.x-imx。
2 设置临时环境变量
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
3 清理构建
make distclean
4 加载默认配置
make imx_v7_defconfig
5 先编译一遍
make -j8
针对正点原子核心板,开始移植
6 修改网络驱动
修改设备树文件arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
屏蔽 GPIO5_IO07 GPIO5_IO08 复用功能
pinctrl_spi4: spi4grp {
fsl,pins = <
MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
/* MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1 */
/* MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000 */
>;
};
屏蔽 spi4中 这两个引脚功能
spi4 {
compatible = "spi-gpio";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi4>;
status = "okay";
/* pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; */
gpio-sck = <&gpio5 11 0>;
gpio-mosi = <&gpio5 10 0>;
/* cs-gpios = <&gpio5 7 0>; */
num-chipselects = <1>;
#address-cells = <1>;
#size-cells = <0>;
将复位引脚加入到 pinctrl_enet1 和 pinctrl_enet2 节点
pinctrl_enet1: enet1grp {
fsl,pins = <
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b009
MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0
>;
};
pinctrl_enet2: enet2grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO

本文介绍如何从4.1内核升级到5.4内核,并为正点原子核心板移植mt7612u WiFi模块驱动。内容包括下载内核源码、配置环境变量、修改设备树文件以适配网络驱动等步骤。
最低0.47元/天 解锁文章
2266

被折叠的 条评论
为什么被折叠?



