Issue with PI Compute Module


I am having a boot issue with the CM3 (4GIG) at startup. I have ubuntu core installed and under normal operation the system boots up fine.

I have enable the UART 0 overlay and updated a gadget snap to enable a GPS to operate on UART 0.

The issue I am having is that when the GPS is connected to UART 0 (GPIO 14 and 15) and the system powers up the boot halts (ie PI boot process freezes). If however I connect the GPS RX and TX to the PI after full boot, then the UART serial comms works fine and the GPS sends data to the PI.

I have narrowed down the boot freeze problem to a signal/message that the PI communicates on the UART at startup. If the GPS is transmitting on the RX line while the PI is booting (this will occur under normal operation in our system as the PI and GPS are powered from the same power line) the boot process freezes. I have got the PI to successfully boot if the RX line is disconnected during boot.

Is there any way to stop the PI from communicating or reading the RX line on UART 0 during boot?

Thanks for any help on this matter.

This sounds a lot like Using ttyAMA0 as serial interface on raspberry3

i think it is actually a bit different, since i rember having seen this issue before …

u-boot on our official images is built with a boot timeout counter that reacts to a key press on serial …

if using the GPS hat you are connecting that GPS module to the original serial interface (which u-boot listens on as well) … when the GPS module is powered up (even before the system is up), it starts sending AT commands to the serial interface … this now makes u-boot recognize a key-press and drops you into the serial u-boot console (which you can not see indeed since your GPS sits on top of it)

one way to overcome this is to attach a serial cable, stop the boot at the u-boot prompt and then do:

$ setenv bootdelay=0
$ saveenv

then re-attach the GPS module and see if it works …

Thanks that’s exactly how we solved this.

I didn’t update the post. Will do so.


1 Like