
Hi Krzysztof,
On Mon, 11 Feb 2019 at 08:20, Lukasz Majewski lukma@denx.de wrote:
Hi Krzysztof,
Detection of board type is done early - before power setup. In case of Odroid XU3/XU4/HC1 family, the detection is done using ADC which is supplied by LDO4/VDD_ADC regulator. This regulator could be turned off (e.g. by kernel before reboot); If ADC is used early, the regulators are not yet available and the detection won't work.
Try to detect the revision again, once power is brought up.
This is necessary to fix the detection of Odroid HC1 after reboot, if kernel turned off the LDO4 regulator. Otherwise the board is not detected....
But such approach seems not to be the optimal one (as we perform detection twice - with default LDO4 enabled after power on and after soft reset).
I would expect to enable the LDO4 regulator in the early code (I2C would be probably necessary) and then read ADC value properly once.
(I also guess that the "work-by-chance" approach is caused by default settings of PMIC after power on).
So basically you want to move the board detection after the exynos_power_init()... maybe it is possible. The other way is to split set_board_type() into OF part (for compatible and main board difference) and revision detection (requiring ADC). Maybe it is possible, but isn't it used before?
I do want to avoid making the detection twice;
First time when we have the LDO4 enabled by default and the second time when it may happen that we do a soft reset from Linux (which disabled LDO4).
As fair as I remember, TI is able to read the EEPROM via I2C in the very early u-boot (MLO to be precise) code and then make the decision regarding the platform.
Maybe it would be possible to do the same with Samsung?
And another thought - if the set_board_type() can be called latter and it works - why cannot we move it to this latter point and execute exactly once?
It is the same as previous idea... or I do not see the difference...
Best regards, Krzysztof
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de