-
Notifications
You must be signed in to change notification settings - Fork 86
feat(linux): AM642: Add ICSSG0 dual EMAC support documentation #643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -48,6 +48,7 @@ Features supported | |
| - Cut Through forwarding | ||
| - PHY Interrupt mode for ICSSG2 | ||
| - Multicast filtering support for VLAN interfaces | ||
| - ICSSG0 dual EMAC support on AM64x with DP83TG720 PHY | ||
|
|
||
| .. rubric:: **Features not supported** | ||
|
|
||
|
|
@@ -668,8 +669,92 @@ PTP/OC in slave mode: | |
|
|
||
| | | ||
|
|
||
| .. _icssg0_configuration: | ||
|
|
||
| ICSSG0 Configuration | ||
| #################### | ||
|
|
||
| .. ifconfig:: CONFIG_part_variant in ('AM64X') | ||
|
|
||
| ICSSG0 Dual EMAC Support | ||
| ************************ | ||
|
|
||
| AM642 EVM supports ICSSG0 dual EMAC configuration using the device tree overlay. This enables both ICSSG0 Ethernet interfaces (port0 and port1) in dual EMAC mode. | ||
|
|
||
| .. rubric:: Hardware Requirements | ||
|
|
||
| - AM642 EVM (`TMDS64EVM <https://www.ti.com/tool/TMDS64EVM>`__) | ||
| - DP83TG720-IND-SPE-EVM daughter card (`DP83TG720-IND-SPE-EVM <https://www.ti.com/tool/DP83TG720-IND-SPE-EVM>`__) | ||
|
|
||
| .. rubric:: Software Requirements | ||
|
|
||
| The following kernel configurations are required: | ||
|
|
||
| .. code-block:: text | ||
|
|
||
| CONFIG_DP83TG720_PHY=m | ||
|
|
||
| This PHY driver is enabled as a module in the default defconfig. | ||
|
|
||
| .. rubric:: Enabling ICSSG0 | ||
|
|
||
| To enable ICSSG0 in dual EMAC mode with RGMII interface, apply the device tree overlay in U-Boot: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv name_overlays ti/k3-am642-evm-icssg0.dtbo | ||
| saveenv | ||
| boot | ||
|
|
||
| After booting with the overlay, two new network interfaces will be available (typically eth2 and eth3, depending on your system configuration). | ||
|
|
||
| .. rubric:: Verifying ICSSG0 Interfaces | ||
|
|
||
| Check the available network interfaces: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| # ip link show | ||
| ... | ||
| eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 | ||
| link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff | ||
| eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 | ||
| link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff | ||
|
|
||
| Verify the driver and firmware: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| # ethtool -i eth2 | ||
| driver: icssg-prueth | ||
| version: | ||
| firmware-version: | ||
| expansion-rom-version: | ||
| bus-info: icssg0-eth | ||
| supports-statistics: yes | ||
| supports-test: no | ||
| supports-eeprom-access: no | ||
| supports-register-dump: no | ||
| supports-priv-flags: no | ||
|
|
||
| .. rubric:: Combining ICSSG0 and ICSSG1 | ||
|
|
||
| The ICSSG0 overlay can be combined with the existing ICSSG1 overlay to enable all four ICSSG interfaces: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv name_overlays ti/k3-am642-evm-icssg0.dtbo ti/k3-am642-evm-icssg1-dualemac.dtbo | ||
| saveenv | ||
| boot | ||
|
|
||
| This configuration provides four ICSSG Ethernet ports total (2 from ICSSG0 + 2 from ICSSG1). | ||
|
|
||
| .. note:: | ||
|
|
||
| When using ICSSG0, ensure the DP83TG720 daughter card is properly connected to the AM642 EVM ICSSG0 interface connectors. | ||
|
|
||
| PPS Pulse Per Second support | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| ***************************** | ||
|
Comment on lines
756
to
+757
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why are you changing this section depth? |
||
|
|
||
| .. ifconfig:: CONFIG_part_variant in ('AM65X') | ||
|
|
||
|
|
@@ -820,7 +905,7 @@ MII Support | |
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv bootcmd 'run findfdt; run envboot; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot}; | ||
| setenv bootcmd 'run findfdt; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot}; | ||
| setenv name_overlays ti/k3-am642-evm-icssg1-dualemac-mii.dtbo; run get_overlay_${boot}; run run_kern' | ||
|
|
||
| .. rubric:: **Limitations** | ||
|
|
@@ -842,19 +927,51 @@ CPSW / PRU Ethernet Selection | |
| - Dual EMAC: 2 Ethernet ports on a single PRU_ICSSG instance | ||
|
|
||
| On AM64x EVM (`TMDS64EVM <https://www.ti.com/tool/TMDS64EVM>`__ & `TMDS64GPEVM <https://www.ti.com/tool/TMDS64GPEVM>`__), one Ethernet port is connected to CPSW, one Ethernet port is connected to PRU Ethernet, and one Ethernet port can be muxed to either CPSW or PRU Ethernet depending on the device tree settings. | ||
| The Ethernet port is muxed to CPSW by default in the AM64x EVM device tree :file:`k3-am642-evm.dts`, disabling this port for ICSSG (Single EMAC). | ||
| The Ethernet port is muxed to CPSW by default in the AM64x EVM device tree :file:`k3-am642-evm.dts`, disabling this port for ICSSG1 (Single EMAC). | ||
|
|
||
| The AM64x EVM supports both ICSSG0 and ICSSG1 instances, each providing dual EMAC capability. ICSSG0 and ICSSG1 can be enabled independently or simultaneously to provide up to four ICSSG Ethernet ports. | ||
|
|
||
| .. rubric:: ICSSG0 Overlay Configuration | ||
|
|
||
| ICSSG0 supports dual EMAC mode with RGMII interface. To enable ICSSG0, apply the :file:`k3-am642-evm-icssg0.dtbo` overlay: | ||
|
|
||
| To use **RGMII** interface in **Dual EMAC** mode the :file:`k3-am642-evm-icssg1-dualemac.dtbo` overlay file has to be applied using the following command in u-boot. | ||
| .. code-block:: console | ||
|
|
||
| setenv name_overlays ti/k3-am642-evm-icssg0.dtbo | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| saveenv | ||
| boot | ||
|
|
||
| Refer :ref:`icssg0_configuration` section for more details. | ||
|
|
||
| .. rubric:: ICSSG1 Overlay Configuration | ||
|
|
||
| To use **RGMII** interface in **Dual EMAC** mode for ICSSG1, apply the :file:`k3-am642-evm-icssg1-dualemac.dtbo` overlay: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv bootcmd 'run findfdt; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot};setenv name_overlays ti/k3-am642-evm-icssg1-dualemac.dtbo; run get_overlay_${boot}; run run_kern' | ||
|
|
||
|
Comment on lines
+950
to
+953
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| To use **MII** interface in **Dual EMAC** mode for ICSSG1, apply the :file:`k3-am642-evm-icssg1-dualemac-mii.dtbo` overlay: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv bootcmd 'run findfdt; run envboot;run init_${boot}; run get_kern_${boot}; run get_fdt_${boot};setenv name_overlays ti/k3-am642-evm-icssg1-dualemac.dtbo; run get_overlay_${boot}; run run_kern' | ||
| setenv bootcmd 'run findfdt; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot};setenv name_overlays ti/k3-am642-evm-icssg1-dualemac-mii.dtbo; run get_overlay_${boot}; run run_kern' | ||
|
|
||
| To use **MII** interface in **Dual EMAC** mode the :file:`k3-am642-evm-icssg1-dualemac-mii.dtbo` overlay file has to be applied using the following command in u-boot. | ||
| .. rubric:: Enabling Both ICSSG0 and ICSSG1 | ||
|
|
||
| Both ICSSG instances can be enabled simultaneously to provide four ICSSG Ethernet ports: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| setenv bootcmd 'run findfdt; run envboot;run init_${boot}; run get_kern_${boot}; run get_fdt_${boot};setenv name_overlays ti/k3-am642-evm-icssg1-dualemac-mii.dtbo; run get_overlay_${boot}; run run_kern' | ||
| setenv name_overlays ti/k3-am642-evm-icssg0.dtbo ti/k3-am642-evm-icssg1-dualemac.dtbo | ||
| saveenv | ||
| boot | ||
|
|
||
|
Comment on lines
+966
to
+969
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| This configuration provides: | ||
|
|
||
| - ICSSG0: Two Ethernet ports (typically eth1 and eth2) | ||
| - ICSSG1: Two Ethernet ports (typically eth3 and eth4) | ||
| - CPSW: One Ethernet port (eth0) | ||
|
|
||
| .. ifconfig:: CONFIG_part_variant in ('AM65X') | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/TexasInstruments/processor-sdk-doc/blob/master/CONTRIBUTING.md#behavior