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.

[FAQ] TDA4VM: Types of ECC Aggregators, RAM IDs and Error Injection

Part Number: TDA4VM

Please provide a detailed description of the types of ECC Aggregators, RAM IDs and Error Injection defined in SDL and what they signify.

  • Hi,

    Types of ECC Aggregators:

    1. Inject Only: INJECT_TYPE = 1

    These are modules already perform the ECC generation and checking as part of their data path. In this case, the ECC wrapper is configured in inject only mode. In this mode the ECC wrapper does not have to perform ECC detection and correction. If it is inject-only, then the behavior depends on the IP. In inject-only case, the ECC aggregator is there only for error inject. Detection and correction happens in the IP itself. In some cases, the error may also be routed to ESM, but not to the same ESM event as the ECC aggregator. In some cases there may not be an ESM event (like with j721e R5F inject-only endpoints).

    2. Error Injection with Error Capture: INJECT_TYPE = 0

    This refers to ram IDs where error injection can be done along with detection and correction.

    Types of RAM IDs:

    1. Wrapper Type: ECC_TYPE = 0

    Each memory is surrounded by an ECC wrapper which performs the ECC detection and correction. The wrapper communicates via serial interface with the aggregator which has memory mapped configuration interface. For RAM wrapper types, after injecting the error, the RAM needs to be accessed in order to trigger the error interrupt.

    2. Interconnect Type: ECC_TYPE = 1

    The ECC aggregator is also connected to interconnect ECC components that protect the command, address and data buses of the system interconnect. ECC is calculated for the data bus and parity and redundancy for the command and address buses. For the interconnect types, you will have to verify the checker group to determine if they are parity or redundant types.

    Types of Error Injection:

    Note that the SDL_INJECT_ECC_ERROR_FORCING_1BIT_ONCE and SDL_INJECT_ECC_ERROR_FORCING_2BIT_ONCE types are to be used with interconnect endpoint types, as the test is only being performed once. The other error types are not supported on interconnect types, and must be used only with RAM wrapper endpoint types, as the inject test is performed multiple times over a series of bits.

    For information regarding the ECC type, RAM ID type or accessibility of the RAM ID, corresponding to specific ECC endpoints, you can refer to the sdlr_soc_ecc_aggr.h file in sdl/include/soc/$SOC/.