[Letux-kernel] board revision readout

H. Nikolaus Schaller hns at goldelico.com
Thu Dec 15 20:34:16 CET 2016

> I just looked into the code and it turns out that I have already
> implemented a while ago what you propose:
> http://git.goldelico.com/?p=gta04-uboot.git;a=blob;f=board/goldelico/letux-cortex15/lc15.c;h=faa1a09373708d2427dcb1fb33973a72f6f260f7;hb=refs/heads/letux-2016.11#l102
> Only translating into the proper DTB isn't implemented.
> And, detecting major mainboard variants is missing in
> http://git.goldelico.com/?p=gta04-uboot.git;a=blob;f=board/pandora/pyra%2Blc15/pyra%2Blc15.c;h=abe25358849f0ce25ccb441bc7415270bc2199f8;hb=refs/heads/letux-2016.11
> Nothing difficult.

I have now finished it and fixed some minor bugs in the code so that
U-Boot 2016.11 can be used:

Here is what the automatic can do (the detected DTB is still overwritten
in uEnv.txt):

	Found LC15 V5.1
	Found Pyra MB V5.0
	Device Tree: letux-cortex-15-v5.1+pyra-v5.0.dtb

Fortunately, you made me really implement and test this now and not
in some weeks.

Because it brought another hidden hardware issue to the surface.

The problem is that the OMAP5 has stronger pull-up/down than I was
used to from OMAP3 and I didn't read the data sheet fully. It says
in a footnote that the typical PU/PD current is 100µA.

But using a 10k resistor for version encoding pullup/down (which is good
for OMAP3) makes a voltage of 1V which means that having a PU programmed
by OMAP5 and PD by resistor installed in factory is still read as "1"
and not "0" as an external PD should indicate.

This means we have to use an 1k to be on the safe side (and kernel
should turn off the PU/PD to save several 100 µA).

After fixing this in 3 CPU and 2 Mainboards I got some combinations
working (e.g. 5.0 + 5.1, 5.1 + 5.0, 5.1 + 5.1).

Latest U-Boot code is here:


If you run it on your board there might be false reports unless
you fix the resistors. So please keep the uEnv.txt...

So thanks and BR,

More information about the Letux-kernel mailing list