This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3352:RGMII 连接至 Marvell 交换机

Guru**** 2588965 points
Other Parts Discussed in Thread: AM3352, TPS65217

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/637428/linux-am3352-rgmii-connection-to-marvell-switch

器件型号:AM3352
主题中讨论的其他器件: TPS65217

工具/软件:Linux

您好!  

我不使用 Sitara SDK 内核、而是 Yocto 内核版本4.9.0

我正在尝试使用 Marvell 88e6096、具有集成物理层的千兆交换机、与 am3352配合使用。 媒体接口 采用 RGMII MAC-PHY 配置。  我知道 AM335x MDIO 接口仅用于与标准 phy 寄存器集配合使用、因此不能将 dincini MDIO 与 cpsw 驱动程序配合使用。  

到目前为止、我正在使用从 u-boot 拆裂的 GPIO 位、我可以设置开关、以便其中一个开关端口上有一个链路。

现在、在 Linux 方面、我尝试将 MAC 配置为"固定链路"。 我可以看到 cpsw 驱动程序可以接受这种模式、并成功读取 固定模式参数。 启动时、我可以看到已确认固定链路参数。  现在、我本来希望启用 RGMII 接口、但处理器没有 TCLK 信号输出。 RCLK 信号上有来自开关的时钟。  

因此、我假设启用了"固定链路"后、cpsw 寄存器将由 cpsw 驱动程序设置、接口至少将处于活动状态。 我意识到将会有进一步的 cpsw 寄存器配置、但我仍希望启用该接口。  

我还读过一些关于需要 cpsw 驱动程序的虚拟 MDIO 地址的内容、但我不理解这一点、cpsw 驱动程序也没有抱怨没有这样的地址。

是否有其他人 成功使用了 cpsw 驱动程序的固定链接?  

我找到了其他论坛主题帖、听起来好像有人使用旧的板配置文件来管理它、但找不到使用器件树完成此操作的人的示例。

请参阅下方的 dmesg 输出和器件树。

提前感谢!

启动时、我获得以下输出:

[1.097745] pinctrl-single 44e10800.pinmux:无法为 cpsw_default 429495524x 添加函数
[1.121621] cpsw 4a100000.以太网:检测到的 MACID = a0:F6:FD:37:ff:bb


[12:53]
[确定]已启动网络服务。
[13.220735] net eth0:正在初始化 cpsw 版本1.12 (0)
[确定]侦听加载/保存射频终止开关状态/dev/rfkill 观察。
[确定]已到达目标网络。
[13.350236]通用 PHY 固定-0:00:连接的 PHY 驱动器[通用 PHY](MII_BUS:phy_addr=fixed - 0:00、IRQ=1)
[确定]使用 ipsec.conf 启动 StrongSwan IPsec IKEv1/IKEv2守护程序。
正在开始启用和配置 wl18xx 蓝牙堆栈...
[13.582715] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
正在启动具有轻量级系统要求的 Lightning Fast Webserver ...
正在启动允许用户会话...
正在开始网络名称解析...
正在启动简单网络管理协议(SNMP)守护程序....
[确定] Lightning 启动了具有轻量级系统要求的 Fast Webserver。
[确定]已启动允许用户会话。
[14.480244] cpsw 4a100000.以太网 eth0:链路向上- 1Gbps/全-流量控制关闭
[14.488035] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪

和从 ethtool:

root@AM335x-EVM:~# ethtool eth0
eth0的设置:
支持的端口:[ TP AUI BNC MII 光纤]
支持的链路模式:1000BaseT /半1000BaseT /全双工
支持的暂停帧使用:否
支持自动协商:是
广告链接模式:1000BaseT /半1000BaseT /全速
广播的暂停帧使用:否
广播自协商:是
链接合作伙伴通告的链接模式:1000Base/Full
链接伙伴通告的暂停帧使用:否
连接方通告的自动协商:否
速度:1000Mb/s
双工:全双工
端口:MII
PHYAD:0
收发器:外部
自协商:开
支持唤醒:D
唤醒:D
当前消息级别:0x00000000 (0)

检测到链接:是

我的设备树:

/*
*版权所有(C) 2012德州仪器(TI)公司- http://www.ti.com/
*
*此程序是免费软件;您可以重新分发和/或修改
*根据 GNU 通用公共许可证第2版的条款,如所示
*由免费软件基金会发布。
*

#include "am33xx.dtsi"

/{
CPU{
CPU@0{
CPU0-SUPPLY =<&dc3_reg>;
};
};

内存@80000000{
DEVICE_TYPE ="存储器";
REG =<0x8000000000 0x10000000>;/* 256 MB */
};

选择{
stdout-path = uart0;
};


vmmcsd_fixedregulator0{
兼容="稳压器固定";
reguler-name ="vmmcsd_fixed";
稳压器最小微伏=<3300000>;
稳压器最大值微伏=<3300000>;
};
};


am33xx_pinmux{(am33xx_pinmux)}
pinctrl-names ="default";
// pinctrl-0 =<&clkout2_pin>;

i2c0_pins:pinmux_i2c0_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x988、PIN_INPUT_PULLUP | MUX_MODE0)/* i2c0_sda.i2c0_sda *
AM33XX_IOPAD (0x98c、PIN_INPUT_PULLUP | MUX_MODE0)/* i2c0_SCL.i2c0_SCL *
>;
};

uart0_pins:pinmux_uart0_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x970、PIN_INPUT_PULLUP | MUX_MODE0)/* uart0_Rxd.uart0_RXD *
AM33XX_IOPAD (0x974、PIN_OUTPUT 下拉| MUX_MODE0)/* uart0_TXD.uart0_TXD *
>;
};

spi0_pins:pinmux_spi0_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x150、PIN_INPUT | MUX_MODE0)//(A18) spi0_SCLK/spi0_SCLK
AM33XX_IOPAD (0x154、PIN_INPUT | MUX_MODE0)//(B18) spi0_d0.spi0_d0
AM33XX_IOPAD (0x158、PIN_INPUT | MUX_MODE0)//(B17) spi0_D1.spi0_D1
AM33XX_IOPAD (0x15c、PIN_INPUT_PULLUP | MUX_MODE0)//(A17) spi0_cs0.spi0_cs0
AM33XX_IOPAD (0x160、PIN_INPUT_PULLUP | MUX_MODE0)//(B16) spi0_CS1.spi0_CS1
>;
};


cpsw_default:cpsw_default{
pinctrl-single、pins =<
/*从属设备1 */
AM33XX_IOPAD (0x114、PIN_OUTPUT | MUX_Mode2)//(K17) gmii1_txen.rgmii1_tctl
AM33XX_IOPAD (0x118、PIN_INPUT | MUX_Mode2)//(L19) gmii1_rxdv.rgmii1_rctl
AM33XX_IOPAD (0x12c、PIN_OUTPUT | MUX_Mode2)//(N19) gmii1_txclk.rgmii1_tclk
AM33XX_IOPAD (0x130、PIN_INPUT | MUX_Mode2)//(M19) gmii1_rxclk.rgmii1_RCLK
AM33XX_IOPAD (0x128、PIN_OUTPUT | MUX_Mode2)//(L18) gmii1_txd0.rgmii1_td0
AM33XX_IOPAD (0x124、PIN_OUTPUT | MUX_Mode2)//(M18) gmii1_txd1.rgmii1_TD1
AM33XX_IOPAD (0x120、PIN_OUTPUT | MUX_Mode2)//(N18) gmii1_txd2.rgmii1_td2
AM33XX_IOPAD (0x11c、PIN_OUTPUT | MUX_Mode2)//(M17) gmii1_txd3.rgmii1_td3
AM33XX_IOPAD (0x140、PIN_INPUT | MUX_Mode2)//(P18) gmii1_rxd0.rgmii1_rd0
AM33XX_IOPAD (0x13c、PIN_INPUT | MUX_Mode2)//(P19) gmii1_rxd1.rgmii1_RD1
AM33XX_IOPAD (0x138、PIN_INPUT | MUX_Mode2)//(N16) gmii1_rxd2.rgmii1_RD2
AM33XX_IOPAD (0x134、PIN_INPUT | MUX_Mode2)//(N17) gmii1_rxd3.rgmii1_rd3.
>;
};


DaVinci_MDIO_DEFAULT:DaVinci_MDIO_DEFAULT{
pinctrl-single、pins =<
/* MDIO */
AM33XX_IOPAD (0x948、PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE7)/* MDIO_DATA.MDIO_DATA *
AM33XX_IOPAD (0x94c、PIN_OUTPUT 上拉| MUX_MODE7)/* MDIO_clk.MDIO_clk *
>;
};

MMC_Pins:pinmux_eMMC_Pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x100、PIN_INPUT | MUX_MODE0)//(G19) mmc0_clk.mmc0_clk
AM33XX_IOPAD (0x104、PIN_OUTPUT | MUX_MODE0)//(G17) mmc0_cmd.mmc0_cmd
AM33XX_IOPAD (0xFC、PIN_INPUT | MUX_MODE0)//(G18) mmc0_data0.mmc0_data0
AM33XX_IOPAD (0xf8、PIN_INPUT | MUX_MODE0)//(H17) mmc0_data1.mmc0_data1
AM33XX_IOPAD (0xf4、PIN_INPUT | MUX_MODE0)//(H18) mmc0_data2.mmc0_data2
AM33XX_IOPAD (0xf0、PIN_INPUT | MUX_MODE0)//(H19) mmc0_data3.mmc0_data3
>;
};


};

uart0{(&U)
pinctrl-names ="default";
pinctrl-0 =<&uart0_PINs>;

状态="正常";
};

spi0{(&S)
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&spi0_PINs>;
};

USB{(&D)
状态="正常";
};

&USB_CTRL_mod{
状态="正常";
};

usb0_phy{/usb0_phy}
状态="正常";
};

usb0{(&U)
状态="正常";
DR_MODE ="主机";
};

cppi41dma{.cppi41dma}
状态="正常";
};

i2c0{(&I)
pinctrl-names ="default";
pinctrl-0 =<&i2c0_PINs>;

状态="正常";
时钟频率=<400000>;

TPS:TPS@24{
reg =<0x24>;
};
};

/include/"tps65217.dtsi"

TPS{
/*
*将 PMIC 配置为进入关断状态而不是休眠状态("仅 RTC
* mode")。 大多数 BeagleBone 版本不支持仅 RTC
*模式、如果进入此模式、则可能会导致硬件损坏。
*
*有关详细信息、请参阅 Linux-OMAP 邮件列表2015年5月主题
*[PATCH] ARM:DTS:AM335x-bon*启用 PMIC-关断控制器
*具体而言,讯息:
* www.spinics.net/.../msg118585.html
* www.spinics.net/.../msg118615.html
*
*您稍后可以使用覆盖此内容
*&TPS {/delete-property/ ti、PMIC-shutdown 控制器;}
*如果您想使用仅 RTC 模式并确保不会受到影响
*由硬件问题引起。 (提示:通过执行电流进行双重检查
*关断后的测量:它应小于1mA。)
*
TI、PMIC 关断控制器;

调节器{
dc1_reg:电脑控制器@0{
稳压器名称="VDDS_DDR_REG";
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;
稳压器启动;
稳压器常开;
};

dcdc2_reg:电脑控制器@1{
/* VDD_MPU 电压限制为0.95V - 1.26V、容差为+/-4%*
稳压器名称="VDD_MPU_CORE";
稳压器最小微伏=<3300000>;
稳压器最大值微伏=<3300000>;
稳压器启动;
稳压器常开;
};

dcdc3_reg:电脑控制器@2{
/* VDD_CORE 电压限制为0.95V - 1.1V、容差为+/-4%*
稳压器名称="VDD_CORE";
稳压器最小微伏=<1125000>;
稳压器最大值微伏=<1125000>;
稳压器启动;
稳压器常开;
};

ldo1_reg:电脑控制器@3{
电脑控制器名称="VIO、vrtc、VDDS";
稳压器常开;
};

ldo2_reg:电脑控制器@4{
稳压器名称="VDD_3v3aux";
稳压器常开;
};

ldo3_reg:电脑控制器@5{
稳压器名称="VDD_1v8";
稳压器常开;
};

ldo4_reg:电脑控制器@6{
稳压器名称="VDD_3v3a";
稳压器常开;
};
};
};

cpsw_emac0{&cpsw_emac0}
//phy_id =<&Davinci_mdio>、<0x10>;
定点链路=<0 1 1000 0 >;
PHY-MODE ="RGMII-txid";
};

Mac{(&M)
从器件=<1>;
pinctrl-names ="default";
//pinctrl-names ="default"、"sleep";
pinctrl-0 =<&cpsw_default>;
状态="正常";
};

/*
DaVinci_MDIO{
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&Davinc_MDIO_default>;
状态="正常";
};
*


mmc1{(&M)
状态="正常";
总线宽度=<0x4>;
pinctrl-names ="default";
pinctrl-0 =<&MMC_PINs>;
};


AES{(&A)
状态="正常";
};

sham{(&S)
状态="正常";
};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我真的无法评论 MAC 到交换机的配置、目前这是一个不受支持的用例。

    查看 DTS 固定 phy 模式设置、尝试将 cpsw_emac0的 phy 模式更改为"RGMII"。 请告诉我们结果。

    此致、
    Schuyler