[Letux-kernel] LX20 prototype is booting

H. Nikolaus Schaller hns at goldelico.com
Tue May 6 22:38:52 CEST 2025


Hi,

I finally managed to boot the second prototype board with U-Boot which is now as well
trying to run the kernel.

The reason was that the SPL code initializes the µSD MSC2 with a 50 MHz clock which
seems to be too fast for the wiring on the PCB (the traces are not well impedance
controlled).

On one board this seems to be ok and U-Boot (loaded to DDR) then uses a slower
speed and therefore I fortunately could work with it.

Here the SPL speed is defined:

	https://git.goldelico.com/?p=letux-uboot.git;a=blob;f=common/spl/spl_jzsdhci.c;h=3ad4920e84623b5084e06b60b803c967f41fb908;hb=169df5e5cf342b90a611645c9bff891a0db8235f#l146

and here is what I think U-Boot does:

	https://git.goldelico.com/?p=letux-uboot.git;a=blob;f=drivers/mmc/jz_sdhci.c;h=0442ac11cf9cabf9bdbebc7241f0ae4a22dff5c3;hb=169df5e5cf342b90a611645c9bff891a0db8235f#l130

So it looks as if we now have two working LX20 prototypes which can blink the heartbeat LED...
And I know that it needs improvement of the wiring for the next version.

Code with two new patches is here:

	https://git.goldelico.com/?p=letux-uboot.git;a=shortlog;h=refs/heads/ingenic-x1600-v3

Last remaining bug with U-Boot seems to be why it needs so much time to load the
5MB uImage (takes 5 seconds). Or is the clock initialized for 2.4 MHz instead of 24.

Maybe something broken in jz_set_mmc_clk() or clk_set_rate()

	https://git.goldelico.com/?p=letux-uboot.git;a=blob;f=drivers/mmc/jz_sdhci.c;h=0442ac11cf9cabf9bdbebc7241f0ae4a22dff5c3;hb=169df5e5cf342b90a611645c9bff891a0db8235f#l95

BR,
Nikolaus




More information about the Letux-kernel mailing list