
Am 24.05.2014 12:44, schrieb Marek Vasut:
Please explain how you arrived to this conclusion.
Hello Marek,
I started writing an powerblock driver for the i.MX233 to use the imx233 olimex board with a battery. Short time (instant up to 90 seconds) after the 5v to battery handoff the system reseted. The system was running on DCDC prior to the handoff. I suspected that some of the power rails where droping and trigger hardware brownouts. But this was not the case. The DCDC got shutdown and some ms after that the rails begun to drop. I have some scope pic of this happening i it is of interest.
I than tried out some random bits in the MINPWR register and the reset problem was gone. Than I track down it to this 1 bit causing the instability.
This has been tested on i.MX28 , can you please check what the differences are between these two chips and why it works only on one of them ?
From the block diagram in the AN4199 pdf i am quite sure that it wont
work this way on the i.MX28 either. The VDDIO Linreg is sourced from the 5V rail. So if we run from battery only we can not deactivate VDDIO from DCDC by setting DISABLE_FET.
The BootROM never hands over to U-Boot, so this really makes no sense. Can you please explain ? The BootROM handles over to U-Boot SPL, which configures the power block.
Sorry I meant the U-Boot SPL.I not that familiar with U-Boot architecture.
Also, I find it a very bad idea to depend on the BootROM to actually start the DCDC converter. I don't think we can universally say the DCDC converter is running when entering U-Boot SPL. I also don't think we can even depend on the power block configuration when exiting the BootROM -- for example in JTAG Boot Mode, the BootROM halts early in the boot process and will likely not configure anything with regards to the power block.
I am with you at the point that proper initialization is very important and we should not rely on BootROM.
If the system is running on battery only, we should not switch the VDDIO regulator to Linreg mode because there are no 5V to source it. In mxs_power_enable_4p2() all Regulators get switched to Linreg mode and that kills the power to hole system and there by is triggering an brownout reset.
The mxs_power_enable_4p2() function can only work if we assume there is 5V present.
I hope I got clearer way this will not work in a battery only scenario.
Best regards, Peter Schumann