Stm32CubeMX 为 stm32mp135d 添加网卡 eth

devtools/2024/9/23 10:46:06/

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

  • 一、启用设备
    • 1. eth 设备添加
    • 2. eth 引脚配置
    • 2. eth 时钟配置
  • 二、 生成代码
    • 1. optee 配置
    • 2. uboot 配置
    • 3. linux 配置

bringup 可参考:Stm32CubeMX 生成设备树

一、启用设备

1. eth 设备添加

我这里只启用一个eth设备,另一个eth配置是一样的,选择好网卡phy接口(interface)MII, RMII, RGMII
我的phy使用是裕太yt8512百兆,接口RMII,需要先选中ETH Ref Clock Input,才可以选择RMII
确定接口类型很重要,务必根据自己的phy手册确定
在这里插入图片描述

2. eth 引脚配置

参考这里,选择 GPIO 功能复用,配置自己板子eth所需的引脚
在这里插入图片描述

2. eth 时钟配置

根据自己板子用的phy手册配置时钟
确认以下几点:

    1. phy 需要多少兆时钟,是否有晶振(Crystal)
    1. 是Soc 的 eth 给 网卡 phy 提供时钟,还是 网卡 phy 给 Soc 的 eth 提供时钟
      使用PLL4P,还是PLL3Q,自己决定
      在这里插入图片描述

全部配置完后,点击代码生成

二、 生成代码

1. optee 配置

optee这里就生成了两行代码:
一行用来配置时钟:

st,clksrc = <CLK_ETH1_PLL4P
...

一行用来通过安全验证:

...st,decprot = <DECPROT(STM32MP1_ETZPC_ETH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
...

github:optee 仓库
gitee: optee 仓库

2. uboot 配置

对u-boot 生成的代码进行补充一些配置:st官方的设备树配置方法: eth device tree config
这是我的设备树配置,根据自己的板子确定配置
这里ETH 的 reset引脚不用放到引脚配置中,而是作为单独的 gpio 来使用了:reset-gpios = <&gpioa 6 GPIO_ACTIVE_LOW>;
引脚配置在stm32cubemx好的话,生成的代码中 pinctrl 就无需再更改了

github: uboot 仓库
gitee: uboot 仓库

3. linux 配置

linux下eth配置和u-boot没有什么区别,引脚是和u-boot相同的:

github: linux 仓库
gitee: linux 仓库

目前在我使用 stm32mp135 调试的设备中,网卡是最麻烦的,时钟配置,硬件排查等问题,后面单独开一篇文章大概描述一下

能力一般,水平有限,知识浅薄,如果能帮到您,那我感到很荣幸


http://www.ppmy.cn/devtools/32388.html

相关文章

Docker 镜像的创建

创建镜像有三种方法&#xff0c;分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。 本章对此出详细介绍 目录 一 基于现有镜像创建 1&#xff0c;基于现有镜像创建 过程 2&#xff0c; 语法代码 3&#xff0c; 演示 二 基于本地模板创建 1&a…

MIKE + MATLAB - 使用DHI工具包时读取数据

这里写目录标题 1. 读取投影 1. 读取投影 dfsu2.Projection.WKTString dfsu2.Projectionans DfsProjection - 属性:Type: ProjectionWKTString: [11 System.String]Longitude: 123.0000Latitude: 0Orientation: 0dfsu2.Projection.WKTStringans PROJCS["CGCS2000_3_Degr…

【C++ | 关键字】C++ 关键字介绍

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-05-04 0…

# C语言结构体:深入理解与实践

C语言是一种强大的编程语言&#xff0c;它为程序员提供了极大的灵活性和控制力。在C语言中&#xff0c;结构体是一种用户自定义的数据类型&#xff0c;它允许我们将不同类型的数据打包在一起&#xff0c;形成一个整体。结构体在C语言中具有重要作用&#xff0c;它们广泛用于各种…

StarryCoding 算法小白周赛2 题解与代码(含视频题解)

比赛链接&#xff08;含视频题解&#xff09;&#xff1a;https://www.starrycoding.com/contest/4 A题题解&#xff1a; 题目大意 给你一个由 n n n 个正整数组成的数组 a a a&#xff0c;询问这个数组是否是严格单调递增的。 思路 因为他会按照“拜访时间安排表”的顺…

Typora配置PicGo图床,将图片文件上传到gitee厂库,获取图片链接显示在md文件中

Typora配置PicGo图床&#xff0c;将图片文件上传到gitee厂库&#xff0c;获取图片链接显示在md文件中 创建Gitee创库和配置私人令牌 名字、路径、描述自己随便添&#xff0c;但是必须开源&#xff0c;链接才能可以访问&#xff1a; 进入偏好设置 > 图像 > 选择PicGo-Cor…

【C/C++】

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

C语言:数据结构(双向链表)

目录 1、双向链表的结构2、顺序表和双向链表的优缺点分析3、双向链表的实现 1、双向链表的结构 注意&#xff1a;这⾥的“带头“跟前面我们说的“头节点”是两个概念&#xff0c;实际前面的在单链表阶段称呼不严谨&#xff0c;但是为了更好的理解就直接称为单链表的头节点。 带…