Is there a known issue with an iMX6 boot process hanging due to the UART? I have an intermittent problem on some boards where they only boot part-way until a UART cable is physically plugged in.
They will spit out some Rx FIFO overrun errors for a while and then hang, e.g. here the bootup hung until a UART cable was connected 12 minutes later, at which point udevd etc started up:
[ 2.825049] imx-uart 21e8000.serial: Rx FIFO overrun
[ 3.584013] imx-uart 21e8000.serial: Rx FIFO overrun
[ 3.599746] imx-uart 21e8000.serial: Rx FIFO overrun
[ 3.612704] imx-uart 21e8000.serial: Rx FIFO overrun
[ 3.629967] imx-uart 21e8000.serial: Rx FIFO overrun
[ 3.652768] imx-uart 21e8000.serial: Rx FIFO overrun
[ 746.789572] udevd[156]: starting version 182
[ 746.795362] imx-uart 21e8000.serial: Rx FIFO overrun
I've attached a full boot dmesg, where one can see the 12 minute pause before a UART cable was physically connected. After that udevd starts, networking starts etc.
Many thanks
Original Attachment has been moved to: uarts.txt.zip
Probably you need to place a pull-up resistor on the RX line, if that line has a low level the uart receiver may consider it as a character that needs to be received and this will overflow.
When a cable is connected to another device the the RX will have a high level when no data is available.
Hi kal
one can check if uart rx line is floating or noisy, as this may cause
its overrun errors.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------