Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Jul 2006 10:00:37 GMT
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-i386@FreeBSD.org
Subject:   Re: i386/100831: sio ignores BIOS information about serial ports - bounty offered
Message-ID:  <200607311000.k6VA0b4v044788@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/100831; it has been noted by GNATS.

From: Bruce Evans <bde@zeta.org.au>
To: Jo Rhett <jrhett@svcolo.com>
Cc: freebsd-gnats-submit@FreeBSD.org, freebsd-i386@FreeBSD.org
Subject: Re: i386/100831: sio ignores BIOS information about serial ports -
 bounty offered
Date: Mon, 31 Jul 2006 19:55:42 +1000 (EST)

 On Tue, 25 Jul 2006, Jo Rhett wrote:
 
 >> 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.
 
 I think you just need to swap the ports in /boot/device.hints?  Consoles
 are mostly low-level, and console initialization is very low level.
 The initialization is supposed to run before ACPI, etc. have had a
 chance to change the resource values dynamically (so that ACPI, etc.
 can print messages and otherwise be debugged), so when sio console
 initialization uses the apparently-higher-level resource access functions
 it is actually just using the hints, so the hints had better be correct
 -- they are more than hints.
 
 I don't know exactly what happens with ACPI.  Ideally, ACPI should set
 the resource values to match the BIOS, and this might involve ignoring
 most hints and this changing the values from their defaults, but for
 consoles any changes in the values would be wrong and might result in
 the high-level console (/dev/console) being attached to a different
 device than the low-level console (the one used for kernel printfs).
 
 Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607311000.k6VA0b4v044788>