Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.
Processor SDK RTOS ICSS-EMAC DUAL EMAC
|RTOS Software Developer Guide||→||ICSS-EMAC_DUAL_EMAC|
The ICSS DUAL EMAC FIRMWARE serves as an example for Texas Instruments programmable approach to implement a 2 port ethernet mac supporting at 10/100 Mbps. ICSS DUAL EMAC FIRMWARE is standardized to IEEE 802.1 Ethernet Standards. The primary use case of the protocol is to demonstrate basic ethernet functionality via both PRU cores on 10/100 Mbit Ethernet cable. This firmware is fully documented and released in source code. It is open to customers to learn, adapt and enhance the firmware for their application requirements.
ICSS DUAL EMAC FIRMWARE is a single port Ethernet MAC (Media Access Control) i.e. Layer 2 of OSI Model. ICSS DUAL EMAC FIRMWARE can be used independently on two PRU's to implement two independent MAC's with two different MAC addresses and two different IP addresses. To provide an analogy, this is somewhat similar to a two port Ethernet PCIe NIC card on a PC, only here, the Ethernet interface is available along with the Host processor on a single SoC. The following are the high level features it supports.
|1 ms buffering per port||Supported|
|Ethernet QoS||With 2 queues instead of 8. So, it is not a standard Ethernet QoS implementation.|
ICSS DUAL EMAC FIRMWARE sources can be found under the following directory :
In addition, there is a README.txt which provides high-level over of how the firmware is implemented for network compoments which can be found at:
Building the Firmware
Pre-requisites to Building
- Set your environment using pdksetupenv.sh. Building the Firmware binaries uses the same environment variables as the icss-emac driver library build. Refer to the Processor SDK RTOS Building page for information on setting up your build environment.
Compiling ICSS DUAL EMAC FIRMWARE
To build the firmware binaries:
- cd <PDK>/packages/ti/drv/icss_emac
- make firm
This will make the firmware binaries which will be located in:
<SOC> indicates the SOC type.
<HOST_CORE> indicates the Host core type on which the built binary can be loaded.
<REVISION> indicates the revision of the firmware binary based on core. (There are 2 revision of PRU ICSS core)
The following is a list of EVMS supported and the PRU-ICSS ethernet ports to be used:
|EVM Name||PRU-ICSS Instance||Supported PRU ICSS core revision|
|icev2AM335x||PRU-ICSS instance 1||REV1|
|idkAM437x||PRU-ICSS instance 2||REV1|
|idkAM571x||PRU-ICSS instance 2||REV2|
|idkAM572x||PRU-ICSS instance 2||REV1 & REV2 (Earlier version of AM572x soc had REV1 pru cores while later had REV2 pru cores)|
|iceK2G||PRU-ICSS instance 2||REV2|
Running ICSS-EMAC DUAL EMAC Example
Please go through the following page for example demonstrating the use of the firmware via icss-emac driver. 
Firmware Design Guide
|ICSS DUAL EMAC FIRMWARE Design Guide||<PDK>/packages/ti/drv/icss_emac/firmware/icss_dualemac/docs/ICSS_DUAL_EMAC_Firmware_Design_Guide.pdf|
NOTE: For normal use case, there is no need to refer this document. Unless you wish to go through the internal working for firmware and/or wanted to modify it.