I.MX6ULL的MAC网络外设设备树实现说明二

一.  简介

前面一篇文章说明了 I.MX6ULL的MAC网络外设设备树编写时,必需写的属性与可选的属性信息,以及NXP 官方编写的IMX6ULL的MAC网络外设的设备节点信息,文章如下:

I.MX6ULL的MAC网络外设设备树实现说明一-CSDN博客

NXP 官方编写的IMX6ULL的MAC网络外设的设备节点还不完整,不能正常工作,还需要添加针对实际使用所要添加的信息。本文在 此基础上添加ALPHA开发板上有线网络的设备节点信息。

二. I.MX6ULL的MAC网络外设设备树实现说明二

这里在 NXP官方编写的MAC网络外设的设备节点的基础上,添加ALPHA开发板上有线网络的设备节点信息。例如,网络 所使用的引脚 pinctrl 节点信 息, 设置网络对应的 PHY 芯片接口为 MII还是RMII,复位IO等等信息。

1.追加的MAC网络外设的节点信息

打开内核源码(NXP官方提供),打开源码根目录下 arch/arm/boot/dts/imx6ull-14x14-evk.dts ,找到如下内容:
&fec1 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_enet1&pinctrl_enet1_reset>; phy-mode = "rmii";phy-handle = <&ethphy0>;phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;phy-reset-duration = <200>;status = "okay";
};&fec2 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_enet2&pinctrl_enet2_reset>;  phy-mode = "rmii";phy-handle = <&ethphy1>;phy-reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;phy-reset-duration = <200>;status = "okay";mdio {#address-cells = <1>;#size-cells = <0>;ethphy0: ethernet-phy@0 {compatible = "ethernet-phy-ieee802.3-c22";smsc,disable-energy-detect;reg = <0>;};ethphy1: ethernet-phy@1 {compatible = "ethernet-phy-ieee802.3-c22";smsc,disable-energy-detect;reg = <1>;};};
};

上面的( IMX6ULL的MAC网络外设的设备节点 )网络设备节点是作者在移植 Linux 内核的时候已经根据 ALPHA 开发板修改后的,并 不是 NXP 官方原版节点信息,所以会有一点出入。
说明如下:
1~10 行: ENET1 网口的节点属性。
3 4 行,设置 ENET1 所使用的引脚 pinctrl 节点信 息,
5 行设置网络对应的 PHY 芯片接口为 RMII ,这个要根据实际的硬件来设置。
6 行设 PHY 芯片的句柄为 ethphy0 MDIO 节点会设置 PHY 信息。其他的属性信息就很好理解了, 基本已经在上面讲解绑定文档的时候说过了。
12~36 行: ENET2 网口的节点属性,基本和 ENET1 网口一致。
区别就是多了第 22~35 行的 mdio 子节点,前面讲解绑定文档的时候说了, mido 子节点用于描述 MIDO 总线,在此子 节点内会包含 PHY 节点信息。这里一共有两个 PHY 子节点: ethphy0 ethphy1 ,分别对应 ENET1 ENET2 PHY 芯片。
比如,第 26 行的 “ ethphy0: ethernet-phy@0 ” 就是 ENET1 PHY 节点名字,“ @ ” 后面的 0 就是此 PHY 芯片的芯片地址, reg 属性也是描述 PHY 芯片地址的, 这点和 IIC 设备节点很像。

2.设备树中网络相关引脚的描述

最后就是设备树中网络相关引脚的描述,打开 arch/arm/boot/dts/imx6ull-14x14-evk.dts ,找到如下所示内容:
		pinctrl_enet1: enet1grp {fsl,pins = <MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x1b0b0MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x1b0b0MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0b0MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0b0MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x1b0b0MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0b0MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0b0MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b009>;};pinctrl_enet2: enet2grp {fsl,pins = <MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0  MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b009 >;};

上面的网络相关引脚的描述编写在 &iomuxc下。

注意第 16 17 行,这两行设置 GPIO1_IO07 GPIO1_IO06 ENET2 MDC MDIO
大家可能会疑问,为什么不将其设置为 ENET1 MDC MDIO 呢?
经过笔者实测,在开启两 个网口的情况下,将 GPIO1_IO07 GPIO1_IO06 设置为 ENET1 MDC MDIO 会对导致网 络工作不正常。
前面说了,一个 MDIO 接口可以管理 32 PHY ,所以设置 ENET2 MDC MDIO 以后也是可以管理 ENET1 上的 PHY 芯片。

3. MAC网络外设的复位IO

打开arch/arm/boot/dts/imx6ull-14x14-evk.dts ,找到复位IO:
                /*enet1 reset WeiWuXian*/pinctrl_enet1_reset: enet1resetgrp {fsl,pins = </* used for enet1 reset */MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0  >;};/*enet2 reset WeiWuXian*/pinctrl_enet2_reset: enet2resetgrp {fsl,pins = </* used for enet2 reset */MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x10B0               >;};

pinctrl_enet1 pinctrl_enet1_reset ENET1 所有的 IO 引脚 pinctrl 信息,之所以分两部分主 要 是 因 为 ENET1 的 复 位 引 脚 为 GPIO5_IO07 , 而 GPIO5_IO07 对 应 的 引 脚 就 是 SNVS_TAMPER7要放到 iomuxc_snvs 节点下,所以就分成了两部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

this.$route.back()时的组件缓存

1.this.$route.back()回到上一个路径会重新加载 跳转时,前一个路由的内容会被销毁,当回来时,重新创建树,组件内有保存了距离,没有一开始是0. 2.keep-alive写在router-view上面,这个地方所代表的路由会被保存,因此可以写在上面,保存,当返回时,如果是这个路由,里面的内容是一样…

CommunityToolkit.Mvvm----配置

一、介绍&#xff1a; CommunityToolkit.Mvvm 包&#xff08;又名 MVVM 工具包&#xff0c;以前称为 Microsoft.Toolkit.Mvvm&#xff09;是一个现代、快速和模块化的 MVVM 库。 它是 .NET 社区工具包的一部分&#xff0c;围绕以下原则生成&#xff1a; 独立于平台和运行时 - …

C语言八大排序(个人笔记)

八大排序 插入排序希尔排序选择排序堆排序冒泡排序快速排序归并排序计算排序 插入排序 基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。 直接插入排序的特性总结&am…

Android进阶学习:移动端开发重点学习的十点,不能再得过且过的写业务代码了

最近有朋友问我&#xff1a;“安卓开发是不是没人要了&#xff0c;除了画 UI 别的都不会怎么办&#xff1f;” 考虑到这可能是很多人共同的疑问&#xff0c;决定简单写一下。 说了很多遍了&#xff0c;**不是安卓开发没人要了&#xff0c;是初级安卓没人要了。**现在还在大量…

Karrier One在Sui上构建无线电话服务

Karrier One计划实现无线连接的民主化&#xff0c;为长期以来一直缺乏稳定服务或根本没有服务的地区提供服务&#xff0c;并为没有传统银行账户的人提供现代支付能力。 但是&#xff0c;将以行动迟缓著称的电信行业引入Web3世界是一项艰巨的任务。Karrier One团队决定利用Sui技…

保研线性代数机器学习基础复习2

1.什么是群&#xff08;Group&#xff09;&#xff1f; 对于一个集合 G 以及集合上的操作 &#xff0c;如果G G-> G&#xff0c;那么称&#xff08;G&#xff0c;&#xff09;为一个群&#xff0c;并且满足如下性质&#xff1a; 封闭性&#xff1a;结合性&#xff1a;中性…

【WPF应用24】C#中的Image控件详解与应用示例

在C#应用程序开发中&#xff0c;图像显示是一个常见的需求。无论是创建图形界面还是处理图像数据&#xff0c;System.Windows.Controls.Image控件都是实现这一目标的重要工具。本文将详细介绍Image控件的功能、用法、优化技巧以及一些实际应用示例&#xff0c;帮助开发者更好地…

超强命令行解析工具Apache Commons CLI

概述 为什么要写这篇文章呢?因为在读flink cdc3.0源码的时候发现了这个工具包,感觉很牛,之前写过shell命令,shell是用getopts来处理命令行参数的,但是其实写起来很麻烦,长时间不写已经完全忘记了,现在才发现原来java也有这种工具类,所以先学习一下这个的使用,也许之后自己在写…

速通汇编(三)寄存器及汇编mul、div指令

一&#xff0c;寄存器及标志 AH&ALAX(accumulator)&#xff1a;累加寄存器BH&BLBX(base)&#xff1a;基址寄存器CH&CLCX(count)&#xff1a;计数寄存器DH&DLDX(data)&#xff1a;数据寄存器SP(Stack Pointer)&#xff1a;堆栈指针寄存器BP(Base Pointer)&#…

红黑树是什么,为什么HashMap使用红黑树代替数组+链表?

前言 我们都知道在HashMap中&#xff0c;当数组长度大于64并且链表长度大于8时&#xff0c;HashMap会从数组链表的结构转换成红黑树&#xff0c;那为什么要转换成红黑树呢&#xff0c;或者为什么不一开始就使用红黑树呢&#xff1f;接下来我们将去具体的去剖析一下&#xff01;…

java计算机网络(一)-- url,tcp,udp,socket

网络编程&#xff1a; 计算机网络 计算机网络指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统、网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统。 网络协议…

面试碰到的一些问题

总结一下前两天面试没回答好的问题&#xff0c;如有错误&#xff0c;请各位大佬指正&#xff1a; 1. openfeign的底层实现原理&#xff1f; 2.状态机怎么使用&#xff1f;能解决什么问题 1、openfeign的底层实现原理 OpenFeign是一个基于Java的HTTP客户端框架&#xff0c;底层…

0.5米多光谱卫星影像在农业中进行地物非粮化、非农化监测

一、引言 随着科技的发展&#xff0c;卫星遥感技术已经成为了农业领域中重要的数据来源。其中&#xff0c;多光谱卫星影像以其独特的优势&#xff0c;在农业应用中发挥着越来越重要的作用。本文将重点探讨0.5米加2米多光谱卫星影像在农业中的应用。 二、多光谱卫星影像概述 多…

机器学习全攻略:概念、流程、分类与行业应用案例集锦

目录 1.引言 2.从零开始认识机器学习&#xff1a;基本概念与重要术语 3.五步走&#xff1a;掌握机器学习项目执行的完整流程 3.1.问题定义与数据收集 3.2.数据预处理与特征工程 3.3.模型选择与训练 3.4.模型评估与优化 3.5.模型部署与监控 4.深入了解各类机器学习方法…

Python爬虫-懂车帝城市销量榜单

前言 本文是该专栏的第23篇,后面会持续分享python爬虫干货知识,记得关注。 最近粉丝留言咨询某汽车平台的汽车销量榜单数据,本文笔者以懂车帝平台为例,采集对应的城市汽车销量榜单数据。 具体的详细思路以及代码实现逻辑,跟着笔者直接往下看正文详细内容。(附带完整代码…

pnpm比npm、yarn好在哪里?

前言 pnpm对比npm/yarn的优点&#xff1a; 更快速的依赖下载更高效的利用磁盘空间更优秀的依赖管理 我们按照包管理工具的发展历史&#xff0c;从 npm2 开始讲起&#xff1a; npm2 使用早期的npm1/2安装依赖&#xff0c;node_modules文件会以递归的形式呈现&#xff0c;严格…

统计子矩阵(前缀和+双指针)

题目描述 给定一个 N M 的矩阵 A&#xff0c;请你统计有多少个子矩阵 (最小 1 1&#xff0c;最大 N M) 满足子矩阵中所有数的和不超过给定的整数 K? 输入格式 第一行包含三个整数 N, M 和 K. 之后 N 行每行包含 M 个整数&#xff0c;代表矩阵 A. 输出格式 一个整数…

EXCEL VBA 多个表格的处理和操作汇总

EXCEL VBA 多个表格的处理和操作汇总 Sub 需求1()fpath ThisWorkbook.Path & "\"Dim wbdian As WorkbookSet wbdian Workbooks.Open(fpath & "闪电退税返点比例-zxh更新.xls")Dim wb As WorksheetSet wb wbdian.Worksheets(1)Dim dicdian As O…

Django DRF视图

文章目录 一、DRF类视图介绍APIViewGenericAPIView类ViewSet类ModelViewSet类重写方法 二、Request与ResponseRequestResponse 参考 一、DRF类视图介绍 在DRF框架中提供了众多的通用视图基类与扩展类&#xff0c;以简化视图的编写。 • View&#xff1a;Django默认的视图基类&…

ES的RestClient相关操作

ES的RestClient相关操作 Elasticsearch使用Java操作。 本文仅介绍CURD索引库和文档&#xff01;&#xff01;&#xff01; Elasticsearch基础&#xff1a;https://blog.csdn.net/weixin_46533577/article/details/137207222 Elasticsearch Clients官网&#xff1a;https://ww…