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

H. Nikolaus Schaller hns at goldelico.com
Tue Feb 13 10:22:29 CET 2024


Hi Paul,


> Am 13.02.2024 um 01:32 schrieb Paul Boddie <paul at boddie.org.uk>:
> 
> On Sunday, 11 February 2024 17:00:58 CET H. Nikolaus Schaller wrote:
>> 
>> The result of this effort is tested on X1600 (positively) and CI20 (no
>> negative effects observed and BTW, the mmc speed is just 11 MB/sec!) and
>> the sources are here:
>> 
>> https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/
> heads/work-x1600-v4
>> 
>> So we now have a very good basis for incremental improvements. Please share
>> here on the mailing list if you have something.
> 
> It has been hard to track all of the differences introduced here, so I 
> obtained this branch and attempted to boot. As noted previously, although the 
> SD card could be accessed, it wasn't possible to use the max-frequency of 
> 50MHz, or at least I saw some fairly worrying stack traces appear in the 
> console.

Exactly what I had above ca. 5 MHz.

> 
> So, I have applied some changes to the PLL configuration to a new branch based 
> on this one:
> 
> paulb-work-x1600-v4
> Running with a 50MHz max-frequency seems to be successful.

Great! I can then try with the oscilloscope to verify what is really visible.

> I looked at the 
> clk_summary debugfs file and saw that many of the reported frequencies were 
> previously ten times too small. I think my changes fix that, but it seems very 
> odd, and I wonder what effect changing the max-frequency may have had, even 
> though that is only supposed to apply to MSC0.

Well, if some intermediate clock is defined at 1/10 of the frequency that it is intended for
the divider may be clipped and it may run at something between 1 and 1/10. The next
stage divider or upscaling PLL may try to compensate for this and also be at some
limit. So the result may be that the only choice is to run at the wrong speed.

Which is then too fast for the internal hardware and some flip-flops loose
clock events and the protocol state engine does strange things.

> 
> Anyway, feel free to take a look.

Maybe the push did fail or have you pushed elsewhere?

BR and thanks,
Nikolaus



More information about the Letux-kernel mailing list