i386/100831: sio ignores BIOS information about serial ports -
bounty offered
Bruce Evans
bde at zeta.org.au
Wed Aug 2 20:00:46 UTC 2006
The following reply was made to PR i386/100831; it has been noted by GNATS.
From: Bruce Evans <bde at zeta.org.au>
To: Jo Rhett <jrhett at svcolo.com>
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: Thu, 3 Aug 2006 05:53:58 +1000 (EST)
On Thu, 3 Aug 2006, Bruce Evans wrote:
> On Wed, 2 Aug 2006, Jo Rhett wrote:
>>>> 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?
>
> I don't completely understand this either. I think there is a non-ACPI part
> of the BIOS that FreeBSD (or all OS's doesn't see). As I understand your
> configuration, you start with COM1 and COM2 at the usual places but don't
> want to use COM1 so you change the BIOS settings for COM2 to the usual ones
> for COM1 and maybe vice versa. This changes soft jumpers or whatever is
> needed for FreeBSD to see it. Then you use a BIOS option to swap the ports
> so that everything is supposed to see COM2 as COM1. The boot loader sees
> this but ACPI in FreeBSD doesn't. I think this changes is only made in
> some BIOS table that ACPI in FreeBSD doesn't know about. In my test, I
> only swapped the settings of COM1 and COM2 in the BIOS, since I couldn't
> find a BIOS option to swap the unit number assignments, so it was not
> completely incorrect for ACPI in FreeBSD to swap the settings.
More details on my test:
- after swapping the settings of COM1 and COM2, both FreeBSD-ACPI and WinXP
see only the settings swapped. WinXP didn't report any changes to the
devices. I now think this is completely correct. Swapping like this
requires swapping in device.hints to keep the same assignment of physical
devices to unit numbers.
- after swapping the settings and then disabling COM1, FreeBSD-ACPI moves
COM2 down to COM1 (sio0) and sio1 goes away, while WinXP doesn't change
unit numbers and COM1 goes away. I think the WinXP behaviour is correct
and FreeBSD-ACPI just allocates unit numbers starting at 0.
Bruce
More information about the freebsd-i386
mailing list