Occasionally, there are customers complaining ,targets not booting after receiving modules with the latest U-Boot firmware. The only thing they see at the serial port is:
in an endless loop.
This message denotes that the CPU has detected a brownout (a sudden voltage drop of a monitored power rail) and causes a controlled reset.
The bootlets is a Secondary Program Loader (SPL), that is a piece of code that executes right after the CPU's ROM loader and before the primary U-Boot boot loader. It configures the SDRAM controller, the Debug UART (DUART) and the Power Management Unit (PMU or PMIC) of the CPU.
This source code is provided by Freescale.
The source code is provided as a toolchain package with DEL LiveDVD in tgz format. It is important to note that:
The bootlets are merged into U-Boot image during U-Boot compilation. A final step merges the U-Boot binary image (u-boot.bin) with the bootlets to produce an image the iMX28 CPU can boot (u-boot-ivt.sb).
In the previous bootlet versions, VDDD brownout detector was disabled and in newer version it is enabled for better protection.
The DUART MAX232 on Digi's JSK is powered at +3.3V while on certain customers designs, the MAX232 of the DUART is powered at +5V. The i.mx28 lines support a max voltage of 3.3V. When the DUART MAX232 is powered at 5V the DUART_RX input line is exceeding the 3.3 voltage (it can be configured to 1.8 or 3.3V) and this is causing VDDD brownout to trigger a CPU reset.
For this reason, the design of a customer may work fine if using old bootlets (the VDDD brownout was not enabled).
The MAX232 of the customer board must be powered at 3.3V or a voltage limitator introduced on the input lines (like RX).
The same is applicable to other UARTs or input lines.