[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