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

Jo Rhett jrhett at svcolo.com
Fri Aug 4 18:40: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,
        njl at freebsd.org
Subject: Re: i386/100831: sio ignores BIOS information about serial ports - bounty offered
Date: Fri, 4 Aug 2006 11:36:56 -0700

 On Aug 4, 2006, at 5:29 AM, Bruce Evans wrote:
 > Later we mentioned boot0.  boot0 does use the BIOS and has COM1
 > hard-wired, so assignment of COMB to COM1 at the BIOS level is the
 > only way to make boot0 use COM1.
 >
 > Whether you can make COMB be COM1 at other levels depends on the other
 > level's support for this.  Whether settings at lower levels are  
 > honored
 > at higher levels also depends on the other levels' support for this.
 >
 >> FreeBSD is currently assigning sio0 to serial A, regardless of the  
 >> IO and
 >> IRQ settings.  Likewise sio1 to Serial B, regardless of  
 >> configuration.  It
 >> appears likely that they are assigned based entirely on the order  
 >> that they
 >> are presented via ACPI, and device hints are ignored entirely.
 >
 > This now seems a reasonable thing to do.  WinXP behaves similarly here
 > (see another reply).  The hints are only hints, so they shouldn't be
 > used if the hardware has been reconfigured but not moved.  Only  
 > something
 > stronger than a hint should move the unit numbers if the hardware  
 > hasn't
 > moved.  The problems are that the hints get used partially and  
 > there is
 > nothing stronger.
 
 I'd like to note for the record that all of this is goobly-gook.   
 None of what you're saying rhymes with the documentation, and even  
 you guys talking about this on the thread seem to have different  
 views of what is happening here.
 
 I am finding this conversation nearly impossible to follow.  Not  
 because it's technically difficult -- this stuff is fairly simple! --  
 but because I have no useful reference documentation, and it's not  
 always clear that everyone in the conversation is on the same page to  
 start with.
 
 In particular, I'd like to argue this point:
 
 > This now seems a reasonable thing to do.  WinXP behaves similarly here
 
 Absolutely not.  0x3f8 is ALWAYS COM1 to Windows, no matter what  
 version and no matter what physical port 0x3f8 is assigned to.
 
 If you'd like to argue that assigning sio numbers based on physical  
 hardware ordering makes sense -- I can't argue with that.  Except to  
 point out that if each and every level of the boot process does it  
 differently then it becomes impossible to have a serial console  
 except in the one condition that 0x3f8 is assigned to the first port  
 provided via acpi.
 
 ^^ Note that this latter condition has been possible in less than 50%  
 of the production environments on which I have worked over the last  
 17 years.
 
 -- 
 Jo Rhett
 senior geek
 Silicon Valley Colocation
 


More information about the freebsd-i386 mailing list