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.

[参考译文] AM67:以太网 RX 不捕获数据包

Guru**** 2553260 points
Other Parts Discussed in Thread: AM67

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1549903/am67-ethernet-rx-is-not-capturing-packets

器件型号:AM67


工具/软件:

大家好、我已经阅读了基本的以太网调试指南、RX 无法获取数据包。

ifconfig 显示 0 个 Rx 数据包、但 ethtool 显示了 Rx 数据包(0 个 CRC 错误)

“相关问题“几乎是相同的、没有得到解决。

davinci_mdio 8000f00.mdio:DaVinci MDIO 修订版 17.7、总线频率 1000000
davinci_mdio 8000f00.mdio:phy[0]:器件 8000f00.mdio:00、驱动程序 Micrel KSZ8081 或 KSZ8091
am65-cpsw-Nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[Micrel KSZ8081 或 KSZ8091](IRQ=POLL)

ethtool -S eth0
NIC 统计信息:
P0_Rx_GOOD_FRAMES:39
P0_Rx_BROADCAST_FRAMES:10.
P0_Rx_MULTICAST_FRAMES:29
P0_Rx_CRC_ERRORS:0
P0_Rx_NEUM_FRAMES:0
P0_Rx_undersize_frames:0
P0_R0_ALE_DROP:0
P0_R0_ALE_ULALORY_DROP:0
P0_Rx_八 位位组:6551
P0_RTX_GOOD_FRAMES:0
P0_RTX_broadcast_frames:0
P0_RTX_MULTICAST_FRAMES:0
P0_TX_八 位位组:0
P0_RTX_64B_FRAMES:8.
P0_TX_65_TO_127B_FRAMES:12
P0_R128_TO_255B_FRAMES:9.
P0_R256_TO_511B_FRAMES:10.
P0_TX_512_TO_1023B_FRAMES:0
P0_RTX_1024B_FRAMES:0
P0_NET_COBOTS:6551
P0_Rx_Bottom_fifo_drop:0
P0_Rx_PORT_MASK_DROP:0
P0_Rx_top_fifo_drop:0
P0_Rale_Rate_Limit_drop:0
P0_R0_ALE_VID_ENTRY_DROP:0
P0_ALE_DA_eq_sa_drop:0
P0_ALE_BLOCK_DROP:0
P0_ALE_SECURE_DROP:0
P0_ALE_AUTH_DROP:0
P0_ALE_UNKNOWN_UCAST:0
P0_Rale_unknown_ucast_bytes:0
P0_ALE_UNKNOWN_mcast:0
P0_Rale_unknown_mcast_bytes:0
P0_ALE_UNKNOWN_bcast:0
P0_Rale_unknown_bcast_bytes:0
P0_ALE_POL_MATCH:0
P0_ALE_POL_MATCH_RED:0
P0_Rale_pol_match_黄色:0
P0_ALE_mcast_sa_drop:0
P0_ALE_DUAL_VLAN_DROP:0
P0_Rale_len_err_drop:0
P0_ALE_IP_NEXT_HDR_Drop:0
P0_Rale_IPV4_FRAG_DROP:0
P0_RTX_mem_protect_err:0
P0_RTX_pri0:0
P0_RTX_pri1:0
P0_RTX_pri2:0
P0_RTX_pri3:0
P0_RTX_pri4:0
P0_RTX_pri5:0
P0_RTX_pri6:0
P0_RTX_pri7:0
P0_RTX_pri0_bcnt:0
P0_RTX_pri1_bcnt:0
P0_RTX_pri2_bcnt:0
P0_RTX_pri3_bcnt:0
P0_RTX_pri4_bcnt:0
P0_RTX_pri5_bcnt:0
P0_RTX_pri6_bcnt:0
P0_RTX_pri7_bcnt:0
P0_RTX_pri0_DROP:0
P0_RTX_pri1_DROP:0
P0_RTX_pri2_DROP:0
P0_RTX_pri3_DROP:0
P0_RTX_pri4_DROP:0
P0_RTX_pri5_DROP:0
P0_RTX_pri6_DROP:0
P0_RTX_pri7_drop:0
P0_RTX_pri0_DROP_bcnt:0
P0_RTX_pri1_DROP_bcnt:0
P0_RTX_pri2_DROP_bcnt:0
P0_RTX_pri3_DROP_bcnt:0
P0_RTX_pri4_DROP_bcnt:0
P0_RTX_pri5_DROP_bcnt:0
P0_RTX_pri6_DROP_bcnt:0
P0_RTX_pri7_drop_bcnt:0
RX_GOOD_FRAMES:0
RX_BROADCAST_FRAMES:0
RX_MULTICAST_FRAMES:0
RX_PAUSE_FRAMES:0
RX_CRC_ERRORS:0
RX_ALIGN_CODE_ERRORS:0
RX_OMNIGLE_FRAMES:0
RX_Jabber_frames:0
rx_undersize_frames:0
rx_partitions:0
ALE_DROP:0
ALE_OVERLIFN_DROP:0
RX_八 位位组:0
tx_good_frames:39
tx_broadcast_frames:10.
TX_MULTICAST_FRAMES:29
tx_pause_frames:0
tx_defered_frames:0
tx_conflict_frames:0
tx_single_coll_frames:0
tx_mult_coll_frames:0
tx_overtravel_conflicts:0
tx_lay_conflicts:0
RX_IPG_ERROR:0
tx_carrier_sense_errors:0
TX_COBOTS:6551
TX_64B_FRAMES:8.
TX_65_TO_127B_FRAMES:12
TX_128_TO_255B_FRAMES:9.
TX_256_TO_511B_FRAMES:10.
TX_512_TO_1023B_FRAMES:0
TX_1024B_FRAMES:0
NET_COBOTS:6551
rx_bottom_fifo_drop:0
RX_PORT_MASK_DROP:0
rx_top_fifo_drop:0
ALE_RATE_LIMIT_DROP:0
ALE_VID_ENGLISION_DROP:0
ale_da_eq_sa_drop:0
ALE_BLOCK_DROP:0
ALE_SECURE_DROP:0
ALE_AUTH_DROP:0
ALE_UNKNOWN_UCAST: 0
ALE_UNKNOWN_ucast_bytes:0
ALE_UNKNOWN_mcast:0
ALE_UNKNOWN_mcast_bytes:0
ALE_UNKNOWN_bcast:0
ALE_UNKNOWN_bcast_bytes:0
ALE_POL_MATCH:0
ALE_pol_match_red:0
ALE_pol_match_yellow:0
ale_mcast_sa_drop:0
ALE_DUAL_VLAN_DROP:0
ale_len_err_drop:0
ALE_IP_NEXT_HDR_Drop:0
ALE_IPV4_FRAG_DROP:0
iet_rx_assembly_err:0
IET_rx_assembly_ok:0
IET_rx_SMD_err:0
iET_rx_frag:0
IET_TX_HOLD:0
iET_TX_frag:0
tx_mem_protect_err:0
tx_pri0:39
tx_pri1:0
tx_pri2:0
tx_pri3:0
tx_pri4:0
tx_pri5:0
tx_pri6:0
tx_pri7:0
tx_pri0_bcnt:6551
tx_pri1_bcnt:0
tx_pri2_bcnt:0
tx_pri3_bcnt:0
tx_pri4_bcnt:0
tx_pri5_bcnt:0
tx_pri6_bcnt:0
tx_pri7_bcnt:0
tx_pri0_drop:0
tx_pri1_drop:0
tx_pri2_drop:0
tx_pri3_drop:0
tx_pri4_drop:0
tx_pri5_drop:0
tx_pri6_drop:0
tx_pri7_drop:0
tx_pri0_drop_bcnt:0
tx_pri1_drop_bcnt:0
tx_pri2_drop_bcnt:0
tx_pri3_drop_bcnt:0
tx_pri4_drop_bcnt:0
tx_pri5_drop_bcnt:0
tx_pri6_drop_bcnt:0
tx_pri7_drop_bcnt:0

ifconfig
eth0:标志=4163 MTU 1500
iNet 192.168.10.2 网络掩码 255.255.255.0 广播 192.168.10.255
inet6 fe80:::3495:db76:42 ed:e4bc prefixlen 64 scoeid 0x20
以太网 00:22:33:44:55:66 txqueuelen 1000(以太网)
RX 数据包 0 字节 0 (0.0 B)
RX 错误 0 丢弃 0 溢出 0 帧 0
TX 数据包 37 字节 5956 (5.8KiB)
TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0

journalctl | grep eth0
systemd-networkd[640]:eth0:根据可能不可预测的接口名称找到匹配的网络/etc/systemd/network/09-eth.network。
systemd-networkd[640]:eth0:使用/etc/systemd/network/09-eth.network.配置
systemd-networkd[640]:eth0:根据可能不可预测的接口名称找到匹配的网络/etc/systemd/network/09-eth.network。
内核:am65-cpsw-Nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[Micrel KSZ8081 或 KSZ8091](IRQ=POLL)
内核:am65-cpsw-Nuss 8000000.Ethernet eth0:配置 phy/RMII 链路模式
systemd-networkd[640]:eth0:链路接通
网络管理器[639]: [170909793.7933]管理器:(eth0):新以太网设备 (/org/freedesktop/NetworkManager/Devices/2)
网络管理器[639]: [1709097993.7950]设备 (eth0):状态更改:未管理->不可用(原因“管理“、sys-iface-state:“外部“)
内核:am65-cpsw-Nuss 8000000.Ethernet eth0:链路接通 — 100Mbps/full — 流控制 Rx/TX
systemd-networkd[640]:eth0:获得的载体
systemd-networkd[640]:eth0:根据可能不可预测的接口名称找到匹配的网络/etc/systemd/network/09-eth.network。
网络管理器[639]: [1709097997.7505]器件 (eth0):载波:已连接链路
网络管理器[639]: [170909797.7558]器件 (eth0):状态更改:不可用->已断开连接(原因“载波已更改“、sys-iface-state:“已管理“)
网络管理器[639]: [170909797.7717]设备 (eth0):激活:启动连接“有线连接 1“(f8480399-f7c6-39b9-8f60-468fbfe01893)
网络管理器[639]: [170909797.7722]器件 (eth0):状态更改:断开连接->准备(原因“无“、sys-iface-state:“已管理“)
网络管理器[639]: [170909797.7741]器件 (eth0):状态更改:准备->配置(原因“无“、sys-iface-state:“管理“)
网络管理器[639]: [170909797.7812]器件 (eth0):状态更改:config -> ip-config(原因“无“、sys-iface-state:“管理“)
Avahi-daemon[624]:在地址为 fe80::3495:db76:42ed:e4bc 的接口 eth0.ipv6 上加入 mDNS 多播组。
avahi-daemon[624]:用于 mDNS 的新相关接口 eth0.ipv6。
Avahi-daemon[624]:在 eth0 上注册 fe80:::3495:db76:42ed:e4bc 的新地址记录。*。
avahi-daemon[624]:在地址为 192.168.10.2 的接口 eth0.IPv4 上加入 mDNS 多播组。
网络管理器[639]: [17090979997.9627]设备 (eth0):状态更改:ip-config -> ip-check(原因“无“、sys-iface-state:“已管理“)
Avahi-daemon[624]:用于 mDNS 的新相关接口 eth0.IPv4。
Avahi-daemon[624]:在 eth0.IPv4 上注册 192.168.10.2 的新地址记录。
网络管理器[639]: [17090979997.9700]器件 (eth0):状态更改:ip-check ->次要(原因“无“、sys-iface-state:“管理“)
网络管理器[639]: [17090979997.9709]器件 (eth0):状态更改:辅助->已激活(原因“无“、sys-iface-state:“已管理“)
网络管理器[639]: [17090979997.9742] device (eth0):激活:成功、设备已激活。
systemd-networkd[640]:eth0:获得 IPv6LL

我使用的是直接连接到 PC 的交叉电缆、PC 配置为 192.168.10.1 和 255.255.255.0 掩码。

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

    您好、

    您是否能够使用 phy 统计信息在 phy 上看到接收到任何数据包?

    从日志中可以看出、链路似乎已在 100M RMII 全双工模式下成功设置。 但 CPSW IP 没有接收任何数据包、否则我们预计帧会以“rx_good_frames"格“格式递增。 即使帧有一些问题、也应该有一些 err/drop 统计量递增。 但事实并非如此。

    我认为流量甚至没有到达 SoC。 您能否探测 RMII Rx 线路、看看是否有任何活动? 另请检查这种情况下的时钟。

    您是否也可以使用命令“k3conf dump clocks 13“检查时钟转储以检查内部时钟。

    此致、
    Tanmay

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

    您好、Tanmay、

    可能是时钟设置问题所在。 我可以在示波器的线路上看到时钟、但没有设置 RMII、设置 RGMII、这是 Devkit DTS 的剩余部分。 如何更新器件树以设置 RMII 而不是 RGMII 时钟?

    k3conf 转储时钟 13
    ------------------------------------------------------------------------------------ |
    | VERSION INFO |
    ------------------------------------------------------------------------------------ |
    | K3CONF |(版本 0.3-nogit Builded Thu Jul 25 14:13:02 UTC 2024)|
    | SoC | J722S SR1.0 |
    | SYSFW | ABI:4.0(固件版本 0x000a '10.1.6--v10.01.06 (Fiery Fox))|
    ------------------------------------------------------------------------------------ |

    |--------------------------------------------------------------------------------------------------------------------------------------- |
    |器件 ID |时钟 ID |时钟名称|状态|时钟频率|
    |--------------------------------------------------------------------------------------------------------------------------------------- |
    | 13 | 0 | dev_CPSW0_CPPI_CLK_CLK | CLK_STATE_READY | 250000000 |
    | 13 | 1 | dev_CPSW0_CPTS_GENF0 | CLK_STATE_READY | 0 |
    | 13 | 2 | dev_CPSW0_CPTS_GENF1 | CLK_STATE_READY | 0 |
    | 13 | 3 | dev_CPSW0_CPTS_RFT_CLK | CLK_STATE_READY | 500000000 |
    | 13 | 4 | DEV_CPSW0_CPTS_RFT_CLK_PARALT_POSTDIV4_16FF_MAIN_2_HSDIVOUT5_CLK | CLK_STATE_READY | 500000000 |
    | 13 | 5 | DEV_CPSW0_CPTS_RFT_CLK_PARALT_POSTDIV4_16FF_MAIN_0_HSDIVOUT6_CLK | CLK_STATE_READY | 200000000 |
    | 13 | 6 | dev_CPSW0_CPTS_RFT_CLK_PARALT_Board_0_CP_GEMAC_CPTS0_RFT_CLK_OUT | CLK_STATE_READY | 0 |
    | 13 | 8 | dev_CPSW0_CPTS_RFT_CLK_PARALL_Board_0_MCU_EXT_REFCLK0_OUT | CLK_STATE_READY | 0 |
    | 13 | 9 | dev_CPSW0_CPTS_RFT_CLK_PARALT_Board_0_EXT_REFCLK1_OUT | CLK_STATE_READY | 0 |
    | 13 | 10 | dev_CPSW0_CPTS_RFT_CLK_PARALT_WIZ16B2M4CT_MAIN_1_IP1_LN0_TXMCLK | CLK_STATE_READY | 0 |
    | 13 | 11 | DEV_CPSW0_CPTS_RFT_CLK_PARALT_SAM62_PLL_CTRL_WRAP_MAIN_0_CHIP_DIV1_CLK_CLK | CLK_STATE_READY | 500000000 |
    | 13 | 13 | dev_CPSW0_GMII1_MR_CLK | CLK_STATE_READY | 25000000 |
    | 13 | 14 | dev_CPSW0_GMII1_MT_CLK | CLK_STATE_READY | 25000000 |
    | 13 | 15 | dev_CPSW0_GMII2_MR_CLK | CLK_STATE_READY | 25000000 |
    | 13 | 16 | dev_CPSW0_GMII2_MT_CLK | CLK_STATE_READY | 25000000 |
    | 13 | 17 | dev_CPSW0_GMII_RFT_CLK | CLK_STATE_READY | 125000000 |
    | 13 | 18 | dev_CPSW0_MDIO_MDCLK_O | CLK_STATE_READY | 0 |
    | 13 | 19 | DEV_CPSW0_RGMII_25_CLK | CLK_STATE_READY | 250000000 |
    | 13 | 20 | dev_CPSW0_RGMII_50_CLK | CLK_STATE_READY | 50000000 |
    | 13 | 21 | dev_CPSW0_RGMII_5_CLK | CLK_STATE_READY | 5000000 |
    | 13 | 22 | dev_CPSW0_RMII1_MHz_50_CLK | CLK_STATE_READY | 0 |
    | 13 | 23 | dev_CPSW0_RMII2_MHz_50_CLK | CLK_STATE_READY | 0 |
    | 13 | 24 | dev_CPSW0_SERDES1_REFCLK | CLK_STATE_READY | 0 |
    | 13 | 25 | DEV_CPSW0_SERDES1_RXCLK | CLK_STATE_READY | 0 |
    | 13 | 26 | dev_CPSW0_SERDES1_RXFCLK | CLK_STATE_READY | 0 |
    | 13 | 27 | DEV_CPSW0_SERDES1_TXCLK | CLK_STATE_READY | 0 |
    | 13 | 28 | DEV_CPSW0_SERDES1_TXFCLK | CLK_STATE_READY | 0 |
    | 13 | 29 | dev_CPSW0_SERDES1_TXMCLK | CLK_STATE_READY | 0 |
    | 13 | 30 | dev_CPSW0_SERDES2_REFCLK | CLK_STATE_READY | 0 |
    | 13 | 31 | DEV_CPSW0_SERDES2_RXCLK | CLK_STATE_READY | 0 |
    | 13 | 32 | DEV_CPSW0_SERDES2_RXFCLK | CLK_STATE_READY | 0 |
    | 13 | 33 | DEV_CPSW0_SERDES2_TXCLK | CLK_STATE_READY | 0 |
    | 13 | 34 | dev_CPSW0_SERDES2_TXFCLK | CLK_STATE_READY | 0 |
    | 13 | 35 | dev_CPSW0_SERDES2_TXMCLK | CLK_STATE_READY | 0 |
    |--------------------------------------------------------------------------------------------------------------------------------------- |

    我在器件树中看到:
    cpsw3g:以太网@8000000 {
    ...
    Clocks =<&K3_CLKS 13 0>;
    Assigned-clocks =<&K3_CLKS 13 3>;
    assigned-clock-parter =<&K3_CLKS 13 11>;

    我在第一次通信期间看到 RMII RXD0/RXD1 引脚上的流量、然后停止。

    ping 192.168.10.2

    使用 32 字节数据 ping 192.168.10.2:
    从 192.168.10.1 回复:无法访问目标主机。 此处为<- RXD0/RXD1 波形
    请求超时。 <-无 RXD0/RXD1 波形

    如果我从 AM67 ping 主机、我会在 RXD0/RXD1 线路上获得一致的通信。
    TXD0/TXD1 似乎正常工作、RXD0/RXD1 上的流量在某处没有被消耗。

    Windows 主机上的 ARP -A 显示 AM67 Mac 地址、但我看到 AM67 上没有使用 tcpdump 接收到流量。

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

    您好、

    RMII 的时钟是来自内部时钟、还是您已将外部时钟连接到“RMII_REF_CLK"引“引脚?

    如果使用了内部 RMII 时钟、您能否确认在原理图中环回到时钟。

    在内部 clk 环回的情况下、您能否确认寄存器 0x00108010 的值为 0。

    此致、
    Tanmay

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

    你好 Tanmay、我认为这是一个外部时钟。
    我们将引脚 AE27、RMII1_REF_CLK 连接到 phy 芯片、我看到它在 50MHz 处振荡。

    devmem2 0x00108010
    /dev/mem 已打开。
    地址 0xffffbade8000 映射的存储器。
    读取地址 0x00108010 (0xffffbade8010):0x00000000


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

    您好、Tanmay、这方面是否有任何更新?

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

    您好、Tanmay、

    我注意到 phy 配置了 ti、am654-phy-gmii-SEL、这是否可能导致问题?
     Rx DMA 参考 0x4600 和 phy 寄存器 0x4044 是否相关?

    分配给我的时钟和时钟父母看起来可以:
    Clocks =<&K3_CLKS 13 0>;//dev_CPSW0_CPPI_CLK_CLK
    Assigned-clocks =<&K3_CLKS 13 3>;//dev_CPSW0_CPTS_RFT_CLK
    分配的时钟父级=<&K3_CLKS 13 11>;//dev_CPSW0_CPTS_RFT_CLK_PARENAL_SK-AM62-PLL_CTRL_WRAP_MAIN_0_CHIP_DIV1_CLK_CLK

    这是我的引脚配置。
    rmii1_pins_default:rmii1-default-pins{
    pinctrl-single、pins =<
    J722S_IOPAD (0x0130、PIN_INPUT、1)/*(AG26) RGMII1_TXC.RMII1_CRS_DV */
    J722S_IOPAD (0x0148、PIN_INPUT、1)/*(AE27) RGMII1_RXC.RMII1_REF_CLK */
    J722S_IOPAD (0x014c、PIN_INPUT、1)/*(AC25) RGMII1_RD0.RMII1_RXD0 */
    J722S_IOPAD (0x0150、PIN_INPUT、1)/*(AD27) RGMII1_RD1.RMII1_RXD1 */
    J722S_IOPAD (0x0144、PIN_INPUT、1)/*(AD23) RGMII1_RX_CTL.RMII1_RX_ER */
    J722S_IOPAD (0x0134、PIN_OUTPUT、1)/*(AF27) RGMII1_TD0.RMII1_TXD0 */
    J722S_IOPAD (0x0138、PIN_OUTPUT、1)/*(AE23) RGMII1_TD1.RMII1_TXD1 */
    J722S_IOPAD (0x012c、PIN_OUTPUT、1)/*(AF25) RGMII1_TX_CTL.RMII1_TX_EN */
    >;
    };
    MDIO_PINS_DEFAULT:MAIN_MDIO-DEFAULT_PINS{
    pinctrl-single、pins =<
    J722S_IOPAD (0x0160、PIN_OUTPUT、0)/*(AC24) MDIO0_MDC */
    J722S_IOPAD (0x015c、PIN_INPUT、0)/*(AD25) MDIO0_MDIO */
    >;
    };

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

    您好、

    很抱歉耽误你的时间。  

    您好、Tanmay、我认为这是一个外部时钟。
    我们将引脚 AE27、RMII1_REF_CLK 连接到 phy 芯片、我看到它在 50MHz 处振荡。
    [/报价]

    如果你能看到线路在 50MHz 振荡,这是一个很好的迹象。 它还消除了 phy-gmii-SEL 驱动程序对设置任何内容的依赖关系。 它仅在内部时钟模式下需要。

    当您收到任何帧时、您是否会看到“ethtool -S 的输出中有任何下降在递增 “?

    您能否共享为此 CPSW 节点所做的器件树更新。

    每个端口都在地址处有 MAC 控制和状态寄存器:

    • 控制:0x08000330h +(j*0x100)、其中 j 是端口号
    • 状态:  0x08000334h +(j*0x100)、其中 j 是端口号

    您能否检查一下 RMII 端口的寄存器值是多少?

    此致、
    Tanmay

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

    您好、Tanmay、

    我通过移除我们的一个 33 欧姆系列电阻器、确认了 50MHz 来自芯片。
    我找到了另一篇文章说所有系列 33 欧姆需要移除,所以我移除了它们,它似乎没有什么不同。

    没有丢弃的帧。

    控制和状态寄存器将返回全 0
    Excel 工作表显示的是寄存器的+公式、您是否知道我可以在哪里找到公式值 (0x100) 以供将来参考?

     IFCTL_A 是否应设置为 1?

    root@j722s-evm:~# devmem2 0x08000330
    /dev/mem 已打开。
    存储器映射到地址 0xffff85968000。
    读取地址 0x08000330 (0xffff85968330):0x00000000
    root@j722s-evm:~# devmem2 0x08000334
    /dev/mem 已打开。
    映射到地址 0xffff8117e000 的存储器。
    读取地址 0x08000334 (0xff8117e334):0x00000000
    root@j722s-evm:~# devmem2 0x08000430
    /dev/mem 已打开。
    映射到地址 0xffffb3723000 的存储器。
    在地址 0x08000430 (0xffffb3723430) 读取:0x00000000
    root@j722s-evm:~# devmem2 0x08000434
    /dev/mem 已打开。
    映射到地址 0xffad46c000 的存储器。
    读取地址 0x08000434 (0xffffad46c434):0x00000000
    root@j722s-evm:~# devmem2 0x08000530
    /dev/mem 已打开。
    映射到地址 0xff9a4cb000 的存储器。
    读取地址 0x08000530 (0xff9a4cb530):0x00000000
    root@j722s-evm:~# devmem2 0x08000534
    /dev/mem 已打开。
    存储器映射到地址 0xffff954fe000。
    读取地址 0x08000534 (0xffff954fe534):0x00000000

    以下是器件树变更。
    Micrel 的更改大多是从 IMX DTS 复制而来的。 clock_ksz8081_out 未使用、我认为它应该去某个地方。

    &cpsw3g{
    状态=“正常“;
    pinctrl-names =“default";“;
    pinctrl-0 =<&rmii1_pins_default>;
    };

    &cpsw3g_mdio{
    状态=“正常“;
    pinctrl-names =“default";“;
    pinctrl-0 =<&MDIO_pin_default>;

    cpsw3g_phy0:ethernet-phy@0{
    RESET_GPIOs =<&MAIN_GPIO0 60 GPIO_ACTIVE_LOW>;
    reset-assert-us =<10000>;
    reset-deassert-us =<300>;
    Clocks =<&clock_ksz8081_in>;
    时钟名称=“RMII-ref";“;
    reg =<0>;
    };
    };

    &cpsw_port1{
    PHY-MODE =“RMII";“;
    phy-handle =<&cpsw3g_phy0>;
    };

    &{/}{
    clock_ksz8081_in:clock-ksz8081-in{
    兼容=“固定时钟“;
    #clock-cells =<0>;
    时钟频率=<25000000>;
    };

    clock_ksz8081_out:clock-ksz8081-out{
    兼容=“固定时钟“;
    #clock-cells =<0>;
    时钟频率=<50000000>;
    clock-output-names =“enet1_ref_pad";“;
    };

    };

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

    您好、Tanmay、

    即使 devmem2 似乎没有显示寄存器、也应该设置值?
    我修改了代码、我认为它正在尝试在函数中设置它们:  
    am65_cpsw_Nuss_mac_link_up

    [ 9.839619] am65-cpsw-Nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[Micrel KSZ8081 或 KSZ8091](IRQ=POLL)
    [ 9.839682] am65-cpsw-Nuss 8000000.Ethernet eth0:配置 phy/RMII 链路模式
    [ 14.946640] am65-cpsw-Nuss 8000000.Ethernet:[2121]:未设置 CPSW_SL_CTL_EXT_EN
    [ 14.946689] am65-cpsw-Nuss 8000000.Ethernet:[2125]:设置 CPSW_SL_CTL_IFCTL_A
    [ 14.946697] am65-cpsw-Nuss 8000000.Ethernet:[2136]:设置 CPSW_SL_CTL_TX_FLUX_EN
    [ 14.946702] am65-cpsw-Nuss 8000000.Ethernet:[2144]:设置 CPSW_SL_CTL_RX_FLUX_EN
    [14.947394] am65-cpsw-Nuss 8000000.Ethernet eth0:链路接通 — 100Mbps/full — 流控制 Rx/TX

    使用代码中的偏移、我在这里找到了它们:

    devmem2 0x8022330
    /dev/mem 已打开。
    映射到地址 0xffff8daae000 的存储器。
    读取地址 0x08022330 (0xff8daae330):0x00008039

    devmem2 0x8022334
    /dev/mem 已打开。
    映射到地址 0xffffa0962000 的存储器。
    在地址 0x08022334 (0xffffa0962334) 处读取:0xF0000000

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

    我发现我的引脚配置名称命名不正确/编号。 从 RGMII 切换到 RMII 期间混乱不堪。
    应低于:
    J722S_IOPAD (0x0130、PIN_INPUT、1)/*(AG26) RGMII1_TXC.RMII1_CRS_DV */
    J722S_IOPAD (0x0148、PIN_INPUT、1)/*(AE27) RGMII1_RXC.RMII1_REF_CLK */
    J722S_IOPAD (0x014c、PIN_INPUT、1)/*(AC25) RGMII1_RD0.RMII1_RXD0 */
    J722S_IOPAD (0x0150、PIN_INPUT、1)/*(AD27) RGMII1_RD1.RMII1_RXD1 */
    J722S_IOPAD (0x0144、PIN_INPUT、1)/*(AD23) RGMII1_RX_CTL.RMII1_RX_ER */
    J722S_IOPAD (0x0134、PIN_OUTPUT、1)/*(AF27) RGMII1_TD0.RMII1_TXD0 */
    J722S_IOPAD (0x0138、PIN_OUTPUT、1)/*(AE23) RGMII1_TD1.RMII1_TXD1 */
    J722S_IOPAD (0x012c、PIN_OUTPUT、1)/*(AF25) RGMII1_TX_CTL.RMII1_TX_EN */