Upon booting to a legacy OS, LegacyBios driver is responsible to
initialize the BDA region with the correct COM port base address.
But the current logic to get the COM port base address from IsaIo
instance is not correct.
The patch fixes this bug.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu...@intel.com>
Cc: Jeff Fan <jeff....@intel.com>
---
 IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacySio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacySio.c 
b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacySio.c
index c853377..686a32d 100644
--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacySio.c
+++ b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacySio.c
@@ -354,7 +354,7 @@ LegacyBiosBuildSioDataFromIsaIo (
         //
         for (ChildIndex = 0; ChildIndex < EntryCount; ChildIndex++) {
           if ((OpenInfoBuffer[ChildIndex].Attributes & 
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {
-            Status = gBS->HandleProtocol 
(OpenInfoBuffer[ChildIndex].AgentHandle, &gEfiSerialIoProtocolGuid, (VOID **) 
&SerialIo);
+            Status = gBS->HandleProtocol 
(OpenInfoBuffer[ChildIndex].ControllerHandle, &gEfiSerialIoProtocolGuid, (VOID 
**) &SerialIo);
             if (!EFI_ERROR (Status)) {
               SioSerial           = &SioPtr->Serial[ResourceList->Device.UID];
               SioSerial->Address  = (UINT16) IoResource->StartRange;
-- 
2.9.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to