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/AM3358:BeagleBone Black RGMII

Guru**** 2548860 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609437/linux-am3358-beaglebone-black-rgmii

器件型号:AM3358

工具/软件:Linux

LK"I

您好!

我将 BeagleBone Black 用作参考板。

在我的定制板上、它将通过 RGMII1连接到千兆位以太网 PHY。

我已移除100Mb PHY ,并将其连接到千兆位以太网 PHY 进行检查。

我更改了器件树:

AM335x-bone-common.dtsi

cpsw_default:cpsw_default{
pinctrl-single、pins =<
/*从属设备1 */
0x114 (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txen.rgmii1_tctl *
0x118 (PIN_INPUT_PULLUP | MUX_Mode2)/* mii1_rxdv.rgmii1_rctl *
0x11c (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txd3.rgmii1_txd3 */
0x120 (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txd2.rgmii1_txd2 */
0x124 (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txd1.rgmii1_txd1 */
0x128 (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txd0.rgmii1_txd0 */
0x12c (PIN_OUTPUT 下拉| MUX_Mode2)/* mii1_txclk.rgmii1_txclk *
0x130 (PIN_INPUT_PULLUP | MUX_Mode2)/* mii1_rxclk.rgmii1_rxclk */
0x134 (PIN_INPUT_PULLUP | MUX_MODE2)/* mii1_rxd3.rgmii1_rxd3 *
0x138 (PIN_INPUT_PULLUP | MUX_MODE2)/* mii1_rxd2.rgmii1_rxd2 *
0x13c (PIN_INPUT_PULLUP | MUX_MODE2)/* mii1_rxd1.rgmii1_rxd1 *
0x140 (PIN_INPUT_PULLUP | MUX_MODE2)/* mii1_rxd0.rgmii1_rxd0 *
>;
};
cpsw_sleep:cpsw_sleep{
pinctrl-single、pins =<
/*从器件1复位值*/
0x114 (PIN_INPUT_PULLUX | MUX_MODE7)
0x118 (PIN_INPUT 下拉| MUX_MODE7)
0x11c (PIN_INPUT_PULLUGD | MUX_MODE7)
0x120 (PIN_INPUT 下拉| MUX_MODE7)
0x124 (PIN_INPUT 下拉| MUX_MODE7)
0x128 (PIN_INPUT 下拉| MUX_MODE7)
0x12c (PIN_INPUT_PULLUGD | MUX_MODE7)
0x130 (PIN_INPUT 下拉| MUX_MODE7)
0x134 (PIN_INPUT_PULLUX | MUX_MODE7)
0x138 (PIN_INPUT 下拉| MUX_MODE7)
0x13c (PIN_INPUT_PULLUP | MUX_MODE7)
0x140 (PIN_INPUT_PULLUX | MUX_MODE7)
>;
};

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

cpsw_emac0{&cpsw_emac0}
PHY_ID =<&Davinci_MDIO>、<0>;
PHY-MODE ="RGMII";
};
Mac{(&M)
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&cpsw_default>;
pinctrl-1 =<&cpsw_sleep>;
从器件=<1>;
状态="正常";
};
DaVinci_MDIO{
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&Davinc_MDIO_default>;
pinctrl-1 =<&Davinc_MDIO_SLEEP>;
状态="正常";
};

但是、它似乎不起作用、我已经检查了来自 Sitara 的 RGMII_TX_CLK、它根本不显示任何时钟。

为了使 Sitara 开始与 RGMII "交谈"、我还需要做什么? 我是否应该对 Kerenl 配置进行其他配置? 还是仅涉及器件树配置?

Harel

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

    那么、我很清楚...您用 RGMII PHY 代替 BB Black 上的现有 RMII PHY 了吗?

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

    LK"I

     

    更精确。

    我移除了 HDMI 和100 PHY。

    并使用新 的 PHY 通过电线连接到 EVB (实际上它是具有内置 PHY 的以太网交换机...)

    我在 Sitara RGMII 时钟上看不到任何内容... 我 想知道这里有什么问题...

    Harel

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

    RGMII 不适合采用任何类型的蓝色接线、因为 该接口上的时序非常严格。 此外、由于 BBB 被设计为 RMII (10/100)板、PCB 布局/时序可能无法支持 RGMII (10/100/1000)。  

    我建议改用 AM335x GP EVM、因为它具有对 RGMII 的原生支持。

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

    LK"I

    我只想检查功能。

    我可以将时钟速度降低到10M

    Harel

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

    确保存在 RXC。 在没有 RXC 的情况下将不会输出 TXC。

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

    [引用 user="-DK-"] RGMII 不会采用任何类型的蓝线[/引用]

    实际上、我知道有人成功地将千兆 phy 修补到 BBB (用于原型设计/概念验证)、时钟线上有几英尺的额外导线提供1-2ns 的延迟(由于内部延迟问题)。 :D

    我仍然认为应该拍照片。

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

    LK"I

    由于我已连接到以太网交换机、我想跳过 MDIO ID 检查、因此我已将器件树更改为:

    我还尝试将速度更改为10,可能是在较低的速度下工作。 (我与交换机的连接未优化)。

    cpsw_emac0{&cpsw_emac0}

    PHY-MODE ="RGMII";

    固定链路{

    速度=<10>;

    全双工;

    };

    };

    这是我在 Linux 控制台上所关注的内容:

    [115630.033854] net eth0:正在初始化 cpsw 版本1.12 (0)
    [115630.039372] cpsw 4a100000.以太网:初始化 cpsw ale 版本1.4
    [115630.045941] CPsw 4a100000.以太网:ALE 表大小1024
    [115630.066481]通用 PHY 固定-0:00:连接的 PHY 驱动器[通用 PHY](MII_BUS:phy_addr=fixed_0:00、IRQ=1)
    [115630.100260] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [115630.106306] 8021q:将 VLAN 0添加到设备 eth0上的硬件过滤器
    Debian@ARM:~$[115631.104495] cpsw 4a100000。以太网 eth0:链路打开- 10Mbps/全-流控制关闭
    [115631.112558] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪

    和 ifconfig:


    eth0:flags=-28605  MTU 1500
           iNet 169.254.235.247 netmask 255.255.0.0 broadcast 169.254.255.255
           inet6 fe80::9a5d:adff:fe7f:ca8b pre fixlen 64 范围 ID 0x20
           以太网98:5d:ad:7f:ca: 8b txqueuelen 1000 (以太网)
           RX 数据包170533 字节15575118 (14.8 MIB)
           RX 错误0 丢弃0 超限0 帧0
           TX 数据包7924 字节4622096 (4.4 MIB)
           TX 错误0 丢弃0溢出0 载波0 冲突0
           器件中断173

    尽管它报告 RX/TX 数据包、但它不检测 DHCP 服务器。

    我还尝试静态分配 IP、但它不起作用。

    我现在正在检查线路上的物理位置...  (并尝试应用时钟延迟...)

    还有其他想法吗?

    Harel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    控制台日志显示为报告接口已启动,但 ifconfig 命令未启动。 尝试 ifup eth0或 ifconfig eth0 up,然后查看这是否启动了 DHCP 进程。

    您使用的是哪款 SDK?

    此外、请附加 ethtool -S eth0的日志、该接口报告大量流量、但并不意味着它将离开器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    NIC 统计信息:
        正常 RX 帧:88
        广播 Rx 帧:24
        多播 Rx 帧:64
        暂停 Rx 帧:0
        RX CRC 错误:0
        RX 对齐/代码错误:0
        超大 RX 帧数:0
        RX Jabber:0
        欠大小(短) Rx 帧:0
        RX 片段:0
        RX 八位位组:13746
        正常 Tx 帧:0
        广播 Tx 帧:0
        多播 Tx 帧:0
        暂停 Tx 帧:0
        延迟的 Tx 帧:0
        冲突:0
        单冲突 Tx 帧:0
        多个冲突 Tx 帧:0
        冲突过多:0
        晚期冲突:0
        TX 欠运转:0
        载波侦听错误:136.
        TX 八位位组:0
        RX + Tx 64字节帧:33
        RX + Tx 65-127八位位组帧:21.
        RX + Tx 128-255八位位组帧:0
        Rx + Tx 256-511八位位组帧:34
        RX + Tx 512-1023八位位组帧:0
        Rx + Tx 1024个八位位组帧:0
        净八位位组:14695
        帧溢出的 RX 起始:0
        帧的 RX 中间溢出:0
        RX DMA 超限:0
        RX DMA 通道0:head_enqueue:1
        RX DMA 通道0:tail_enqueue:163
        RX DMA 通道0:PAD_ENqueue:0
        RX DMA 通道0:排队错误:0
        RX DMA 通道0:DESC_ALLOC_FAIL:0
        RX DMA 通道0:PAD_ALLOC_FAIL:0
        RX DMA 通道0:runt_receive_buf:0
        RX DMA 通道0:runt_transmit:bu:0
        RX DMA 通道0:empty_dequeue:0
        RX DMA 通道0:BUSY_DEqueue:36
        RX DMA 通道0:Good:Dequeue:36
        RX DMA 通道0:要求:0
        RX DMA 通道0:teardown_dequeue:0
        TX DMA 通道0:head_enqueue:135
        TX DMA 通道0:tail_enqueue:1
        TX DMA 通道0:PAD_ENqueue:0
        TX DMA 通道0:排队错误:1
        TX DMA 通道0:DESC_ALLOC_FAIL:0
        TX DMA 通道0:PAD_ALLOC_FAIL:0
        TX DMA 通道0:runt_receive_buf:0
        TX DMA 通道0:runt_transmit;bu:15
        TX DMA 通道0:empty_dequeue:135
        TX DMA 通道0:BUSY_DEqueue:0
        TX DMA 通道0:Good:Dequeue:136
        TX DMA 通道0:要求:0
        TX DMA 通道0:teardown_dequeue:0

    Internet Systems Consortium DHCP Client 4.3.5
    版权所有2004-2016 Internet Systems Consortium。
    保留所有权利。
    如需了解相关信息、请访问 www.isc.org/.../

    [1210.338745] net eth0:正在初始化 cpsw 版本1.12 (0)
    [1210.344149] cpsw 4a100000.ethernet:初始化 cpsw ale 版本1.4
    [1210.350573] cpsw 4a100000以太网:ALE 表大小1024
    [1210.362870]通用 PHY 固定-0:00:连接的 PHY 驱动器[通用 PHY](MII_BUS:phy_addr=fixed_0:00、IRQ=1)
    [1210.393864] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [1210.399766] 8021q:在设备 eth0上添加 VLAN 0至硬件过滤器
    在 LPF/eth0/98:5d:ad:7f:ca:8b 上收听
    在  LPF/eth0/98:5d:ad:7f:ca:8b 上发送
      在套接字/回退时发送
    eth0至255.255.255.255端口67的 DHCPDISCOVER 间隔8
    [1211.393173] cpsw 4a100000.以太网 eth0:链路向上- 10Mbps/全-流控制 Rx/TX
    [1211.401228] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
    eth0至255.255.255.255端口67的 DHCPDISCOVER 间隔14

    eth0至255.255.255.255端口67的 DHCPDISCOVER 间隔16
    DHCPDISCOVER ON eth0至255.255.255.255端口67的间隔15