]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPeim.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbBotPei / UsbBotPeim.c
index e110626886c412e135f36548b1f2ee9ea54f90b0..ef62f441e316220211147e7e59b5be01700d0237 100644 (file)
@@ -12,26 +12,26 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 //\r
 // Global function\r
 //\r
-EFI_PEI_NOTIFY_DESCRIPTOR        mNotifyList = {\r
+EFI_PEI_NOTIFY_DESCRIPTOR  mNotifyList = {\r
   EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,\r
   &gPeiUsbIoPpiGuid,\r
   NotifyOnUsbIoPpi\r
 };\r
 \r
-EFI_PEI_RECOVERY_BLOCK_IO_PPI    mRecoveryBlkIoPpi = {\r
+EFI_PEI_RECOVERY_BLOCK_IO_PPI  mRecoveryBlkIoPpi = {\r
   BotGetNumberOfBlockDevices,\r
   BotGetMediaInfo,\r
   BotReadBlocks\r
 };\r
 \r
-EFI_PEI_RECOVERY_BLOCK_IO2_PPI   mRecoveryBlkIo2Ppi = {\r
+EFI_PEI_RECOVERY_BLOCK_IO2_PPI  mRecoveryBlkIo2Ppi = {\r
   EFI_PEI_RECOVERY_BLOCK_IO2_PPI_REVISION,\r
   BotGetNumberOfBlockDevices2,\r
   BotGetMediaInfo2,\r
   BotReadBlocks2\r
 };\r
 \r
-EFI_PEI_PPI_DESCRIPTOR           mPpiList[2] = {\r
+EFI_PEI_PPI_DESCRIPTOR  mPpiList[2] = {\r
   {\r
     EFI_PEI_PPI_DESCRIPTOR_PPI,\r
     &gEfiPeiVirtualBlockIoPpiGuid,\r
@@ -57,8 +57,8 @@ EFI_PEI_PPI_DESCRIPTOR           mPpiList[2] = {
 **/\r
 EFI_STATUS\r
 PeiBotDetectMedia (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  PEI_BOT_DEVICE                            *PeiBotDev\r
+  IN  EFI_PEI_SERVICES  **PeiServices,\r
+  IN  PEI_BOT_DEVICE    *PeiBotDev\r
   );\r
 \r
 /**\r
@@ -74,14 +74,14 @@ PeiBotDetectMedia (
 EFI_STATUS\r
 EFIAPI\r
 PeimInitializeUsbBot (\r
-  IN EFI_PEI_FILE_HANDLE       FileHandle,\r
-  IN CONST EFI_PEI_SERVICES    **PeiServices\r
+  IN EFI_PEI_FILE_HANDLE     FileHandle,\r
+  IN CONST EFI_PEI_SERVICES  **PeiServices\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
-  UINTN                       UsbIoPpiInstance;\r
-  EFI_PEI_PPI_DESCRIPTOR      *TempPpiDescriptor;\r
-  PEI_USB_IO_PPI              *UsbIoPpi;\r
+  EFI_STATUS              Status;\r
+  UINTN                   UsbIoPpiInstance;\r
+  EFI_PEI_PPI_DESCRIPTOR  *TempPpiDescriptor;\r
+  PEI_USB_IO_PPI          *UsbIoPpi;\r
 \r
   //\r
   // Shadow this PEIM to run from memory\r
@@ -94,17 +94,17 @@ PeimInitializeUsbBot (
   // locate all usb io PPIs\r
   //\r
   for (UsbIoPpiInstance = 0; UsbIoPpiInstance < PEI_FAT_MAX_USB_IO_PPI; UsbIoPpiInstance++) {\r
-\r
     Status = PeiServicesLocatePpi (\r
-                              &gPeiUsbIoPpiGuid,\r
-                              UsbIoPpiInstance,\r
-                              &TempPpiDescriptor,\r
-                              (VOID **) &UsbIoPpi\r
-                              );\r
+               &gPeiUsbIoPpiGuid,\r
+               UsbIoPpiInstance,\r
+               &TempPpiDescriptor,\r
+               (VOID **)&UsbIoPpi\r
+               );\r
     if (EFI_ERROR (Status)) {\r
       break;\r
     }\r
   }\r
+\r
   //\r
   // Register a notify function\r
   //\r
@@ -127,14 +127,14 @@ PeimInitializeUsbBot (
 EFI_STATUS\r
 EFIAPI\r
 NotifyOnUsbIoPpi (\r
-  IN  EFI_PEI_SERVICES                              **PeiServices,\r
-  IN  EFI_PEI_NOTIFY_DESCRIPTOR                     *NotifyDesc,\r
-  IN  VOID                                          *InvokePpi\r
+  IN  EFI_PEI_SERVICES           **PeiServices,\r
+  IN  EFI_PEI_NOTIFY_DESCRIPTOR  *NotifyDesc,\r
+  IN  VOID                       *InvokePpi\r
   )\r
 {\r
   PEI_USB_IO_PPI  *UsbIoPpi;\r
 \r
-  UsbIoPpi = (PEI_USB_IO_PPI *) InvokePpi;\r
+  UsbIoPpi = (PEI_USB_IO_PPI *)InvokePpi;\r
 \r
   InitUsbBot (PeiServices, UsbIoPpi);\r
 \r
@@ -154,8 +154,8 @@ NotifyOnUsbIoPpi (
 **/\r
 EFI_STATUS\r
 InitUsbBot (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  PEI_USB_IO_PPI                            *UsbIoPpi\r
+  IN  EFI_PEI_SERVICES  **PeiServices,\r
+  IN  PEI_USB_IO_PPI    *UsbIoPpi\r
   )\r
 {\r
   PEI_BOT_DEVICE                *PeiBotDevice;\r
@@ -170,45 +170,45 @@ InitUsbBot (
   // Check its interface\r
   //\r
   Status = UsbIoPpi->UsbGetInterfaceDescriptor (\r
-                      PeiServices,\r
-                      UsbIoPpi,\r
-                      &InterfaceDesc\r
-                      );\r
+                       PeiServices,\r
+                       UsbIoPpi,\r
+                       &InterfaceDesc\r
+                       );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   //\r
   // Check if it is the BOT device we support\r
   //\r
   if ((InterfaceDesc->InterfaceClass != 0x08) || (InterfaceDesc->InterfaceProtocol != 0x50)) {\r
-\r
     return EFI_NOT_FOUND;\r
   }\r
 \r
   MemPages = sizeof (PEI_BOT_DEVICE) / EFI_PAGE_SIZE + 1;\r
-  Status = PeiServicesAllocatePages (\r
-             EfiBootServicesCode,\r
-             MemPages,\r
-             &AllocateAddress\r
-             );\r
+  Status   = PeiServicesAllocatePages (\r
+               EfiBootServicesCode,\r
+               MemPages,\r
+               &AllocateAddress\r
+               );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
-  PeiBotDevice                  = (PEI_BOT_DEVICE *) ((UINTN) AllocateAddress);\r
+  PeiBotDevice = (PEI_BOT_DEVICE *)((UINTN)AllocateAddress);\r
 \r
   PeiBotDevice->Signature       = PEI_BOT_DEVICE_SIGNATURE;\r
   PeiBotDevice->UsbIoPpi        = UsbIoPpi;\r
-  PeiBotDevice->AllocateAddress = (UINTN) AllocateAddress;\r
+  PeiBotDevice->AllocateAddress = (UINTN)AllocateAddress;\r
   PeiBotDevice->BotInterface    = InterfaceDesc;\r
 \r
   //\r
   // Default value\r
   //\r
-  PeiBotDevice->Media.DeviceType  = UsbMassStorage;\r
-  PeiBotDevice->Media.BlockSize   = 0x200;\r
-  PeiBotDevice->Media2.InterfaceType = MSG_USB_DP;\r
-  PeiBotDevice->Media2.BlockSize     = 0x200;\r
+  PeiBotDevice->Media.DeviceType      = UsbMassStorage;\r
+  PeiBotDevice->Media.BlockSize       = 0x200;\r
+  PeiBotDevice->Media2.InterfaceType  = MSG_USB_DP;\r
+  PeiBotDevice->Media2.BlockSize      = 0x200;\r
   PeiBotDevice->Media2.RemovableMedia = FALSE;\r
   PeiBotDevice->Media2.ReadOnly       = FALSE;\r
 \r
@@ -217,11 +217,11 @@ InitUsbBot (
   //\r
   for (Index = 0; Index < 2; Index++) {\r
     Status = UsbIoPpi->UsbGetEndpointDescriptor (\r
-                        PeiServices,\r
-                        UsbIoPpi,\r
-                        Index,\r
-                        &EndpointDesc\r
-                        );\r
+                         PeiServices,\r
+                         UsbIoPpi,\r
+                         Index,\r
+                         &EndpointDesc\r
+                         );\r
 \r
     if (EFI_ERROR (Status)) {\r
       return Status;\r
@@ -257,7 +257,7 @@ InitUsbBot (
   PeiBotDevice->BlkIoPpiList.Ppi  = &PeiBotDevice->BlkIoPpi;\r
   PeiBotDevice->BlkIo2PpiList.Ppi = &PeiBotDevice->BlkIo2Ppi;\r
 \r
-  Status                          = PeiUsbInquiry (PeiServices, PeiBotDevice);\r
+  Status = PeiUsbInquiry (PeiServices, PeiBotDevice);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -271,7 +271,7 @@ InitUsbBot (
     return Status;\r
   }\r
 \r
-  PeiBotDevice->SensePtr = (ATAPI_REQUEST_SENSE_DATA *) ((UINTN) AllocateAddress);\r
+  PeiBotDevice->SensePtr = (ATAPI_REQUEST_SENSE_DATA *)((UINTN)AllocateAddress);\r
 \r
   Status = PeiServicesInstallPpi (&PeiBotDevice->BlkIoPpiList);\r
 \r
@@ -304,9 +304,9 @@ InitUsbBot (
 EFI_STATUS\r
 EFIAPI\r
 BotGetNumberOfBlockDevices (\r
-  IN  EFI_PEI_SERVICES                         **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI            *This,\r
-  OUT UINTN                                    *NumberBlockDevices\r
+  IN  EFI_PEI_SERVICES               **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI  *This,\r
+  OUT UINTN                          *NumberBlockDevices\r
   )\r
 {\r
   //\r
@@ -346,10 +346,10 @@ BotGetNumberOfBlockDevices (
 EFI_STATUS\r
 EFIAPI\r
 BotGetMediaInfo (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI             *This,\r
-  IN  UINTN                                     DeviceIndex,\r
-  OUT EFI_PEI_BLOCK_IO_MEDIA                    *MediaInfo\r
+  IN  EFI_PEI_SERVICES               **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI  *This,\r
+  IN  UINTN                          DeviceIndex,\r
+  OUT EFI_PEI_BLOCK_IO_MEDIA         *MediaInfo\r
   )\r
 {\r
   PEI_BOT_DEVICE  *PeiBotDev;\r
@@ -366,9 +366,9 @@ BotGetMediaInfo (
     );\r
 \r
   Status = PeiBotDetectMedia (\r
-            PeiServices,\r
-            PeiBotDev\r
-            );\r
+             PeiServices,\r
+             PeiBotDev\r
+             );\r
 \r
   if (EFI_ERROR (Status)) {\r
     return EFI_DEVICE_ERROR;\r
@@ -420,12 +420,12 @@ BotGetMediaInfo (
 EFI_STATUS\r
 EFIAPI\r
 BotReadBlocks (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI             *This,\r
-  IN  UINTN                                     DeviceIndex,\r
-  IN  EFI_PEI_LBA                               StartLBA,\r
-  IN  UINTN                                     BufferSize,\r
-  OUT VOID                                      *Buffer\r
+  IN  EFI_PEI_SERVICES               **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO_PPI  *This,\r
+  IN  UINTN                          DeviceIndex,\r
+  IN  EFI_PEI_LBA                    StartLBA,\r
+  IN  UINTN                          BufferSize,\r
+  OUT VOID                           *Buffer\r
   )\r
 {\r
   PEI_BOT_DEVICE  *PeiBotDev;\r
@@ -464,19 +464,18 @@ BotReadBlocks (
   NumberOfBlocks = BufferSize / (PeiBotDev->Media.BlockSize);\r
 \r
   if (Status == EFI_SUCCESS) {\r
-\r
     Status = PeiUsbTestUnitReady (\r
-              PeiServices,\r
-              PeiBotDev\r
-              );\r
+               PeiServices,\r
+               PeiBotDev\r
+               );\r
     if (Status == EFI_SUCCESS) {\r
       Status = PeiUsbRead10 (\r
-                PeiServices,\r
-                PeiBotDev,\r
-                Buffer,\r
-                StartLBA,\r
-                1\r
-                );\r
+                 PeiServices,\r
+                 PeiBotDev,\r
+                 Buffer,\r
+                 StartLBA,\r
+                 1\r
+                 );\r
     }\r
   } else {\r
     //\r
@@ -494,9 +493,9 @@ BotReadBlocks (
     // update the media info accordingly.\r
     //\r
     Status = PeiBotDetectMedia (\r
-              PeiServices,\r
-              PeiBotDev\r
-              );\r
+               PeiServices,\r
+               PeiBotDev\r
+               );\r
     if (Status != EFI_SUCCESS) {\r
       return EFI_DEVICE_ERROR;\r
     }\r
@@ -520,45 +519,42 @@ BotReadBlocks (
     }\r
 \r
     Status = PeiUsbRead10 (\r
-              PeiServices,\r
-              PeiBotDev,\r
-              Buffer,\r
-              StartLBA,\r
-              NumberOfBlocks\r
-              );\r
+               PeiServices,\r
+               PeiBotDev,\r
+               Buffer,\r
+               StartLBA,\r
+               NumberOfBlocks\r
+               );\r
 \r
     switch (Status) {\r
+      case EFI_SUCCESS:\r
+        return EFI_SUCCESS;\r
 \r
-    case EFI_SUCCESS:\r
-      return EFI_SUCCESS;\r
-\r
-    default:\r
-      return EFI_DEVICE_ERROR;\r
+      default:\r
+        return EFI_DEVICE_ERROR;\r
     }\r
   } else {\r
-    StartLBA += 1;\r
+    StartLBA       += 1;\r
     NumberOfBlocks -= 1;\r
-    Buffer = (UINT8 *) Buffer + PeiBotDev->Media.BlockSize;\r
+    Buffer          = (UINT8 *)Buffer + PeiBotDev->Media.BlockSize;\r
 \r
     if (NumberOfBlocks == 0) {\r
       return EFI_SUCCESS;\r
     }\r
 \r
     Status = PeiUsbRead10 (\r
-              PeiServices,\r
-              PeiBotDev,\r
-              Buffer,\r
-              StartLBA,\r
-              NumberOfBlocks\r
-              );\r
+               PeiServices,\r
+               PeiBotDev,\r
+               Buffer,\r
+               StartLBA,\r
+               NumberOfBlocks\r
+               );\r
     switch (Status) {\r
+      case EFI_SUCCESS:\r
+        return EFI_SUCCESS;\r
 \r
-    case EFI_SUCCESS:\r
-      return EFI_SUCCESS;\r
-\r
-    default:\r
-      return EFI_DEVICE_ERROR;\r
-\r
+      default:\r
+        return EFI_DEVICE_ERROR;\r
     }\r
   }\r
 }\r
@@ -585,9 +581,9 @@ BotReadBlocks (
 EFI_STATUS\r
 EFIAPI\r
 BotGetNumberOfBlockDevices2 (\r
-  IN  EFI_PEI_SERVICES                         **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI           *This,\r
-  OUT UINTN                                    *NumberBlockDevices\r
+  IN  EFI_PEI_SERVICES                **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI  *This,\r
+  OUT UINTN                           *NumberBlockDevices\r
   )\r
 {\r
   //\r
@@ -627,10 +623,10 @@ BotGetNumberOfBlockDevices2 (
 EFI_STATUS\r
 EFIAPI\r
 BotGetMediaInfo2 (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI            *This,\r
-  IN  UINTN                                     DeviceIndex,\r
-  OUT EFI_PEI_BLOCK_IO2_MEDIA                   *MediaInfo\r
+  IN  EFI_PEI_SERVICES                **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI  *This,\r
+  IN  UINTN                           DeviceIndex,\r
+  OUT EFI_PEI_BLOCK_IO2_MEDIA         *MediaInfo\r
   )\r
 {\r
   PEI_BOT_DEVICE  *PeiBotDev;\r
@@ -695,12 +691,12 @@ BotGetMediaInfo2 (
 EFI_STATUS\r
 EFIAPI\r
 BotReadBlocks2 (\r
-  IN  EFI_PEI_SERVICES                          **PeiServices,\r
-  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI            *This,\r
-  IN  UINTN                                     DeviceIndex,\r
-  IN  EFI_PEI_LBA                               StartLBA,\r
-  IN  UINTN                                     BufferSize,\r
-  OUT VOID                                      *Buffer\r
+  IN  EFI_PEI_SERVICES                **PeiServices,\r
+  IN  EFI_PEI_RECOVERY_BLOCK_IO2_PPI  *This,\r
+  IN  UINTN                           DeviceIndex,\r
+  IN  EFI_PEI_LBA                     StartLBA,\r
+  IN  UINTN                           BufferSize,\r
+  OUT VOID                            *Buffer\r
   )\r
 {\r
   PEI_BOT_DEVICE  *PeiBotDev;\r
@@ -738,25 +734,25 @@ BotReadBlocks2 (
 **/\r
 EFI_STATUS\r
 PeiBotDetectMedia (\r
-  IN  EFI_PEI_SERVICES        **PeiServices,\r
-  IN  PEI_BOT_DEVICE          *PeiBotDev\r
+  IN  EFI_PEI_SERVICES  **PeiServices,\r
+  IN  PEI_BOT_DEVICE    *PeiBotDev\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
-  EFI_STATUS                  FloppyStatus;\r
-  UINTN                       SenseCounts;\r
-  BOOLEAN                     NeedReadCapacity;\r
-  EFI_PHYSICAL_ADDRESS        AllocateAddress;\r
-  ATAPI_REQUEST_SENSE_DATA    *SensePtr;\r
-  UINTN                       Retry;\r
+  EFI_STATUS                Status;\r
+  EFI_STATUS                FloppyStatus;\r
+  UINTN                     SenseCounts;\r
+  BOOLEAN                   NeedReadCapacity;\r
+  EFI_PHYSICAL_ADDRESS      AllocateAddress;\r
+  ATAPI_REQUEST_SENSE_DATA  *SensePtr;\r
+  UINTN                     Retry;\r
 \r
   //\r
   // if there is no media present,or media not changed,\r
   // the request sense command will detect faster than read capacity command.\r
   // read capacity command can be bypassed, thus improve performance.\r
   //\r
-  SenseCounts       = 0;\r
-  NeedReadCapacity  = TRUE;\r
+  SenseCounts      = 0;\r
+  NeedReadCapacity = TRUE;\r
 \r
   Status = PeiServicesAllocatePages (\r
              EfiBootServicesCode,\r
@@ -771,20 +767,20 @@ PeiBotDetectMedia (
   ZeroMem (SensePtr, EFI_PAGE_SIZE);\r
 \r
   Status = PeiUsbRequestSense (\r
-            PeiServices,\r
-            PeiBotDev,\r
-            &SenseCounts,\r
-            (UINT8 *) SensePtr\r
-            );\r
+             PeiServices,\r
+             PeiBotDev,\r
+             &SenseCounts,\r
+             (UINT8 *)SensePtr\r
+             );\r
 \r
   if (Status == EFI_SUCCESS) {\r
     //\r
     // No Media\r
     //\r
     if (IsNoMedia (SensePtr, SenseCounts)) {\r
-      NeedReadCapacity              = FALSE;\r
-      PeiBotDev->Media.MediaPresent = FALSE;\r
-      PeiBotDev->Media.LastBlock    = 0;\r
+      NeedReadCapacity               = FALSE;\r
+      PeiBotDev->Media.MediaPresent  = FALSE;\r
+      PeiBotDev->Media.LastBlock     = 0;\r
       PeiBotDev->Media2.MediaPresent = FALSE;\r
       PeiBotDev->Media2.LastBlock    = 0;\r
     } else {\r
@@ -795,6 +791,7 @@ PeiBotDetectMedia (
         PeiBotDev->Media.MediaPresent  = TRUE;\r
         PeiBotDev->Media2.MediaPresent = TRUE;\r
       }\r
+\r
       //\r
       // Media Error\r
       //\r
@@ -802,14 +799,12 @@ PeiBotDetectMedia (
         //\r
         // if media error encountered, make it look like no media present.\r
         //\r
-        PeiBotDev->Media.MediaPresent = FALSE;\r
-        PeiBotDev->Media.LastBlock    = 0;\r
+        PeiBotDev->Media.MediaPresent  = FALSE;\r
+        PeiBotDev->Media.LastBlock     = 0;\r
         PeiBotDev->Media2.MediaPresent = FALSE;\r
         PeiBotDev->Media2.LastBlock    = 0;\r
       }\r
-\r
     }\r
-\r
   }\r
 \r
   if (NeedReadCapacity) {\r
@@ -818,43 +813,46 @@ PeiBotDetectMedia (
     //\r
     for (Retry = 0; Retry < 4; Retry++) {\r
       switch (PeiBotDev->DeviceType) {\r
-      case USBCDROM:\r
-        Status = PeiUsbReadCapacity (\r
-                  PeiServices,\r
-                  PeiBotDev\r
-                  );\r
-        break;\r
-\r
-      case USBFLOPPY2:\r
-        Status = PeiUsbReadFormattedCapacity (\r
-                  PeiServices,\r
-                  PeiBotDev\r
-                  );\r
-          if (EFI_ERROR(Status)||\r
-              !PeiBotDev->Media.MediaPresent) {\r
-          //\r
-          // retry the ReadCapacity command\r
-          //\r
-          PeiBotDev->DeviceType = USBFLOPPY;\r
-          Status = EFI_DEVICE_ERROR;\r
-        }\r
-        break;\r
-\r
-      case USBFLOPPY:\r
-        Status = PeiUsbReadCapacity (\r
-                  PeiServices,\r
-                  PeiBotDev\r
-                  );\r
-        if (EFI_ERROR (Status)) {\r
-          //\r
-          // retry the ReadFormatCapacity command\r
-          //\r
-          PeiBotDev->DeviceType = USBFLOPPY2;\r
-        }\r
-        break;\r
-\r
-      default:\r
-        return EFI_INVALID_PARAMETER;\r
+        case USBCDROM:\r
+          Status = PeiUsbReadCapacity (\r
+                     PeiServices,\r
+                     PeiBotDev\r
+                     );\r
+          break;\r
+\r
+        case USBFLOPPY2:\r
+          Status = PeiUsbReadFormattedCapacity (\r
+                     PeiServices,\r
+                     PeiBotDev\r
+                     );\r
+          if (EFI_ERROR (Status) ||\r
+              !PeiBotDev->Media.MediaPresent)\r
+          {\r
+            //\r
+            // retry the ReadCapacity command\r
+            //\r
+            PeiBotDev->DeviceType = USBFLOPPY;\r
+            Status                = EFI_DEVICE_ERROR;\r
+          }\r
+\r
+          break;\r
+\r
+        case USBFLOPPY:\r
+          Status = PeiUsbReadCapacity (\r
+                     PeiServices,\r
+                     PeiBotDev\r
+                     );\r
+          if (EFI_ERROR (Status)) {\r
+            //\r
+            // retry the ReadFormatCapacity command\r
+            //\r
+            PeiBotDev->DeviceType = USBFLOPPY2;\r
+          }\r
+\r
+          break;\r
+\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
       }\r
 \r
       SenseCounts = 0;\r
@@ -865,11 +863,11 @@ PeiBotDetectMedia (
       }\r
 \r
       FloppyStatus = PeiUsbRequestSense (\r
-                      PeiServices,\r
-                      PeiBotDev,\r
-                      &SenseCounts,\r
-                      (UINT8 *) SensePtr\r
-                      );\r
+                       PeiServices,\r
+                       PeiBotDev,\r
+                       &SenseCounts,\r
+                       (UINT8 *)SensePtr\r
+                       );\r
 \r
       //\r
       // If Request Sense data failed,retry.\r
@@ -877,12 +875,13 @@ PeiBotDetectMedia (
       if (EFI_ERROR (FloppyStatus)) {\r
         continue;\r
       }\r
+\r
       //\r
       // No Media\r
       //\r
       if (IsNoMedia (SensePtr, SenseCounts)) {\r
-        PeiBotDev->Media.MediaPresent = FALSE;\r
-        PeiBotDev->Media.LastBlock    = 0;\r
+        PeiBotDev->Media.MediaPresent  = FALSE;\r
+        PeiBotDev->Media.LastBlock     = 0;\r
         PeiBotDev->Media2.MediaPresent = FALSE;\r
         PeiBotDev->Media2.LastBlock    = 0;\r
         break;\r
@@ -892,13 +891,14 @@ PeiBotDetectMedia (
         //\r
         // if media error encountered, make it look like no media present.\r
         //\r
-        PeiBotDev->Media.MediaPresent = FALSE;\r
-        PeiBotDev->Media.LastBlock    = 0;\r
+        PeiBotDev->Media.MediaPresent  = FALSE;\r
+        PeiBotDev->Media.LastBlock     = 0;\r
         PeiBotDev->Media2.MediaPresent = FALSE;\r
         PeiBotDev->Media2.LastBlock    = 0;\r
         break;\r
       }\r
     }\r
+\r
     //\r
     // ENDFOR\r
     //\r