Getting the kernel to let go of my UART!

Dustin Marquess dmarquess at gmail.com
Mon Jan 23 20:18:16 UTC 2017


Okay, maybe the console thing was a red herring then.

It's not marking it as a console at all anymore, but something is
still locking the baud rate to 115200.  Even though stty and minicom
are both set to 9600, anything set/received at 9600 doesn't work/is
garbled.  If I set it to 115200, it works fine.  I had wrongly assumed
it was because of it marking it as a console (since the console line
in dmesg said 115200).

Device map? enable_uart=1 aka core_freq= maybe? I'll try tinkering..

-Dustin

On Mon, Jan 23, 2017 at 12:24 AM, Dustin Marquess <dmarquess at gmail.com> wrote:
> 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