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>