I have been working on a SD controller for the imx6SDL. I am testing and debugging the initialization, however it is not working, this happens when I issue CMD7 to enter to transfer state. When I check for any error on the Interrupt Status Register after the command is sent, I got a Command Timeout Error and Command Index Error and I have not been able to discovered the problem. I issue some other commands (CMD0, CMD8, CMD55, ACMD41, CMD2, CMD3) and I did not find any error. Before sending this command, I clear the Interrupt Status Register fields (CC, CTOE, CCE, CEBE, CIE), also it is important to mention that I got 0x80700 in Command Reponse 0 Register.
This is the way I set the instance registers:
Command Index = 7
Argument = Card Relative Address (0x7 << 16)
Response Type Select (Command Transfer Type Register) = Response Length 48, check Busy after response (0x3)
Data Transfer Direction Select (Mixer Control Register) = 1 (Read)
Data Present Select (Command Transfer Type Register) = 0 No Data Present
Command Index Check Enable (Command Transfer Type Register) = 1 Enable
Command CRC Check Enable (Command Transfer Type Register) = 1 Enable.
As I mentioned before, I did not get any error on other commands, the SD card is successfully detected however I can not enter to transfer state to start transmitting data. I really appreciate any suggestion that can help me to solve my problem.
We have internally escalated that question and AE team will help on this. You will receive additional updates here.
In the mean time, could you please specify which board, BSP and Kernel version are you using?
We will be waiting for your reply.