当前位置: 首页 > news >正文

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

一. 简介

IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设,所以,ALPHA开发板上的有线网络的硬件方案是:

SOC内部集成网络MAC外设+ PHY网络芯片方案。

本文来说明一下MAC网络外设的设备节点信息的实现。

因此, I.MX6ULL 网络驱动主要就是这两个网络 MAC 外设的驱动。这两个外设的驱动都是一样的,我们分析其 中 一 个 就 行 了 。

 

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

  NXP I.MX 系 列 SOC 网 络 绑 定 文 档 为
Documentation/devicetree/bindings/net/fsl-fec.txt ,此绑定文档描述了 I.MX 系列 SOC 网络设备树
节点的要求。

1.  必要属性

compatible 这个肯定是必须的,一般是“ fsl,<soc>-fec ”,比如 I.MX6ULL compatible 性就是 "fsl,imx6ul-fec", "fsl,imx6q-fec"
reg SOC 网络外设寄存器地址范围。
interrupts :网络中断。
phy-mode 网络所使用的 PHY 接口模式,是 MII 还是 RMII

2.  可选属性

phy-reset-gpios PHY 芯片的复位引脚。
phy-reset-duration PHY 复位引脚复位持续时间,单位为毫秒。只有当设置了 phy-reset-gpios 属性此属性才会有效,如果不设置此属性的话 PHY 芯片复位引脚的复位持续时间默认为 1 毫秒,数值不能大于 1000 毫秒,大于 1000 毫秒的话就会强制设置为 1 毫秒。
phy-supply PHY 芯片的电源调节。
phy-handle :连接到此网络设备的 PHY 芯片句柄。
fsl,num-tx-queues 此属性指定发送队列的数量,如果不指定的话默认为 1
fsl,num-rx-queues 此属性指定接收队列的数量,如果不指定的话默认为 2
fsl,magic-packet 此属性不用设置具体的值,直接将此属性名字写到设备树里面即可,表示支持硬件魔术帧唤醒。
fsl,wakeup_irq 此属性设置唤醒中断索引。
stop-mode 如果此属性存在的话表明 SOC 需要设置 GPR 位来请求停止模式。

3.  可选子节点

mdio:可以设置名为“mdio”的子节点,此子节点用于指定网络外设所使用的 MDIO 总线,
主要做为 PHY 节点的容器,也就是在 mdio 子节点下指定 PHY 相关的属性信息,具体信息可 以参考 PHY 的绑定文档 Documentation/devicetree/bindings/net/phy.txt
PHY 节点相关属性内容如下:
interrupts :中断属性,可以不需要。
interrupt-parent 中断控制器句柄,可以不需要。
reg PHY 芯片地址,必须的!
compatible 兼容性列表,一般为“ ethernet-phy-ieee802.3-c22 ”或“ ethernet-phy-ieee802.3-c45 ”,分别对应 IEEE802.3 22 簇和 45 簇,默认是 22 簇。也可以设置为其他值,如果 PHY ID 不知道的话,可以 compatible 属性可以设置为“ ethernet-phy-idAAAA.BBBB ”, AAAA BBBB 的含义如下:
AAAA PHY 16 ID 寄存器 1 值,也就是 OUI bit3~18 16 进制格式。
BBBB PHY 16 ID 寄存器 2 值,也就是 OUI bit19~24 16 进制格式。
max-speed PHY 支持的最高速度,比如 10 100 1000


 

三.  IMX6ULL的MAC网络外设的设备节点(MAC网络外设的根设备节点)

打开 imx6ull.dtsi ,找到如下 I.MX6ULL 的两个网络外设节点,如下所示:
			fec1: ethernet@02188000 {compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";reg = <0x02188000 0x4000>;interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clks IMX6UL_CLK_ENET>,<&clks IMX6UL_CLK_ENET_AHB>,<&clks IMX6UL_CLK_ENET_PTP>,<&clks IMX6UL_CLK_ENET_REF>,<&clks IMX6UL_CLK_ENET_REF>;clock-names = "ipg", "ahb", "ptp","enet_clk_ref", "enet_out";stop-mode = <&gpr 0x10 3>;fsl,num-tx-queues=<1>;fsl,num-rx-queues=<1>;fsl,magic-packet;fsl,wakeup_irq = <0>;status = "disabled";};fec2: ethernet@020b4000 {compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";reg = <0x020b4000 0x4000>;interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clks IMX6UL_CLK_ENET>,<&clks IMX6UL_CLK_ENET_AHB>,<&clks IMX6UL_CLK_ENET_PTP>,<&clks IMX6UL_CLK_ENET2_REF_125M>,<&clks IMX6UL_CLK_ENET2_REF_125M>;clock-names = "ipg", "ahb", "ptp","enet_clk_ref", "enet_out";stop-mode = <&gpr 0x10 4>;fsl,num-tx-queues=<1>;fsl,num-rx-queues=<1>;fsl,magic-packet;fsl,wakeup_irq = <0>;status = "disabled";};

fec1 fec2 分别对应 I.MX6ULL ENET1 ENET2 ,至于节点的具体属性就不分析了,上面在讲解绑定文档的时候就已经详细的讲过了。上面的IMX6ULL的MAC网络外设的设备节点 NXP 官方编写的,我们 不需要去修改。
 

接下来需要在上面 IMX6ULL的MAC网络外设的设备节点的基础上,进行添加。添加针对 APLHA开发板的设备节点信息。例如,网络 所使用的引脚 pinctrl 节点信 息, 设置网络对应的 PHY 芯片接口为 MII还是RMII,复位IO等等信息。


 

相关文章:

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

一. 简介 IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设&#xff0c;所以&#xff0c;ALPHA开发板上的有线网络的硬件方案是&#xff1a; SOC内部集成网络MAC外设 PHY网络芯片方案。 本文来说明一下MAC网络外设的设备节点信息的实现。 因此&#xff0c; I.MX6ULL 网络…...

vue弹出的添加信息组件中 el-radio 单选框无法点击问题

情景描述:在弹出的添加信息的组件中的form中有一个单选框,单选框无法进行点击切换 原因如下: 单选框要求有个默认值,因为添加和更新操作复用同一个组件,所以我在初始化时对相关进行了判定,如果为空则赋初始值 结果这样虽然实现了初始值的展示,但是就是如此造成了单选框的无法切…...

蓝桥杯刷题day13——玩游戏【算法赛】

一、问题描述 小 A 和小 B 两个人在海边找到了 n 个石子&#xff0c;准备开始进行一些游戏&#xff0c;具体规则如下&#xff1a;小 B 首先将 n 个石子分成若干堆&#xff0c;接下来从小 A 开始小 A 和小 B 轮流取石子&#xff0c;每次可以任选一堆石子取走任意个&#xff0c;…...

Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

springboot集成rabbitmq

一 添加pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>二&#xff0c;配置yml spring:rabbitmq:host: 192.168.56.200port: 5672username: adminpasswor…...

腾讯云轻量4核8G12M应用服务器性能测评和优惠价格表

腾讯云4核8G服务器价格&#xff1a;轻量4核8G12M优惠价格646元15个月、CVM S5服务器4核8G配置1437元买1年送3个月。腾讯云4核8G服务器支持多少人同时在线&#xff1f;支持30个并发数&#xff0c;可容纳日均1万IP人数访问。腾讯云百科txybk.com整理4核8G服务器支持多少人同时在线…...

判断点在多边形内的算法

在计算几何中&#xff0c;判定点是否在多边形内&#xff0c;是个非常有趣的问题。通常有两种方法&#xff1a; 一、Crossing Number&#xff08;交叉数&#xff09; 它计算从点P开始的射线穿过多边形边界的次数。当“交叉数”是偶数时&#xff0c;点在外面;当它是奇数时&…...

Network AIS Receiver R400N

目录 Introduction OVERVIEW BASIC FEATURES APPLICATIONS SPECIFICATIONS Introduction OVERVIEW The R400N provides a method of monitoring the position, speed and heading of AIS vessels within VHF range. It can decode of Class A, Class B, Aids to Navigat…...

JavaScript循环

JavaScript的循环有两种&#xff0c;一种是for循环&#xff0c;通过初始条件、结束条件和递增条件来循环执行语句块&#xff1a; var x 0; var i; for (i1; i<10000; i) { x x i; } x; // 50005000 for循环的3个条件都是可以省略的&#xff0c;如果没有退出循环的判断条件…...

9Proxy,跨境电商一站式解决方案

文章目录 跨境电商什么是跨境电商跨境电商的机遇跨境电商技术支撑 海外代理IP什么是海外代理IP海外代理IP的作用如何选择海外代理IP 9Proxy9Proxy的优势9Proxy的解决方案价格汇总搜索引擎优化市场调查多重核算数据抓取广告技术 价格上手体验注册登录下载安装数据采集 总结福利 …...

ObjectiveC-08-OOP面向对象程序设计-类的分离与组合

本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念&#xff0c;概念上简单来讲类是它是一组关系密切属性的集合&#xff0c;所谓的关系就是对现实事物的抽象。 上面提到的关系包括很多种&#xff0c;比如has a&#xff0c; is a&#xff0c;has some等&…...

Qt 总结

由于工作需要用到Qt。把过程中学习到的东西记录下来&#xff0c;希望能帮到他人和将来的自己。 由于需要快速实现需求&#xff0c;所以对Qt只是使用&#xff0c;并没有对原理的深入理解。 故此文只适合入门&#xff0c;不适合深入学习Qt。 文章目录 安装&维护示例&教…...

中间件复习之-RPC框架

什么是RPC框架&#xff1f; RPC(Remote Procedure Call):远程过程调用。当多个应用部署在多个服务器上时&#xff0c;由于他们不在一个内存空间上&#xff0c;因此需要网络来进行通信&#xff0c;而RPC允许它像调用本地方法一样调用远程服务。 RPC原理 服务消费方通过RPC客户…...

AcWing 787. 归并排序——算法基础课题解

AcWing 787. 归并排序 文章目录 题目描述CGo模板 题目描述 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&#xff08;所有…...

力扣1379---找出克隆二叉树的相同节点(Java、DFS、简单题)

目录 题目描述&#xff1a; 思路描述&#xff1a; 代码&#xff1a; &#xff08;1&#xff09;&#xff1a; &#xff08;2&#xff09;&#xff1a; 题目描述&#xff1a; 给你两棵二叉树&#xff0c;原始树 original 和克隆树 cloned&#xff0c;以及一个位于原始树 ori…...

FLink学习(三)-DataStream

一、DataStream 1&#xff0c;支持序列化的类型有 基本类型&#xff0c;即 String、Long、Integer、Boolean、Array复合类型&#xff1a;Tuples、POJOs 和 Scala case classes Tuples Flink 自带有 Tuple0 到 Tuple25 类型 Tuple2<String, Integer> person Tuple2.…...

Failed to resolve import “Home/components/HomeNew.vue“. Does the file exist?

错误信息 [plugin:vite:import-analysis] Failed to resolve import "/apis/home.js" from "src/views/Home/components/HomeNew.vue". Does the file exist? 错误原因 路径错误 解决方法...

《价值》-张磊-高瓴资本-3-建立人脉和信任;顺应趋势,把握机遇;

第三章 价值投资初试炼 2005.6.1 创办高瓴资本 许多人问我为什么一直在创业&#xff0c;其实我倒没想到自己非要创业成功不可&#xff0c;只是觉得一定要做点事&#xff0c;做点有意义的事。归根到底&#xff0c;可能是“爱折腾&#xff0c;不满足现状&#xff0c;爱挑战自己”…...

游戏引擎中的物理应用

一、 角色控制器 Character Controller和普通的动态对象&#xff08;Dynamic Actor &#xff09;是不同的&#xff0c;主要的三个特点是: 它拥有可控制的刚体间的交互假设它是有无穷的摩擦力&#xff08;可以站停在位置上&#xff09;&#xff0c;没有弹性加速和刹车几乎立即…...

复现k8s黄金票据学习

1.什么是黄金票据 在 Kubernetes 中&#xff0c;"黄金票据"并不是一个常见的术语。可能你想了解的是服务账户&#xff08;Service Account&#xff09;。服务账户是 Kubernetes 中用于身份验证和授权的一种机制。它们允许 Pods 或其他工作负载在 Kubernetes 集群中与…...

ArcGIS符号库“隐身”之谜:从DAO组件缺失到完整恢复的实战指南

1. 当符号选择器突然"罢工"&#xff1a;一个GISer的崩溃瞬间 那天早上我正赶着完成客户的地图项目&#xff0c;准备给水系图层换个漂亮的蓝色符号。像往常一样双击图层打开属性窗口&#xff0c;点击Symbol Selector准备挑选样式时&#xff0c;整个人瞬间僵住了——本…...

TQVaultAE:泰坦之旅终极仓库管理与装备锻造指南

TQVaultAE&#xff1a;泰坦之旅终极仓库管理与装备锻造指南 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾经在《泰坦之旅》中因为背包爆满而不得不丢弃心爱的传奇…...

MyBatis 二级缓存脏读真实原因

很多同学熟悉 MyBatis 一级缓存、二级缓存基础用法&#xff0c;但多表联查、跨Mapper更新场景下的缓存脏读漏洞&#xff0c;90%的人都会踩坑。 本文结合完整实战案例&#xff0c;用大白话拆解&#xff1a;脏读如何产生、一级缓存二级缓存双重隐患、Namespace隔离缺陷&#xff0…...

Windows 11终极优化指南:一键清理系统臃肿,免费提升51%性能

Windows 11终极优化指南&#xff1a;一键清理系统臃肿&#xff0c;免费提升51%性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to …...

基于树莓派与ChatGPT打造私有智能音箱:从硬件选型到AI集成全攻略

1. 项目概述&#xff1a;打造一个会思考的智能音箱 如果你和我一样&#xff0c;对智能家居充满热情&#xff0c;但又对市面上那些“大厂”智能音箱的隐私策略和有限的对话能力感到不满&#xff0c;那么这个项目可能就是为你量身定做的。今天要聊的&#xff0c;是一个完全由自己…...

Laravel 8.x核心特性深度解析

好的&#xff0c;Laravel 8.x 版本引入了多项重要改进和新特性&#xff0c;旨在提升开发效率和功能。以下是其主要特性&#xff1a;Laravel Jetstream这是一个全新的应用脚手架&#xff0c;提供了登录、注册、邮箱验证、双因素认证、会话管理、API 支持&#xff08;通过 Sanctu…...

MySQL 如何正确实现“随机采样”

在开发英语学习或社交应用时&#xff0c;随机展示单词或消息是一个高频需求。然而&#xff0c;看似简单的“随机”逻辑&#xff0c;如果实现方式不当&#xff0c;会随着数据量的增长演变为系统瓶颈 。 1. 性能陷阱&#xff1a;order by rand() 最直观的写法是 select word from…...

Simulink仿真报错‘积分器发散’?别慌,试试把ode45换成ode3并固定步长

Simulink仿真中积分器发散问题的深度解析与实战解决方案 当你在Simulink中进行控制系统仿真时&#xff0c;突然弹出一条令人不安的错误信息——"Derivative not finite"或"singularity"&#xff0c;这往往意味着你的仿真遇到了积分器发散问题。这种报错不…...

免费LLM API实战指南:从选型到架构设计,低成本构建AI应用

1. 项目概述与核心价值 最近在折腾一些AI应用原型&#xff0c;或者想给现有产品加个智能对话功能&#xff0c;第一反应往往是去找OpenAI的API。但说实话&#xff0c;对于个人开发者、学生&#xff0c;或者只是想低成本验证想法的小团队来说&#xff0c;GPT-4级别的API调用费用&…...

51单片机LCD12864显示中文,别再傻傻用字库了!手把手教你自定义取模显示任意汉字

51单片机LCD12864深度定制&#xff1a;从零实现任意汉字点阵显示的艺术 在嵌入式开发领域&#xff0c;LCD12864液晶屏因其性价比高、接口简单而广受欢迎。但当我们需要显示公司Logo、特殊符号或艺术字体时&#xff0c;标准中文字库的局限性就暴露无遗。本文将彻底打破这种限制&…...