When DMA support disabled in fsl_host.c:
SDIF_TransferFunction(): SDIF_TransferBlocking(base, /*&dmaConfig*/NULL, content):
On SD_Write(startBlock=2, blockSize=512, blockCount=1):
SD_Transfer() failure:
- SDIF_WaitCommandDone(): status = 0x14 after SDIF_GetInterruptStatus(). R1 response[0] = 0x20000900 (BLOCK_LEN_ERROR).
On SD_Read(startBlock=2, blockSize=512, blockCount=1):
SD_Transfer() failure:
- SDIF_WaitCommandDone(): status = 0x24 after SDIF_GetInterruptStatus(). R1 response[0] = 0x900 ("success")
- SDIF_TransferDataBlocking(): SDIF_ReadDataPortBlocking():
via step-by-step debugging:
* first SDIF_GetInterruptStatus() call returns 0x420, SDIF_ReadDataPort() returns transferredWords=0xF
* 2nd SDIF_GetInterruptStatus() call returns 0x20, SDIF_ReadDataPort() returns transferredWords=0x1E
* 3rd SDIF_GetInterruptStatus() call returns 0x420, SDIF_ReadDataPort() returns transferredWords=0x2D
* 4th SDIF_GetInterruptStatus() call returns 0x20, SDIF_ReadDataPort() returns transferredWords=0x3C
* 5th SDIF_GetInterruptStatus() call returns 0x420, SDIF_ReadDataPort() returns transferredWords=0x4B
* 6th SDIF_GetInterruptStatus() call returns 0x20, SDIF_ReadDataPort() returns transferredWords=0x5A
* 7th SDIF_GetInterruptStatus() call returns 0x420, SDIF_ReadDataPort() returns transferredWords=0x69
* 8th SDIF_GetInterruptStatus() call returns 0x88(failed - DCRC, DTO - data transfer over - likely FIFO overflow due to step-by-step debugging)
via breakpoints on error:
* last SDIF_GetInterruptStatus() call returns 0x80 (DCRC), transferredWords=0x78 (underrun?)
best regards
J.