Does anyone know what the status values given in HW_POWER_SPEED for the switching dc-dc converter mean?
I have a custom board based on the EVK and I'm using the imx-bootlets-src-10.12.01 bootlets with the latest patches.
The board is powered from a 5V source and has no battery so the NO_DCDC_BATT_SOURCE define is set.
In normal operation PSWITCH is pulled down to 0V and everything works fine.
To program the NAND FLASH, used as the normal boot device, I use USB recovery mode by pulling PSWITCH up to VDDIO as per the reference schematic.
This mode is not reliable on my board. (I don't have the EVK to hand.)
On an oscilloscope I see that sometimes as the power rails rise, the DCDC switcher starts to switch for a few cycles and then stops before the rails reach their default values and the ROM code starts to run. If this happens then HW_POWER_SPEED[15:8] > 0xa and when the powerprep routines try to start the switcher all that happens is that the VDDA power rail is dragged down towards 0V until the unit locks up or crashes.
If I detect HW_POWER_SPEED[15:8] > 0xa at the start of powerprep and do a powerdown using bit 0 of HW_POWER_RESET, the unit comes back up with HW_POWER_SPEED[15:8] = 0 and everything then works fine. There are no spurious switching cycles during the subsequent power up as PSWITCH, VDDIO etc are all at defined levels.
Between working and non working power-up modes all register values are identical with the exception of HW_POWER_SPEED - hence my test.
Whilst the workaround appears solid, I'd like to know what the debug bits in HW_POWER_SPEED imply is happening.