--- /dev/null
+/** @file\r
+ GUID used to identify status code records HOB that originate from the PEI status code \r
+ \r
+ Copyright (c) 2006 - 2009, Intel Corporation \r
+ All rights reserved. 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
+ http://opensource.org/licenses/bsd-license.php \r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+**/\r
+\r
+#ifndef __MEMORY_STATUS_CODE_RECORD_H__\r
+#define __MEMORY_STATUS_CODE_RECORD_H__\r
+\r
+///\r
+/// Global ID used to identify GUIDed HOBs that start with a structure of type \r
+/// MEMORY_STATUSCODE_PACKET_HEADER followed by an array of structures of type \r
+/// MEMORY_STATUSCODE_RECORD. These GUIDed HOBs record all the information \r
+/// passed into the ReportStatusCode() service of PEI Services Table.\r
+///\r
+/// <pre>\r
+/// Memory status code records packet structure :\r
+/// +---------------+----------+----------+-----+----------+-----+----------+\r
+/// | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m |\r
+/// +---------------+----------+----------+-----+----------+-----+----------+\r
+/// ^ ^ ^\r
+/// +--------- RecordIndex -----------+ |\r
+/// +---------------- MaxRecordsNumber----------------------+\r
+/// </pre>\r
+///\r
+#define MEMORY_STATUS_CODE_RECORD_GUID \\r
+ { \\r
+ 0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \\r
+ }\r
+\r
+///\r
+/// A header structure that is followed by an array of records that contain the \r
+/// parameters passed into the ReportStatusCode() service in the PEI Services Table.\r
+///\r
+typedef struct {\r
+ ///\r
+ /// Index of the packet\r
+ ///\r
+ UINT16 PacketIndex;\r
+ ///\r
+ /// The number of active records in the packet\r
+ ///\r
+ UINT16 RecordIndex;\r
+ ///\r
+ /// The maximum number of records that the packet can store\r
+ ///\r
+ UINT32 MaxRecordsNumber;\r
+} MEMORY_STATUSCODE_PACKET_HEADER;\r
+\r
+///\r
+/// A structure that contains the parameters passed into the ReportStatusCode() \r
+/// service in the PEI Services Table.\r
+///\r
+typedef struct {\r
+ ///\r
+ /// Status Code type to be reported.\r
+ ///\r
+ EFI_STATUS_CODE_TYPE CodeType;\r
+\r
+ ///\r
+ /// An operation, plus value information about the class and subclass, used to\r
+ /// classify the hardware and software entity.\r
+ ///\r
+ EFI_STATUS_CODE_VALUE Value;\r
+\r
+ ///\r
+ /// The enumeration of a hardware or software entity within\r
+ /// the system. Valid instance numbers start with 1\r
+ ///\r
+ UINT32 Instance;\r
+} MEMORY_STATUSCODE_RECORD;\r
+\r
+extern EFI_GUID gMemoryStatusCodeRecordGuid;\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ This file defines the GUID and data structure used to pass DEBUG() macro \r
+ information to the Status Code Protocol and Status Code PPI.\r
+\r
+ Copyright (c) 2007 - 2009, Intel Corporation\r
+ All rights reserved. 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
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _STATUS_CODE_DATA_TYPE_DEBUG_H_\r
+#define _STATUS_CODE_DATA_TYPE_DEBUG_H_\r
+\r
+///\r
+/// Global ID used to identify a structure of type EFI_DEBUG_INFO\r
+///\r
+#define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \\r
+ { \\r
+ 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 } \\r
+ }\r
+\r
+///\r
+/// The maximum size of an EFI_DEBUG_INFO structure\r
+///\r
+#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
+\r
+///\r
+/// This structure contains the ErrorLevel passed into the DEBUG() macro, followed \r
+/// by a 96-byte buffer that contains the variable argument list passed to the \r
+// DEBUG() macro that has been converted to a BASE_LIST. The 96-byte buffer is \r
+/// followed by a Null-terminated ASCII string that is the Format string passed \r
+/// to the DEBUG() macro. The maximum size of this structure is defined by \r
+/// EFI_STATUS_CODE_DATA_MAX_SIZE.\r
+///\r
+typedef struct {\r
+ ///\r
+ /// The debug error level passed into a DEBUG() macro.\r
+ ///\r
+ UINT32 ErrorLevel;\r
+} EFI_DEBUG_INFO;\r
+\r
+extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid;\r
+\r
+#endif // _STATUS_CODE_DATA_TYPE_DEBUG_H_\r
## Include/Guid/StatusCodeCallbackGuid.h\r
gStatusCodeCallbackGuid = {0xe701458c, 0x4900, 0x4ca5, {0xb7, 0x72, 0x3d, 0x37, 0x94, 0x9f, 0x79, 0x27}}\r
\r
+ ## GUID identifies status code records HOB that originate from the PEI status code\r
+ # Include/Guid/MemoryStatusCodeRecord.h\r
+ gMemoryStatusCodeRecordGuid = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }}\r
+\r
+ ## GUID used to pass DEBUG() macro information through the Status Code Protocol and Status Code PPI\r
+ # Include/Guid/StatusCodeDataTypeDebug.h\r
+ gEfiStatusCodeDataTypeDebugGuid = { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 }}\r
+\r
[Protocols.common]\r
## Load File protocol provides capability to load and unload EFI image into memory and execute it.\r
# Include/Protocol/LoadPe32Image.h\r
## This PCD specifies whether the PCI bus driver probes non-standard, \r
# such as 2K/1K/512, granularity for PCI to PCI bridge I/O window.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOOLEAN|0x10000047\r
+ ## This PCD specifies whether StatusCode is reported via Serial port.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|0x00010022\r
+\r
+ ## This PCD specifies whether StatusCode is stored in memory.\r
+ # The memory is boot time memory in PEI Phase and is runtime memory in DXE Phase.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023\r
+\r
+ ## This PCD specifies whether Peiphase StatusCode is replayed in DxePhase.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn|FALSE|BOOLEAN|0x0001002d\r
\r
[PcdsFeatureFlag.IA32]\r
##\r
## Null-terminated Unicode string that contains the date the formware was released\r
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString|L""|VOID*|0x00010053\r
\r
+ ## PcdStatusCodeMemorySize is used when PcdStatusCodeUseMemory is set to true\r
+ # (PcdStatusCodeMemorySize * KBytes) is the total taken memory size.\r
+ # The default value in PeiPhase is 1 KBytes.\r
+ # The default value in DxePhase is 128 KBytes.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010054\r
+\r