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.

AM2634: SDL_ESM_config groups, interrupts, and bitmaps

Part Number: AM2634

Hello,

I am working with SDK version mcu_plus_sdk_am263x_08_05_00_24 and attempting to initialize the ESM in our project. I am hoping for clarification on the following initialization configuration types: 

/** ---------------------------------------------------------------------------
 * \brief ESM error configuration
 *
 * This structure defines the elements ESM error configuration
 * ----------------------------------------------------------------------------
 */
typedef struct SDL_ESM_Errorconfig_s
{
    uint32_t groupNumber;
    /**< Group number of error event  */
    uint32_t bitNumber;
    /**< Bit number within the group  */
} SDL_ESM_ErrorConfig_t;

/** ---------------------------------------------------------------------------
 * \brief ESM init configuration
 *
 * This structure defines ESM Init configuration
 * ----------------------------------------------------------------------------
 */
typedef struct SDL_ESM_InitConfig_s
{
    SDL_ESM_ErrorConfig_t esmErrorConfig;
    /**< Error event to be used for self test */
    uint32_t enableBitmap[SDL_ESM_MAX_EVENT_MAP_NUM_WORDS];
    /**< ESM Event bitmap */
    uint32_t priorityBitmap[SDL_ESM_MAX_EVENT_MAP_NUM_WORDS];
    /**< ESM Event Priority bitmap */
    uint32_t errorpinBitmap[SDL_ESM_MAX_EVENT_MAP_NUM_WORDS];
    /**< ESM bitmap for driving error pin: When selected error event occurs
     *  the error output pin will be asserted
     *  It is the application responsibility to reset the error
     *  if the system did not crash or lockup */
    uint32_t pinmininterval;
} SDL_ESM_config;

Specifically documentation explaining the mapping of groupNumber, bitNumber, and the three bitmaps in the SDL_ESM_InitConfig_s structure.

  • Hi,

    I am looking into this thread, will come back once I check with the internal team.

    Thanks,
    G Kowshik

  • The following configuration is taken directly from  "sdl_rti_example_uc1_am263x-cc_r5fss0-0_nortos_ti-arm-clang" example project: 

    SDL_ESM_config RTI_Test_esmInitConfig_MAIN =
    {
      .esmErrorConfig = {1u, 8u}, /* Self test error config */
      .enableBitmap = {0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u,
                  0x00000000u, 0x00000000u, 0x00000000u,0x00000000u},
       /**< All events enable: except clkstop events for unused clocks
        *   and PCIE events */
        /* CCM_1_SELFTEST_ERR and _R5FSS1_COMPARE_ERR_PULSE_0 */
      .priorityBitmap = {0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u,
                  0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},
      /**< All events high priority: except clkstop events for unused clocks
       *   and PCIE events */
      .errorpinBitmap = {0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u,
                  0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},
      /**< All events high priority: except clkstop for unused clocks
       *   and PCIE events */
    };

    Referencing the Table 10-22 from the TRM: WWDT0 Interrupt Source corresponds to Interrupt ID 0 of the Pulse Interrupts, and based on the above code bit 64 of the enableBitmap, priorityBitmap, and errorpinBitmap.

    Is the following mapping accurate?

    Bitmap Word = InterruptID / 32

    Bitmap Bit = InterruptID % 32 

    e.g. To enable the CCM_1_lockstep_compare_err interrupt source the following configuration bitmaps would be set: 

      .enableBitmap   = {0x00000000u, 0x00000000u, 0x00400000u, 0x00000000u,
                         0x00000000u, 0x00000000u, 0x00000000u,0x00000000u},
      .priorityBitmap = {0x00000000u, 0x00000000u, 0x00400000u, 0x00000000u,
                         0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},
      .errorpinBitmap = {0x00000000u, 0x00000000u, 0x00400000u, 0x00000000u,
                         0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u},
    
    

    It is unclear why the RTI_Test_esmInitConfig_MAIN.esmErrorConfig values are set to {1u, 8u} for this example (i.e. group 1 and bit 8). Where are the esmErrorConfig group and bit values described in the documentation?