Linux下基于Zynq用EthLite+GmiitoRgmii实现100M网络通信

2023-10-27


前言

本文将介绍如何在Linux下使用EthLite加GmiitoRgmii实现百兆网络通信。此方法只需要一个中断,若工程中断资源相对紧张的情况下,可以用此来扩展网口。 

一、IP核配置

        1.ETHLITE配置

        2.GMIITORGMII配置 

 此处GMIITORGMII的phy地址配置为15,确保与外接的phy地址不重复即可。

 在此说明下:若只扩展一个网口,则选择Include Shared Logic In Core。若要扩展多个网口,则第一个GMIITORGMII选择Include Shared Logic In Core,剩下的几个GMIITORGMII选择Include Shared Logic In Example Design。

二、IP 连接关系

 连线按照上述图片连接即可,xdc约束文件按照实际情况自行约束,clkin 需要 200Mhz时钟。Zynq在图中未连接。大家自行连接上即可。

三、设备树描述

设备树如下所示:

AXI_ETHLITE_axi_ethernetlite_0: ethernet@40e00000 {
            clock-names = "s_axi_aclk";
            clocks = <&clkc 15>;
            compatible = "xlnx,axi-ethernetlite-3.0", "xlnx,xps-ethernetlite-1.00.a";
            device_type = "network";
            interrupt-names = "ip2intc_irpt";
            interrupt-parent = <&intc>;
            interrupts = <0 29 1>;
            reg = <0x40e00000 0x10000>;
            xlnx,duplex = <0x1>;
            xlnx,include-global-buffers = <0x1>;
            xlnx,include-internal-loopback = <0x0>;
            xlnx,include-mdio = <0x1>;
            xlnx,rx-ping-pong = <0x1>;
            xlnx,s-axi-id-width = <0x1>;
            xlnx,select-xpm = <0x1>;
            xlnx,tx-ping-pong = <0x1>;
            xlnx,use-internal = <0x0>;
            phy-handle = <&axiphy>;
            gmii2rgmii-phy-handle = <&gmii_to_rgmii_0>;
            AXI_ETHLITE_axi_ethernetlite_0_mdio: mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                axiphy: axiphy@11 {
                    compatible = "cdns,macb-mdio";  
                    device_type = "ethernet-phy";
                    reg = <11>;
                };
                gmii_to_rgmii_0: gmii_to_rgmii_0@15 { 
                    compatible = "xlnx,gmii-to-rgmii-1.0";
                    device_type = "ethernet-phy"; 
                     phy-handle = <&axiphy>; 
                  reg = <15>; 
                 };
            };
        };

在生成设备树时,记得检查下设备树中的中断号描述,是否跟自己的工程连线一致。不然可能导致网口无法正常工作。

        最后,生成linux系统时,记得加上GMIITORGMII的驱动,以及ETHLITE的驱动即可。本工程经过验证可以实现通信。大家若有问题可按教程多尝试几次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下基于Zynq用EthLite+GmiitoRgmii实现100M网络通信 的相关文章

  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 我可以在 Ubuntu 上使用 Homebrew 吗?

    我只是尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包 但都失败了 这就是我尝试安装它们的方法 sudo apt get install build essential curl git m4 r
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 即使使用 rvm pkg install zlib 后也无法加载此类文件 -- zlib

    我使用 rvm 安装了 zlib 包和 ruby 1 9 3 但是每当我尝试安装时 它说宝石cannot load such file zlib 我用来安装的命令是 rvm install 1 9 3 rvm pkg install zli
  • C# - OPC-UA 服务器应用程序尚未在 Linux 计算机中创建 PKI 证书

    当我跑步时OPC UA serverWindows 机器中的 C 应用程序 然后 OPC UA 服务器已创建证书路径C ProgramData OPC Foundation pki own 并在此路径中生成一些证书 但是当我在中安装 OPC
  • VSCODE 在 Linux 上不适用于我

    刚刚了解 VSCODE 很高兴尝试一下 我下载 解压并运行可执行文件 我得到 Code 2183 0429 201254 ERROR browser main loop cc 170 Running without the SUID san
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径

随机推荐

  • git 保护分支

    问题描述 推送dev分支报错 该分支受保护 git push Enumerating objects 9 done Counting objects 100 9 9 done Delta compression using up to 8
  • 数字技术的优点

    数字技术之所以能够广泛应用 主要因为数字电路与模拟电路相比 有许多优点 抗干扰能力强 数字电路能够在相同的输入条件下精确地产生相同的结果 而模拟电路容易受到温度 电源电压 噪声 辐射和元器件老化等因素的影响 在相同的输入条件下输出结果可能会
  • google翻译的一个错误

    如图 音标标着yi朗读却是ai
  • 需要多表连接查询时该怎么弄(一对多的情况)

    第一步 一对多时应该在 一的类中 添加 多的类 的集合变量 例 通过部门号来查询特定的部门 以及该部门中所有的职工 这时需要在dept类中新增一个集合变量 第二步 开始写具体代码 方法一 通过连接查询 左外连接 一次到位 方法二 分步查询
  • ReactNative ListView + 上拉加载更多 + 下拉刷新

    ListView 上拉加载更多 下拉刷新 一 内容简介 ListView列表在添加了上拉加载更多功能之后再添加下拉刷新 二 代码实现 1 引入原生组件 RefreshControl import ListView View Text Act
  • mysql表的约束

    目录 一 表的约束分类 1 not null 非空 输入的数据内容不能为空 2 unique key 唯一键 输入的数据可以为null或者跳过赋予他的值 但是如果输入数据不能相同 3 primary key 主键 每个表中必须有唯一的主键
  • matlab编写dbscan聚类

    在Matlab中编写DBSCAN聚类的方法有很多种 一种常用的方法是手动编写代码 下面是一个简单的DBSCAN示例 function labels nClusters dbscan data eps MinPts data 数据点 eps
  • Qt 使用QInputDialog弹出输入框获取用户输入数据

    简要说明 在开发Qt程序的过程中 我们可能会需要在程序中弹出输入框 并且获取用户输入的数据 一种比较麻烦的做法就是新建一个对话框类 然后在主界面中调用对话框类 获取返回值 使用QInputDialog对话框类可以通过访问不同的接口函数 弹出
  • php导出数据xlsx

    lists 二维数组 public function xlsx lists 生成文件名 date date Y m d H i s time fileName XXXX date xlsx 头部标题 xlsx header array 序号
  • Java Springboot--swagger配置

    文章转载自 第一步 配置pom xml文件
  • 视线估计(Gaze Estimation)简介概述

    PaperWeekly 原创 作者 俞雨 单位 瑞士洛桑联邦理工学院博士 研究方向 视线估计 头部姿态估计 本文七个篇章总计涵盖 29 篇论文 总结了自深度学习以来 视线估计领域近五年的发展 概述 1 1 问题定义 广义的 Gaze Est
  • [Unity]Lua本地时间、倒计时和正计时。

    惯例 直接上代码 正计时开始时的时间戳 self begin time os time 倒计时时长 01 30 00 self countdown time 5400 是否开始计时 self is update local time tru
  • 一文搞定在Ubuntu安装tldr

    目录 第一步 执行安装命令 第二步 更新tldr数据库 第三步 测试tldr功能 补充 未成功返回的错误类型 在安装之前你得先在Ubuntu上登入你自己的账户 当然你肯定在刚安装好Ubuntu的时候就注册自己的账户并且登录了 第一步 执行安
  • 大页内存(HugePages)在通用程序优化中的应用

    今天给大家介绍一种比较新奇的程序性能优化方法 大页内存 HugePages 简单来说就是通过增大操作系统页的大小来减小页表 从而避免快表缺失 这方面的资料比较贫乏 而且网上绝大多数资料都是介绍它在Oracle数据库中的应用 这会让人产生一种
  • 2021-01-17

    静态路由实验 实验目的 1 全网所有网段全部基于192 168 1 0 24划分所得 2 R1 R4每台设备均有两个环回 3 全网可达 4 尽量减少路由条目 且防止环路 5 R5的环回5 5 5 5 24不能出现在其他的设备路由表中 6 按
  • 2021-04-12

    NLP 自然语言处理 和CV相比 nlp最大的特点是特征是离散的 不像cv中是一幅图 nlp是一个个的句子 简单说几点nlp的难点 1 相同意思的句子表达有多种 我爱踢足球 足球是我的爱好 我的爱好之一是足球 2 相同词在不同语境中意思不同
  • vue项目 v-for无法渲染问题

    使用map 函数 可能是解决了对象指向问题 目前还不知道原因 postlist fav2是在data 中定义的数组 在created 里对postlist fav2进行了数组对象的初始化操作 然后就无法渲染 使用map方法才能渲染到页面上
  • 写入单元格_Excel VBA单元格的基本操作(一)

    在Excel VBA中 对单元格的操作可以有多种形式来定义表示 1 打开Visual Basic 添加模块和过程 称之为 单元格操作 Sub 单元格操作 End Sub 2 单元格第一种表达方式 直接定位到某个单元格 B3 Sub 单元格操
  • ES6的Class的prototype、__proto__

    ES6继承与ES5的区别 ES6通过class实现继承 class的继承通过关键字extends实现 class Parent constructor name this name name getName console log this
  • Linux下基于Zynq用EthLite+GmiitoRgmii实现100M网络通信

    目录 前言 一 IP核配置 1 ETHLITE配置 2 GMIITORGMII配置 二 IP 连接关系 三 设备树描述 前言 本文将介绍如何在Linux下使用EthLite加GmiitoRgmii实现百兆网络通信 此方法只需要一个中断 若工