AM64x MCU+ SDK  07.03.00
PRUICSS Driver Migration Guide

This list describes the differences between PRUICSS driver of MCU+ SDK and PRUSS driver from the PDK.

  1. There are changes in API names, structure names and macro names. All names begin with PRUICSS_ now. Arguments to APIs are same as earlier. All the APIs from PDK driver are not included, only the ones used in the examples and networking libraries are added in the MCU+ SDK's driver. The changes in API names are listed below. For more details, please see APIs for PRUICSS.

    PDK MCU+ SDK
    Not available PRUICSS_init
    Not available PRUICSS_deinit
    PRUICSS_create PRUICSS_open
    Not available PRUICSS_close
    PRUICSS_pruIntcInit PRUICSS_intcInit
    PRUICSS_registerIrqHandler PRUICSS_registerIrqHandler
    PRUICSS_pruReset PRUICSS_resetCore
    PRUICSS_pruDisable PRUICSS_disableCore
    PRUICSS_pruEnable PRUICSS_enableCore
    PRUICSS_pruInitMemory PRUICSS_initMemory
    PRUICSS_pruWriteMemory PRUICSS_writeMemory
    PRUICSS_pruReadMemory PRUICSS_readMemory
    PRUICSS_pruSendEvent PRUICSS_sendEvent
    PRUICSS_pruWaitEvent PRUICSS_waitEvent
    PRUICSS_pruClearEvent PRUICSS_clearEvent
    PRUICSS_pruSendWaitCearEvent PRUICSS_sendWaitClearEvent
    PRUICSS_getICSSVersion PRUICSS_getVersion
    PRUICSS_setConstantTblEntry PRUICSS_setConstantTblEntry
    PRUICSS_setIepClkSrc PRUICSS_setIepClkSrc
  2. The INTC module in ICSSG supports 160 events and 20 channels, but the PDK driver only supported 64 events and 10 channels. This support has been added in the MCU+ SDK driver. All changes are internal to the driver implementation. API usage for INTC initialization is same as earlier.
  3. Driver implementation uses Semaphore and Hwi. There are differences in TI-RTOS OSAL of PDK, and Driver Porting Layer (DPL) in MCU+ SDK. Changes were made to address this difference. There is no impact on the use of APIs.
  4. CSL macros were used from pdk/packages/ti/csl/src/ip/icss/V1 in PDK driver. In MCU+ SDK, the CSL for ICSS has been taken from pdk/packages/ti/csl/src/ip/icss/V3, and the file name in MCU+ SDK is ${SDK_INSTALL_PATH}/source/drivers/pruicss/v0/cslr_icss_g.h.
  5. Macros for HW register access like 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.
  6. SysConfig has been added to initialize PRUICSS module and initialize the Core clock. The config name used in SysConfig should be used for PRUICSS_open call. Enum for PRUICSS instance number has been removed.
  7. The member names for PRUICSS_HwAttrs have been changed. There are few additions and deletions of members.
  8. Few APIs(like PRUICSS_setIcssgCfgMiiMode, PRUICSS_setGpiMode, etc) have been added to aid users in modifying some of the configuration registers.
  9. It is recommended to use PRUICSS_getAttrs() for getting HwAttrs structure instead of using it directly from handle.