imx6ull-正点原子阿尔法-uboot-v2.4网络驱动修改

news2024/10/22 23:26:48

1 修改网络 PHY 地址,修改 PHY 驱动

在这里插入图片描述

/*[c] 1 修改网络PHY地址,修改PHY驱动*/
/******************************************************************************/
#if (CONFIG_FEC_ENET_DEV == 0)
#define IMX_FEC_BASE			ENET_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR          0x2         /*ENET1 网络 PHY 的地址*/
#define CONFIG_FEC_XCV_TYPE             RMII
#elif (CONFIG_FEC_ENET_DEV == 1)
#define IMX_FEC_BASE			ENET2_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR		0x1             /*ENET2 网络 PHY 的地址*/
#define CONFIG_FEC_XCV_TYPE		RMII
#endif
#define CONFIG_ETHPRIME			"FEC"

#define CONFIG_PHYLIB
#define CONFIG_PHY_REALTEK                          /*使能REALTEK公司的PHY驱动*/
#endif
/******************************************************************************/

2 删除 74LV595 的驱动代码

2.1 删除 74LV595 的复位引脚

在这里插入图片描述

2.2 删除 74LV595 的 IO 配置参数结构体

在这里插入图片描述

2.3 删除 74LV595 的函数

在这里插入图片描述

2.4 删除使用 74LV595 的地方

在这里插入图片描述

3 添加板卡的复位代码

3.1 添加本卡的复位引脚

在这里插入图片描述

/*[c] 3 添加板卡的复位代码*/
/*[c] 3.1 添加本卡的复位引脚*/
/******************************************************************************/
/*v2.4板卡的复位引脚*/
#define ENET1_RESET IMX_GPIO_NR(5, 7) /* SNVS_TAMPER7=GPIO5_IO07 */
#define ENET2_RESET IMX_GPIO_NR(5, 8) /* SNVS_TAMPER8=GPIO5_IO08 */
/******************************************************************************/

3.2 添加ENET1和ENET2的IO配置

在这里插入图片描述

/*[c] 3.2 添加ENET1和ENET2的IO配置*/
/******************************************************************************/
/*ENET1的IO配置参数*/
static iomux_v3_cfg_t const fec1_pads[] = {
	MX6_PAD_GPIO1_IO06__ENET1_MDIO | MUX_PAD_CTRL(MDIO_PAD_CTRL),
	MX6_PAD_GPIO1_IO07__ENET1_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_TX_DATA0__ENET1_TDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_TX_DATA1__ENET1_TDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_TX_EN__ENET1_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 | MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
	MX6_PAD_ENET1_RX_DATA0__ENET1_RDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_RX_DATA1__ENET1_RDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_RX_ER__ENET1_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET1_RX_EN__ENET1_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
    MX6_PAD_SNVS_TAMPER7__GPIO5_IO07 | MUX_PAD_CTRL(NO_PAD_CTRL),   /*GPIO5_IO07*/
};

/*ENET2的IO配置参数*/
static iomux_v3_cfg_t const fec2_pads[] = {
	MX6_PAD_GPIO1_IO06__ENET2_MDIO | MUX_PAD_CTRL(MDIO_PAD_CTRL),
	MX6_PAD_GPIO1_IO07__ENET2_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),

	MX6_PAD_ENET2_TX_DATA0__ENET2_TDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET2_TX_DATA1__ENET2_TDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 | MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
	MX6_PAD_ENET2_TX_EN__ENET2_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),

	MX6_PAD_ENET2_RX_DATA0__ENET2_RDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET2_RX_DATA1__ENET2_RDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET2_RX_EN__ENET2_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
	MX6_PAD_ENET2_RX_ER__ENET2_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
    MX6_PAD_SNVS_TAMPER8__GPIO5_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL),   /*GPIO5_IO08*/
};
/******************************************************************************/

3.3 添加复位 IO 的代码

在这里插入图片描述

/*[c] 3.3 添加复位IO的代码*/
/******************************************************************************/
static void setup_iomux_fec(int fec_id)
{
	if (fec_id == 0) {
        imx_iomux_v3_setup_multiple_pads(fec1_pads, ARRAY_SIZE(fec1_pads));

        gpio_direction_output(ENET1_RESET, 1);
        gpio_set_value(ENET1_RESET, 0);
        mdelay(20);
        gpio_set_value(ENET1_RESET, 1);
    }
	else{
        imx_iomux_v3_setup_multiple_pads(fec2_pads, ARRAY_SIZE(fec2_pads));

        gpio_direction_output(ENET2_RESET, 1);
        gpio_set_value(ENET2_RESET, 0);
        mdelay(20);
        gpio_set_value(ENET2_RESET, 1);
    }
    mdelay(150); /* 复位结束后至少延时150ms才能正常使用 */
}
/******************************************************************************/

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

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

相关文章

Electron-(一)创建桌面应用

一、概述 本文通过核心步骤介绍,形成使用Electron进行桌面应用创建的概述性内容。 在当今的软件开发领域,Electron 作为一款强大的工具,为开发者提供了一种便捷的方式来创建跨平台的桌面应用。本文将通过详细介绍核心步骤,带您领…

记一次有趣的发现-绕过堡垒机访问限制

前言 在某一次对设备运维管理的时候,发现的某安全大厂堡垒机设备存在绕过访问限制的问题,可以直接以低权限用户访问多个受控系统,此次发现是纯粹好奇心驱使下做的一个小测试压根没用任何工具。因为涉及到了很多设备和个人信息,所以…

AI大模型引领智慧城市:11个行业应用场景全解析

AI大模型在智慧城市11个行业的应用场景‍‍‍ 人工智能是当今科技领域最前沿的课题,更是新一轮科技革命的重要代表之一。从AlphaGo Zero通过自我学习碾压“AI前辈”AlphaGo,到百度智能无人汽车成功上路、苹果手机开启新的刷脸认证方式……而最近&#x…

老师发期中成绩小程序-易查分一键发布省事~

老师注意,本学期的期中考试即将拉开帷幕。考试结束后,成绩的发布往往是我们觉得最繁琐耗时的工作。逐一私信每个学生家长,告知他们的考试情况。使用我要向老师们推荐一个神器——易查分,能让老师一分钟完成期中成绩发布的工作。 易…

亿赛通与Ping32文档加密功能全面盘点,选择最适合的工具

在信息化迅速发展的今天,文档安全愈发成为企业关注的焦点。为了保护敏感数据不被非法访问或泄露,选择一款高效的文档加密工具至关重要。亿赛通与Ping32作为市场上备受认可的安全解决方案,各自提供了强大的文档加密功能。本文将对这两款软件的…

嘉立创EDA—51最小系统PCB

1,灵活使用 下边栏的库中可以搜索对应需要的型号,如51最小系统板 常用库中有常用的电容和电阻,以及排针等,熟悉一些常用快捷键的使用 设计完电路后可以选用折线进行分区,写好每个网络标号,以及添加一些文字说明 最后可…

C语言复习第5章 操作符

目录 关于和*的优先级问题进一步理解*(p)和*(p) 关于和*的优先级问题 首先明确一点 解引用*的优先级比自增低 区分如下代码: 1.*p:等价于*(p) 先对指针p解引用 再把指针p1(不会对野指针进行解引用操作) 2.*p:等价于*(p) 先把指针p1 再对指针p解引用(可能对野指针解引用 会报错…

前端布局与响应式设计综合指南(末)

​🌈个人主页:前端青山 🔥系列专栏:Css篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:前端布局与响应式设计综合指南(末) 目录 61、为什么要初始化CSS样式 62、CSS3 有哪些新特性 63、…

Windows环境下部署LobeChat及远程AI聊天操作指南

文章目录 前言1. LobeChat功能介绍2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 本文主要介绍如何在Windows系统电脑本地部署LobeChat,一款高颜值的开源AI大模型智能应用,并结…

Ubuntu终端配置

选择shell shell有很多,默认的是bash,一般就够用里,想要花里胡哨点就用zsh,还有最近比较火的fish 如果在刚开始安装完Ubuntu没有改shell,后面就不要改了。 安装的软件会设置环境变量,这些环境变量都是写入…

一个好的维权小程序应该是什么样的?

小程序如今为大家提供了很多的便利服务,且小程序的种类、功能是很多样的,那么对于一个好的维权小程序来说,其功能和设计应该紧紧围绕着用户的需求。 设计页面应该直观简单,功能布局让人一目了然;操作简单,…

我们的“前端学习路线图”,也给大家介绍一下

给大家介绍一下 2024 年最不全的“前端学习路线图”。 虽然有 99% 的概率会躺在你的收藏夹里吃灰,但我还是要介绍一下我们的“前端学习路线图”。 跟其他最全版的前端学习路线图,我们的“路线图”的特点是: 粒度更粗一点范围更广一点样子更…

【c数据结构】二叉树深层解析 (模拟实现+OJ题目)

目录 前言 一、树 1.树的概念与结构 2.树的专业用语 1.根节点 2.边 3.父节点/双亲节点 4.子节点/孩子节点 5.节点的度 6.树的度 7.叶子节点/终端节点 8.分支节点/非终端节点 9.兄弟节点 10.节点的层次 11.树的高度/深度 12.节点的祖先 13.子孙 14.路径 15.森…

【操作系统】五、输入输出(I/O)管理:1. I/O 管理概述(I/O控制器、I/O 控制方式、I/O 软件层次结构、层次间接口)

输入输出(I/O)管理 文章目录 输入输出(I/O)管理十、I/O 管理1.设备分类2. I/O 控制器2.1功能2.2组成 ❗3. I/O 控制方式3.1 程序直接控制方式3.2 中断驱动方式❗3.3 DMA方式3.3.1 DMA控制器 3.4 通道控制方式 ❗4. I/O 软件层次结构4.1用户层软件❗4.2设备独立性软件4.3设备驱动…

【最新发布】华硕Windows10系统一键下载安装!

今天https://www.xitongzhijia.net/小编给大家带来一款适合华硕电脑安装的Windows10系统,该版本系统基于最新Windows10 22H2 19045.5011 64位专业版离线制作,安全无毒,系统打印机驱动意外卸载的问题得到了修复,也解决了一些系统安…

HT8787B 可任意限幅、内置自适应升压的2x9.0W立体声音频功放

1、特征 可任意配置的限幅功能 自由配置音频限制幅度,使输出音频信号限制在固 定失真水平内 内置自动限温控制功能 -适应不同散热条件,避免出现过温关断现象 高效自适应G类升压功能,有效延长播放时间 可调节最大限流值,有效防止电…

数据链路层的流量控制和可靠传输机制

目录 1. 选择等待协议(Stop-and-Wait Protocol) 工作原理: 2. 后退N帧协议(Go-Back-N ARQ) 工作原理: 3. 选择重传协议(Selective Repeat ARQ) 工作原理: 4. 总结 …

学安全的同学都有必要了解的安全产品,雷池社区版(WAF)

网络应用防火墙(WAF,Web Application Firewall)已成为保障网站和应用安全的核心技术之一。 雷池社区版作为国内自主研发的一款优秀开源WAF,凭借其高效、易用和强大的防护能力,成为众多安全从业者学习与使用的首选工具…

HBuilder X中搭建Vue-cli项目组件和路由以及UI库使用(二)

一、创建组件 &#xff08;1&#xff09;在vj1项目src|右键|vue文件 &#xff08;2&#xff09;组件常用模版 <!--该标签用于写HTML代码,必须有一个根标签,如下<div>是根标签--> <template> <div>首页</div> </template><!--该标签用…

【未公开0day】9.9付费进群系统 wxselect SQL注入漏洞【附poc下载】

免责声明&#xff1a;本文仅用于技术学习和讨论。请勿使用本文所提供的内容及相关技术从事非法活动&#xff0c;若利用本文提供的内容或工具造成任何直接或间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果均与文章作者及本账号无关。 fofa语…