]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg/pci: Support interpreting specific PCIE ext cap thru "-ec"
authorRuiyu Ni <ruiyu.ni@intel.com>
Mon, 23 Jan 2017 10:49:33 +0000 (18:49 +0800)
committerRuiyu Ni <ruiyu.ni@intel.com>
Wed, 25 Jan 2017 08:09:08 +0000 (16:09 +0800)
The implementation was already there but through a private flag
"-_e". The patch removes "-_e" support and add "-ec" support.
Removing old "-_e" support makes the pci command more clean.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni

index 9cc4f5cf2ed354a32889f41e5c8deade3e4c36a4..99e6caff870a9fde60b4ab7caa95c6b1dd021046 100644 (file)
@@ -2370,7 +2370,7 @@ PCI_CONFIG_SPACE  *mConfigSpace = NULL;
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
   {L"-s", TypeValue},\r
   {L"-i", TypeFlag},\r
-  {L"-_e", TypeValue},\r
+  {L"-ec", TypeValue},\r
   {NULL, TypeMax}\r
   };\r
 \r
@@ -2516,6 +2516,11 @@ ShellCommandRunPci (
       ShellStatus = SHELL_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+    if (ShellCommandLineGetFlag(Package, L"-ec") && ShellCommandLineGetValue(Package, L"-ec") == NULL) {\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle,  L"pci", L"-ec");  \r
+      ShellStatus = SHELL_INVALID_PARAMETER;\r
+      goto Done;\r
+    }\r
     if (ShellCommandLineGetFlag(Package, L"-s") && ShellCommandLineGetValue(Package, L"-s") == NULL) {\r
       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle,  L"pci", L"-s");  \r
       ShellStatus = SHELL_INVALID_PARAMETER;\r
@@ -2878,13 +2883,11 @@ ShellCommandRunPci (
     // If "-i" appears in command line, interpret data in configuration space\r
     //\r
     if (ExplainData) {\r
-      EnhancedDump = 0;\r
-      if (ShellCommandLineGetFlag(Package, L"-_e")) {\r
-        EnhancedDump = 0xFFFF;\r
-        Temp = ShellCommandLineGetValue(Package, L"-_e");\r
-        if (Temp != NULL) {\r
-          EnhancedDump = (UINT16) ShellHexStrToUintn (Temp);\r
-        }\r
+      EnhancedDump = 0xFFFF;\r
+      if (ShellCommandLineGetFlag(Package, L"-ec")) {\r
+        Temp = ShellCommandLineGetValue(Package, L"-ec");\r
+        ASSERT (Temp != NULL);\r
+        EnhancedDump = (UINT16) ShellHexStrToUintn (Temp);\r
       }\r
       Status = PciExplainData (&ConfigSpace, Address, IoDev, EnhancedDump);\r
     }\r
@@ -5829,39 +5832,25 @@ PciExplainPciExpress (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  if (EnhancedDump == 0) {\r
+  ExtHdr = (PCI_EXP_EXT_HDR*)ExRegBuffer;\r
+  while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0) {\r
     //\r
-    // Print the PciEx extend space in raw bytes ( 0xFF-0xFFF)\r
+    // Process this item\r
     //\r
-    ShellPrintEx (-1, -1, L"\r\n%HStart dumping PCIex extended configuration space (0x100 - 0xFFF).%N\r\n\r\n");\r
-\r
-    DumpHex (\r
-      2,\r
-      EFI_PCIE_CAPABILITY_BASE_OFFSET,\r
-      ExtendRegSize,\r
-      (VOID *) (ExRegBuffer)\r
-      );\r
-  } else {\r
-    ExtHdr = (PCI_EXP_EXT_HDR*)ExRegBuffer;\r
-    while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0) {\r
+    if (EnhancedDump == 0xFFFF || EnhancedDump == ExtHdr->CapabilityId) {\r
       //\r
-      // Process this item\r
+      // Print this item\r
       //\r
-      if (EnhancedDump == 0xFFFF || EnhancedDump == ExtHdr->CapabilityId) {\r
-        //\r
-        // Print this item\r
-        //\r
-        PrintPciExtendedCapabilityDetails((PCI_EXP_EXT_HDR*)ExRegBuffer, ExtHdr, &PciExpressCap);\r
-      }\r
+      PrintPciExtendedCapabilityDetails((PCI_EXP_EXT_HDR*)ExRegBuffer, ExtHdr, &PciExpressCap);\r
+    }\r
 \r
-      //\r
-      // Advance to the next item if it exists\r
-      //\r
-      if (ExtHdr->NextCapabilityOffset != 0) {\r
-        ExtHdr = (PCI_EXP_EXT_HDR*)((UINT8*)ExRegBuffer + ExtHdr->NextCapabilityOffset - EFI_PCIE_CAPABILITY_BASE_OFFSET);\r
-      } else {\r
-        break;\r
-      }\r
+    //\r
+    // Advance to the next item if it exists\r
+    //\r
+    if (ExtHdr->NextCapabilityOffset != 0) {\r
+      ExtHdr = (PCI_EXP_EXT_HDR*)((UINT8*)ExRegBuffer + ExtHdr->NextCapabilityOffset - EFI_PCIE_CAPABILITY_BASE_OFFSET);\r
+    } else {\r
+      break;\r
     }\r
   }\r
   SHELL_FREE_NON_NULL(ExRegBuffer);\r
index 609e1a80772ee33e30e7095db4fb0707f197b488..8ea4215f9c46be7fc91dab2570e9322a39db9910 100644 (file)
 #string STR_GET_HELP_PCI          #language en-US ""\r
 ".TH pci 0 "Displays PCI device information."\r\n"\r
 ".SH NAME\r\n"\r
-"Displays a PCI device list or PCI function configuration space of a device.\r\n"\r
+"Displays PCI device list or PCI function configuration space and PCIe extended\r\n"\r
+"configuration space.\r\n"\r
 ".SH SYNOPSIS\r\n"\r
 " \r\n"\r
-"PCI [Bus Dev [Func] [-s Seg] [-i]]\r\n"\r
+"PCI [Bus Dev [Func] [-s Seg] [-i [-ec ID]]]\r\n"\r
 ".SH OPTIONS\r\n"\r
 " \r\n"\r
-"  -s   - Specifies optional segment number.\r\n"\r
+"  -s   - Specifies optional segment number (hexadecimal number).\r\n"\r
 "  -i   - Displays interpreted information.\r\n"\r
-"  Bus  - Specifies a bus number.\r\n"\r
-"  Dev  - Specifies a device number.\r\n"\r
-"  Func - Specifies a function number.\r\n"\r
+"  -ec  - Displays detailed interpretation of specified PCIe extended capability\r\n"\r
+"         ID (hexadecimal number).\r\n"\r
+"  Bus  - Specifies a bus number (hexadecimal number).\r\n"\r
+"  Dev  - Specifies a device number (hexadecimal number).\r\n"\r
+"  Func - Specifies a function number (hexadecimal number).\r\n"\r
 ".SH DESCRIPTION\r\n"\r
 " \r\n"\r
 "NOTES:\r\n"\r