]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Csm/LegacyBiosDxe/LegacySio.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Csm / LegacyBiosDxe / LegacySio.c
index 6b9bb5ed8b2a6ee1d47c2ca7d8d0b38b13da2fad..0cb48fa8abeafd2b1f529c7565691a79f54a4aee 100644 (file)
@@ -21,32 +21,32 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 **/\r
 EFI_STATUS\r
 LegacyBiosBuildSioDataFromSio (\r
-  IN DEVICE_PRODUCER_DATA_HEADER             *SioPtr\r
+  IN DEVICE_PRODUCER_DATA_HEADER  *SioPtr\r
   )\r
 {\r
-  EFI_STATUS                                 Status;\r
-  DEVICE_PRODUCER_SERIAL                     *SioSerial;\r
-  DEVICE_PRODUCER_PARALLEL                   *SioParallel;\r
-  DEVICE_PRODUCER_FLOPPY                     *SioFloppy;\r
-  UINTN                                      HandleCount;\r
-  EFI_HANDLE                                 *HandleBuffer;\r
-  UINTN                                      Index;\r
-  UINTN                                      ChildIndex;\r
-  EFI_SIO_PROTOCOL                           *Sio;\r
-  ACPI_RESOURCE_HEADER_PTR                   Resources;\r
-  EFI_ACPI_IO_PORT_DESCRIPTOR                *IoResource;\r
-  EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR *FixedIoResource;\r
-  EFI_ACPI_DMA_DESCRIPTOR                    *DmaResource;\r
-  EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR             *IrqResource;\r
-  UINT16                                     Address;\r
-  UINT8                                      Dma;\r
-  UINT8                                      Irq;\r
-  UINTN                                      EntryCount;\r
-  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY        *OpenInfoBuffer;\r
-  EFI_BLOCK_IO_PROTOCOL                      *BlockIo;\r
-  EFI_SERIAL_IO_PROTOCOL                     *SerialIo;\r
-  EFI_DEVICE_PATH_PROTOCOL                   *DevicePath;\r
-  ACPI_HID_DEVICE_PATH                       *Acpi;\r
+  EFI_STATUS                                  Status;\r
+  DEVICE_PRODUCER_SERIAL                      *SioSerial;\r
+  DEVICE_PRODUCER_PARALLEL                    *SioParallel;\r
+  DEVICE_PRODUCER_FLOPPY                      *SioFloppy;\r
+  UINTN                                       HandleCount;\r
+  EFI_HANDLE                                  *HandleBuffer;\r
+  UINTN                                       Index;\r
+  UINTN                                       ChildIndex;\r
+  EFI_SIO_PROTOCOL                            *Sio;\r
+  ACPI_RESOURCE_HEADER_PTR                    Resources;\r
+  EFI_ACPI_IO_PORT_DESCRIPTOR                 *IoResource;\r
+  EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR  *FixedIoResource;\r
+  EFI_ACPI_DMA_DESCRIPTOR                     *DmaResource;\r
+  EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR              *IrqResource;\r
+  UINT16                                      Address;\r
+  UINT8                                       Dma;\r
+  UINT8                                       Irq;\r
+  UINTN                                       EntryCount;\r
+  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY         *OpenInfoBuffer;\r
+  EFI_BLOCK_IO_PROTOCOL                       *BlockIo;\r
+  EFI_SERIAL_IO_PROTOCOL                      *SerialIo;\r
+  EFI_DEVICE_PATH_PROTOCOL                    *DevicePath;\r
+  ACPI_HID_DEVICE_PATH                        *Acpi;\r
 \r
   //\r
   // Get the list of ISA controllers in the system\r
@@ -61,11 +61,12 @@ LegacyBiosBuildSioDataFromSio (
   if (EFI_ERROR (Status)) {\r
     return EFI_NOT_FOUND;\r
   }\r
+\r
   //\r
   // Collect legacy information from each of the ISA controllers in the system\r
   //\r
   for (Index = 0; Index < HandleCount; Index++) {\r
-    Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiSioProtocolGuid, (VOID **) &Sio);\r
+    Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiSioProtocolGuid, (VOID **)&Sio);\r
     if (EFI_ERROR (Status)) {\r
       continue;\r
     }\r
@@ -73,46 +74,46 @@ LegacyBiosBuildSioDataFromSio (
     Address = MAX_UINT16;\r
     Dma     = MAX_UINT8;\r
     Irq     = MAX_UINT8;\r
-    Status = Sio->GetResources (Sio, &Resources);\r
+    Status  = Sio->GetResources (Sio, &Resources);\r
     if (!EFI_ERROR (Status)) {\r
       //\r
       // Get the base address information from ACPI resource descriptor.\r
       //\r
       while (Resources.SmallHeader->Byte != ACPI_END_TAG_DESCRIPTOR) {\r
         switch (Resources.SmallHeader->Byte) {\r
-        case ACPI_IO_PORT_DESCRIPTOR:\r
-          IoResource = (EFI_ACPI_IO_PORT_DESCRIPTOR *) Resources.SmallHeader;\r
-          Address = IoResource->BaseAddressMin;\r
-          break;\r
-\r
-        case ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR:\r
-          FixedIoResource = (EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR *) Resources.SmallHeader;\r
-          Address = FixedIoResource->BaseAddress;\r
-          break;\r
-\r
-        case ACPI_DMA_DESCRIPTOR:\r
-          DmaResource = (EFI_ACPI_DMA_DESCRIPTOR *) Resources.SmallHeader;\r
-          Dma = (UINT8) LowBitSet32 (DmaResource->ChannelMask);\r
-          break;\r
-\r
-        case ACPI_IRQ_DESCRIPTOR:\r
-        case ACPI_IRQ_NOFLAG_DESCRIPTOR:\r
-          IrqResource = (EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR *) Resources.SmallHeader;\r
-          Irq = (UINT8) LowBitSet32 (IrqResource->Mask);\r
-          break;\r
-\r
-        default:\r
-          break;\r
+          case ACPI_IO_PORT_DESCRIPTOR:\r
+            IoResource = (EFI_ACPI_IO_PORT_DESCRIPTOR *)Resources.SmallHeader;\r
+            Address    = IoResource->BaseAddressMin;\r
+            break;\r
+\r
+          case ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR:\r
+            FixedIoResource = (EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR *)Resources.SmallHeader;\r
+            Address         = FixedIoResource->BaseAddress;\r
+            break;\r
+\r
+          case ACPI_DMA_DESCRIPTOR:\r
+            DmaResource = (EFI_ACPI_DMA_DESCRIPTOR *)Resources.SmallHeader;\r
+            Dma         = (UINT8)LowBitSet32 (DmaResource->ChannelMask);\r
+            break;\r
+\r
+          case ACPI_IRQ_DESCRIPTOR:\r
+          case ACPI_IRQ_NOFLAG_DESCRIPTOR:\r
+            IrqResource = (EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR *)Resources.SmallHeader;\r
+            Irq         = (UINT8)LowBitSet32 (IrqResource->Mask);\r
+            break;\r
+\r
+          default:\r
+            break;\r
         }\r
 \r
         if (Resources.SmallHeader->Bits.Type == 0) {\r
-          Resources.SmallHeader = (ACPI_SMALL_RESOURCE_HEADER *) ((UINT8 *) Resources.SmallHeader\r
-                                                                  + Resources.SmallHeader->Bits.Length\r
-                                                                  + sizeof (*Resources.SmallHeader));\r
+          Resources.SmallHeader = (ACPI_SMALL_RESOURCE_HEADER *)((UINT8 *)Resources.SmallHeader\r
+                                                                 + Resources.SmallHeader->Bits.Length\r
+                                                                 + sizeof (*Resources.SmallHeader));\r
         } else {\r
-          Resources.LargeHeader = (ACPI_LARGE_RESOURCE_HEADER *) ((UINT8 *) Resources.LargeHeader\r
-                                                                  + Resources.LargeHeader->Length\r
-                                                                  + sizeof (*Resources.LargeHeader));\r
+          Resources.LargeHeader = (ACPI_LARGE_RESOURCE_HEADER *)((UINT8 *)Resources.LargeHeader\r
+                                                                 + Resources.LargeHeader->Length\r
+                                                                 + sizeof (*Resources.LargeHeader));\r
         }\r
       }\r
     }\r
@@ -126,13 +127,14 @@ LegacyBiosBuildSioDataFromSio (
 \r
     Acpi = NULL;\r
     while (!IsDevicePathEnd (DevicePath)) {\r
-      Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;\r
+      Acpi       = (ACPI_HID_DEVICE_PATH *)DevicePath;\r
       DevicePath = NextDevicePathNode (DevicePath);\r
     }\r
 \r
     if ((Acpi == NULL) || (DevicePathType (Acpi) != ACPI_DEVICE_PATH) ||\r
         ((DevicePathSubType (Acpi) != ACPI_DP) && (DevicePathSubType (Acpi) != ACPI_EXTENDED_DP))\r
-        ) {\r
+        )\r
+    {\r
       continue;\r
     }\r
 \r
@@ -141,9 +143,8 @@ LegacyBiosBuildSioDataFromSio (
     //\r
     // Ignore DMA resource since it is always returned NULL\r
     //\r
-    if (Acpi->HID == EISA_PNP_ID (0x500) || Acpi->HID == EISA_PNP_ID (0x501)) {\r
-\r
-      if (Acpi->UID < 4 && Address != MAX_UINT16 && Irq != MAX_UINT8) {\r
+    if ((Acpi->HID == EISA_PNP_ID (0x500)) || (Acpi->HID == EISA_PNP_ID (0x501))) {\r
+      if ((Acpi->UID < 4) && (Address != MAX_UINT16) && (Irq != MAX_UINT8)) {\r
         //\r
         // Get the handle of the child device that has opened the Super I/O Protocol\r
         //\r
@@ -156,14 +157,15 @@ LegacyBiosBuildSioDataFromSio (
         if (EFI_ERROR (Status)) {\r
           continue;\r
         }\r
+\r
         for (ChildIndex = 0; ChildIndex < EntryCount; ChildIndex++) {\r
           if ((OpenInfoBuffer[ChildIndex].Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {\r
-            Status = gBS->HandleProtocol (OpenInfoBuffer[ChildIndex].ControllerHandle, &gEfiSerialIoProtocolGuid, (VOID **) &SerialIo);\r
+            Status = gBS->HandleProtocol (OpenInfoBuffer[ChildIndex].ControllerHandle, &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);\r
             if (!EFI_ERROR (Status)) {\r
-              SioSerial           = &SioPtr->Serial[Acpi->UID];\r
-              SioSerial->Address  = Address;\r
-              SioSerial->Irq      = Irq;\r
-              SioSerial->Mode     = DEVICE_SERIAL_MODE_NORMAL | DEVICE_SERIAL_MODE_DUPLEX_HALF;\r
+              SioSerial          = &SioPtr->Serial[Acpi->UID];\r
+              SioSerial->Address = Address;\r
+              SioSerial->Irq     = Irq;\r
+              SioSerial->Mode    = DEVICE_SERIAL_MODE_NORMAL | DEVICE_SERIAL_MODE_DUPLEX_HALF;\r
               break;\r
             }\r
           }\r
@@ -172,36 +174,39 @@ LegacyBiosBuildSioDataFromSio (
         FreePool (OpenInfoBuffer);\r
       }\r
     }\r
+\r
     //\r
     // See if this is an ISA parallel port\r
     //\r
     // Ignore DMA resource since it is always returned NULL, port\r
     // only used in output mode.\r
     //\r
-    if (Acpi->HID == EISA_PNP_ID (0x400) || Acpi->HID == EISA_PNP_ID (0x401)) {\r
-      if (Acpi->UID < 3 && Address != MAX_UINT16 && Irq != MAX_UINT8 && Dma != MAX_UINT8) {\r
-        SioParallel           = &SioPtr->Parallel[Acpi->UID];\r
-        SioParallel->Address  = Address;\r
-        SioParallel->Irq      = Irq;\r
-        SioParallel->Dma      = Dma;\r
-        SioParallel->Mode     = DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY;\r
+    if ((Acpi->HID == EISA_PNP_ID (0x400)) || (Acpi->HID == EISA_PNP_ID (0x401))) {\r
+      if ((Acpi->UID < 3) && (Address != MAX_UINT16) && (Irq != MAX_UINT8) && (Dma != MAX_UINT8)) {\r
+        SioParallel          = &SioPtr->Parallel[Acpi->UID];\r
+        SioParallel->Address = Address;\r
+        SioParallel->Irq     = Irq;\r
+        SioParallel->Dma     = Dma;\r
+        SioParallel->Mode    = DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY;\r
       }\r
     }\r
+\r
     //\r
     // See if this is an ISA floppy controller\r
     //\r
     if (Acpi->HID == EISA_PNP_ID (0x604)) {\r
-      if (Address != MAX_UINT16 && Irq != MAX_UINT8 && Dma != MAX_UINT8) {\r
-        Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiBlockIoProtocolGuid, (VOID **) &BlockIo);\r
+      if ((Address != MAX_UINT16) && (Irq != MAX_UINT8) && (Dma != MAX_UINT8)) {\r
+        Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiBlockIoProtocolGuid, (VOID **)&BlockIo);\r
         if (!EFI_ERROR (Status)) {\r
-          SioFloppy           = &SioPtr->Floppy;\r
-          SioFloppy->Address  = Address;\r
-          SioFloppy->Irq      = Irq;\r
-          SioFloppy->Dma      = Dma;\r
+          SioFloppy          = &SioPtr->Floppy;\r
+          SioFloppy->Address = Address;\r
+          SioFloppy->Irq     = Irq;\r
+          SioFloppy->Dma     = Dma;\r
           SioFloppy->NumberOfFloppy++;\r
         }\r
       }\r
     }\r
+\r
     //\r
     // See if this is a mouse\r
     // Always set mouse found so USB hot plug will work\r
@@ -225,7 +230,6 @@ LegacyBiosBuildSioDataFromSio (
 \r
   FreePool (HandleBuffer);\r
   return EFI_SUCCESS;\r
-\r
 }\r
 \r
 /**\r
@@ -239,27 +243,27 @@ LegacyBiosBuildSioDataFromSio (
 **/\r
 EFI_STATUS\r
 LegacyBiosBuildSioDataFromIsaIo (\r
-  IN DEVICE_PRODUCER_DATA_HEADER      *SioPtr\r
+  IN DEVICE_PRODUCER_DATA_HEADER  *SioPtr\r
   )\r
 {\r
-  EFI_STATUS                          Status;\r
-  DEVICE_PRODUCER_SERIAL              *SioSerial;\r
-  DEVICE_PRODUCER_PARALLEL            *SioParallel;\r
-  DEVICE_PRODUCER_FLOPPY              *SioFloppy;\r
-  UINTN                               HandleCount;\r
-  EFI_HANDLE                          *HandleBuffer;\r
-  UINTN                               Index;\r
-  UINTN                               ResourceIndex;\r
-  UINTN                               ChildIndex;\r
-  EFI_ISA_IO_PROTOCOL                 *IsaIo;\r
-  EFI_ISA_ACPI_RESOURCE_LIST          *ResourceList;\r
-  EFI_ISA_ACPI_RESOURCE               *IoResource;\r
-  EFI_ISA_ACPI_RESOURCE               *DmaResource;\r
-  EFI_ISA_ACPI_RESOURCE               *InterruptResource;\r
-  UINTN                               EntryCount;\r
-  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;\r
-  EFI_BLOCK_IO_PROTOCOL               *BlockIo;\r
-  EFI_SERIAL_IO_PROTOCOL              *SerialIo;\r
+  EFI_STATUS                           Status;\r
+  DEVICE_PRODUCER_SERIAL               *SioSerial;\r
+  DEVICE_PRODUCER_PARALLEL             *SioParallel;\r
+  DEVICE_PRODUCER_FLOPPY               *SioFloppy;\r
+  UINTN                                HandleCount;\r
+  EFI_HANDLE                           *HandleBuffer;\r
+  UINTN                                Index;\r
+  UINTN                                ResourceIndex;\r
+  UINTN                                ChildIndex;\r
+  EFI_ISA_IO_PROTOCOL                  *IsaIo;\r
+  EFI_ISA_ACPI_RESOURCE_LIST           *ResourceList;\r
+  EFI_ISA_ACPI_RESOURCE                *IoResource;\r
+  EFI_ISA_ACPI_RESOURCE                *DmaResource;\r
+  EFI_ISA_ACPI_RESOURCE                *InterruptResource;\r
+  UINTN                                EntryCount;\r
+  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY  *OpenInfoBuffer;\r
+  EFI_BLOCK_IO_PROTOCOL                *BlockIo;\r
+  EFI_SERIAL_IO_PROTOCOL               *SerialIo;\r
 \r
   //\r
   // Get the list of ISA controllers in the system\r
@@ -274,12 +278,12 @@ LegacyBiosBuildSioDataFromIsaIo (
   if (EFI_ERROR (Status)) {\r
     return EFI_NOT_FOUND;\r
   }\r
+\r
   //\r
   // Collect legacy information from each of the ISA controllers in the system\r
   //\r
   for (Index = 0; Index < HandleCount; Index++) {\r
-\r
-    Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiIsaIoProtocolGuid, (VOID **) &IsaIo);\r
+    Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiIsaIoProtocolGuid, (VOID **)&IsaIo);\r
     if (EFI_ERROR (Status)) {\r
       continue;\r
     }\r
@@ -289,6 +293,7 @@ LegacyBiosBuildSioDataFromIsaIo (
     if (ResourceList == NULL) {\r
       continue;\r
     }\r
+\r
     //\r
     // Collect the resource types neededto fill in the SIO data structure\r
     //\r
@@ -298,38 +303,40 @@ LegacyBiosBuildSioDataFromIsaIo (
     for (ResourceIndex = 0;\r
          ResourceList->ResourceItem[ResourceIndex].Type != EfiIsaAcpiResourceEndOfList;\r
          ResourceIndex++\r
-        ) {\r
+         )\r
+    {\r
       switch (ResourceList->ResourceItem[ResourceIndex].Type) {\r
-      case EfiIsaAcpiResourceIo:\r
-        IoResource = &ResourceList->ResourceItem[ResourceIndex];\r
-        break;\r
+        case EfiIsaAcpiResourceIo:\r
+          IoResource = &ResourceList->ResourceItem[ResourceIndex];\r
+          break;\r
 \r
-      case EfiIsaAcpiResourceMemory:\r
-        break;\r
+        case EfiIsaAcpiResourceMemory:\r
+          break;\r
 \r
-      case EfiIsaAcpiResourceDma:\r
-        DmaResource = &ResourceList->ResourceItem[ResourceIndex];\r
-        break;\r
+        case EfiIsaAcpiResourceDma:\r
+          DmaResource = &ResourceList->ResourceItem[ResourceIndex];\r
+          break;\r
 \r
-      case EfiIsaAcpiResourceInterrupt:\r
-        InterruptResource = &ResourceList->ResourceItem[ResourceIndex];\r
-        break;\r
+        case EfiIsaAcpiResourceInterrupt:\r
+          InterruptResource = &ResourceList->ResourceItem[ResourceIndex];\r
+          break;\r
 \r
-      default:\r
-        break;\r
+        default:\r
+          break;\r
       }\r
     }\r
+\r
     //\r
     // See if this is an ISA serial port\r
     //\r
     // Ignore DMA resource since it is always returned NULL\r
     //\r
-    if (ResourceList->Device.HID == EISA_PNP_ID (0x500) || ResourceList->Device.HID == EISA_PNP_ID (0x501)) {\r
-\r
-      if (ResourceList->Device.UID <= 3 &&\r
-          IoResource != NULL &&\r
-          InterruptResource != NULL\r
-          ) {\r
+    if ((ResourceList->Device.HID == EISA_PNP_ID (0x500)) || (ResourceList->Device.HID == EISA_PNP_ID (0x501))) {\r
+      if ((ResourceList->Device.UID <= 3) &&\r
+          (IoResource != NULL) &&\r
+          (InterruptResource != NULL)\r
+          )\r
+      {\r
         //\r
         // Get the handle of the child device that has opened the ISA I/O Protocol\r
         //\r
@@ -342,17 +349,18 @@ LegacyBiosBuildSioDataFromIsaIo (
         if (EFI_ERROR (Status)) {\r
           continue;\r
         }\r
+\r
         //\r
         // We want resource for legacy even if no 32-bit driver installed\r
         //\r
         for (ChildIndex = 0; ChildIndex < EntryCount; ChildIndex++) {\r
           if ((OpenInfoBuffer[ChildIndex].Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {\r
-            Status = gBS->HandleProtocol (OpenInfoBuffer[ChildIndex].ControllerHandle, &gEfiSerialIoProtocolGuid, (VOID **) &SerialIo);\r
+            Status = gBS->HandleProtocol (OpenInfoBuffer[ChildIndex].ControllerHandle, &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);\r
             if (!EFI_ERROR (Status)) {\r
-              SioSerial           = &SioPtr->Serial[ResourceList->Device.UID];\r
-              SioSerial->Address  = (UINT16) IoResource->StartRange;\r
-              SioSerial->Irq      = (UINT8) InterruptResource->StartRange;\r
-              SioSerial->Mode     = DEVICE_SERIAL_MODE_NORMAL | DEVICE_SERIAL_MODE_DUPLEX_HALF;\r
+              SioSerial          = &SioPtr->Serial[ResourceList->Device.UID];\r
+              SioSerial->Address = (UINT16)IoResource->StartRange;\r
+              SioSerial->Irq     = (UINT8)InterruptResource->StartRange;\r
+              SioSerial->Mode    = DEVICE_SERIAL_MODE_NORMAL | DEVICE_SERIAL_MODE_DUPLEX_HALF;\r
               break;\r
             }\r
           }\r
@@ -361,40 +369,44 @@ LegacyBiosBuildSioDataFromIsaIo (
         FreePool (OpenInfoBuffer);\r
       }\r
     }\r
+\r
     //\r
     // See if this is an ISA parallel port\r
     //\r
     // Ignore DMA resource since it is always returned NULL, port\r
     // only used in output mode.\r
     //\r
-    if (ResourceList->Device.HID == EISA_PNP_ID (0x400) || ResourceList->Device.HID == EISA_PNP_ID (0x401)) {\r
-      if (ResourceList->Device.UID <= 2 &&\r
-          IoResource != NULL &&\r
-          InterruptResource != NULL &&\r
-          DmaResource != NULL\r
-          ) {\r
-        SioParallel           = &SioPtr->Parallel[ResourceList->Device.UID];\r
-        SioParallel->Address  = (UINT16) IoResource->StartRange;\r
-        SioParallel->Irq      = (UINT8) InterruptResource->StartRange;\r
-        SioParallel->Dma      = (UINT8) DmaResource->StartRange;\r
-        SioParallel->Mode     = DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY;\r
+    if ((ResourceList->Device.HID == EISA_PNP_ID (0x400)) || (ResourceList->Device.HID == EISA_PNP_ID (0x401))) {\r
+      if ((ResourceList->Device.UID <= 2) &&\r
+          (IoResource != NULL) &&\r
+          (InterruptResource != NULL) &&\r
+          (DmaResource != NULL)\r
+          )\r
+      {\r
+        SioParallel          = &SioPtr->Parallel[ResourceList->Device.UID];\r
+        SioParallel->Address = (UINT16)IoResource->StartRange;\r
+        SioParallel->Irq     = (UINT8)InterruptResource->StartRange;\r
+        SioParallel->Dma     = (UINT8)DmaResource->StartRange;\r
+        SioParallel->Mode    = DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY;\r
       }\r
     }\r
+\r
     //\r
     // See if this is an ISA floppy controller\r
     //\r
     if (ResourceList->Device.HID == EISA_PNP_ID (0x604)) {\r
-      if (IoResource != NULL && InterruptResource != NULL && DmaResource != NULL) {\r
-        Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiBlockIoProtocolGuid, (VOID **) &BlockIo);\r
+      if ((IoResource != NULL) && (InterruptResource != NULL) && (DmaResource != NULL)) {\r
+        Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiBlockIoProtocolGuid, (VOID **)&BlockIo);\r
         if (!EFI_ERROR (Status)) {\r
-          SioFloppy           = &SioPtr->Floppy;\r
-          SioFloppy->Address  = (UINT16) IoResource->StartRange;\r
-          SioFloppy->Irq      = (UINT8) InterruptResource->StartRange;\r
-          SioFloppy->Dma      = (UINT8) DmaResource->StartRange;\r
+          SioFloppy          = &SioPtr->Floppy;\r
+          SioFloppy->Address = (UINT16)IoResource->StartRange;\r
+          SioFloppy->Irq     = (UINT8)InterruptResource->StartRange;\r
+          SioFloppy->Dma     = (UINT8)DmaResource->StartRange;\r
           SioFloppy->NumberOfFloppy++;\r
         }\r
       }\r
     }\r
+\r
     //\r
     // See if this is a mouse\r
     // Always set mouse found so USB hot plug will work\r
@@ -430,14 +442,14 @@ LegacyBiosBuildSioDataFromIsaIo (
 **/\r
 EFI_STATUS\r
 LegacyBiosBuildSioData (\r
-  IN  LEGACY_BIOS_INSTANCE      *Private\r
+  IN  LEGACY_BIOS_INSTANCE  *Private\r
   )\r
 {\r
-  EFI_STATUS                          Status;\r
-  DEVICE_PRODUCER_DATA_HEADER         *SioPtr;\r
-  EFI_HANDLE                          IsaBusController;\r
-  UINTN                               HandleCount;\r
-  EFI_HANDLE                          *HandleBuffer;\r
+  EFI_STATUS                   Status;\r
+  DEVICE_PRODUCER_DATA_HEADER  *SioPtr;\r
+  EFI_HANDLE                   IsaBusController;\r
+  UINTN                        HandleCount;\r
+  EFI_HANDLE                   *HandleBuffer;\r
 \r
   //\r
   // Get the pointer to the SIO data structure\r