CHAR16 *ProblemParam;\r
SHELL_STATUS ShellStatus;\r
CONST CHAR16 *Temp;\r
+ UINT64 RetVal;\r
\r
ShellStatus = SHELL_SUCCESS;\r
Status = EFI_SUCCESS;\r
\r
Temp = ShellCommandLineGetValue(Package, L"-s");\r
if (Temp != NULL) {\r
- Segment = (UINT16) ShellStrToUintn (Temp);\r
+ //\r
+ // Input converted to hexadecimal number.\r
+ //\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Temp, &RetVal, TRUE, TRUE))) {\r
+ Segment = (UINT16) RetVal;\r
+ } else {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV_HEX), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ goto Done;\r
+ }\r
}\r
\r
//\r
//\r
Temp = ShellCommandLineGetRawValue(Package, 1);\r
if (Temp != NULL) {\r
- Bus = (UINT16)ShellStrToUintn(Temp);\r
+ //\r
+ // Input converted to hexadecimal number.\r
+ //\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Temp, &RetVal, TRUE, TRUE))) {\r
+ Bus = (UINT16) RetVal;\r
+ } else {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV_HEX), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ goto Done;\r
+ }\r
+\r
if (Bus > MAX_BUS_NUMBER) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
Temp = ShellCommandLineGetRawValue(Package, 2);\r
if (Temp != NULL) {\r
- Device = (UINT16) ShellStrToUintn(Temp);\r
+ //\r
+ // Input converted to hexadecimal number.\r
+ //\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Temp, &RetVal, TRUE, TRUE))) {\r
+ Device = (UINT16) RetVal;\r
+ } else {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV_HEX), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ goto Done;\r
+ }\r
+\r
if (Device > MAX_DEVICE_NUMBER){\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
\r
Temp = ShellCommandLineGetRawValue(Package, 3);\r
if (Temp != NULL) {\r
- Func = (UINT16) ShellStrToUintn(Temp);\r
+ //\r
+ // Input converted to hexadecimal number.\r
+ //\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Temp, &RetVal, TRUE, TRUE))) {\r
+ Func = (UINT16) RetVal;\r
+ } else {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV_HEX), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ goto Done;\r
+ }\r
+\r
if (Func > MAX_FUNCTION_NUMBER){\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
)\r
{\r
UINT32 PcieLinkCap;\r
- CHAR16 *SupLinkSpeeds;\r
+ CHAR16 *MaxLinkSpeed;\r
CHAR16 *AspmValue;\r
\r
PcieLinkCap = PciExpressCap->LinkCap;\r
- switch (PCIE_CAP_SUP_LINK_SPEEDS (PcieLinkCap)) {\r
+ switch (PCIE_CAP_MAX_LINK_SPEED (PcieLinkCap)) {\r
case 1:\r
- SupLinkSpeeds = L"2.5 GT/s";\r
+ MaxLinkSpeed = L"2.5 GT/s";\r
break;\r
case 2:\r
- SupLinkSpeeds = L"5.0 GT/s and 2.5 GT/s";\r
+ MaxLinkSpeed = L"5.0 GT/s";\r
+ break;\r
+ case 3:\r
+ MaxLinkSpeed = L"8.0 GT/s";\r
break;\r
default:\r
- SupLinkSpeeds = L"Unknown";\r
+ MaxLinkSpeed = L"Unknown";\r
break;\r
}\r
ShellPrintEx (-1, -1,\r
- L" Supported Link Speeds(3:0): %E%s supported%N\r\n",\r
- SupLinkSpeeds\r
+ L" Maximum Link Speed(3:0): %E%s%N\r\n",\r
+ MaxLinkSpeed\r
);\r
ShellPrintEx (-1, -1,\r
L" Maximum Link Width(9:4): %Ex%d%N\r\n",\r
PCIE_CAP_MAX_LINK_WIDTH (PcieLinkCap)\r
);\r
switch (PCIE_CAP_ASPM_SUPPORT (PcieLinkCap)) {\r
+ case 0:\r
+ AspmValue = L"Not";\r
+ break;\r
case 1:\r
- AspmValue = L"L0s Entry";\r
+ AspmValue = L"L0s";\r
+ break;\r
+ case 2:\r
+ AspmValue = L"L1";\r
break;\r
case 3:\r
AspmValue = L"L0s and L1";\r
)\r
{\r
UINT16 PcieLinkStatus;\r
- CHAR16 *SupLinkSpeeds;\r
+ CHAR16 *CurLinkSpeed;\r
\r
PcieLinkStatus = PciExpressCap->LinkStatus;\r
switch (PCIE_CAP_CUR_LINK_SPEED (PcieLinkStatus)) {\r
case 1:\r
- SupLinkSpeeds = L"2.5 GT/s";\r
+ CurLinkSpeed = L"2.5 GT/s";\r
break;\r
case 2:\r
- SupLinkSpeeds = L"5.0 GT/s";\r
+ CurLinkSpeed = L"5.0 GT/s";\r
+ break;\r
+ case 3:\r
+ CurLinkSpeed = L"8.0 GT/s";\r
break;\r
default:\r
- SupLinkSpeeds = L"Reserved";\r
+ CurLinkSpeed = L"Reserved";\r
break;\r
}\r
ShellPrintEx (-1, -1,\r
L" Current Link Speed(3:0): %E%s%N\r\n",\r
- SupLinkSpeeds\r
+ CurLinkSpeed\r
);\r
ShellPrintEx (-1, -1,\r
L" Negotiated Link Width(9:4): %Ex%d%N\r\n",\r