Stm32CubeMX 为 stm32mp135d 添加网卡 eth

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)
...

githuboptee 仓库
giteeoptee 仓库

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 调试的设备中,网卡是最麻烦的,时钟配置,硬件排查等问题,后面单独开一篇文章大概描述一下

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

相关推荐

  1. stm32mp135d u-boot 引导流程

    2024-05-02 01:06:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 01:06:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 01:06:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 01:06:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 01:06:02       18 阅读

热门阅读

  1. 函数的总结1

    2024-05-02 01:06:02       8 阅读
  2. WebView

    2024-05-02 01:06:02       12 阅读
  3. leetcode 2639.查询网格图种每一列的宽度

    2024-05-02 01:06:02       11 阅读
  4. 自制英语听力视频 5.1

    2024-05-02 01:06:02       9 阅读
  5. 2021江苏省赛 H-Reverse the String

    2024-05-02 01:06:02       10 阅读
  6. 【QEMU系统分析之实例篇(五)】

    2024-05-02 01:06:02       11 阅读
  7. 字节-隐私安全实习生

    2024-05-02 01:06:02       11 阅读
  8. PHP深入探索:面向对象编程与设计模式实战

    2024-05-02 01:06:02       11 阅读
  9. 数据结构之树形结构

    2024-05-02 01:06:02       10 阅读