[U-Boot] STM32F7 SD/MMC Card Driver - Testing/Review

Philipp Rossak embed3d at gmail.com
Wed Mar 22 11:18:10 UTC 2017


Hi Jaehoon,

Yes that what you mentioned is a timeout error. That error occurs if I 
don't get a response from several Hardware/error flags (a counter 
reaches  a limit).

As you mentioned the cmd 6 shoudn't read any data. This is what I'm 
doing if I'm transfering data:

This is the function called from the upper layers:

stm32_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, struct 
mmc_data *data)

If it is necessary to transfer data all the related code for that is 
placed in if conditions like below.

if(data) { ... }

Something interesting:

Here is are two new logs I just recoreded a few minutes ago after some 
sleep. The sourcecode is the same i just recompiled it and flashed it 
again. You can see it on the timestamp in line 4. I used the same card 
as in Log [1].

Log [3]  behaves now different than before, there is no data read from 
the cmd6

Log [4] behaves similar to log [1].

I made a diff between log [3] and Log [4] and till line 265 is 
everything the same. @ line 266 & 267 the answer to cmd 51 is different!?

Best Regards,

Philipp Rossak

[3] http://pastebin.com/AK3RB1bH

[4] http://pastebin.com/xk2TkGpd


On 22.03.2017 02:54, Jaehoon Chung wrote:
> Hi Philipp,
>
> On 03/22/2017 10:38 AM, Philipp Rossak wrote:
>> Hi Jaehoon,
>>
>> Thanks for that hint!
>>
>> I uploaded two logs to pastebin.
>>
>> Log [1] is a sandisk ultra 32gb sd card. This time I didn't got it work properly.
>>
>> Log [2] is from an other 2gb sd card where I pressed the reset button until I received data from CMD 17 command.
>>
>> Right now there are a lot of debug outputs, to make it for me easy for me to find the errors. The most of them will be removed later.
>>
>> Best Regards,
>>
>> Philipp Rossak
>>
>>
>> [1] http://pastebin.com/LcSSmBfp
> In Log [1],
>
> mmc 0, cmd 6(0x00000446), arg 0x00fffff1
> START DATA TRANSFER
> CMD: 6
> Timeout STA2: 00202040------------------
> END DATA TRANSFER
> Ret: -110  -  STA  00202540
>
> It seems timeout error, right? As i know, CMD6 doesn't have any data..
> Even if didn't check your source code..i guess that you need to check whether it's waiting for completing data or not.
> (or check the register about interrupt e.g, end of data interrupt..?)
>
>
> In Log [2],
>
> It seems to fail the getting sd status...also timeout..
> I need to check your source code..after that, i will review more..
>
> Best Regards,
> Jaehoon Chung
>
>> [2] http://pastebin.com/zRbRMXtE
>>
>>
>>
>> On 22.03.2017 01:51, Jaehoon Chung wrote:
>>> Hi Philipp,
>>>
>>> On 03/22/2017 09:27 AM, Philipp Rossak wrote:
>>>> Hey everyone,
>>>>
>>>> I'm currently working on a SD / MMC Card driver for the stm32f746g-disco Board. You can find my actual very early work right here on my github repository: [0]
>>>>
>>>> Currently I'm getting errors that are not reproducible:
>>>>
>>>> - Errors on sending different commands (happens somtimes but randomly)
>>>>
>>>> - Errors at CMD 17 & 18 reading procedures
>>> If you can also share the log, it's helpful to check your problem.
>>> I don't have board to test yours, but i can check your driver as code level.
>>>
>>> Best Regards,
>>> Jaehoon Chung
>>>
>>>> And sometimes works everything without any problems....
>>>>
>>>> Right now I think that my hardware got broken (but I'm not sure). It would be nice if someone could test the driver and send me the log. A small code review would help me also.
>>>>
>>>> Thanks in advance!
>>>>
>>>> Best regards,
>>>>
>>>> Philipp Rossak
>>>>
>>>> [0] https://github.com/embed-3d/stm32_mmc_driver/tree/stm32f7_mmc_hw_testing
>>>>
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://lists.denx.de/listinfo/u-boot
>>
>>



More information about the U-Boot mailing list