On 25.08.26 14:24, Hiago De Franco wrote:
> Hi Andrei,
> 
> On Sat, Aug 22, 2026 at 11:15:10AM +0200, Andrei Lalaev wrote:
>> Hi Hiago,
>>
>> Thank you for the patches.
>>
>> From your cover letter I understood that SD card is supported.
>> However whatever I try, I always get the following error:
>>
>>     U-Boot 2026.07-00002-gbd5e3de2ed6a (Aug 22 2026 - 10:27:48 
>> +0200)milkv_duo_256m
>>
>>     DRAM:  256 MiB
>>     Core:  20 devices, 13 uclasses, devicetree: separate
>>     MMC:   mmc@4310000: 0
>>     Loading Environment from nowhere... OK
>>     In:    serial@4140000
>>     Out:   serial@4140000
>>     Err:   serial@4140000
>>     Net:
>>     Warning: ethernet@4070000 (eth0) using random MAC address - 
>> 16:21:8c:10:cd:96
>>     eth0: ethernet@4070000
>>     Hit any key to stop autoboot: 0
>>     milkv_duo_256m# mmc info
>>     Card did not respond to voltage select! : -110
>>     milkv_duo_256m# mmc rescan
>>     Card did not respond to voltage select! : -110
>>
>>
>> I tried 2 different SD cards and got the same result.
>>
>> Am I doing something wrong, or is there something else I need to configure?
> 
> You are most likely missing this patch:
> 
> https://lore.kernel.org/all/[email protected]/
> 
> This is needed in order to make the SD card work. This patch is already
> merged on main branch, as commit 3a4a8963aace ("mmc: cv1800b_sdhci:
> honor 'no-1-8-v' DT property").
> 
> Check this patch and let me know if it works now ;)

Thank you for your response:)

I also tried the latest main branch (so all patches are definitely included)
and had the same problem.

I guess I somehow managed to fix the problem, so below I'll describe what I did
and would like to hear your thoughts about it.


When I generated `fip.bin` using precompiled binaries from fiptool repo [1],
it started working most of the time. Previously I was using an FSBL manually 
generated
using official SDK [2]. However, I would still occasionally get
voltage select error and timeouts.

So I started comparing FSBL and U-boot from Sophgo (2021.10) and
I couldn't find any differences that could explain this behaviour.

Today I found out that the kernel DTS configures the SD0_CLK pin to a different 
value [3].
By default, we have 0x48 in IOBLK_G10_REG_SD0_CLK register, but if I set it to 
0x84
like kernel does, it magically starts to work all the time.

I understand why increasing the drive strength fixed timeout issues, but I 
don't understand
why I don't see the same problem with the U-Boot from Sophgo (2021.10).

1 - https://github.com/sophgo/fiptool
2 - https://github.com/milkv-duo/duo-buildroot-sdk-v2/tree/main
3 - 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/riscv/boot/dts/sophgo/sg2002-milkv-duo256m.dts#n68

>>
>>
>> Best regards,
>> Andrei Lalaev
> 
> Regards,
> Hiago.


-- 
Best regards,
Andrei Lalaev

Reply via email to