Getting the kernel to let go of my UART!

Dustin Marquess dmarquess at gmail.com
Mon Jan 23 06:24:19 UTC 2017


On Sun, Jan 22, 2017 at 1:06 PM, Oleksandr Tymoshenko
<gonzo at bluezbox.com> wrote:
> Dustin Marquess (dmarquess at gmail.com) wrote:
>> On Sunday, January 22, 2017, Hans Petter Selasky <hps at selasky.org> wrote:
>>
>> > On 01/22/17 06:07, Dustin Marquess wrote:
>> >
>> >> [Sorry if this is somewhat of a dupe, I have yet to find a solution]
>> >>
>> >> I've been running FreeBSD on my Pi 3s for a little over a month now,
>> >> first using gonzo's SMP code + a home cross-compiled kernel, and then
>> >> I moved to the HardenedBSD images.  All of them work great except one
>> >> issue that's driving me nuts...
>> >>
>> >> The downside to the Pi 3 vs some other boards is that there's really
>> >> only one UART tied to the GPIO pins.  I'm trying to feed my Pi 3 with
>> >> a GPS board.
>> >>
>> >> 1st issue: The NMEA stream upsets U-boot.  Fine, compiled my own and
>> >> that's "fixed".
>> >>
>> >> 2nd issue: Even with a USB keyboard attached and HDMI output
>> >> connected, FreeBSD still wants to steal the first uart (ttyu0) as a
>> >> console port.  I thought that would be fine as long as I use "-m -n
>> >> -q" in the boot config to disable kernel output and then "conscontrol
>> >> delete ttyu0".  Well, that KIND of works.  It seems to work fine when
>> >> using 115200bps, but trying to change the baud rate to match the GPS
>> >> unit doesn't seem to work at all, I'm guessing because it's still set
>> >> as an available console?
>> >>
>> >> hint.uart.0.flags="0x0" doesn't work, as it still marks it as a
>> >> console.  console="efi" seems to be the only setting that works,
>> >> "vidconsole" and "nullconsole" both don't work.
>> >>
>> >> Is there a way to stop the kernel from trying to claim the UART as a
>> >> console?
>> >>
>> >
>> > I think so, have a look in /etc/ttys and comment out the ttyu0 line.
>> >
>> > Sadly, I already did that. There's no getty running, but dmesg still shows
>> the kernel marking it as a console.
>
> Just a random idea, try adding hw.fdt.console=foo0 to /boot/loader.conf
> This should force uart_cpu_fdt_probe to fail.

Wow, I think that actually did the trick!

Thank you so very much, I've been pulling my hair out of this for
probably 2 weeks now!

-Dustin


More information about the freebsd-arm mailing list