Bug 194121

Summary: device.hints not honored when selecting UART for system console
Product: Base System Reporter: Matt Smith <mgsmith>
Component: confAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Some People    
Priority: ---    
Version: 10.0-STABLE   
Hardware: amd64   
OS: Any   

Description Matt Smith 2014-10-03 20:39:38 UTC
I am trying to boot 10-STABLE on a system based on Intel's Atom C2538 board with 2 UART devices. The first UART is not used. The second is exposed externally to be used as the system console. When I try to set hint.uart.1.flags="0x10" and unset that flag from UART 0, nothing gets displayed to the system console when it boots.

I repeated the test on a SuperMicro system based on Intel's Atom C2758 board and got similar results. Trying to force the second serial port to be the system console doesn't work. If I set the flag to indicate that the second uart is available as the system console, when the system comes up, the first uart is still acting as the console. Here are the hints:


and the relevant info from dmesg:

uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
uart0: console (115200,n,8,1)
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 flags 0x10 on acpi0

I've tried other tricks:

1. Comment out the hints listed above and just add a new set of hints for uart.0 that has irq 3, port 0x2f8, flags 0x10. The result was that the system still found the other uart and made it the system console. dmesg data:

uart1: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
uart1: console (115200,n,8,1)
uart0: <16550 or compatible> port 0x2f8-0x2ff irq 3 flags 0x10 on acpi0

2. Set hint.uart.0.disabled="1" with the hints listed above. The result was that the system did not output any console messages on either serial port and just used the VGA.

In all of this testing, I had both ttyu0 and ttyu1 enabled in /etc/ttys. /boot/loader.conf had console="comconsole,vidconsole" and comconsole_speed="115200". /boot.config contained -D.

I can boot both of these devices from FreeBSD 8.3 with the second serial port set as the system console. Newer versions of FreeBSD, at least 10-STABLE and 11-CURRENT, it doesn't seem to work. I haven't tried any of the 9.x releases.
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2014-10-17 23:44:43 UTC