Visible to Intel only — GUID: voa1684440490336
Ixiasoft
Visible to Intel only — GUID: voa1684440490336
Ixiasoft
5.3.6.9.2. Bus Error
For master interface, the incorrect transaction is detected when the host side returns error response in the response transfer phase. If the error on system bus occurs during descriptor read process and data bus was compromised, then the command engine can detect incorrect descriptor format and set Descriptor/Command error flag. If an error on system bus is detected during status write, then information about this error is passed only to the controller status registers.
For slave interface, incorrect transaction is detected if any of the following conditions is met:
- Host accesses the slave interface before transfer on this interface was triggered.
- Host uses incorrect burst type. The slave DMA allows incremental burst only.
- Host forces burst length equal zero.
- Host triggers superfluous bursts from host received during execution of SDMA transaction.
- Host triggers too long last RD or WR burst in scheduled and executed SDMA transaction.
If master DMA drives master interface and detects an incorrect transaction, then ddma_terr bit in the intr_status (0x0110) register is set. Additionally, the address of transfer that caused error is written to the dma_target_error_l (0x0140) register. If the ddma_terr_en bit is set in the intr_enable (0x0114) register, then additionally the interrupt is raised.
If an incorrect transaction occurs on slave DMA interface, then the sdma_err bit in the intr_status (0x0110) register is set. If the sdma_err_en bit is set in the intr_enable (0x0114) register, then additionally the interrupt is risen. If an incorrect transaction is detected during data transfer, then the current transfer is internally aborted.
If command engine drives master interface and detects an incorrect transaction, then the cdma_terr bit in the intr_status (0x0110) register is set. Additionally, the address of transfer that caused error is written to the dma_target_error_l (0x0140) register. If the cdma_err_en bit is set in the intr_enable (0x0114) register, then additionally the interrupt is raised. If an error on the system bus is detected during descriptor fetch or sync phases, then command execution is interrupted and the following descriptors in chain are dropped. It happens independently from setting of the cont_on_err bit in the device_ctrl (0x0430) register. In this case, the controller cannot expect reliable data from the system side.
Additionally, the Bus Error and Fail flags are set in the last operation status descriptor field or controller register. If the error source is not fetched or sync operations and cont_on_err bit in the device_ctrl (0x0430) register is cleared, then for CDMA work mode following descriptors are dropped from execution, in the opposite case, the controller continues command execution.