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.

[参考译文] AM62A3-Q1:连接 Marvell 88E1512 IC

Guru**** 2554990 points
Other Parts Discussed in Thread: AM62A3

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1388597/am62a3-q1-interfacing-with-marvell-88e1512-ic

器件型号:AM62A3-Q1
主题中讨论的其他器件:AM62A3

工具与软件:

您好、TI:

我们正在尝试 使用 AM62a3配置88E1512。 以下是我的设备树配置:

 &cpsw3g {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_rgmii1_pins_default>;
};

&cpsw_port1 {
	status = "okay";
	phy-mode = "rgmii";
	phy-handle = <&cpsw3g_phy0>;
	mac-address = [00 00 00 00 00 00]; // newly added 
	phys = <&phy_gmii_sel 1>; // newly added

};

&cpsw3g_mdio {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mdio1_pins_default>;

	cpsw3g_phy0: ethernet-phy@0 {
		reg = <0>;
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
		ti,min-output-impedance;
	};
};

 &main_pmx0 {

	main_mdio1_pins_default: main-mdio1-pins-default {
		pinctrl-single,pins = <
			AM62AX_IOPAD(0x160, PIN_OUTPUT, 0) /* (V12) MDIO0_MDC */
			AM62AX_IOPAD(0x15c, PIN_INPUT, 0) /* (V13) MDIO0_MDIO */
		>;
	};

	main_rgmii1_pins_default: main-rgmii1-pins-default {
		pinctrl-single,pins = <
			AM62AX_IOPAD(0x14c, PIN_INPUT, 0) /* (AB16) RGMII1_RD0 */
			AM62AX_IOPAD(0x150, PIN_INPUT, 0) /* (V15) RGMII1_RD1 */
			AM62AX_IOPAD(0x154, PIN_INPUT, 0) /* (W15) RGMII1_RD2 */
			AM62AX_IOPAD(0x158, PIN_INPUT, 0) /* (V14) RGMII1_RD3 */
			AM62AX_IOPAD(0x148, PIN_INPUT, 0) /* (AA16) RGMII1_RXC */
			AM62AX_IOPAD(0x144, PIN_INPUT, 0) /* (AA15) RGMII1_RX_CTL */
			AM62AX_IOPAD(0x134, PIN_INPUT, 0) /* (Y17) RGMII1_TD0 */
			AM62AX_IOPAD(0x138, PIN_INPUT, 0) /* (V16) RGMII1_TD1 */
			AM62AX_IOPAD(0x13c, PIN_INPUT, 0) /* (Y16) RGMII1_TD2 */
			AM62AX_IOPAD(0x140, PIN_INPUT, 0) /* (AA17) RGMII1_TD3 */
			AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */
			AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */
		    >;
	  };
};

但无法检测到88e1512、也无法 ping 通。
以下是 dmesg 日志:
root@am62axx-evm:~# dmesg | grep mdio
[    0.317374] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    0.318710] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver unknown
[   11.235574] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [Generic PHY] (irq=POLL)
root@am62axx-evm:~# dmesg | grep 88e 
root@am62axx-evm:~# dmesg | grep marvell
root@am62axx-evm:~# dmesg | grep 88E    
root@am62axx-evm:~# dmesg | grep ETH0   
root@am62axx-evm:~# dmesg | grep eth 
[    0.000000] psci: probing for conduit method from DT.
[    0.178100] optee: probing for conduit method.
[    0.318786] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    0.319016] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    0.319026] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    0.319823] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    0.321726] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    2.237029] systemd[1]: /etc/systemd/system/sync-clocks.service:11: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[   11.235574] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [Generic PHY] (irq=POLL)
[   11.235627] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[   14.626716] udc 31000000.usb: binding gadget driver [g_ether]
[   14.645279] using random self ethernet address
[   14.645311] using random host ethernet address
[   14.656405] using random self ethernet address
[   14.656417] using random host ethernet address
[   14.656464] g_ether gadget.0: adding config #2 'RNDIS'/00000000ed73a7a5
[   14.656523] g_ether gadget.0: adding 'rndis'/0000000049e17a52 to config 'RNDIS'/00000000ed73a7a5
[   14.656589] g_ether gadget.0: RNDIS: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[   14.656605] g_ether gadget.0: cfg 2/00000000ed73a7a5 speeds: high full
[   14.656620] g_ether gadget.0:   interface 0 = rndis/0000000049e17a52
[   14.656633] g_ether gadget.0:   interface 1 = rndis/0000000049e17a52
[   14.656653] g_ether gadget.0: adding config #1 'CDC Ethernet (ECM)'/00000000e9397a06
[   14.656671] g_ether gadget.0: adding 'cdc_ethernet'/000000005a3fdf00 to config 'CDC Ethernet (ECM)'/00000000e9397a06
[   14.656703] g_ether gadget.0: CDC Ethernet: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[   14.656717] g_ether gadget.0: cfg 1/00000000e9397a06 speeds: high full
[   14.656732] g_ether gadget.0:   interface 0 = cdc_ethernet/000000005a3fdf00
[   14.656745] g_ether gadget.0:   interface 1 = cdc_ethernet/000000005a3fdf00
[   14.656761] g_ether gadget.0: Ethernet Gadget, version: Memorial Day 2008
[   14.656773] g_ether gadget.0: g_ether ready
[   14.882544] usb0: eth_open

您能 为相同的驱动程序代码和设备树配置提供建议吗?

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

    您好、Monica、

    首先、我注意到您在器件树文件中使用了&cpsw3g_MDIO 节点中的"DP83867_RGMIIDCTL_2_00_Ns"和"DP83867_PHYCR_FIFO_DEPTH_4_B_NIB"。 请注意、这些示例适用于 TI DP83867 PHY、而您曾指出使用的是 Marvell PHY 88E1512。 应该有对应于 Marvell PHY 的等效器件;但由于该器件不是 TI 器件、因此我们无法就此提供更详细的反馈。

    此外、我从您的引导日志中注意到以下内容、这通常表示您未在内核配置中启用 Marvell PHY 驱动程序、因此内核无法连接到特定的 phy 驱动程序。 请确保您的内核配置包含您计划使用的 PHY 驱动程序。

    [  11.235574] am65-cpsw-nuss 8000000.ethernet eth0:phy [8000f00.mDIO:00]驱动程序[通用 PHY](IRQ=poll)

    您是否还可以在 ping 前后提供"ethtool eth0"和"ethtool -S eth0"的结果。  

    最后、您在使用什么 SDK?

    -道林

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

    尊敬的 Daolin:
      现在、在内核配置中启用后、我可以检测到 Marvell PHY 驱动程序。 我指 的是以下链接:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1270408/am623-dss-dpi-display-on-am62x/4811783?tisearch=e2e-sitesearch&keymatch=DPI%252520dts#4811783

    从而可以通过以太网执行 Ping 操作。
    下面是 ethtool 命令的日志:  

    root@am62axx-evm:/opt/bmit/app# dmesg | grep mdio
    [    0.318234] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    0.319884] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver Marvell 88E1510
    [   12.152596] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [Marvell 88E1510] (irq=POLL)
    root@am62axx-evm:/opt/bmit/app# ethtool eth0
    Settings for eth0:
    	Supported ports: [ TP	 MII	 FIBRE ]
    	Supported link modes:   10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	Supported pause frame use: Symmetric
    	Supports auto-negotiation: Yes
    	Supported FEC modes: Not reported
    	Advertised link modes:  10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	Advertised pause frame use: Symmetric
    	Advertised auto-negotiation: Yes
    	Advertised FEC modes: Not reported
    	Speed: Unknown!
    	Duplex: Unknown! (255)
    	Auto-negotiation: on
    	Port: Twisted Pair
    	PHYAD: 0
    	Transceiver: external
    	MDI-X: Unknown
    	Supports Wake-on: pg
    	Wake-on: d
            Current message level: 0x000020f7 (8439)
                                   drv probe link ifdown ifup rx_err tx_err hw
    	Link detected: no
    root@am62axx-evm:/opt/bmit/app# ethtool -S eth0
    NIC statistics:
         p0_rx_good_frames: 0
         p0_rx_broadcast_frames: 0
         p0_rx_multicast_frames: 0
         p0_rx_crc_errors: 0
         p0_rx_oversized_frames: 0
         p0_rx_undersized_frames: 0
         p0_ale_drop: 0
         p0_ale_overrun_drop: 0
         p0_rx_octets: 0
         p0_tx_good_frames: 0
         p0_tx_broadcast_frames: 0
         p0_tx_multicast_frames: 0
         p0_tx_octets: 0
         p0_tx_64B_frames: 0
         p0_tx_65_to_127B_frames: 0
         p0_tx_128_to_255B_frames: 0
         p0_tx_256_to_511B_frames: 0
         p0_tx_512_to_1023B_frames: 0
         p0_tx_1024B_frames: 0
         p0_net_octets: 0
         p0_rx_bottom_fifo_drop: 0
         p0_rx_port_mask_drop: 0
         p0_rx_top_fifo_drop: 0
         p0_ale_rate_limit_drop: 0
         p0_ale_vid_ingress_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_ale_unknown_ucast_bytes: 0
         p0_ale_unknown_mcast: 0
         p0_ale_unknown_mcast_bytes: 0
         p0_ale_unknown_bcast: 0
         p0_ale_unknown_bcast_bytes: 0
         p0_ale_pol_match: 0
         p0_ale_pol_match_red: 0
         p0_ale_pol_match_yellow: 0
         p0_ale_mcast_sa_drop: 0
         p0_ale_dual_vlan_drop: 0
         p0_ale_len_err_drop: 0
         p0_ale_ip_next_hdr_drop: 0
         p0_ale_ipv4_frag_drop: 0
         p0_tx_mem_protect_err: 0
         p0_tx_pri0: 0
         p0_tx_pri1: 0
         p0_tx_pri2: 0
         p0_tx_pri3: 0
         p0_tx_pri4: 0
         p0_tx_pri5: 0
         p0_tx_pri6: 0
         p0_tx_pri7: 0
         p0_tx_pri0_bcnt: 0
         p0_tx_pri1_bcnt: 0
         p0_tx_pri2_bcnt: 0
         p0_tx_pri3_bcnt: 0
         p0_tx_pri4_bcnt: 0
         p0_tx_pri5_bcnt: 0
         p0_tx_pri6_bcnt: 0
         p0_tx_pri7_bcnt: 0
         p0_tx_pri0_drop: 0
         p0_tx_pri1_drop: 0
         p0_tx_pri2_drop: 0
         p0_tx_pri3_drop: 0
         p0_tx_pri4_drop: 0
         p0_tx_pri5_drop: 0
         p0_tx_pri6_drop: 0
         p0_tx_pri7_drop: 0
         p0_tx_pri0_drop_bcnt: 0
         p0_tx_pri1_drop_bcnt: 0
         p0_tx_pri2_drop_bcnt: 0
         p0_tx_pri3_drop_bcnt: 0
         p0_tx_pri4_drop_bcnt: 0
         p0_tx_pri5_drop_bcnt: 0
         p0_tx_pri6_drop_bcnt: 0
         p0_tx_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_oversized_frames: 0
         rx_jabber_frames: 0
         rx_undersized_frames: 0
         rx_fragments: 0
         ale_drop: 0
         ale_overrun_drop: 0
         rx_octets: 0
         tx_good_frames: 0
         tx_broadcast_frames: 0
         tx_multicast_frames: 0
         tx_pause_frames: 0
         tx_deferred_frames: 0
         tx_collision_frames: 0
         tx_single_coll_frames: 0
         tx_mult_coll_frames: 0
         tx_excessive_collisions: 0
         tx_late_collisions: 0
         rx_ipg_error: 0
         tx_carrier_sense_errors: 0
         tx_octets: 0
         tx_64B_frames: 0
         tx_65_to_127B_frames: 0
         tx_128_to_255B_frames: 0
         tx_256_to_511B_frames: 0
         tx_512_to_1023B_frames: 0
         tx_1024B_frames: 0
         net_octets: 0
         rx_bottom_fifo_drop: 0
         rx_port_mask_drop: 0
         rx_top_fifo_drop: 0
         ale_rate_limit_drop: 0
         ale_vid_ingress_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: 0
         tx_pri1: 0
         tx_pri2: 0
         tx_pri3: 0
         tx_pri4: 0
         tx_pri5: 0
         tx_pri6: 0
         tx_pri7: 0
         tx_pri0_bcnt: 0
         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
    

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

    您好、Monica、

    我认为您可能链接了另一个线程、我看到的线程关于显示、而不是以太网

    我看到 ethtool eth0命令的以下输出、这表示在测试的器件 eth0端口与其链接伙伴之间没有连接。 您能描述当前的网络拓扑吗? 即、您连接到 eth0端口了什么?

    检测到链路:否

    -道林

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

    您好!
    我们参考以下链接:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1295099/tda4vm-cpsw0-is-unable-to-ping-to-the-external-network

    我们使用对等连接。 以下是硬件 配置:

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

    您好、Monica、  

    感谢您共享链路和硬件配置。 由于您使用的是对等连接、您是否使用 Linux 主机 PC 作为链接伙伴? 如果是、您可以选中"ethtool "以查看是否检测到链路?

    您链接的另一个线程中的分辨率似乎在 PHY 上启用了 RX 延迟。 如前所述、您是否已确保将 DP83867的以下属性更改为 Marvell PHY、并检查是否需要为 Marvell PHY 添加 RX 延迟?

    首先、我注意到在您的设备树文件中、您在&cp3g_MDIO 节点中使用了"DP83867_RGMIIDCTL_2_00_NS"和"DP83867_PHYCR_FIFO_DEPTH_4_B_NIB"。 请注意、这些示例适用于 TI DP83867 PHY、而您曾指出使用的是 Marvell PHY 88E1512。 应该有对应于 Marvell PHY 的等效器件;但由于它不是 TI 器件、因此我们无法就此提供更详细的反馈。[/QUOT]

    -道林