/** @file\r
Main file for Mm shell Debug1 function.\r
\r
- Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
*(UINT64 *) Buffer = *(UINT64 *) (UINTN) Address;\r
Address -= 8;\r
} else {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_READ_ERROR), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_READ_ERROR), gShellDebug1HiiHandle, L"mm"); \r
break;\r
}\r
Size--;\r
UINT64 Buffer;\r
UINTN Index;\r
UINTN Size;\r
- CHAR16 *AddressStr;\r
// CHAR16 *ValueStr;\r
BOOLEAN Complete;\r
CHAR16 *InputStr;\r
SHELL_STATUS ShellStatus;\r
CONST CHAR16 *Temp;\r
\r
+ Value = 0;\r
Address = 0;\r
PciEAddress = 0;\r
IoDev = NULL;\r
Width = EfiPciWidthUint8;\r
Size = 1;\r
AccessType = EfiMemory;\r
- AddressStr = NULL;\r
// ValueStr = NULL;\r
Interactive = TRUE;\r
Package = NULL;\r
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
if (EFI_ERROR(Status)) {\r
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, ProblemParam);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, L"mm", ProblemParam); \r
FreePool(ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
} else {\r
if (ShellCommandLineGetCount(Package) < 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} else if (ShellCommandLineGetCount(Package) > 3) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} else if (ShellCommandLineGetFlag(Package, L"-w") && ShellCommandLineGetValue(Package, L"-w") == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle, L"-w");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle, L"mm", L"-w"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} else {\r
||ShellCommandLineGetFlag(Package, L"-pci")\r
||ShellCommandLineGetFlag(Package, L"-pcie")\r
){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
||ShellCommandLineGetFlag(Package, L"-pci")\r
||ShellCommandLineGetFlag(Package, L"-pcie")\r
){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (ShellCommandLineGetFlag(Package, L"-pci")\r
||ShellCommandLineGetFlag(Package, L"-pcie")\r
){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
AccessType = EfiPciConfig;\r
if (ShellCommandLineGetFlag(Package, L"-pcie")\r
){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
}\r
\r
- if (ShellCommandLineGetFlag (Package, L"-n")) {\r
+ //\r
+ // Non interactive for a script file or for the specific parameter\r
+ //\r
+ if (gEfiShellProtocol->BatchIsActive() || ShellCommandLineGetFlag (Package, L"-n")) {\r
Interactive = FALSE;\r
}\r
\r
break;\r
\r
default:\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDebug1HiiHandle, L"-w");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDebug1HiiHandle, L"mm", Temp, L"-w"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
\r
Temp = ShellCommandLineGetRawValue(Package, 1);\r
if (!ShellIsHexOrDecimalNumber(Temp, TRUE, FALSE) || EFI_ERROR(ShellConvertStringToUint64(Temp, (UINT64*)&Address, TRUE, FALSE))) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"mm", Temp); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
\r
Temp = ShellCommandLineGetRawValue(Package, 2);\r
if (Temp != NULL) {\r
+ //\r
+ // Per spec if value is specified, then -n is assumed.\r
+ //\r
+ Interactive = FALSE;\r
+\r
if (!ShellIsHexOrDecimalNumber(Temp, TRUE, FALSE) || EFI_ERROR(ShellConvertStringToUint64(Temp, &Value, TRUE, FALSE))) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"mm", Temp); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
\r
if (ShellStatus != SHELL_SUCCESS) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Temp);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"mm", Temp); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
\r
if ((Address & (Size - 1)) != 0) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_NOT_ALIGNED), gShellDebug1HiiHandle, Address);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_NOT_ALIGNED), gShellDebug1HiiHandle, L"mm", Address); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
&HandleBuffer\r
);\r
if (EFI_ERROR (Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PCIRBIO_NF), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PCIRBIO_NF), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_NOT_FOUND;\r
goto Done;\r
}\r
}\r
}\r
if (IoDev == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_SEGMENT_NOT_FOUND), gShellDebug1HiiHandle, SegmentNumber);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_SEGMENT_NOT_FOUND), gShellDebug1HiiHandle, L"mm", SegmentNumber); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
\r
if (AccessType == EfiIo && Address + Size > 0x10000) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS_RANGE), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS_RANGE), gShellDebug1HiiHandle, L"mm"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
GetPciEAddressFromInputAddress (Address, &PciEAddress);\r
}\r
\r
-// //\r
-// // Set value\r
-// //\r
-// if (ValueStr != NULL) {\r
-// if (AccessType == EFIMemoryMappedIo) {\r
-// IoDev->Mem.Write (IoDev, Width, Address, 1, &Value);\r
-// } else if (AccessType == EfiIo) {\r
-// IoDev->Io.Write (IoDev, Width, Address, 1, &Value);\r
-// } else if (AccessType == EfiPciConfig) {\r
-// IoDev->Pci.Write (IoDev, Width, Address, 1, &Value);\r
-// } else if (AccessType == EfiPciEConfig) {\r
-// IoDev->Pci.Write (IoDev, Width, PciEAddress, 1, &Buffer);\r
-// } else {\r
-// WriteMem (Width, Address, 1, &Value);\r
-// }\r
-//\r
-// ASSERT(ShellStatus == SHELL_SUCCESS);\r
-// goto Done;\r
-// }\r
+ //\r
+ // Set value\r
+ //\r
+ if (ShellCommandLineGetRawValue(Package, 2) != NULL) {\r
+ if (AccessType == EFIMemoryMappedIo) {\r
+ IoDev->Mem.Write (IoDev, Width, Address, 1, &Value);\r
+ } else if (AccessType == EfiIo) {\r
+ IoDev->Io.Write (IoDev, Width, Address, 1, &Value);\r
+ } else if (AccessType == EfiPciConfig) {\r
+ IoDev->Pci.Write (IoDev, Width, Address, 1, &Value);\r
+ } else if (AccessType == EfiPciEConfig) {\r
+ IoDev->Pci.Write (IoDev, Width, PciEAddress, 1, &Value);\r
+ } else {\r
+ WriteMem (Width, Address, 1, &Value);\r
+ }\r
+\r
+ ASSERT(ShellStatus == SHELL_SUCCESS);\r
+ goto Done;\r
+ }\r
\r
\r
//\r
if (!Interactive) {\r
Buffer = 0;\r
if (AccessType == EFIMemoryMappedIo) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_MMIO), gShellDebug1HiiHandle);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_MMIO), gShellDebug1HiiHandle);\r
+ }\r
IoDev->Mem.Read (IoDev, Width, Address, 1, &Buffer);\r
} else if (AccessType == EfiIo) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_IO), gShellDebug1HiiHandle);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_IO), gShellDebug1HiiHandle);\r
+ }\r
IoDev->Io.Read (IoDev, Width, Address, 1, &Buffer);\r
} else if (AccessType == EfiPciConfig) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_PCI), gShellDebug1HiiHandle);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_PCI), gShellDebug1HiiHandle);\r
+ }\r
IoDev->Pci.Read (IoDev, Width, Address, 1, &Buffer);\r
} else if (AccessType == EfiPciEConfig) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_PCIE), gShellDebug1HiiHandle);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_PCIE), gShellDebug1HiiHandle);\r
+ }\r
IoDev->Pci.Read (IoDev, Width, PciEAddress, 1, &Buffer);\r
} else {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_MEM), gShellDebug1HiiHandle);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_MEM), gShellDebug1HiiHandle);\r
+ }\r
ReadMem (Width, Address, 1, &Buffer);\r
}\r
-\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS), gShellDebug1HiiHandle, Address);\r
+ if (!gEfiShellProtocol->BatchIsActive()) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS), gShellDebug1HiiHandle, Address);\r
+ }\r
if (Size == 1) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF2), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF2), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF4), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF4), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 4) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF8), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF8), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 8) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF16), gShellDebug1HiiHandle, Buffer);\r
}\r
Complete = FALSE;\r
do {\r
if (AccessType == EfiIo && Address + Size > 0x10000) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS_RANGE2), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS_RANGE2), gShellDebug1HiiHandle, L"mm"); \r
break;\r
}\r
\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS), gShellDebug1HiiHandle, Address);\r
\r
if (Size == 1) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF2), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF2), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF4), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF4), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 4) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF8), gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF8), gShellDebug1HiiHandle, (UINTN)Buffer);\r
} else if (Size == 8) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_BUF16), gShellDebug1HiiHandle, Buffer);\r
}\r
WriteMem (Width, Address, 1, &Buffer);\r
}\r
} else {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ERROR), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MM_ERROR), gShellDebug1HiiHandle, L"mm"); \r
continue;\r
// PrintToken (STRING_TOKEN (STR_IOMOD_ERROR), HiiHandle);\r
}\r