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

Jo Rhett jrhett at svcolo.com
Wed Aug 2 17:50:19 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,
        njl at freebsd.org
Subject: Re: i386/100831: sio ignores BIOS information about serial ports - bounty offered
Date: Wed, 2 Aug 2006 10:40:49 -0700

 > On Wed, 2 Aug 2006, Jo Rhett wrote:
 >> 1. We can't/won't fix the sio0<->sio1 problem because fixing ACPI  
 >> is hard
 
 On Aug 2, 2006, at 10:25 AM, Bruce Evans wrote:
 > _I_ can't/won't fix it because not just the above :-).  Swapping of  
 > consoles
 > only could be fixed within the driver (so that ACPI is not involved  
 > and
 > you don't have to change device.hints) since consoles have to be  
 > hard-wired
 > in some way and the hints are good enough for wiring the unit  
 > number to
 > the i/o address (provided it's an old ISA port -- otherwise hints  
 > based
 > on the i/o address don't work).
 
 Sorry, color me dumb.  I'm getting lost here.  The problem I was  
 observing is that device hints is being (mostly) ignored by ACPI and  
 thus this is the root problem to fix.  I'm not sure what you're  
 trying to say here.
 
 >> 2. The sio units are thus going to swap when entering high-level  
 >> sio mode
 >> 3. The workaround is to put flags 0x10 (or 0x90) on sio1
 >
 > It also needs the port numbers swapped (for consoles to work) and  
 > other hints
 > swapped (to be consistent, so as to work if there is no ACPI so the  
 > other
 > hints are actually used)
 
 Can you provide a clear list of instructions then?  I have no idea  
 what you mean by "port numbers swapped".  Swapped where?
 
 I was assuming
 	/boot.config has -Dh
 	/boot/loader.conf has console="comconsole"
 	/boot/device.hints comment out #hint.sio.0.flags="0x10"
 	/boot/device.hints add hint.sio.1.flags="0x10"
 	/etc/ttys - put a getty on ttyd1
 
 What am I missing?
 
 If I understand correctly, the boot loader compiled in option sio0 on  
 0x3f8 flags 0x10 will be in effect until the higher level sio driver  
 is loaded, at which point it reassigns all the ports based on ACPI  
 and device.hints and the two changes to device.hints above will take  
 effect, yes?
 
 >> 4. There should be no ill effect from doing this.  Console will  
 >> never break
 >> and go to the wrong port.
 >
 > Yes, "should be".  The wiring should be fairly deterministic once you
 > get it to work.  I think it will continue to work even if someone  
 > fixes
 > (?) ACPI to prefer the hints order to the ACPI order.  However, it  
 > would
 > break if someone fixes (?) ACPI to prefer the BIOS order to both  
 > the hints
 > order and the ACPI order (I think ACPI is using its own order and  
 > doesn't
 > know that you've swapped the order in the BIOS).
 
 I'm not sure I understand the difference.  The ACPI order is the  
 order that the BIOS presents them in when querying it via ACPI, yes?
 
 -- 
 Jo Rhett
 senior geek
 Silicon Valley Colocation
 


More information about the freebsd-i386 mailing list