[syslinux] Enumeration of ISA serial ports inconsistent between Linux and Syslinux
H. Peter Anvin
hpa at zytor.com
Wed Oct 12 09:59:48 PDT 2016
On 10/09/16 07:53, Gene Cumm via Syslinux wrote:
>>> So the behavior of Syslinux makes sense since the sequence numbers can
>>> be re-assigned by the firmware (in this case, the CSM of the EFI
>>> firmware) by moving the values around.
>> I'm quite aware of this, and I would even tend to agree with you that this
>> behavior makes sense. Unfortunately it seems, though, that both Linux and
>> OpenBSD use the traditional static ordering without looking at the BIOS
>> info, and at least for Linux I get the impression that it is quite unlikely
>> that this will change anytime soon. Here is the thread I started on
>> Linux-Serial, in case you want to read Greg's answer for yourself:
>> I don't want to stir up any complicated discussion about who is right and
>> who is wrong, but as a user I would prefer the behavior to be consistent
>> between all OSes and bootloaders.
> And I think therein lies the issue. Due to differing interpretations,
> they shall never be consistent less your firmware is configured to
> match the traditional order. Older bootloaders and lesser OSs like
> DOS shall often use the order in RAM while some others shall often use
> the static list of IO ports to assign devices then use the RAM values
> to check their presence/validity. For yet another datapoint, check
> what a Windows OS does.
> I think the only way to have consistency is to fix the firmware config
> (and preferably for Supermicro to fix their defaults OR heavily
> document their reason for such a discrepancy).
I would say, obviously, that the chief culprit here is SuperMicro; 3F8h
and 2F8h as COM1 and COM2 (what Linux calls ttyS0 and ttyS1) dates back
to the original IBM PC (after COM2 the assignments aren't so consistent.)
In many ways I think Linux' behavior is wrong and it should have used
the BIOS table to start out with, but that is water under the bridge,
and I don't think anyone would have anticipated such a braindead move by
a hardware vendor.
I do not want to change Syslinux for this, because I think discovery can
be even more complex for bootloader users, and if you really want a
fixed sequence of addresses you can just specify the raw port address.
More information about the Syslinux