[Letux-kernel] X1600 / LX16 support - here: adding MMC

H. Nikolaus Schaller hns at goldelico.com
Fri Feb 9 18:20:17 CET 2024



> Am 09.02.2024 um 18:12 schrieb Paul Boddie <paul at boddie.org.uk>:
> 
> On Friday, 9 February 2024 15:14:11 CET H. Nikolaus Schaller wrote:
>> 
>> So it will indeed be interesting to see how the MSC registers are
>> initialized. And clock dividers and registers. And pinctrl. Will just need
>> a little time for hacking this into the kernel code.
> 
> U-Boot does set up the pins for MSC0

This could explain why only MSC0 generates a CLK output. But we have proper
pinctrl in the DTS so it should also be set up for MSC1?

> and obviously transfers the boot payload, 
> but as previously noted it also sets low power mode (LPM), and this might be 
> obstructing any device clock operations that take place without being aware of 
> the stated effects of LPM.

Ok! Then we probably should add code to make Linux more independent of
any U-Boot setup. I.e. make no assumptions...

> However, I have been working through the initialisation separately and have 
> found that, in contrast to various earlier SoCs, there is a timeout interrupt 
> that needs to be tested for. This is actually done in the U-Boot code. I was 
> previously assuming that it was sufficient to test for the end-of-command 
> interrupt, but this occurs even if there is a timeout: it doesn't indicate a 
> successful response.
> 
> So, there may be some differences in functionality that need to be introduced.

Ok, we might end up in a mix of several bugs where each single one makes
MMC not working:)

BR,
Nikolaus


More information about the Letux-kernel mailing list