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.

[参考译文] AM6442:您好、您可以验证 PRU_ICSSG1以太网的器件树吗?

Guru**** 2487425 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1441025/am6442-hi-can-you-please-verify-device-tree-for-pru_icssg1-ethernet

器件型号:AM6442

工具与软件:

您好、一直在尝试在 AM6442上启动以太网。 我们在 PRU_ICSSG1上使用 RGMII 端口。 在初始化期间、出现以下错误:   

[   11.753582] icssg-prueth icssg1-eth: port 2: using random MAC addr: ae:b4:6b:b9:81:11
[   11.753635] icssg-prueth icssg1-eth: registering netdevs
[   11.754561] icssg-prueth icssg1-eth: couldn't connect to phy ethernet-phy@1
[   11.754583] icssg-prueth icssg1-eth: can't connect to MII0 PHY, error --19 (deferring)


您能否验证下面连接的设备树:
	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x00b8, PIN_INPUT, 2)	/* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
			AM64X_IOPAD(0x00bc, PIN_INPUT, 2)	/* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
			AM64X_IOPAD(0x00c0, PIN_INPUT, 2)	/* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
			AM64X_IOPAD(0x00c4, PIN_INPUT, 2)	/* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
			AM64X_IOPAD(0x00c8, PIN_INPUT, 2)	/* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
			AM64X_IOPAD(0x00d0, PIN_INPUT, 2)	/* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
			AM64X_IOPAD(0x00e4, PIN_OUTPUT, 2)	/* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
			AM64X_IOPAD(0x00e8, PIN_OUTPUT, 2)	/* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
			AM64X_IOPAD(0x00ec, PIN_OUTPUT, 2)	/* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
			AM64X_IOPAD(0x00f0, PIN_OUTPUT, 2)	/* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
			AM64X_IOPAD(0x00f4, PIN_OUTPUT, 2)	/* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
			AM64X_IOPAD(0x00f8, PIN_OUTPUT, 2)	/* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
		>;
	};

	icssg1_rgmii2_pins_default: icssg1-rgmii2-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0108, PIN_INPUT, 2)	/* (W11) PRG1_PRU1_GPO0.PRG1_RGMII2_RD0 */
			AM64X_IOPAD(0x010c, PIN_INPUT, 2)	/* (V11) PRG1_PRU1_GPO1.PRG1_RGMII2_RD1 */
			AM64X_IOPAD(0x0110, PIN_INPUT, 2)	/* (AA12) PRG1_PRU1_GPO2.PRG1_RGMII2_RD2 */
			AM64X_IOPAD(0x0114, PIN_INPUT, 2)	/* (Y12) PRG1_PRU1_GPO3.PRG1_RGMII2_RD3 */
			AM64X_IOPAD(0x0118, PIN_INPUT, 2)	/* (W12) PRG1_PRU1_GPO4.PRG1_RGMII2_RX_CTL */
			AM64X_IOPAD(0x0120, PIN_INPUT, 2)	/* (U11) PRG1_PRU1_GPO6.PRG1_RGMII2_RXC */
			AM64X_IOPAD(0x0134, PIN_OUTPUT, 2)	/* (AA10) PRG1_PRU1_GPO11.PRG1_RGMII2_TD0 */
			AM64X_IOPAD(0x0138, PIN_OUTPUT, 2)	/* (V10) PRG1_PRU1_GPO12.PRG1_RGMII2_TD1 */
			AM64X_IOPAD(0x013c, PIN_OUTPUT, 2)	/* (U10) PRG1_PRU1_GPO13.PRG1_RGMII2_TD2 */
			AM64X_IOPAD(0x0140, PIN_OUTPUT, 2)	/* (AA11) PRG1_PRU1_GPO14.PRG1_RGMII2_TD3 */
			AM64X_IOPAD(0x0144, PIN_OUTPUT, 2)	/* (Y11) PRG1_PRU1_GPO15.PRG1_RGMII2_TX_CTL */
			AM64X_IOPAD(0x0148, PIN_OUTPUT, 2)	/* (AA4) PRG1_PRU1_GPO16.PRG1_RGMII2_TXC */
		>;
	};
	
	
	&icssg1_mdio {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&icssg1_mdio_pins_default &clkout1_pins_default>;

	icssg1_phy1: ethernet-phy@1 {
		status = "okay";
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <0x1>;
		reset-gpios = <&main_gpio1 17 GPIO_ACTIVE_LOW>;
		reset-assert-us = <1000>;
		reset-deassert-us = <1000>;
	};

	icssg1_phy2: ethernet-phy@2 {
		status = "okay";
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <0x0>;
		reset-gpios = <&main_gpio1 17 GPIO_ACTIVE_LOW>;
		reset-assert-us = <1000>;
		reset-deassert-us = <1000>;
	};
};

icssg1_eth: icssg1-eth {
		compatible = "ti,am642-icssg-prueth";
		pinctrl-names = "default";
		pinctrl-0 = <&icssg1_rgmii1_pins_default &icssg1_rgmii2_pins_default>;

		sram = <&oc_sram>;
		ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";

		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
				      <2>,
				      <2>,
				      <2>,	/* MII mode */
				      <2>,
				      <2>;

		ti,mii-g-rt = <&icssg1_mii_g_rt>;
		ti,mii-rt = <&icssg1_mii_rt>;
		ti,iep = <&icssg1_iep0>, <&icssg1_iep1>;

		interrupt-parent = <&icssg1_intc>;
		interrupts = <24 0 2>, <25 1 3>;
		interrupt-names = "tx_ts0", "tx_ts1";

		dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
		       <&main_pktdma 0xc201 15>, /* egress slice 0 */
		       <&main_pktdma 0xc202 15>, /* egress slice 0 */
		       <&main_pktdma 0xc203 15>, /* egress slice 0 */
		       <&main_pktdma 0xc204 15>, /* egress slice 1 */
		       <&main_pktdma 0xc205 15>, /* egress slice 1 */
		       <&main_pktdma 0xc206 15>, /* egress slice 1 */
		       <&main_pktdma 0xc207 15>, /* egress slice 1 */
		       <&main_pktdma 0x4200 15>, /* ingress slice 0 */
		       <&main_pktdma 0x4201 15>; /* ingress slice 1 */
		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
			    "rx0", "rx1";

		ethernet-ports {
			#address-cells = <1>;
			#size-cells = <0>;
			icssg1_emac0: port@0 {
				reg = <0>;
				phy-handle = <&icssg1_phy1>;
				phy-mode = "rgmii-txid";
				ti,syscon-rgmii-delay = <&main_conf 0x4110>;
				/* Filled in by bootloader */
				local-mac-address = [00 00 00 00 00 00];
			};

			icssg1_emac1: port@1 {
				reg = <1>;
				phy-handle = <&icssg1_phy2>;
				phy-mode = "rgmii-txid";
				ti,syscon-rgmii-delay = <&main_conf 0x4114>;
				/* Filled in by bootloader */
				local-mac-address = [00 00 00 00 00 00];
			};
		};
	};
};


我们使用 phy。 我们将使用内核6.11和自定义 Yocto 构建。

谢谢

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

    您好!

    首先、设定支持期望:我们可以在 e2e 论坛上支持 TI SDK 版本、但我们不支持有关非 TI Linux 版本的问题。

    TI 尚未发布内核5.17版本、我怀疑 ICSSG PRU 以太网驱动程序没有针对该内核版本进行上溢。 您可能不具备在该软件版本上尝试执行的操作的驱动程序支持。

    除此之外、您使用的是 MII 还是 RGMII 连接? devicetree 中的 phy-mode 设置为 RgmII-txid。

    此致、

    Nick

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

    您好、Nick。 感谢您的答复。 我使用 RGMII、

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

    错误代码19表示"无此类设备"。 Linux 驱动程序正在寻找它认为不存在的器件。

    在继续之前、请为我提供您所使用的 Linux 版本的 URL。 我想检查上面是否有 PRU 以太网驱动程序。

    此致、

    Nick

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

    您好!  
    https://github.com/torvalds/linux/tree/v6.11-rc2

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

    您好 Srivatsa:

    为了确认、您使用的是上游内核 V6.11而不是内核5.17?

    您还可以从 EVM 终端为我提供一个 uname -A、以确认 EVM 上运行的确切版本。

    此致、

    Nick