\r
Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
\r
Module Name: HwDebug.c\r
\r
- Commands useful for debugging hardware. \r
+ Commands useful for debugging hardware.\r
\r
**/\r
\r
/**\r
Dump memory\r
\r
- Argv[0] - "md"[.#] # is optiona width 1, 2, 4, or 8. Default 1\r
+ Argv[0] - "md"[.#] # is optional width 1, 2, 4, or 8. Default 1\r
Argv[1] - Hex Address to dump\r
Argv[2] - Number of hex bytes to dump (0x20 is default)\r
\r
md 0x123445678 ; Dump 0x20 1 byte quantities starting at 0x123445678\r
\r
@param Argc Number of command arguments in Argv\r
- @param Argv Array of strings that represent the parsed command line. \r
- Argv[0] is the comamnd name\r
+ @param Argv Array of strings that represent the parsed command line.\r
+ Argv[0] is the command name\r
\r
@return EFI_SUCCESS\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
EblMdCmd (\r
IN UINTN Argc,\r
IN CHAR8 **Argv\r
OutputData (Address, Length, Width, (UINTN)Address);\r
\r
Address += Length;\r
- \r
+\r
return EFI_SUCCESS;\r
}\r
\r
mf 0x123445678 ; Start at 0x123445678 and write 00 (4 byte) to the next 1 byte\r
\r
@param Argc Number of command arguments in Argv\r
- @param Argv Array of strings that represent the parsed command line. \r
+ @param Argv Array of strings that represent the parsed command line.\r
Argv[0] is the command name\r
\r
@return EFI_SUCCESS\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
EblMfillCmd (\r
IN UINTN Argc,\r
IN CHAR8 **Argv\r
MmioWrite8 (Address, (UINT8)Data);\r
}\r
}\r
- \r
+\r
return EFI_SUCCESS;\r
}\r
\r
Argv[3] - func\r
\r
@param Argc Number of command arguments in Argv\r
- @param Argv Array of strings that represent the parsed command line. \r
+ @param Argv Array of strings that represent the parsed command line.\r
Argv[0] is the command name\r
\r
@return EFI_SUCCESS\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
EblPciCmd (\r
IN UINTN Argc,\r
IN CHAR8 **Argv\r
CHAR8 *Str;\r
UINTN ThisBus;\r
\r
- \r
+\r
BusArg = (Argc > 1) ? AsciiStrDecimalToUintn (Argv[1]) : 0;\r
DevArg = (Argc > 2) ? AsciiStrDecimalToUintn (Argv[2]) : 0;\r
FuncArg = (Argc > 3) ? AsciiStrDecimalToUintn (Argv[3]) : 0;\r
\r
Header = &PciHeader;\r
- \r
+\r
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiPciIoProtocolGuid, NULL, &HandleCount, &HandleBuffer);\r
if (EFI_ERROR (Status)) {\r
AsciiPrint ("No PCI devices found in the system\n");\r
Status = Pci->Pci.Read (Pci, EfiPciIoWidthUint32, 0, sizeof (PciHeader)/sizeof (UINT32), &PciHeader);\r
if (!EFI_ERROR (Status)) {\r
Hdr = &PciHeader.Bridge.Hdr;\r
- \r
+\r
if (Hdr->ClassCode[2] < sizeof (gPciDevClass)/sizeof (VOID *)) {\r
Str = gPciDevClass[Hdr->ClassCode[2]];\r
if (Hdr->ClassCode[2] == PCI_CLASS_SERIAL) {\r
AsciiPrint (" 0x%04x 0x%04x %a 0x%02x", Hdr->VendorId, Hdr->DeviceId, Str, Hdr->ClassCode[1]);\r
}\r
if (Seg != 0) {\r
- // Only print Segment if it is non zero. If you only have one PCI segment it is \r
+ // Only print Segment if it is non zero. If you only have one PCI segment it is\r
// redundent to print it out\r
AsciiPrint (" Seg:%d", Seg);\r
}\r
if (!EFI_ERROR (Status)) {\r
Pci->GetLocation (Pci, &Seg, &Bus, &Dev, &Func);\r
if ((Bus == BusArg) && (Dev == DevArg) && (Func == FuncArg)) {\r
- // Only print Segment if it is non zero. If you only have one PCI segment it is \r
+ // Only print Segment if it is non zero. If you only have one PCI segment it is\r
// redundant to print it out\r
if (Seg != 0) {\r
AsciiPrint ("Seg:%d ", Seg);\r
}\r
AsciiPrint ("Bus:%d Dev:%d Func:%d ", Bus, Dev, Func);\r
- \r
+\r
Status = Pci->Pci.Read (Pci, EfiPciIoWidthUint32, 0, sizeof (PciHeader)/sizeof (UINT32), Header);\r
if (!EFI_ERROR (Status)) {\r
Hdr = &PciHeader.Bridge.Hdr;\r
if (IS_PCI_BRIDGE (&PciHeader.Bridge)) {\r
Bridge = &PciHeader.Bridge.Bridge;\r
AsciiPrint (\r
- "PCI Bridge. Bus Primary %d Secondary %d Subordinate %d\n", \r
+ "PCI Bridge. Bus Primary %d Secondary %d Subordinate %d\n",\r
Bridge->PrimaryBus, Bridge->SecondaryBus, Bridge->SubordinateBus\r
);\r
AsciiPrint (" Bar 0: 0x%08x Bar 1: 0x%08x\n", Bridge->Bar[0], Bridge->Bar[1]);\r
}\r
}\r
}\r
- \r
+\r
AsciiPrint ("\n");\r
break;\r
}\r
}\r
}\r
}\r
- \r
+\r
FreePool (HandleBuffer);\r
return EFI_SUCCESS;\r
}\r
\r
\r
GLOBAL_REMOVE_IF_UNREFERENCED const EBL_COMMAND_TABLE mCmdPciDebugTemplate[] = {\r
- "pci",\r
- " [bus] [dev] [func]; Dump PCI",\r
- NULL,\r
- EblPciCmd\r
+ {\r
+ "pci",\r
+ " [bus] [dev] [func]; Dump PCI",\r
+ NULL,\r
+ EblPciCmd\r
+ }\r
};\r
\r
\r