AM273x MCU+ SDK  08.05.00
HWA

HWA module consists of ECC Bus Safety Diagnostics, Parity and FSM Lockstep Diagnostics

Features Supported

1.HWA supports Diagnostic check for ECC BUS Safety Errors on HWA DMA0 and HWA DMA1.

  • ECC BUS Safety Errors : This includes SEC , DED and RED error injection on both HWA DMA0 and DMA1

    Note : SEC - Single Error Correction, DED - Double Error Correction, RED - Redundancy Error Correction

2.HWA supports Diagnostic check for Parity Errors on HWA Data memoriers and window ram on both HWA DMA0 and HWA DMA1.

  • Parity Errors : This incluedes parity error injection on both HWA DMA0 and DMA1.
  • FSM LOCKstep Errors : This incluedes fsm lockstep error injection HWA.

The module supports below API's for the application

  • API to support and induce error on HWA DMA BUS.
  • API to support interrupt configuration

SysConfig Features

  • None

Features NOT Supported

  • None

Important Usage Guidelines

  • None

Example Usage

The following shows an example of SDL HWA API usage by the application for Error Injection Tests.

Include the below file to access the APIs

#include <sdl/sdl_hwa.h>

Induce the error DMA0 DMEM0

Induce the error DMA0 DMEM1

Induce the error DMA0 DMEM2

Induce the error DMA0 DMEM3

Induce the error DMA0 DMEM4

Induce the error DMA0 DMEM5

Induce the error DMA0 DMEM6

Induce the error DMA0 DMEM7

Induce the error DMA0 WINDOW_RAM

Induce the error DMA1 DMEM0

Induce the error DMA1 DMEM1

Induce the error DMA1 DMEM2

Induce the error DMA1 DMEM3

Induce the error DMA1 DMEM4

Induce the error DMA1 DMEM5

Induce the error DMA1 DMEM6

Induce the error DMA1 DMEM7

Induce the error DMA1 WINDOW_RAM

Induce the error FSM Lockstep

Induce the error SEC in HWA DMA0

/* wait for error notification from ESM, or for timeout */
/* fault injection gets deasserted in ISR */
while((SDL_HWA_DMA0_secErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}

Induce the error DED in HWA DMA0

/* wait for error notification from ESM, or for timeout */
/* fault injection gets deasserted in ISR */
while((SDL_HWA_DMA0_dedErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}

Induce the error RED in HWA DMA0

if(ret_val == SDL_PASS )
{
/* Wait for test to complete/timeout. */
while((SDL_HWA_DMA0_redErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
/* Check for the failure. */
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}
}
else
{
ret_val = SDL_EFAIL;
}

Induce the error SEC in HWA DMA1

/* wait for error notification from ESM, or for timeout */
/* fault injection gets deasserted in ISR */
while((SDL_HWA_DMA1_secErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}

Induce the error DED in HWA DMA1

/* wait for error notification from ESM, or for timeout */
/* fault injection gets deasserted in ISR */
while((SDL_HWA_DMA1_dedErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}

Induce the error RED in HWA DMA1

if(ret_val == SDL_PASS )
{
/* Wait for test to complete/timeout. */
while((SDL_HWA_DMA1_redErrorStatus()!=0U) && (timeout!=0U))
{
timeout--;
}
/* Check for the failure. */
{
ret_val = SDL_PASS;
}
else
{
ret_val = SDL_EFAIL;
}
}
else
{
ret_val = SDL_EFAIL;
}

API

APIs for SDL HWA

SDL_HWA_DMEM4
@ SDL_HWA_DMEM4
Definition: sdl_hwa_soc.h:73
SDL_HWA_DMEM7
@ SDL_HWA_DMEM7
Definition: sdl_hwa_soc.h:79
SDL_HWA_DMEM1
@ SDL_HWA_DMEM1
Definition: sdl_hwa_soc.h:67
SDL_HWA_DMA0_secErrorClear
void SDL_HWA_DMA0_secErrorClear(void)
This API is used to clear SEC error from DMA0.
SDL_HWA_DMEM5
@ SDL_HWA_DMEM5
Definition: sdl_hwa_soc.h:75
SDL_HWA_MAIN_CMD_INTERFACE
@ SDL_HWA_MAIN_CMD_INTERFACE
Definition: hwa/v0/sdl_hwa.h:87
SDL_HWA_DMA1_MEM_ID
@ SDL_HWA_DMA1_MEM_ID
Definition: sdl_hwa_soc.h:96
SDL_HWA_fsmLockStepExecute
int32_t SDL_HWA_fsmLockStepExecute(void)
This API is used to induce the error in the fsm lockstep for HWA.
SDL_HWA_DMA1_dedErrorStatus
uint32_t SDL_HWA_DMA1_dedErrorStatus(void)
This API is used to get DED error status from DMA1.
SDL_HWA_DMA0_redExecute
int32_t SDL_HWA_DMA0_redExecute(SDL_HWA_busSftyFiType fiType, SDL_HWA_busSftyFiRedType redType)
This API is used for RED test on DMA0.
SDL_HWA_WINDOW_RAM_MEM_ID
@ SDL_HWA_WINDOW_RAM_MEM_ID
Definition: sdl_hwa_soc.h:98
SDL_HWA_WINDOW_RAM
@ SDL_HWA_WINDOW_RAM
Definition: sdl_hwa_soc.h:81
SDL_HWA_DMEM2
@ SDL_HWA_DMEM2
Definition: sdl_hwa_soc.h:69
SDL_HWA_DMA0_dedErrorClear
void SDL_HWA_DMA0_dedErrorClear(void)
This API is used to clear DED error from DMA0.
SDL_HWA_DMA1_dedExecute
void SDL_HWA_DMA1_dedExecute(void)
This API is used for DED test on DMA1.
SDL_HWA_DMA1_redErrorClear
void SDL_HWA_DMA1_redErrorClear(void)
This API is used to clear red error from DMA1.
SDL_HWA_DMA0_dedExecute
void SDL_HWA_DMA0_dedExecute(void)
This API is used for DED test on DMA0.
SDL_HWA_DMA1_redExecute
int32_t SDL_HWA_DMA1_redExecute(SDL_HWA_busSftyFiType fiType, SDL_HWA_busSftyFiRedType redType)
This API is used for RED test on DMA1.
SDL_HWA_DMA0_dedErrorStatus
uint32_t SDL_HWA_DMA0_dedErrorStatus(void)
This API is used to get DED error status from DMA0.
SDL_HWA_DMA1_secErrorStatus
uint32_t SDL_HWA_DMA1_secErrorStatus(void)
This API is used to get SEC error status from DMA1.
SDL_HWA_DMA0_redErrorClear
void SDL_HWA_DMA0_redErrorClear(void)
This API is used to clear RED error from DMA0.
SDL_HWA_DMEM3
@ SDL_HWA_DMEM3
Definition: sdl_hwa_soc.h:71
sdl_hwa.h
SDL_HWA_DMEM6
@ SDL_HWA_DMEM6
Definition: sdl_hwa_soc.h:77
SDL_HWA_DMA1_redErrorStatus
uint32_t SDL_HWA_DMA1_redErrorStatus(void)
This API is used to get RED error status from DMA1.
SDL_HWA_FI_GLOBAL_SAFE
@ SDL_HWA_FI_GLOBAL_SAFE
Definition: hwa/v0/sdl_hwa.h:81
SDL_HWA_DMA1_secExecute
void SDL_HWA_DMA1_secExecute(void)
This API is used for SEC test on DMA1.
SDL_HWA_DMA1_dedErrorClear
void SDL_HWA_DMA1_dedErrorClear(void)
This API is used to clear DED error from DMA1.
SDL_HWA_DMA0_secErrorStatus
uint32_t SDL_HWA_DMA0_secErrorStatus(void)
This API is used to get SEC error status from DMA0.
SDL_HWA_DMEM0
@ SDL_HWA_DMEM0
Definition: sdl_hwa_soc.h:65
SDL_HWA_DMA0_MEM_ID
@ SDL_HWA_DMA0_MEM_ID
Definition: sdl_hwa_soc.h:94
SDL_HWA_DMA1_secErrorClear
void SDL_HWA_DMA1_secErrorClear(void)
This API is used to clear SEC error from DMA1.
SDL_HWA_DMA0_redErrorStatus
uint32_t SDL_HWA_DMA0_redErrorStatus(void)
This API is used to get RED error status from DMA0.
SDL_HWA_DMA0_secExecute
void SDL_HWA_DMA0_secExecute(void)
This API is used for SEC test on DMA0.
SDL_HWA_memParityExecute
int32_t SDL_HWA_memParityExecute(SDL_HWA_MemID memID, SDL_HWA_MemBlock memBlock)
This API is used for configuring and testing parity of the HWA memory.