SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The tasks of ECC detection/correction of 'ECC enabled' memories are handled within the MHDPTX Controller. The EDP wrapper provides 'ECC error injection' using a combination of ECC_Wrapper (to access the memory) and ECC_Aggregator (to allow system to access the ECC injection logic). An ECC_Aggregator can access multiple ECC_Wrappers of the same clock group. Table 12-384 shows how the ECC memories (and the EDC_CTRL for Parity Inv) in the EDP are grouped to three ECC aggregators.
Memory / Logic | ECC Vector_ID | ECC_Aggregator |
---|---|---|
IRAM | 0 | ECC_AGGR_CORE |
DRAM | 1 | |
EDC_CTRL (Parity) | 2 | |
PKT_MEM_0 | 0 | ECC_AGGR_PHY |
PKT_MEM_1 | 1 | |
PKT_MEM_2 | 2 | |
PKT_MEM_3 | 3 | |
AIF_MEM | 4 | |
VIF_MEM_0 | - | N/A (No ECC for the video buffer) |
VIF_MEM_1 | - | |
VIF_MEM_2 | - | |
VIF_MEM_3 | - | |
ENC0_LB | 0 | ECC_AGGR_DSC |
ENC0_SSM_S | 1 | |
ENC0_SSM_D | 2 | |
ENC0_OB0 | 3 | |
ENC1_LB | 4 | |
ENC1_SSM_S | 5 | |
ENC1_SSM_D | 6 | |
ENC1_OB0 | 7 |
Furthermore, each ECC_Aggregator is connected to the VBUSP_CFG via the main CBASS SCR (with asynchronous bridge). All ECC aggregator bound VBUSP_CFG transactions are mapped to a separate RSEL (in EDP case, RSEL=3), see Figure 12-436.
Each ECC_Aggregator and the asynchronous VBUSP interface of the aggregator are clocked using the read clocks used to read the memory, as follows:
The clocks to some ECC memories may be disabled when the associated video or audio channel is not enabled. If none of the memories for an ECC aggregator is enabled (for example, DSC memory clocks are disabled, if the DSC is not enabled), then the clock for the aggregator is also disabled and the aggregator is disconnected from the CBASS (resulting in null return for any VBUSP access to the aggregator)
But, if any of the ECC memories connected to an ECC aggregator is enabled, the clock for the ECC aggregator must also be enabled. Any access to the ECC_CTRL of the disabled memory will result in TIMEOUT error (interrupt generated) since the memory clock is not running.
If ECC diagnostics/access are needed for all ECC memories whether the memories are enabled or not, the ECC software can set the clock enable override configuration register - EDP_ECC_MEM_CFG[0] CLK_EN to bypass the clock gating.
Even with this bit set, the ECC_CTRL connected to the ECC_AGGR_PHY aggregator may not get any clock if the PHY is not enabled and properly configured. The EDP_PHY_CLK_STATUS[0] VALID status register tells whether the PHY data clock is running or not.
The DSC clock is sourced from the system video PLL and therefore it should be running. Therefore, the ECC software just need to ensure the clock gating is not active and/or set the ECC CLK_EN override bit to get the clock to the memory.
The ECC_CORE Aggregator clock should be running whenever the EDP is enabled. There is no clock gating to the IRAM/DRAM memories.