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