]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: Add extended USB decoding for consistent device names
authorjaben carsey <jaben.carsey@intel.com>
Mon, 24 Nov 2014 14:58:33 +0000 (14:58 +0000)
committerjcarsey <jcarsey@Edk2>
Mon, 24 Nov 2014 14:58:33 +0000 (14:58 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: jaben carsey <jaben.carsey@intel.com>
Reviewed-by: Joe Peterson <joe.peterson@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hp.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16423 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c
ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
ShellPkg/ShellPkg.dec

index a42a045d52d48341f1ed43c27a100d15f5fe6d26..48739e20fd3059ab9ade003cbf4acfbea1557edd 100644 (file)
@@ -15,6 +15,7 @@
 #include <Library/DevicePathLib.h>\r
 #include <Library/SortLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/DevicePathLib.h>\r
 #include <Library/SortLib.h>\r
 #include <Library/UefiLib.h>\r
+#include <Protocol/UsbIo.h>\r
 \r
 typedef enum {\r
   MTDTypeUnknown,\r
 \r
 typedef enum {\r
   MTDTypeUnknown,\r
@@ -41,10 +42,12 @@ typedef struct {
   CHAR16    *Name;\r
 } MTD_NAME;\r
 \r
   CHAR16    *Name;\r
 } MTD_NAME;\r
 \r
+typedef VOID (EFIAPI *SerialDecodeFucntion) (EFI_DEVICE_PATH_PROTOCOL *DevPath, DEVICE_CONSIST_MAPPING_INFO *MapInfo,EFI_DEVICE_PATH_PROTOCOL *);\r
+\r
 typedef struct {\r
   UINT8 Type;\r
   UINT8 SubType;\r
 typedef struct {\r
   UINT8 Type;\r
   UINT8 SubType;\r
-  VOID (EFIAPI *SerialFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, DEVICE_CONSIST_MAPPING_INFO *MapInfo);\r
+  SerialDecodeFucntion SerialFun;\r
   INTN (EFIAPI *CompareFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, EFI_DEVICE_PATH_PROTOCOL *DevPath2);\r
 } DEV_PATH_CONSIST_MAPPING_TABLE;\r
 \r
   INTN (EFIAPI *CompareFun) (EFI_DEVICE_PATH_PROTOCOL *DevPath, EFI_DEVICE_PATH_PROTOCOL *DevPath2);\r
 } DEV_PATH_CONSIST_MAPPING_TABLE;\r
 \r
@@ -428,7 +431,8 @@ VOID
 EFIAPI\r
 DevPathSerialHardDrive (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialHardDrive (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   HARDDRIVE_DEVICE_PATH *Hd;\r
   )\r
 {\r
   HARDDRIVE_DEVICE_PATH *Hd;\r
@@ -454,7 +458,8 @@ VOID
 EFIAPI\r
 DevPathSerialAtapi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialAtapi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   ATAPI_DEVICE_PATH *Atapi;\r
   )\r
 {\r
   ATAPI_DEVICE_PATH *Atapi;\r
@@ -476,7 +481,8 @@ VOID
 EFIAPI\r
 DevPathSerialCdRom (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialCdRom (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   CDROM_DEVICE_PATH *Cd;\r
   )\r
 {\r
   CDROM_DEVICE_PATH *Cd;\r
@@ -499,7 +505,8 @@ VOID
 EFIAPI\r
 DevPathSerialFibre (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialFibre (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   FIBRECHANNEL_DEVICE_PATH  *Fibre;\r
   )\r
 {\r
   FIBRECHANNEL_DEVICE_PATH  *Fibre;\r
@@ -522,7 +529,8 @@ VOID
 EFIAPI\r
 DevPathSerialUart (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialUart (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   UART_DEVICE_PATH  *Uart;\r
   )\r
 {\r
   UART_DEVICE_PATH  *Uart;\r
@@ -547,10 +555,16 @@ VOID
 EFIAPI\r
 DevPathSerialUsb (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialUsb (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   )\r
 {\r
-  USB_DEVICE_PATH *Usb;\r
+  USB_DEVICE_PATH           *Usb;\r
+  EFI_USB_IO_PROTOCOL       *UsbIo;\r
+  EFI_HANDLE                TempHandle;\r
+  EFI_STATUS                Status;\r
+  USB_INTERFACE_DESCRIPTOR  InterfaceDesc;\r
+\r
 \r
   ASSERT(DevicePathNode != NULL);\r
   ASSERT(MappingItem != NULL);\r
 \r
   ASSERT(DevicePathNode != NULL);\r
   ASSERT(MappingItem != NULL);\r
@@ -558,6 +572,35 @@ DevPathSerialUsb (
   Usb = (USB_DEVICE_PATH *) DevicePathNode;\r
   AppendCSDNum (MappingItem, Usb->ParentPortNumber);\r
   AppendCSDNum (MappingItem, Usb->InterfaceNumber);\r
   Usb = (USB_DEVICE_PATH *) DevicePathNode;\r
   AppendCSDNum (MappingItem, Usb->ParentPortNumber);\r
   AppendCSDNum (MappingItem, Usb->InterfaceNumber);\r
+\r
+  if (PcdGetBool(PcdUsbExtendedDecode)) {\r
+    Status = gBS->LocateDevicePath( &gEfiUsbIoProtocolGuid, &DevicePath, &TempHandle );\r
+    UsbIo = NULL;\r
+    if (!EFI_ERROR(Status)) {\r
+      Status = gBS->OpenProtocol(TempHandle, &gEfiUsbIoProtocolGuid, (VOID**)&UsbIo, gImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);\r
+    } \r
+\r
+    if (!EFI_ERROR(Status)) {\r
+      ASSERT(UsbIo != NULL);\r
+      Status = UsbIo->UsbGetInterfaceDescriptor(UsbIo, &InterfaceDesc);\r
+      if (!EFI_ERROR(Status)) {\r
+        if (InterfaceDesc.InterfaceClass == USB_MASS_STORE_CLASS && MappingItem->Mtd == MTDTypeUnknown) {\r
+          switch (InterfaceDesc.InterfaceSubClass){\r
+            case USB_MASS_STORE_SCSI:\r
+              MappingItem->Mtd = MTDTypeHardDisk;\r
+              break;\r
+            case USB_MASS_STORE_8070I:\r
+            case USB_MASS_STORE_UFI:\r
+              MappingItem->Mtd = MTDTypeFloppy;\r
+              break;\r
+            case USB_MASS_STORE_8020I:\r
+              MappingItem->Mtd  = MTDTypeCDRom;\r
+              break;\r
+          }\r
+        }\r
+      }\r
+    } \r
+  }\r
 }\r
 \r
 /**\r
 }\r
 \r
 /**\r
@@ -571,7 +614,8 @@ VOID
 EFIAPI\r
 DevPathSerialVendor (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialVendor (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   VENDOR_DEVICE_PATH  *Vendor;\r
   )\r
 {\r
   VENDOR_DEVICE_PATH  *Vendor;\r
@@ -603,14 +647,14 @@ DevPathSerialVendor (
       ASSERT(Buffer != NULL);\r
       if (Buffer == NULL) {\r
         return;\r
       ASSERT(Buffer != NULL);\r
       if (Buffer == NULL) {\r
         return;\r
-      }\r
+  }\r
 \r
       //\r
       // Build the string data\r
       //\r
       for (Index = 0; Index < TargetNameLength; Index++) {\r
         Buffer = CatSPrint (Buffer, L"%02x", *((UINT8*)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index));\r
 \r
       //\r
       // Build the string data\r
       //\r
       for (Index = 0; Index < TargetNameLength; Index++) {\r
         Buffer = CatSPrint (Buffer, L"%02x", *((UINT8*)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index));\r
-      }\r
+}\r
 \r
       //\r
       // Append the new data block\r
 \r
       //\r
       // Append the new data block\r
@@ -632,7 +676,8 @@ VOID
 EFIAPI\r
 DevPathSerialLun (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialLun (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   DEVICE_LOGICAL_UNIT_DEVICE_PATH *Lun;\r
   )\r
 {\r
   DEVICE_LOGICAL_UNIT_DEVICE_PATH *Lun;\r
@@ -654,7 +699,8 @@ VOID
 EFIAPI\r
 DevPathSerialSata (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialSata (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   SATA_DEVICE_PATH  *Sata;\r
   )\r
 {\r
   SATA_DEVICE_PATH  *Sata;\r
@@ -678,7 +724,8 @@ VOID
 EFIAPI\r
 DevPathSerialIScsi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialIScsi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   ISCSI_DEVICE_PATH  *IScsi;\r
   )\r
 {\r
   ISCSI_DEVICE_PATH  *IScsi;\r
@@ -721,7 +768,8 @@ VOID
 EFIAPI\r
 DevPathSerialI2O (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialI2O (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   I2O_DEVICE_PATH *DevicePath_I20;\r
   )\r
 {\r
   I2O_DEVICE_PATH *DevicePath_I20;\r
@@ -743,7 +791,8 @@ VOID
 EFIAPI\r
 DevPathSerialMacAddr (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialMacAddr (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   MAC_ADDR_DEVICE_PATH  *Mac;\r
   )\r
 {\r
   MAC_ADDR_DEVICE_PATH  *Mac;\r
@@ -779,7 +828,8 @@ VOID
 EFIAPI\r
 DevPathSerialInfiniBand (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialInfiniBand (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   INFINIBAND_DEVICE_PATH  *InfiniBand;\r
   )\r
 {\r
   INFINIBAND_DEVICE_PATH  *InfiniBand;\r
@@ -811,7 +861,8 @@ VOID
 EFIAPI\r
 DevPathSerialIPv4 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialIPv4 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   IPv4_DEVICE_PATH  *Ip;\r
   )\r
 {\r
   IPv4_DEVICE_PATH  *Ip;\r
@@ -855,7 +906,8 @@ VOID
 EFIAPI\r
 DevPathSerialIPv6 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialIPv6 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   IPv6_DEVICE_PATH  *Ip;\r
   )\r
 {\r
   IPv6_DEVICE_PATH  *Ip;\r
@@ -891,7 +943,8 @@ VOID
 EFIAPI\r
 DevPathSerialScsi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialScsi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   SCSI_DEVICE_PATH  *Scsi;\r
   )\r
 {\r
   SCSI_DEVICE_PATH  *Scsi;\r
@@ -914,7 +967,8 @@ VOID
 EFIAPI\r
 DevPathSerial1394 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerial1394 (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   F1394_DEVICE_PATH *DevicePath_F1394;\r
   )\r
 {\r
   F1394_DEVICE_PATH *DevicePath_F1394;\r
@@ -938,7 +992,8 @@ VOID
 EFIAPI\r
 DevPathSerialAcpi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialAcpi (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   ACPI_HID_DEVICE_PATH  *Acpi;\r
   )\r
 {\r
   ACPI_HID_DEVICE_PATH  *Acpi;\r
@@ -967,7 +1022,8 @@ VOID
 EFIAPI\r
 DevPathSerialDefault (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
 EFIAPI\r
 DevPathSerialDefault (\r
   IN EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem\r
+  IN DEVICE_CONSIST_MAPPING_INFO  *MappingItem,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
   return;\r
   )\r
 {\r
   return;\r
@@ -1209,21 +1265,22 @@ GetDeviceConsistMappingInfo (
   IN EFI_DEVICE_PATH_PROTOCOL       *DevicePath\r
   )\r
 {\r
   IN EFI_DEVICE_PATH_PROTOCOL       *DevicePath\r
   )\r
 {\r
-  VOID (EFIAPI *SerialFun) (EFI_DEVICE_PATH_PROTOCOL *, DEVICE_CONSIST_MAPPING_INFO *);\r
-\r
-  UINTN Index;\r
+  SerialDecodeFucntion      SerialFun;\r
+  UINTN                     Index;\r
+  EFI_DEVICE_PATH_PROTOCOL  *OriginalDevicePath;\r
 \r
   ASSERT(DevicePath != NULL);\r
   ASSERT(MappingItem != NULL);\r
 \r
   SetMem (&MappingItem->Csd, sizeof (POOL_PRINT), 0);\r
 \r
   ASSERT(DevicePath != NULL);\r
   ASSERT(MappingItem != NULL);\r
 \r
   SetMem (&MappingItem->Csd, sizeof (POOL_PRINT), 0);\r
+  OriginalDevicePath = DevicePath;\r
 \r
   while (!IsDevicePathEnd (DevicePath)) {\r
     //\r
 \r
   while (!IsDevicePathEnd (DevicePath)) {\r
     //\r
-    // Find the handler to dump this device path node\r
+    // Find the handler to dump this device path node and\r
+    // initialize with generic function in case nothing is found\r
     //\r
     //\r
-    SerialFun = NULL;\r
-    for (Index = 0; DevPathConsistMappingTable[Index].SerialFun != NULL; Index += 1) {\r
+    for (SerialFun = DevPathSerialDefault, Index = 0; DevPathConsistMappingTable[Index].SerialFun != NULL; Index += 1) {\r
 \r
       if (DevicePathType (DevicePath) == DevPathConsistMappingTable[Index].Type &&\r
           DevicePathSubType (DevicePath) == DevPathConsistMappingTable[Index].SubType\r
 \r
       if (DevicePathType (DevicePath) == DevPathConsistMappingTable[Index].Type &&\r
           DevicePathSubType (DevicePath) == DevPathConsistMappingTable[Index].SubType\r
@@ -1232,14 +1289,8 @@ GetDeviceConsistMappingInfo (
         break;\r
       }\r
     }\r
         break;\r
       }\r
     }\r
-    //\r
-    // If not found, use a generic function\r
-    //\r
-    if (!SerialFun) {\r
-      SerialFun = DevPathSerialDefault;\r
-    }\r
 \r
 \r
-    SerialFun (DevicePath, MappingItem);\r
+    SerialFun (DevicePath, MappingItem, OriginalDevicePath);\r
 \r
     //\r
     // Next device path node\r
 \r
     //\r
     // Next device path node\r
index 655069071307f063b4a6646e265c8c6d230a5539..38df3b31f7591ff069c7bc333b5db6d19081c540 100644 (file)
@@ -53,6 +53,7 @@
   gEfiShellProtocolGuid                                   # ALWAYS_CONSUMED\r
   gEfiShellParametersProtocolGuid                         # ALWAYS_CONSUMED\r
   gEfiShellDynamicCommandProtocolGuid                     # SOMETIMES_CONSUMED\r
   gEfiShellProtocolGuid                                   # ALWAYS_CONSUMED\r
   gEfiShellParametersProtocolGuid                         # ALWAYS_CONSUMED\r
   gEfiShellDynamicCommandProtocolGuid                     # SOMETIMES_CONSUMED\r
+  gEfiUsbIoProtocolGuid                                   ## SOMETIMES_CONSUMED\r
 \r
 [Guids]\r
   gEfiSasDevicePathGuid                                   # ALWAYS_CONSUMED\r
 \r
 [Guids]\r
   gEfiSasDevicePathGuid                                   # ALWAYS_CONSUMED\r
@@ -60,6 +61,7 @@
 [Pcd.common]\r
   gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel         ## ALWAYS_CONSUMED\r
   gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength        ## ALWAYS_CONSUMED\r
 [Pcd.common]\r
   gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel         ## ALWAYS_CONSUMED\r
   gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength        ## ALWAYS_CONSUMED\r
+  gEfiShellPkgTokenSpaceGuid.PcdUsbExtendedDecode         ## SOMETIMES_CONSUMED\r
   gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames  ## SOMETIMES_CONSUMED\r
   gEfiShellPkgTokenSpaceGuid.PcdShellVendorExtendedDecode ## SOMETIMES_CONSUMED\r
 \r
   gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames  ## SOMETIMES_CONSUMED\r
   gEfiShellPkgTokenSpaceGuid.PcdShellVendorExtendedDecode ## SOMETIMES_CONSUMED\r
 \r
index df847d31bb7854fcb53cb6678fe43daf70d6d800..a99f9a688d22df08d21584bcb7e99be01175fb5d 100644 (file)
   ## Unicode string of the shell supplier\r
   gEfiShellPkgTokenSpaceGuid.PcdShellSupplier|L"EDK II"|VOID*|0x00000010\r
 \r
   ## Unicode string of the shell supplier\r
   gEfiShellPkgTokenSpaceGuid.PcdShellSupplier|L"EDK II"|VOID*|0x00000010\r
 \r
+  ## Do extended decode of USB for determining media type\r
+  gEfiShellPkgTokenSpaceGuid.PcdUsbExtendedDecode|TRUE|BOOLEAN|0x00000011\r
+\r
   ## Do iSCSI decode for map names.\r
   # This is disabled by default due to the length of generated strings\r
   gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames|FALSE|BOOLEAN|0x00000012\r
   ## Do iSCSI decode for map names.\r
   # This is disabled by default due to the length of generated strings\r
   gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames|FALSE|BOOLEAN|0x00000012\r