i386/100831: sio ignores BIOS information about serial ports -
jrhett at svcolo.com
Tue Aug 1 21:10:20 UTC 2006
The following reply was made to PR i386/100831; it has been noted by GNATS.
From: Jo Rhett <jrhett at svcolo.com>
To: Bruce Evans <bde at zeta.org.au>
Cc: freebsd-gnats-submit at FreeBSD.org, freebsd-i386 at FreeBSD.org
Subject: Re: i386/100831: sio ignores BIOS information about serial ports - bounty offered
Date: Tue, 1 Aug 2006 13:59:44 -0700
> On Tue, 25 Jul 2006, Jo Rhett wrote:
>> 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.
On Jul 31, 2006, at 2:55 AM, Bruce Evans wrote:
> I think you just need to swap the ports in /boot/device.hints?
> 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
> it is actually just using the hints, so the hints had better be
> -- they are more than hints.
The hints are normal/standard but not working. Here's proof:
root at arran 23# grep sio device.hints
root at arran 24# dmesg |grep sio
sio0: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 flags 0x10
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 on acpi0
sio1: type 16550A
Heh? Hints says 0x3f8 should be sio0 and console...
> 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).
It appears that ACPI is setting the sio order to match the order that
the BIOS lists them, which is completely arbitrary and downright wrong.
Silicon Valley Colocation
More information about the freebsd-i386