I'm trying to use a Raspberry Pi with a UART peripheral and a non-Raspbian Linux distribution. It seems like most of these distributions use U-Boot. I'm running into two problems:
- U-Boot outputs on the serial console by default, which confuses the peripheral (it mistakes the logging messages as input)
- My peripheral tries to respond to these messages, which interrupts the U-Boot loader and prevents the kernel from booting
It seems like the possible solutions to this problem are:
- Disable the serial console/UART in U-Boot
- Boot the kernel directly (i.e. remove U-Boot from the boot process)
I've done a lot of searching, and it doesn't seem like there's a way to disable the U-Boot serial console output at runtime (i.e. without patching and recompiling U-Boot). I'm sure I could figure out how to have the Pi bootloader load the Linux kernel directly (like Raspbian does), but that seems like it might break with kernel updates.
I'm trying to investigate a third option: is it possible to have the UART disabled at boot time and enable it from the operating system instead? Failing that, are there any other workarounds to prevent U-Boot from using the serial console, or should I give up and use Raspbian?