1) Check in Pei/Dxe status code;
2) OemHookStatusCodeLib and SerialPortLib class and null instance; 3) Remove all referenced code from EdkModulePkg,EdkNt32Pkg. 4) Add Nt32OemHookStatusCodeLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1069 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
ba53dd4a1a
commit
9fbf943fc1
@ -1,150 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006, 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.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MonoStatusCode.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
PEIM to provide the status code functionality, to aid in system debug.
|
|
||||||
It includes output to 0x80 port and/or to serial port.
|
|
||||||
This PEIM is monolithic. Different platform should provide different library.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include "MonoStatusCode.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Module globals
|
|
||||||
//
|
|
||||||
//
|
|
||||||
EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi = { PlatformReportStatusCode };
|
|
||||||
|
|
||||||
EFI_PEI_PPI_DESCRIPTOR mPpiListStatusCode = {
|
|
||||||
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
|
||||||
&gEfiPeiStatusCodePpiGuid,
|
|
||||||
&mStatusCodePpi
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Function implemenations
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
TranslateDxeStatusCodeToPeiStatusCode (
|
|
||||||
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
||||||
IN EFI_STATUS_CODE_VALUE Value,
|
|
||||||
IN UINT32 Instance,
|
|
||||||
IN EFI_GUID * CallerId,
|
|
||||||
IN EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Translate from a DXE status code interface into a PEI-callable
|
|
||||||
interface, making the PEI the least common denominator..
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Same as DXE ReportStatusCode RT service
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
return PlatformReportStatusCode (NULL, CodeType, Value, Instance, CallerId, Data);
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
InitializeDxeReportStatusCode (
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Build a hob describing the status code listener that has been installed.
|
|
||||||
This will be used by DXE code until a runtime status code listener is
|
|
||||||
installed.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
PeiServices - General purpose services available to every PEIM.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status - EFI_SUCCESS if the interface could be successfully
|
|
||||||
installed
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
VOID *Instance;
|
|
||||||
VOID *HobData;
|
|
||||||
|
|
||||||
Instance = (VOID *) (UINTN) TranslateDxeStatusCodeToPeiStatusCode;
|
|
||||||
|
|
||||||
HobData = BuildGuidDataHob (
|
|
||||||
&gEfiStatusCodeRuntimeProtocolGuid,
|
|
||||||
&Instance,
|
|
||||||
sizeof (VOID *)
|
|
||||||
);
|
|
||||||
|
|
||||||
ASSERT (HobData != NULL);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
InitializeMonoStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Initialize the platform status codes and publish the platform status code
|
|
||||||
PPI.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FfsHeader - FV this PEIM was loaded from.
|
|
||||||
PeiServices - General purpose services available to every PEIM.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status - EFI_SUCCESS
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Initialize status code listeners.
|
|
||||||
//
|
|
||||||
PlatformInitializeStatusCode (FfsHeader, PeiServices);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Publish the status code capability to other modules
|
|
||||||
//
|
|
||||||
Status = (*PeiServices)->InstallPpi (PeiServices, &mPpiListStatusCode);
|
|
||||||
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
DEBUG ((EFI_D_ERROR, "\nMono Status Code PEIM Loaded\n"));
|
|
||||||
|
|
||||||
return ;
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006, 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.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MonoStatusCode.dxs
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Dependency expression file for monolithic Status Code PEIM.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
#include <AutoGen.h>
|
|
||||||
#include <PeimDepex.h>
|
|
||||||
|
|
||||||
DEPENDENCY_START
|
|
||||||
TRUE
|
|
||||||
DEPENDENCY_END
|
|
||||||
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006, 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.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MonoStatusCode.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Monolithic single PEIM to provide the status code functionality.
|
|
||||||
The PEIM is a blend of libraries that correspond to the different status code
|
|
||||||
listeners that a platform installs.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef _MONO_STATUS_CODE_H_
|
|
||||||
#define _MONO_STATUS_CODE_H_
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform specific function Declarations. These must be implemented in a
|
|
||||||
// subdirectory named PlatformName in a file named PlatformStatusCode.c.
|
|
||||||
// See D845GRG\PlatformStatusCode.c for an example of a simple status code
|
|
||||||
// implementation.
|
|
||||||
// See Nt32\PlatformStatusCode.c for an example of a status code implementation
|
|
||||||
// that relocates itself into memory.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// This is the driver entry point and must be defined.
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
InstallMonoStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// This is the platform function to initialize the listeners desired by the
|
|
||||||
// platform.
|
|
||||||
//
|
|
||||||
VOID
|
|
||||||
PlatformInitializeStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// This is the platform function that calls all of the listeners desired by the
|
|
||||||
// platform.
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
PlatformReportStatusCode (
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices,
|
|
||||||
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
||||||
IN EFI_STATUS_CODE_VALUE Value,
|
|
||||||
IN UINT32 Instance,
|
|
||||||
IN EFI_GUID * CallerId,
|
|
||||||
IN EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform independent function Declarations
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Initialize the status code listeners and publish the status code PPI.
|
|
||||||
//
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
InitializeMonoStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Convert a DXE status code call into a PEI status code call.
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
TranslateDxeStatusCodeToPeiStatusCode (
|
|
||||||
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
||||||
IN EFI_STATUS_CODE_VALUE Value,
|
|
||||||
IN UINT32 Instance,
|
|
||||||
IN EFI_GUID * CallerId,
|
|
||||||
IN EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Publish a HOB that contains the listener to be used by DXE.
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
InitializeDxeReportStatusCode (
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--Copyright (c) 2006, 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.-->
|
|
||||||
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
|
|
||||||
<MsaHeader>
|
|
||||||
<ModuleName>MonoStatusCode</ModuleName>
|
|
||||||
<ModuleType>PEIM</ModuleType>
|
|
||||||
<GuidValue>1501614E-0E6C-4ef4-8B8F-C276CDFB646F</GuidValue>
|
|
||||||
<Version>1.0</Version>
|
|
||||||
<Abstract>Mono status code driver</Abstract>
|
|
||||||
<Description>
|
|
||||||
PEIM to provide the status code functionality, to aid in system debug.
|
|
||||||
It includes output to 0x80 port and/or to serial port.
|
|
||||||
This PEIM is monolithic. Different platform should provide different library.
|
|
||||||
</Description>
|
|
||||||
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
|
|
||||||
<License>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.</License>
|
|
||||||
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
|
||||||
</MsaHeader>
|
|
||||||
<ModuleDefinitions>
|
|
||||||
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
|
|
||||||
<BinaryModule>false</BinaryModule>
|
|
||||||
<OutputFileBasename>MonoStatusCode</OutputFileBasename>
|
|
||||||
</ModuleDefinitions>
|
|
||||||
<LibraryClassDefinitions>
|
|
||||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
|
||||||
<Keyword>DebugLib</Keyword>
|
|
||||||
</LibraryClass>
|
|
||||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
|
||||||
<Keyword>PeimEntryPoint</Keyword>
|
|
||||||
</LibraryClass>
|
|
||||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
|
||||||
<Keyword>EdkMemoryStatusCodeLib</Keyword>
|
|
||||||
</LibraryClass>
|
|
||||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
|
||||||
<Keyword>HobLib</Keyword>
|
|
||||||
</LibraryClass>
|
|
||||||
</LibraryClassDefinitions>
|
|
||||||
<SourceFiles>
|
|
||||||
<Filename>MonoStatusCode.dxs</Filename>
|
|
||||||
<Filename>MonoStatusCode.h</Filename>
|
|
||||||
<Filename>MonoStatusCode.c</Filename>
|
|
||||||
<Filename>PlatformStatusCode.c</Filename>
|
|
||||||
</SourceFiles>
|
|
||||||
<PackageDependencies>
|
|
||||||
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
|
||||||
<Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
|
|
||||||
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
|
||||||
</PackageDependencies>
|
|
||||||
<Protocols>
|
|
||||||
<Protocol Usage="SOMETIMES_CONSUMED">
|
|
||||||
<ProtocolCName>gEfiStatusCodeRuntimeProtocolGuid</ProtocolCName>
|
|
||||||
</Protocol>
|
|
||||||
</Protocols>
|
|
||||||
<PPIs>
|
|
||||||
<Ppi Usage="ALWAYS_CONSUMED">
|
|
||||||
<PpiCName>gEfiPeiStatusCodePpiGuid</PpiCName>
|
|
||||||
</Ppi>
|
|
||||||
<Ppi Usage="SOMETIMES_CONSUMED">
|
|
||||||
<PpiCName>gEfiPeiFvFileLoaderPpiGuid</PpiCName>
|
|
||||||
</Ppi>
|
|
||||||
</PPIs>
|
|
||||||
<Externs>
|
|
||||||
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
|
||||||
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
|
||||||
<Extern>
|
|
||||||
<ModuleEntryPoint>InstallMonoStatusCode</ModuleEntryPoint>
|
|
||||||
</Extern>
|
|
||||||
</Externs>
|
|
||||||
</ModuleSurfaceArea>
|
|
@ -1,164 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006, 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.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
PlatformStatusCode.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Contains NT32 specific implementations required to use status codes.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include "MonoStatusCode.h"
|
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN gRunningFromMemory = FALSE;
|
|
||||||
//
|
|
||||||
// Platform definitions
|
|
||||||
//
|
|
||||||
EFI_PEI_REPORT_STATUS_CODE mSecReportStatusCode = NULL;
|
|
||||||
|
|
||||||
extern EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Function implementations
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
PlatformReportStatusCode (
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices,
|
|
||||||
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
||||||
IN EFI_STATUS_CODE_VALUE Value,
|
|
||||||
IN UINT32 Instance,
|
|
||||||
IN EFI_GUID * CallerId,
|
|
||||||
IN EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Call all status code listeners in the MonoStatusCode.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Same as ReportStatusCode service
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS Always returns success.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
if (mSecReportStatusCode != NULL) {
|
|
||||||
mSecReportStatusCode (PeiServices, CodeType, Value, Instance, CallerId, Data);
|
|
||||||
}
|
|
||||||
MemoryReportStatusCode (CodeType, Value, Instance, CallerId, Data);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
PlatformInitializeStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Initialize the status code listeners. This consists of locating the
|
|
||||||
listener produced by SecMain.exe.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FfsHeader - FV this PEIM was loaded from.
|
|
||||||
PeiServices - General purpose services available to every PEIM.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_PEI_PROGRESS_CODE_PPI *ReportStatusCodePpi;
|
|
||||||
EFI_PEI_PPI_DESCRIPTOR *ReportStatusCodeDescriptor;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Cache the existing status code listener installed by the SEC core.
|
|
||||||
// We should actually do a heap allocate, install a PPI, etc, but since we
|
|
||||||
// know that we are running from a DLL, we can use global variables, and
|
|
||||||
// directly update the status code PPI descriptor
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Locate SEC status code PPI
|
|
||||||
//
|
|
||||||
Status = (*PeiServices)->LocatePpi (
|
|
||||||
PeiServices,
|
|
||||||
&gEfiPeiStatusCodePpiGuid,
|
|
||||||
0,
|
|
||||||
&ReportStatusCodeDescriptor,
|
|
||||||
&ReportStatusCodePpi
|
|
||||||
);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
mSecReportStatusCode = ReportStatusCodePpi->ReportStatusCode;
|
|
||||||
ReportStatusCodeDescriptor->Ppi = &mStatusCodePpi;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Always initialize memory status code listener.
|
|
||||||
//
|
|
||||||
MemoryStatusCodeInitialize (FfsHeader, PeiServices);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
InstallMonoStatusCode (
|
|
||||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Install the PEIM. Publish the DXE callback as well.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FfsHeader - FV this PEIM was loaded from.
|
|
||||||
PeiServices - General purpose services available to every PEIM.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS The function always returns success.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
if (!gRunningFromMemory) {
|
|
||||||
//
|
|
||||||
// First pass, running from flash, initialize everything
|
|
||||||
//
|
|
||||||
InitializeMonoStatusCode (FfsHeader, PeiServices);
|
|
||||||
} else {
|
|
||||||
//
|
|
||||||
// Second pass, running from memory, initialize memory listener and
|
|
||||||
// publish the DXE listener in a HOB.
|
|
||||||
//
|
|
||||||
MemoryStatusCodeInitialize (FfsHeader, PeiServices);
|
|
||||||
InitializeDxeReportStatusCode (PeiServices);
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user