This list describes the differences between ICSS-EMAC driver of MCU+ SDK and ICSS-EMAC driver from the PDK.
There are changes in API names, structure names and macro names. All names begin with ICSS_EMAC_ now. In PDK driver, user had to include multiple header files from the driver. In MCU+ SDK, only a single include file is needed, which is ${SDK_INSTALL_PATH}/source/networking/icss_emac_lld/icss_emac/icss_emac.h. From the user point of view, IOCTL, Rx and Tx related API usage is same as in PDK. The initialization code for icss-emac has changed, and is described in the points below. All the APIs from PDK driver are not included, only the ones used in the networking libraries are added in the MCU+ SDK's driver. The changes in API names are listed below.
| PDK | MCU+ SDK |
|---|---|
| Not available | ICSS_EMAC_init |
| Not available | ICSS_EMAC_deinit |
| Not available | ICSS_EMAC_Params_init |
| ICSS_EmacInit | ICSS_EMAC_open |
| ICSS_EmacDeInit | ICSS_EMAC_close |
| ICSS_EmacIoctl | ICSS_EMAC_ioctl |
| ICSS_EmacRxPktGet | ICSS_EMAC_rxPktGet |
| ICSS_EmacRxPktInfo | ICSS_EMAC_rxPktInfo |
| ICSS_EmacTxPacket | ICSS_EMAC_txPacket |
ICSS_EMAC_Object structure was used directly by user to get or set some information. Now the structure is opaque to user and can not be modified by the user.ICSS_EmacRxPktInfo2 and ICSS_EmacTxPacketEnqueue APIs are not available for use. These APIs are used internally by ICSS_EMAC_rxPktInfo and ICSS_EMAC_txPacket. The recommendation is to use ICSS_EMAC_rxPktInfo and ICSS_EMAC_txPacket directly.ICSS_EmacBaseAddressHandle_T is removed now. It was replicating the information present in PRUICSS_HwAttrs, so that is used directly wherever needed.HWREG, HWREGH and HWREGB are deprecated from CSL in MCU+ SDK. They are replaced with the recommended replacements from ${SDK_INSTALL_PATH}/source/drivers/hw_include/hw_types.h.Starting from the MCU+ SDK version 12.01.00, the ICSS-EMAC and ICSS TimeSync driver sources are now located under source/networking/icss_emac_lld/.
If you are using these sources directly (for example, in custom application builds or library compilation), update your include paths and source file references as follows:
source/networking/icss_emac → source/networking/icss_emac_lld/icss_emacsource/networking/icss_timesync → source/networking/icss_emac_lld/icss_timesyncNo API changes are introduced by this path change.