i386/100831: sio ignores BIOS information about serial ports - bounty offered

Jo Rhett jrhett at svcolo.com
Tue Jul 25 20:41:54 UTC 2006


>Number:         100831
>Category:       i386
>Synopsis:       sio ignores BIOS information about serial ports - bounty offered
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 25 20:40:14 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Jo Rhett
>Release:        6.0-REL
>Organization:
svcolo
>Environment:
FreeBSD arran 6.0-RELEASE FreeBSD 6.0-RELEASE #4: Fri Nov 11 13:29:33 PST 2005     root at barrel.svcolo.com:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
For our motherboard, "Serial A" in hardwired on the board with a 9-pin connector.  "Serial B" is a normal serial connector that can be wired anywhere.  Rackable uses this connector to connect to their out-of-band management interface.

So in the BIOS configuration, we assign COM1 = "Serial B" and COM2 = "Serial A".  This works perfectly for the POST console redirection and FreeBSD boot process.

/boot.config contains "-Dh" and /boot/loader.rc contains "console=comconsole"

In the middle of the boot process, right after saying "Mounting <root-device>", com1 becomes com2 and vice versa.  The console output suddenly starts going to Serial A -- which is connected to a modem.  Not useful.

During the shutdown process, console output reverts to the proper com1 assignment.

>How-To-Repeat:
Connect consoles to both com1 and com2.  Put "-Dh" in /boot.config and "console=comconsole" in /boot/loader.rc.  Boot.  Observe that all console output goes to the same port.

Go into BIOS. Change COM1 assignment from it's natural assignment to the reverse.  Boot again.  Watch the console output change monitors in the middle of the boot process.

>Fix:
sio needs to observe the BIOS flags.

Note that I've tested this on dozens of systems which different chipsets and BIOSs and this appears to be true in all environments.  com1 only works properly if it is assigned to the first serial port that the bios reports to the system.

BOUNTY:  This problem is serious enough that SVcolo is willing to pay an individual to determine the problem and get it committed to the main tree.  Contact me for more information.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-i386 mailing list