首页 > 系统相关 >RV1126 Linux 以太网MAC PHY 芯片8201f gmac dts配置

RV1126 Linux 以太网MAC PHY 芯片8201f gmac dts配置

时间:2023-07-05 19:23:47浏览次数:41  
标签:8201f rmii clk RV1126 m1 m0 pins gmac 以太网

RK 系列的 SoC 中内置了以太网 MAC 控制器,所以只需要搭配一颗以太网 PHY芯片, 即可实现以太网卡功能。 按照规范, 即使是不同厂家的 PHY,同样有一部分寄
存器的定义是通用的, 只要配置了这些通用的寄存器, 基本上 PHY 就可以正常工作。在 Linux 驱动中有通用的 PHY 驱动, 目前的芯片所配套的 SDK 中使用的都是通用驱动, 当然 SoC 中的 MAC 驱动是需要实现。

menuconfig 一般无需去改动。

我这边调试的是百兆以太芯片,根据原理图引脚是RMII。

时钟配置

RMII 接口需要 50M 参考时钟来保证 MAC 和 PHY 之间数据传输的同步。50M 时钟, 可以由 MAC 来提供, 也可以由 PHY 来提供。 50M 时钟必须是精确的, 且必须保证尽可能小的 jitter, 太大的 jitter 会导致较大的传输的错包率。 SDK 默认使用MAC, 也就是 RK 芯片内部的 MAC 控制器来提供时钟。 一般情况下, 并不需要使用PHY 来提供参考时钟, 因为这样需要额外增加一颗晶振来实现。 除非由于分频的原因,MAC 无法给出符合要求的 50M 参考时钟, RK3188T 上即存在这样的问题, 所以需要由 PHY 来提供参考时钟。

gmac配置

&gmac { phy-mode = "rmii"; clock_in_out = "output";   snps,reset-gpio = <&gpio2 RK_PC5 GPIO_ACTIVE_LOW>; snps,reset-active-low; snps,reset-delays-us = <0 50000 10000>;   assigned-clocks = <&cru CLK_GMAC_SRC_M1>, <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>; assigned-clock-rates = <0>, <50000000>; assigned-clock-parents = <&cru CLK_GMAC_RGMII_M1>, <&cru CLK_GMAC_SRC_M1>, <&cru RMII_MODE_CLK>; pinctrl-names = "default"; pinctrl-0 = <&rmiim1_pins &gmac_clk_m1_pins &gmac_clk_m1_drv_level0_pins>;   phy-handle = <&phy>; status = "okay";   fixed-link { speed = <100>; full-duplex; }; };

rmii pin脚配置

rmii { /omit-if-no-ref/ rmiim0_pins: rmiim0-pins { rockchip,pins = /* rmii_mdc_m0 */ <3 RK_PC4 2 &pcfg_pull_none_drv_level_0>, /* rmii_mdio_m0 */ <3 RK_PC3 2 &pcfg_pull_none>, /* rmii_rxd0_m0 */ <3 RK_PB6 2 &pcfg_pull_none>, /* rmii_rxd1_m0 */ <3 RK_PB7 2 &pcfg_pull_none>, /* rmii_rxdv_m0 */ <3 RK_PC1 2 &pcfg_pull_none>, /* rmii_rxer_m0 */ <3 RK_PC2 2 &pcfg_pull_none>, /* rmii_txd0_m0 */ <3 RK_PB3 2 &pcfg_pull_none_drv_level_0>, /* rmii_txd1_m0 */ <3 RK_PB4 2 &pcfg_pull_none_drv_level_0>, /* rmii_txen_m0 */ <3 RK_PB5 2 &pcfg_pull_none_drv_level_0>; }; /omit-if-no-ref/ rmiim1_pins: rmiim1-pins { rockchip,pins = /* rmii_mdc_m1 */ <2 RK_PC2 2 &pcfg_pull_none_drv_level_0>, /* rmii_mdio_m1 */ <2 RK_PC1 2 &pcfg_pull_none>, /* rmii_rxd0_m1 */ <2 RK_PB5 2 &pcfg_pull_none>, /* rmii_rxd1_m1 */ <2 RK_PB6 2 &pcfg_pull_none>, /* rmii_rxdv_m1 */ <2 RK_PB4 2 &pcfg_pull_none>, /* rmii_rxer_m1 */ <2 RK_PC0 2 &pcfg_pull_none>, /* rmii_txd0_m1 */ <2 RK_PC3 2 &pcfg_pull_none_drv_level_0>, /* rmii_txd1_m1 */ <2 RK_PC4 2 &pcfg_pull_none_drv_level_0>, /* rmii_txen_m1 */ <2 RK_PC6 2 &pcfg_pull_none_drv_level_0>; }; };

gmac 时钟pin脚配置,一般这些都是默认好,只需要你去选使用的哪一组pin脚就可。

gmac_clk { /omit-if-no-ref/ gmac_clk_m0_pins: gmac-clk-m0-pins { rockchip,pins = /* rgmii_clk_m0 */ <3 RK_PC0 2 &pcfg_pull_none>; }; /omit-if-no-ref/ gmac_clk_m0_drv_level0_pins: gmac-clk-m0-drv-level0-pins { rockchip,pins = /* rgmii_clk_m0 */ <3 RK_PC0 2 &pcfg_pull_none_drv_level_0>; }; /omit-if-no-ref/ gmac_clk_m0_drv_level3_pins: gmac-clk-m0-drv-level3-pins { rockchip,pins = /* rgmii_clk_m0 */ <3 RK_PC0 2 &pcfg_pull_none_drv_level_3>; }; /omit-if-no-ref/ gmac_clk_m1_pins: gmac-clk-m1-pins { rockchip,pins = /* rgmii_clk_m1 */ <2 RK_PB7 2 &pcfg_pull_none>; }; /omit-if-no-ref/ gmac_clk_m1_drv_level0_pins: gmac-clk-m1-drv-level0-pins { rockchip,pins = /* rgmii_clk_m1 */ <2 RK_PB7 2 &pcfg_pull_none_drv_level_0>; }; /omit-if-no-ref/ gmac_clk_m1_drv_level3_pins: gmac-clk-m1-drv-level3-pins { rockchip,pins = /* rgmii_clk_m1 */ <2 RK_PB7 2 &pcfg_pull_none>; }; };

mdio匹配置

&mdio { status = "okay"; phy: phy@0 { status = "okay"; compatible = "ethernet-phy-ieee802.3-c22"; reg = <0x0>; //clocks = <&cru CLK_GMAC_ETHERNET_OUT>; }; };
 

 

标签:8201f,rmii,clk,RV1126,m1,m0,pins,gmac,以太网
From: https://www.cnblogs.com/kn-zheng/p/17529602.html

相关文章

  • RV1126新增驱动IMX415 SENSOR,实现v4l2抓图
    RV1126新增驱动IMX415SENSOR,实现v4l2抓图。1:内核dts修改 &csi_dphy0{status="okay";ports{#address-cells=<1>;#size-cells=<0>;port@0{reg=<0>;#address-cells=<1>;#size-cells=<0>;mipi_in_ucam0:endpoint@1......
  • RV1126 —— 配置adc并读取adc通道上传感器数值
    1.adc设备树配置一般来说,rk中已经封装好了标准adc的dts参数属性,我们要做的就是添加自己的adc通道,并引用标准接口即可,不同平台,标准dts中的adc节点名有所不同,其配置属性基本一样。例如:1)adc:adc@ff100000{compatible="rockchip,saradc";......
  • RV1126调试-修改默认调试串口
    背景RK系列的SDK给的默认的调试串口都是uart2/1500000波特率,本次调试设备已经把console调试口改为了uart0,所以需要修改下uboot和内核,然后把波特率设为常用的115200。注:本次调试的SDK版本为原厂的V2.2版本1.uboot修改1)修改rv1126-evb.dts和rv1126-u-boot.dtsi把uart2改成uart......
  • RV1126按键中断驱动和应用调试
     本人使用的调试平台是荣品的rv1126开发板,最近在调试按键中断。经过查看原理图,发现竟然没有一个空闲的IO,所以使用UART1的RX作为按键中断引脚。    驱动部分:     因为UART1原先已经在设备树中已经有了定义,需要将kernel/arch/arm/boot/dts/rongpin/rv1126_11......
  • 西门子S7系列PLC以太网通讯处理器编程调试方法
    捷米特(北京)科技有限公司研发的捷米特以太网通讯模块,转以太网通讯模块型号有ETH-S7200-JM01和ETH-S7300-JM01,适用于西门子S7-200/S7-300/S7-400、SMARTS7-200、西门子数控840D、840DSL、合信、亿维PLC的PPI/MPI/PROFIBUS转以太网。用于西门子S7-200/S7-300/S7-400程序上下载、上位......
  • 以太网温湿度传感器RJ45信号和485信号输出的温湿度传感器区别
    #RS485信号输出的温湿度传感器和RJ45信号输出的温湿度传感器区别分析温湿度传感器是一种用于测量环境中温度和湿度的设备,可以应用于各种领域,如农业、工业、建筑等。在市场上,有两种常见类型的温湿度传感器:RS485信号输出的和RJ45信号输出的。本文将对这两种类型进行区别分析。##......
  • 西门子S7系列转以太网通讯处理器类型分析
    捷米特以太网通讯处理器用于西门子S7-200/SMART/S7-200/S7-300/S7-400/西门子数控840D、840DSL等PLC的以太网数据采集,支持工控领域内绝大多数SCADA软件,支持西门子S7TCP以太网协议和ModbusTCP协议,不占用PLC编程口,即编程软件/上位机软件通过以太网对PLC 数据监控和采集的同时,触......
  • 汉源高科6口千兆网管型工业以太网交换机 X-RING/smart ring光纤环网交换机
    汉源高科6口千兆网管型工业以太网交换机HY5700-7524G-X采用IP40防护外壳,工业级EMC设计,支持宽范围冗余电源输入(12~48VDC)以增加通讯网络的可靠性。提供管理功能,可通过Web浏览器、CLI和SNMP进行管理。支持4个10/100/1000BASE-T(X)RJ45电口和2个1000BASESFP接口。基于工业安装需求,提供......
  • 协议分析之以太网协议
    工作原理以太网协议是一种局域网通信协议,它通过物理层和数据链路层的协同工作,使用媒体访问控制地址和载波监听/冲突检测协议来实现计算机之间的稳定数据传输。在数据传输过程中,以太网会将数据封装成数据帧,并根据目标MAC地址来识别需要接收数据的计算机。通过这种方式,以太网协议能......
  • fpga 以太网w5500 SPI传输80MHz,Alter FPGA verilog udp驱动源码,8个SOCKET都可用,SPI频
    fpga以太网w5500SPI传输80MHz,AlterFPGAverilogudp驱动源码,8个SOCKET都可用,SPI频率支持80MHZ,硬件验证以通过。w5500ip核w5500软核实测网络传输速度8.5M/s,学习必用之良品ID:1399607465825157......