public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] ShellPkg/pci: Support interpreting specific PCIE ext cap thru "-ec"
@ 2017-01-24  6:43 Ruiyu Ni
  2017-01-24 17:38 ` Carsey, Jaben
  0 siblings, 1 reply; 2+ messages in thread
From: Ruiyu Ni @ 2017-01-24  6:43 UTC (permalink / raw)
  To: edk2-devel; +Cc: Jaben Carsey

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>
Cc: Jaben Carsey <jaben.carsey@intel.com>
---
 ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c  | 61 +++++++++-------------
 .../UefiShellDebug1CommandsLib.uni                 | 15 +++---
 2 files changed, 34 insertions(+), 42 deletions(-)

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



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ShellPkg/pci: Support interpreting specific PCIE ext cap thru "-ec"
  2017-01-24  6:43 [PATCH] ShellPkg/pci: Support interpreting specific PCIE ext cap thru "-ec" Ruiyu Ni
@ 2017-01-24 17:38 ` Carsey, Jaben
  0 siblings, 0 replies; 2+ messages in thread
From: Carsey, Jaben @ 2017-01-24 17:38 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Carsey, Jaben

Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Monday, January 23, 2017 10:43 PM
> To: edk2-devel@lists.01.org
> Cc: Carsey, Jaben <jaben.carsey@intel.com>
> Subject: [PATCH] ShellPkg/pci: Support interpreting specific PCIE ext cap thru
> "-ec"
> Importance: High
> 
> 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>
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> ---
>  ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c  | 61 +++++++++-------
> ------
>  .../UefiShellDebug1CommandsLib.uni                 | 15 +++---
>  2 files changed, 34 insertions(+), 42 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
> index 9cc4f5c..99e6caf 100644
> --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
> +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
> @@ -2370,7 +2370,7 @@ PCI_CONFIG_SPACE  *mConfigSpace = NULL;
>  STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
>    {L"-s", TypeValue},
>    {L"-i", TypeFlag},
> -  {L"-_e", TypeValue},
> +  {L"-ec", TypeValue},
>    {NULL, TypeMax}
>    };
> 
> @@ -2516,6 +2516,11 @@ ShellCommandRunPci (
>        ShellStatus = SHELL_INVALID_PARAMETER;
>        goto Done;
>      }
> +    if (ShellCommandLineGetFlag(Package, L"-ec") &&
> ShellCommandLineGetValue(Package, L"-ec") == NULL) {
> +      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE),
> gShellDebug1HiiHandle,  L"pci", L"-ec");
> +      ShellStatus = SHELL_INVALID_PARAMETER;
> +      goto Done;
> +    }
>      if (ShellCommandLineGetFlag(Package, L"-s") &&
> ShellCommandLineGetValue(Package, L"-s") == NULL) {
>        ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE),
> gShellDebug1HiiHandle,  L"pci", L"-s");
>        ShellStatus = SHELL_INVALID_PARAMETER;
> @@ -2878,13 +2883,11 @@ ShellCommandRunPci (
>      // If "-i" appears in command line, interpret data in configuration space
>      //
>      if (ExplainData) {
> -      EnhancedDump = 0;
> -      if (ShellCommandLineGetFlag(Package, L"-_e")) {
> -        EnhancedDump = 0xFFFF;
> -        Temp = ShellCommandLineGetValue(Package, L"-_e");
> -        if (Temp != NULL) {
> -          EnhancedDump = (UINT16) ShellHexStrToUintn (Temp);
> -        }
> +      EnhancedDump = 0xFFFF;
> +      if (ShellCommandLineGetFlag(Package, L"-ec")) {
> +        Temp = ShellCommandLineGetValue(Package, L"-ec");
> +        ASSERT (Temp != NULL);
> +        EnhancedDump = (UINT16) ShellHexStrToUintn (Temp);
>        }
>        Status = PciExplainData (&ConfigSpace, Address, IoDev, EnhancedDump);
>      }
> @@ -5829,39 +5832,25 @@ PciExplainPciExpress (
>      return EFI_UNSUPPORTED;
>    }
> 
> -  if (EnhancedDump == 0) {
> +  ExtHdr = (PCI_EXP_EXT_HDR*)ExRegBuffer;
> +  while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0) {
>      //
> -    // Print the PciEx extend space in raw bytes ( 0xFF-0xFFF)
> +    // Process this item
>      //
> -    ShellPrintEx (-1, -1, L"\r\n%HStart dumping PCIex extended configuration
> space (0x100 - 0xFFF).%N\r\n\r\n");
> -
> -    DumpHex (
> -      2,
> -      EFI_PCIE_CAPABILITY_BASE_OFFSET,
> -      ExtendRegSize,
> -      (VOID *) (ExRegBuffer)
> -      );
> -  } else {
> -    ExtHdr = (PCI_EXP_EXT_HDR*)ExRegBuffer;
> -    while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0) {
> +    if (EnhancedDump == 0xFFFF || EnhancedDump == ExtHdr->CapabilityId)
> {
>        //
> -      // Process this item
> +      // Print this item
>        //
> -      if (EnhancedDump == 0xFFFF || EnhancedDump == ExtHdr->CapabilityId)
> {
> -        //
> -        // Print this item
> -        //
> -        PrintPciExtendedCapabilityDetails((PCI_EXP_EXT_HDR*)ExRegBuffer,
> ExtHdr, &PciExpressCap);
> -      }
> +      PrintPciExtendedCapabilityDetails((PCI_EXP_EXT_HDR*)ExRegBuffer,
> ExtHdr, &PciExpressCap);
> +    }
> 
> -      //
> -      // Advance to the next item if it exists
> -      //
> -      if (ExtHdr->NextCapabilityOffset != 0) {
> -        ExtHdr = (PCI_EXP_EXT_HDR*)((UINT8*)ExRegBuffer + ExtHdr-
> >NextCapabilityOffset - EFI_PCIE_CAPABILITY_BASE_OFFSET);
> -      } else {
> -        break;
> -      }
> +    //
> +    // Advance to the next item if it exists
> +    //
> +    if (ExtHdr->NextCapabilityOffset != 0) {
> +      ExtHdr = (PCI_EXP_EXT_HDR*)((UINT8*)ExRegBuffer + ExtHdr-
> >NextCapabilityOffset - EFI_PCIE_CAPABILITY_BASE_OFFSET);
> +    } else {
> +      break;
>      }
>    }
>    SHELL_FREE_NON_NULL(ExRegBuffer);
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> index 06865a4..324e233f 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> @@ -895,17 +895,20 @@
>  #string STR_GET_HELP_PCI          #language en-US ""
>  ".TH pci 0 "Displays PCI device information."\r\n"
>  ".SH NAME\r\n"
> -"Displays a PCI device list or PCI function configuration space of a
> device.\r\n"
> +"Displays PCI device list or PCI function configuration space and PCIe
> extended\r\n"
> +"configuration space.\r\n"
>  ".SH SYNOPSIS\r\n"
>  " \r\n"
> -"PCI [Bus Dev [Func] [-s Seg] [-i]]\r\n"
> +"PCI [Bus Dev [Func] [-s Seg] [-i [-ec ID]]]\r\n"
>  ".SH OPTIONS\r\n"
>  " \r\n"
> -"  -s   - Specifies optional segment number.\r\n"
> +"  -s   - Specifies optional segment number (hexadecimal number).\r\n"
>  "  -i   - Displays interpreted information.\r\n"
> -"  Bus  - Specifies a bus number.\r\n"
> -"  Dev  - Specifies a device number.\r\n"
> -"  Func - Specifies a function number.\r\n"
> +"  -ec  - Displays detailed interpretation of specified PCIe extended
> capability\r\n"
> +"         ID (hexadecimal number).\r\n"
> +"  Bus  - Specifies a bus number (hexadecimal number).\r\n"
> +"  Dev  - Specifies a device number (hexadecimal number).\r\n"
> +"  Func - Specifies a function number (hexadecimal number).\r\n"
>  ".SH DESCRIPTION\r\n"
>  " \r\n"
>  "NOTES:\r\n"
> --
> 2.9.0.windows.1



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-01-24 17:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-24  6:43 [PATCH] ShellPkg/pci: Support interpreting specific PCIE ext cap thru "-ec" Ruiyu Ni
2017-01-24 17:38 ` Carsey, Jaben

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox