AM273x MCU+ SDK  08.05.00
MBOX

MBOX module consists ECC Bus Safety Diagnostics.

Features Supported

MBOX supports Diagnostic check for ECC BUS Safety Errors

  • ECC BUS Safety Errors : This includes SEC , DED and RED error injection on MSS MBOX , DSS MBOX and RSS MBOX

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

The module supports below API's for the application

  • API to support and induce error on MBOX 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 MBOX API usage by the application for Error Injection Tests.

Include the below file to access the APIs

#include <sdl/sdl_mbox.h>

Induce the error SEC in MSS MBOX

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

Induce the error SEC in DSS MBOX

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

Induce the error SEC in RSS MBOX

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

Induce the error DED in MSS MBOX

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

Induce the error DED in DSS MBOX

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

Induce the error DED in RSS MBOX

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

Induce the error RED in MSS MBOX

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

Induce the error RED in DSS MBOX

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

Induce the error RED in RSS MBOX

if(ret_val == SDL_PASS )
{
/* Wait for test to complete/timeout. */
while((SDL_RSS_MBOX_redErrorStatus()!=1U) && (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 MBOX

SDL_RSS_MBOX_dedExecute
void SDL_RSS_MBOX_dedExecute(void)
This API is used for DED test on RSS MBOX.
SDL_MSS_MBOX_secExecute
void SDL_MSS_MBOX_secExecute(void)
This API is used for SEC test on MSS MBOX.
SDL_MSS_MBOX_redExecute
int32_t SDL_MSS_MBOX_redExecute(SDL_MBOX_busSftyFiType fiType, SDL_MBOX_busSftyFiRedType redType)
This API is used for RED test on MSS MBOX.
SDL_MBOX_MAIN_CMD_INTERFACE
@ SDL_MBOX_MAIN_CMD_INTERFACE
Definition: mbox/v0/sdl_mbox.h:88
SDL_DSS_MBOX_dedErrorStatus
uint32_t SDL_DSS_MBOX_dedErrorStatus(void)
This API is used to get the DED error status on MSS MBOX.
SDL_DSS_MBOX_dedExecute
void SDL_DSS_MBOX_dedExecute(void)
This API is used for DED test on DSS MBOX.
SDL_DSS_MBOX_redErrorClear
void SDL_DSS_MBOX_redErrorClear(void)
This API is used to clear RED error from DSS MBOX.
SDL_RSS_MBOX_redErrorStatus
uint32_t SDL_RSS_MBOX_redErrorStatus(void)
This API is used to get the RED error status on RSS MBOX.
SDL_RSS_MBOX_dedErrorClear
void SDL_RSS_MBOX_dedErrorClear(void)
This API is used to clear DED error from RSS MBOX.
SDL_MSS_MBOX_dedExecute
void SDL_MSS_MBOX_dedExecute(void)
This API is used for DED test on MSS MBOX.
sdl_mbox.h
SDL_RSS_MBOX_secErrorStatus
uint32_t SDL_RSS_MBOX_secErrorStatus(void)
This API is used to get the SEC error status on RSS MBOX.
SDL_RSS_MBOX_dedErrorStatus
uint32_t SDL_RSS_MBOX_dedErrorStatus(void)
This API is used to get the DED error status on RSS MBOX.
SDL_DSS_MBOX_redErrorStatus
uint32_t SDL_DSS_MBOX_redErrorStatus(void)
This API is used to get the RED error status on MSS MBOX.
SDL_DSS_MBOX_secErrorStatus
uint32_t SDL_DSS_MBOX_secErrorStatus(void)
This API is used to get the SEC error status on DSS MBOX.
SDL_MBOX_FI_GLOBAL_SAFE
@ SDL_MBOX_FI_GLOBAL_SAFE
Definition: mbox/v0/sdl_mbox.h:82
SDL_RSS_MBOX_redExecute
int32_t SDL_RSS_MBOX_redExecute(SDL_MBOX_busSftyFiType fiType, SDL_MBOX_busSftyFiRedType redType)
This API is used for RED test on RSS MBOX.
SDL_RSS_MBOX_redErrorClear
void SDL_RSS_MBOX_redErrorClear(void)
This API is used to clear RED error from RSS MBOX.
SDL_DSS_MBOX_secErrorClear
void SDL_DSS_MBOX_secErrorClear(void)
This API is used to clear SEC error from DSS MBOX.
SDL_RSS_MBOX_secErrorClear
void SDL_RSS_MBOX_secErrorClear(void)
This API is used to clear SEC error from RSS MBOX.
SDL_DSS_MBOX_redExecute
int32_t SDL_DSS_MBOX_redExecute(SDL_MBOX_busSftyFiType fiType, SDL_MBOX_busSftyFiRedType redType)
This API is used for RED test on DSS MBOX.
SDL_DSS_MBOX_secExecute
void SDL_DSS_MBOX_secExecute(void)
This API is used for SEC test on DSS MBOX.
SDL_DSS_MBOX_dedErrorClear
void SDL_DSS_MBOX_dedErrorClear(void)
This API is used to clear DED error from DSS MBOX.
SDL_RSS_MBOX_secExecute
void SDL_RSS_MBOX_secExecute(void)
This API is used for SEC test on RSS MBOX.