From 10c5d87ef75caee2774c5022373bb7013344dd09 Mon Sep 17 00:00:00 2001 From: xli24 Date: Fri, 25 Dec 2009 06:33:46 +0000 Subject: Remove status code modules' dependency on IntelFrameworkModulePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9603 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h | 83 ++++++++++++++++++++++ .../Include/Guid/StatusCodeDataTypeDebug.h | 49 +++++++++++++ MdeModulePkg/MdeModulePkg.dec | 23 ++++++ 3 files changed, 155 insertions(+) create mode 100644 MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h create mode 100644 MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h (limited to 'MdeModulePkg') diff --git a/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h b/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h new file mode 100644 index 0000000..7599926 --- /dev/null +++ b/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h @@ -0,0 +1,83 @@ +/** @file + GUID used to identify status code records HOB that originate from the PEI status code + + Copyright (c) 2006 - 2009, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __MEMORY_STATUS_CODE_RECORD_H__ +#define __MEMORY_STATUS_CODE_RECORD_H__ + +/// +/// Global ID used to identify GUIDed HOBs that start with a structure of type +/// MEMORY_STATUSCODE_PACKET_HEADER followed by an array of structures of type +/// MEMORY_STATUSCODE_RECORD. These GUIDed HOBs record all the information +/// passed into the ReportStatusCode() service of PEI Services Table. +/// +///
+///  Memory status code records packet structure :
+///  +---------------+----------+----------+-----+----------+-----+----------+
+///  | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m |
+///  +---------------+----------+----------+-----+----------+-----+----------+
+///                  ^                                 ^                     ^
+///                  +--------- RecordIndex -----------+                     |
+///                  +---------------- MaxRecordsNumber----------------------+
+///  
+/// +#define MEMORY_STATUS_CODE_RECORD_GUID \ + { \ + 0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \ + } + +/// +/// A header structure that is followed by an array of records that contain the +/// parameters passed into the ReportStatusCode() service in the PEI Services Table. +/// +typedef struct { + /// + /// Index of the packet + /// + UINT16 PacketIndex; + /// + /// The number of active records in the packet + /// + UINT16 RecordIndex; + /// + /// The maximum number of records that the packet can store + /// + UINT32 MaxRecordsNumber; +} MEMORY_STATUSCODE_PACKET_HEADER; + +/// +/// A structure that contains the parameters passed into the ReportStatusCode() +/// service in the PEI Services Table. +/// +typedef struct { + /// + /// Status Code type to be reported. + /// + EFI_STATUS_CODE_TYPE CodeType; + + /// + /// An operation, plus value information about the class and subclass, used to + /// classify the hardware and software entity. + /// + EFI_STATUS_CODE_VALUE Value; + + /// + /// The enumeration of a hardware or software entity within + /// the system. Valid instance numbers start with 1 + /// + UINT32 Instance; +} MEMORY_STATUSCODE_RECORD; + +extern EFI_GUID gMemoryStatusCodeRecordGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h b/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h new file mode 100644 index 0000000..52e7c95 --- /dev/null +++ b/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h @@ -0,0 +1,49 @@ +/** @file + This file defines the GUID and data structure used to pass DEBUG() macro + information to the Status Code Protocol and Status Code PPI. + + Copyright (c) 2007 - 2009, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _STATUS_CODE_DATA_TYPE_DEBUG_H_ +#define _STATUS_CODE_DATA_TYPE_DEBUG_H_ + +/// +/// Global ID used to identify a structure of type EFI_DEBUG_INFO +/// +#define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \ + { \ + 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 } \ + } + +/// +/// The maximum size of an EFI_DEBUG_INFO structure +/// +#define EFI_STATUS_CODE_DATA_MAX_SIZE 200 + +/// +/// This structure contains the ErrorLevel passed into the DEBUG() macro, followed +/// by a 96-byte buffer that contains the variable argument list passed to the +// DEBUG() macro that has been converted to a BASE_LIST. The 96-byte buffer is +/// followed by a Null-terminated ASCII string that is the Format string passed +/// to the DEBUG() macro. The maximum size of this structure is defined by +/// EFI_STATUS_CODE_DATA_MAX_SIZE. +/// +typedef struct { + /// + /// The debug error level passed into a DEBUG() macro. + /// + UINT32 ErrorLevel; +} EFI_DEBUG_INFO; + +extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid; + +#endif // _STATUS_CODE_DATA_TYPE_DEBUG_H_ diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index d8a2d4c..e7aa773 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -131,6 +131,14 @@ ## Include/Guid/StatusCodeCallbackGuid.h gStatusCodeCallbackGuid = {0xe701458c, 0x4900, 0x4ca5, {0xb7, 0x72, 0x3d, 0x37, 0x94, 0x9f, 0x79, 0x27}} + ## GUID identifies status code records HOB that originate from the PEI status code + # Include/Guid/MemoryStatusCodeRecord.h + gMemoryStatusCodeRecordGuid = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }} + + ## GUID used to pass DEBUG() macro information through the Status Code Protocol and Status Code PPI + # Include/Guid/StatusCodeDataTypeDebug.h + gEfiStatusCodeDataTypeDebugGuid = { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 }} + [Protocols.common] ## Load File protocol provides capability to load and unload EFI image into memory and execute it. # Include/Protocol/LoadPe32Image.h @@ -247,6 +255,15 @@ ## This PCD specifies whether the PCI bus driver probes non-standard, # such as 2K/1K/512, granularity for PCI to PCI bridge I/O window. gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOOLEAN|0x10000047 + ## This PCD specifies whether StatusCode is reported via Serial port. + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|0x00010022 + + ## This PCD specifies whether StatusCode is stored in memory. + # The memory is boot time memory in PEI Phase and is runtime memory in DXE Phase. + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023 + + ## This PCD specifies whether Peiphase StatusCode is replayed in DxePhase. + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn|FALSE|BOOLEAN|0x0001002d [PcdsFeatureFlag.IA32] ## @@ -379,3 +396,9 @@ ## Null-terminated Unicode string that contains the date the formware was released gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString|L""|VOID*|0x00010053 + ## PcdStatusCodeMemorySize is used when PcdStatusCodeUseMemory is set to true + # (PcdStatusCodeMemorySize * KBytes) is the total taken memory size. + # The default value in PeiPhase is 1 KBytes. + # The default value in DxePhase is 128 KBytes. + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010054 + -- cgit v1.1