This function is used to Read frame ECC of a particular Frame. Primarily this function sends an IPI request to PLM to invoke SEM CRAM SendFrameEcc, waits for PLM to process the request and reads the response message. In case of EL1 Non-Secure mode, this function generates an SMC call to TF-A. The SMC request goes to the PLM through the TF-A. This function reads the response of the SMC call and returns the status.
Note:
- Total number of frames in a row is not same for all rows.
- XSem_CmdCfrGetTotalFrames API is provided to know the total number of frames in a row for each block. Output param (FrameCntPtr) of XSem_CmdCfrGetTotalFrames API is updated with total number of frames of each block type for the input row. If a particular block in a row has 0 frames, then error injection shall not be performed. Range of Frame number: 0 to (FrameCntPtr[n] - 1) where n is block type with range 0 to 6. ECC bits. The error injection does not change the design behaviour.
Prototype
XStatus XSem_CmdCfrReadFrameEcc(XIpiPsu *IpiInst, u32 CframeAddr, u32 RowLoc, XSemIpiResp *Resp);
Parameters
The following table lists the XSem_CmdCfrReadFrameEcc function arguments.
| Type | Member | Description |
|---|---|---|
| XIpiPsu * | IpiInst | Pointer to IPI driver instance |
| u32 | CframeAddr |
Frame Address
|
| u32 | RowLoc | Row index(Min: 0 , Max: CFU_ROW_RANGE -1) |
XSemIpiResp
* |
Resp |
Structure Pointer of IPI response
|
Returns
This API returns the success or failure.- XST_FAILURE: On CRAM Read Frame ECC failure
- XST_SUCCESS: On CRAM Read Frame ECC success