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
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
// 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
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
#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