SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The MSMC2DDR bridge checks the VBUSM address received against the valid SDRAM address space programmed in the DDR16SS_V2A_CTL_REG register. If the VBUSM address for an access falls outside the programmed range the bridge sets to 0x1 the DDR16SS_V2A_INT_RAW_REG[1] AERR bit and also triggers the DDR0_DDRSS_V2A_OTHER_ERR_LVL_0 interrupt. The address and the Route ID for the command caused error are logged in the DDR16SS_V2A_AERR_LOG1_REG and DDR16SS_V2A_AERR_LOG2_REG registers.
For commands greater than 32 bytes with an address error, each fragment will report an error. This can cause multiple interrupts to be reported if software clears the error interrupt for the first fragment while other fragments are being executed. The address log register will always log the address for the fragment which caused the last interrupt.
The valid address range can be programmed using the DDR16SS_V2A_CTL_REG[9-5] SDRAM_IDX and DDR16SS_V2A_CTL_REG[4-0] REGION_IDX fields. Table 8-6 summarizes the scenarios for determining valid address range and interrupt generation.
Condition | Description |
---|---|
REGION_IDX = SDRAM_IDX | DDR region size is equal to the connected SDRAM size. It is SoC responsibility to ensure that the addresses received by the DDR subsystem do not fall outside the region size. No address error is generated if the address received falls outside the region size. |
REGION_IDX < SDRAM_IDX | DDR region size is less than the connected SDRAM size. It is SoC responsibility to ensure that the addresses received by the DDR subsystem do not fall outside the region size. No address error is generated if the address received falls outside the region size. |
REGION_IDX > SDRAM_IDX | DDR region size is greater than the connected SDRAM size. Address error is generated if the address received falls outside the connected SDRAM size. |
A write access outside the programmed range is discarded. A write error associated status is sent back to the VBUSM interface.
A read access outside the programmed range is executed on the SDRAM interface as a normal read, but data will contain all zeroes before forwarding it to the VBUSM interface. A read error associated status is sent back to the VBUSM interface along with the read data containing all zeroes.
When inline ECC is enabled, the available SDRAM size is reduced by 1/9th of the size programmed in the SDRAM_IDX field. Therefore, the bridge reports an error if an access falls outside the reduced SDRAM size when inline ECC is enabled. The reduced SDRAM size limit applies to all accesses, both to the protected and non-protected ECC regions.