Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Aug 2006 21:10:19 GMT
From:      Jo Rhett <jrhett@svcolo.com>
To:        freebsd-i386@FreeBSD.org
Subject:   Re: i386/100831: sio ignores BIOS information about serial ports - bounty offered
Message-ID:  <200608012110.k71LAJFX058505@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: Jo Rhett <jrhett@svcolo.com>
To: Bruce Evans <bde@zeta.org.au>
Cc: freebsd-gnats-submit@FreeBSD.org, freebsd-i386@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?   
 > 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.
 
 The hints are normal/standard but not working.  Here's proof:
 
 root@arran 23# grep sio device.hints
 hint.sio.0.at="isa"
 hint.sio.0.port="0x3F8"
 hint.sio.0.flags="0x10"
 hint.sio.0.irq="4"
 hint.sio.1.at="isa"
 hint.sio.1.port="0x2F8"
 hint.sio.1.irq="3"
 
 root@arran 24# dmesg |grep sio
 sio0: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 flags 0x10  
 on acpi0
 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.
 
 -- 
 Jo Rhett
 senior geek
 Silicon Valley Colocation
 



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