主题中讨论的其他器件: SysConfig、 TMDS64EVM
工具与软件:
您好、TI:
我们正在设计 AM6442定制电路板、并希望启用5个 RGMII 以太网接口。
我们使用 A53 Linux SDK"10.00.07.04"、我们想了解启用5个 RGMII 以太网接口是否存在任何限制。
谢谢!
Prathibha
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.
您好、Prathibha、
[报价 userid="409809" url="~/support/processors-group/processors/f/processors-forum/1476900/am6442-how-many-rgmii-ethernet-can-be-enabled-together "]我们正在设计 AM6442定制电路板、并希望启用5个 RGMII 以太网接口。 [报价]您使用哪种 AM6442封装(即 ALV?)
对于5个以太网接口中有多少个必须是 CPSW 或 PRU_ICSSG、您有什么要求吗?
如果对 CPSW 或 PRU_ICSSG 没有特定要求、则连接的系统配置示例是5个 RGMII 接口的组合、使用1个 CPSW 和4个 PRU_ICSSG 接口(AM64x ALV 封装)。 请注意、这是一个非常简单的示例、意味着仅启用 MDIO 和 RGMII 引脚、未启用 CPSW CPTS 和 PRU_ICSSG IEP 相关引脚、这可能与您的最终应用相关、也可能不相关。 经验法则是使用 TI 系统配置工具来检查启用5个 RGMII 以太网接口时是否存在任何引脚多路复用冲突。
e2e.ti.com/.../am64x_2D00_alv_2D00_5_2D00_port_2D00_ethernet_2D00_example.syscfg
我还展示了对于此特定示例、关联的 dts 引脚多路复用配置。
/* This file was auto-generated by TI PinMux on 2/20/2025 at 10:52:38 AM. */
/* This file should only be used as a reference. Some pins/peripherals, */
/* depending on your use case, may need additional configuration. */
&main_pmx0 {
mycpsw1_pins_default: mycpsw1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* (V6) PRG0_PRU1_GPO10.RGMII1_RD2 */
AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* (V5) PRG0_PRU1_GPO17.RGMII1_RD3 */
AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* (AA5) PRG0_PRU0_GPO10.RGMII1_RXC */
AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* (W6) PRG0_PRU0_GPO9.RGMII1_RX_CTL */
AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
>;
};
mymdio1_pins_default: mymdio1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
>;
};
mypruicssg0mdio1_pins_default: mypruicssg0mdio1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0204, PIN_OUTPUT, 0) /* (P3) PRG0_MDIO0_MDC */
AM64X_IOPAD(0x0200, PIN_INPUT, 0) /* (P2) PRG0_MDIO0_MDIO */
>;
};
mypruicssg0rgmii1_pins_default: mypruicssg0rgmii1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x01b0, PIN_INPUT, 2) /* (Y2) PRG0_PRU1_GPO0.PRG0_RGMII2_RD0 */
AM64X_IOPAD(0x01b4, PIN_INPUT, 2) /* (W2) PRG0_PRU1_GPO1.PRG0_RGMII2_RD1 */
AM64X_IOPAD(0x01b8, PIN_INPUT, 2) /* (V3) PRG0_PRU1_GPO2.PRG0_RGMII2_RD2 */
AM64X_IOPAD(0x01bc, PIN_INPUT, 2) /* (T4) PRG0_PRU1_GPO3.PRG0_RGMII2_RD3 */
AM64X_IOPAD(0x01c8, PIN_INPUT, 2) /* (R5) PRG0_PRU1_GPO6.PRG0_RGMII2_RXC */
AM64X_IOPAD(0x01c0, PIN_INPUT, 2) /* (W3) PRG0_PRU1_GPO4.PRG0_RGMII2_RX_CTL */
AM64X_IOPAD(0x01dc, PIN_INPUT, 2) /* (W4) PRG0_PRU1_GPO11.PRG0_RGMII2_TD0 */
AM64X_IOPAD(0x01e0, PIN_INPUT, 2) /* (Y4) PRG0_PRU1_GPO12.PRG0_RGMII2_TD1 */
AM64X_IOPAD(0x01e4, PIN_INPUT, 2) /* (T6) PRG0_PRU1_GPO13.PRG0_RGMII2_TD2 */
AM64X_IOPAD(0x01e8, PIN_INPUT, 2) /* (U6) PRG0_PRU1_GPO14.PRG0_RGMII2_TD3 */
AM64X_IOPAD(0x01f0, PIN_INPUT, 2) /* (AA4) PRG0_PRU1_GPO16.PRG0_RGMII2_TXC */
AM64X_IOPAD(0x01ec, PIN_INPUT, 2) /* (U5) PRG0_PRU1_GPO15.PRG0_RGMII2_TX_CTL */
>;
};
mypruicssg0rgmii2_pins_default: mypruicssg0rgmii2-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0160, PIN_INPUT, 2) /* (Y1) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
AM64X_IOPAD(0x0164, PIN_INPUT, 2) /* (R4) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
AM64X_IOPAD(0x0168, PIN_INPUT, 2) /* (U2) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
AM64X_IOPAD(0x016c, PIN_INPUT, 2) /* (V2) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
AM64X_IOPAD(0x0178, PIN_INPUT, 2) /* (T3) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
AM64X_IOPAD(0x0170, PIN_INPUT, 2) /* (AA2) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
AM64X_IOPAD(0x018c, PIN_INPUT, 2) /* (Y3) PRG0_PRU0_GPO11.PRG0_RGMII1_TD0 */
AM64X_IOPAD(0x0190, PIN_INPUT, 2) /* (AA3) PRG0_PRU0_GPO12.PRG0_RGMII1_TD1 */
AM64X_IOPAD(0x0194, PIN_INPUT, 2) /* (R6) PRG0_PRU0_GPO13.PRG0_RGMII1_TD2 */
AM64X_IOPAD(0x0198, PIN_INPUT, 2) /* (V4) PRG0_PRU0_GPO14.PRG0_RGMII1_TD3 */
AM64X_IOPAD(0x01a0, PIN_INPUT, 2) /* (U4) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
AM64X_IOPAD(0x019c, PIN_INPUT, 2) /* (T5) PRG0_PRU0_GPO15.PRG0_RGMII1_TX_CTL */
>;
};
mypruicssg1mdio1_pins_default: mypruicssg1mdio1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
>;
};
mypruicssg1rgmii1_pins_default: mypruicssg1rgmii1-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(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
>;
};
mypruicssg1rgmii2_pins_default: mypruicssg1rgmii2-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(0x0120, PIN_INPUT, 2) /* (U11) PRG1_PRU1_GPO6.PRG1_RGMII2_RXC */
AM64X_IOPAD(0x0118, PIN_INPUT, 2) /* (W12) PRG1_PRU1_GPO4.PRG1_RGMII2_RX_CTL */
AM64X_IOPAD(0x0134, PIN_INPUT, 2) /* (AA10) PRG1_PRU1_GPO11.PRG1_RGMII2_TD0 */
AM64X_IOPAD(0x0138, PIN_INPUT, 2) /* (V10) PRG1_PRU1_GPO12.PRG1_RGMII2_TD1 */
AM64X_IOPAD(0x013c, PIN_INPUT, 2) /* (U10) PRG1_PRU1_GPO13.PRG1_RGMII2_TD2 */
AM64X_IOPAD(0x0140, PIN_INPUT, 2) /* (AA11) PRG1_PRU1_GPO14.PRG1_RGMII2_TD3 */
AM64X_IOPAD(0x0148, PIN_INPUT, 2) /* (Y10) PRG1_PRU1_GPO16.PRG1_RGMII2_TXC */
AM64X_IOPAD(0x0144, PIN_INPUT, 2) /* (Y11) PRG1_PRU1_GPO15.PRG1_RGMII2_TX_CTL */
>;
};
};
另请参阅 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1465616/faq-what-ethernet-pinmux-combinations-are-valid-on-am64x-processors 、了解 AM64x 上以太网引脚多路复用组合的一些其他限制。
如果您有任何后续问题、请告知我们。
-道林
您好、Prathibha:
我们有2个 CPSW 和3个 PRU_ICSSG 要求、我们的计划是使用2个 CPSW、2个 ICSSG0和1个 ICSSG1。
感谢您的分享。 您应该使用我之前提到的 TI 系统配置(SysConfig)工具来仔细检查此配置是否不会导致 pinmux 冲突。
在示例所示的引脚多路复用中、ICSS 的所有 TX 引脚均配置为输入引脚、而数据表中的所有 TX 引脚均配置为输出引脚类型。 您能否提供一些有关这方面的信息。
感谢您提醒我们注意这一点、我看到即使在 TMDS64EVM 的默认 DTS 上、ICSSG1 TX 引脚也配置为输入类型。 据我所知、ICSSG1 TX 引脚的功能没有遇到任何特定问题。 但是、我还需要在内部检查为什么选择这种引脚模式。
如果我在星期四之前尚未回复更新、请再次 ping 此线程。
-道林