Hi Nate:
Got it.

Thanks
发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Nate DeSimone
发送时间: 2020年5月29日 15:08
收件人: devel@edk2.groups.io; Tiger Liu(BJ-RD) <tiger...@zhaoxin.com>
主题: Re: [edk2-devel] IsaBus driver's usage

Hi Tiger,

I believe you are assuming that IsaBusDxe and SioDxe do the same thing, that is 
not the case. These two drivers are actually very different they do very 
different things.

Consider a 15 year old PC. Most PC’s from that era had an ICH (the older 
terminology for PCH) with both parallel PCI and LPC controllers. A consequence 
of this design is legacy PCI supported subtractive decoding… which allowed OEMs 
to build systems with a PCI-to-ISA bridge device installed on the PCI bus… 
making it possible to build motherboards with ISA slots. This introduced one 
difficulty however, the LPC controller in the PCH is also a PCI-to-ISA bridge 
device, so you ended up having 2 PCI-to-ISA bridges in the system! Lets say 
your LPC bus has a Super I/O chip with a COM port, what happens if the user 
plugs a ISA serial card into an ISA slot? Does I/O port 0x3F8 get routed to the 
LPC controller or to the PCI controller? That is what IsaBusDxe is for, it 
arbitrates between multiple PCI-to-ISA bridges.

About 10 years ago, the parallel PCI bus was removed, however at the same time 
a “Subtractive Decode Agent” was added to the PCH that allowed a single PCIe 
root port to be designated as being capable of subtractive decode. This allowed 
OEMs to build systems with a PCIe-to-PCI bridge… connected to a PCI-to-ISA 
bridge and still technically build systems with ISA slots. Starting with Sky 
Lake however, the subtractive decode agent was removed, which finally broke 
compatibility with the 1981 IBM PC. After Sky Lake, there can only be one 
PCI-to-ISA bridge in the system, the LPC controller. So there hasn’t really 
been a need for the arbitration driver anymore.

SioDxe on the other hand is a generic Super I/O driver. Most new PCs today 
still have vestigial remnants of the Super I/O as part of their EC (embedded 
controller.) Specifically, most ECs support both the PS/2 and serial COM ports 
that were once part of Super I/O chips. Most ECs use PS/2 as the interface for 
the scan matrix keyboard on laptops. SioDxe provides the protocols that allow 
PciSioSerialDxe and Ps2KeyboardDxe to use these EC functions.

Thanks,
Nate

From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
<devel@edk2.groups.io<mailto:devel@edk2.groups.io>> On Behalf Of Tiger 
Liu(BJ-RD)
Sent: Thursday, May 28, 2020 12:58 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
Subject: [edk2-devel] IsaBus driver's usage

Hi, expert:
I have a question about IsaBus driver.

There is a isa bus driver in MdeModulePkg\Bus\Isa\IsaBusDxe.
But i find nobody use it anymore.

Based on current edk2-platform samples, they just use SioDxe driver plus 
Ps2Keyboard driver, not use IsaBus driver anymore.

So when to use IsaBus driver?

Thanks



保密声明:
本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮件或其内容做任何未经授权的查阅、使用、复制或转发。
CONFIDENTIAL NOTE:
This email contains confidential or legally privileged information and is for 
the sole use of its intended recipient. Any unauthorized review, use, copying 
or forwarding of this email or the content of this email is strictly prohibited.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#60853): https://edk2.groups.io/g/devel/message/60853
Mute This Topic: https://groups.io/mt/74517611/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to