MdeModule cleanup for PI:
1) PeiMain: - Use PCD for bundle of status code which definitions are put into MdePkg.dec file. 2) DxeMain: - Use PCD for bundle of status code which definitions are put into MdePkg.dec file. - Do not produce SectionExtraction protocol which is belong to IntelFramework specification. - Update many macro for PI specifications. 3) DxeIpl - Use PCD for bundle of status code which definitions are put into MdePkg.dec file. 4) Add SectionExtractionDxe module (IntelFrameworkModulePkg) - This module will produce EFI_SECTION_EXTRACTION_PROTOCOL defined in framework specification. If a old platform want to use this protocol, then this platform need dispatch this DXE driver. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4376 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
256a0cc3c2
commit
797a9d6791
@ -199,7 +199,7 @@
|
|||||||
IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
IntelFrameworkModulePkg/Library/BaseReportStatusCodeLib/BaseReportStatusCodeLib.inf
|
IntelFrameworkModulePkg/Library/BaseReportStatusCodeLib/BaseReportStatusCodeLib.inf
|
||||||
IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
|
IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.inf
|
||||||
|
|
||||||
[Components.IA32]
|
[Components.IA32]
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf
|
IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,64 @@
|
|||||||
|
/**@file
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
SectionExtraction.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Section Extraction Protocol implementation.
|
||||||
|
|
||||||
|
Stream database is implemented as a linked list of section streams,
|
||||||
|
where each stream contains a linked list of children, which may be leaves or
|
||||||
|
encapsulations.
|
||||||
|
|
||||||
|
Children that are encapsulations generate new stream entries
|
||||||
|
when they are created. Streams can also be created by calls to
|
||||||
|
SEP->OpenSectionStream().
|
||||||
|
|
||||||
|
The database is only created far enough to return the requested data from
|
||||||
|
any given stream, or to determine that the requested data is not found.
|
||||||
|
|
||||||
|
If a GUIDed encapsulation is encountered, there are three possiblilites.
|
||||||
|
|
||||||
|
1) A support protocol is found, in which the stream is simply processed with
|
||||||
|
the support protocol.
|
||||||
|
|
||||||
|
2) A support protocol is not found, but the data is available to be read
|
||||||
|
without processing. In this case, the database is built up through the
|
||||||
|
recursions to return the data, and a RPN event is set that will enable
|
||||||
|
the stream in question to be refreshed if and when the required section
|
||||||
|
extraction protocol is published.This insures the AuthenticationStatus
|
||||||
|
does not become stale in the cache.
|
||||||
|
|
||||||
|
3) A support protocol is not found, and the data is not available to be read
|
||||||
|
without it. This results in EFI_PROTOCOL_ERROR.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _SECION_EXTRACTION_H_
|
||||||
|
#define _SECION_EXTRACTION_H_
|
||||||
|
|
||||||
|
#include <FrameworkDxe.h>
|
||||||
|
|
||||||
|
#include <Protocol/SectionExtraction.h>
|
||||||
|
|
||||||
|
#include <Library/BaseLib.h>
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/UefiLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Protocol/Decompress.h>
|
||||||
|
#include <Protocol/GuidedSectionExtraction.h>
|
||||||
|
|
||||||
|
#endif // _SECTION_EXTRACTION_H_
|
@ -0,0 +1,52 @@
|
|||||||
|
#/** @file
|
||||||
|
# Section Extraction Dxe Driver.
|
||||||
|
#
|
||||||
|
# Status Code Architectural Protocol implementation as defined in Tiano
|
||||||
|
# Architecture Specification. This driver has limited functionality
|
||||||
|
# at runtime and will not log to Data Hub at runtime.
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = SectionExtractionDxe
|
||||||
|
FILE_GUID = 801ADCA0-815E-46a4-84F7-657F53621A57
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
ENTRY_POINT = SectionExtractionEntryPoint
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
SectionExtraction.c
|
||||||
|
SectionExtraction.h
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
UefiBootServicesTableLib
|
||||||
|
MemoryAllocationLib
|
||||||
|
UefiLib
|
||||||
|
DebugLib
|
||||||
|
BaseLib
|
||||||
|
BaseMemoryLib
|
||||||
|
UefiDriverEntryPoint
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
||||||
|
|
||||||
|
[Protocols]
|
||||||
|
gEfiSectionExtractionProtocolGuid # ALWAYS_PRODUCED
|
||||||
|
gEfiDecompressProtocolGuid # ALWAYS_CONSUMED
|
||||||
|
|
||||||
|
[Depex]
|
||||||
|
TRUE
|
@ -1,21 +1,5 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
DXE Dispatcher.
|
||||||
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:
|
|
||||||
|
|
||||||
Dispatcher.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Tiano DXE Dispatcher.
|
|
||||||
|
|
||||||
Step #1 - When a FV protocol is added to the system every driver in the FV
|
Step #1 - When a FV protocol is added to the system every driver in the FV
|
||||||
is added to the mDiscoveredList. The SOR, Before, and After Depex are
|
is added to the mDiscoveredList. The SOR, Before, and After Depex are
|
||||||
@ -42,7 +26,16 @@ Abstract:
|
|||||||
Depex - Dependency Expresion.
|
Depex - Dependency Expresion.
|
||||||
SOR - Schedule On Request - Don't schedule if this bit is set.
|
SOR - Schedule On Request - Don't schedule if this bit is set.
|
||||||
|
|
||||||
--*/
|
Copyright (c) 2006 - 2007, 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.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
#include <DxeMain.h>
|
#include <DxeMain.h>
|
||||||
|
|
||||||
@ -490,9 +483,15 @@ Returns:
|
|||||||
|
|
||||||
CoreReleaseDispatcherLock ();
|
CoreReleaseDispatcherLock ();
|
||||||
|
|
||||||
CoreReportProgressCodeSpecific (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_BEGIN, DriverEntry->ImageHandle);
|
CoreReportProgressCodeSpecific (
|
||||||
|
FixedPcdGet32(PcdStatusCodeValueDxeDriverBegin),
|
||||||
|
DriverEntry->ImageHandle
|
||||||
|
);
|
||||||
Status = CoreStartImage (DriverEntry->ImageHandle, NULL, NULL);
|
Status = CoreStartImage (DriverEntry->ImageHandle, NULL, NULL);
|
||||||
CoreReportProgressCodeSpecific (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_END, DriverEntry->ImageHandle);
|
CoreReportProgressCodeSpecific (
|
||||||
|
FixedPcdGet32(PcdStatusCodeValueDxeDriverEnd),
|
||||||
|
DriverEntry->ImageHandle
|
||||||
|
);
|
||||||
|
|
||||||
ReturnStatus = EFI_SUCCESS;
|
ReturnStatus = EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
Header file of DxeCore
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -9,15 +10,7 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
DxeMain.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Revision History
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef _DXE_MAIN_H_
|
#ifndef _DXE_MAIN_H_
|
||||||
#define _DXE_MAIN_H_
|
#define _DXE_MAIN_H_
|
||||||
@ -25,11 +18,9 @@ Revision History
|
|||||||
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
#include <FrameworkPei.h>
|
|
||||||
|
|
||||||
#include <Protocol/LoadedImage.h>
|
#include <Protocol/LoadedImage.h>
|
||||||
#include <Protocol/GuidedSectionExtraction.h>
|
#include <Protocol/GuidedSectionExtraction.h>
|
||||||
#include <Protocol/SectionExtraction.h>
|
|
||||||
#include <Guid/DebugImageInfoTable.h>
|
#include <Guid/DebugImageInfoTable.h>
|
||||||
#include <Protocol/DevicePath.h>
|
#include <Protocol/DevicePath.h>
|
||||||
#include <Protocol/Runtime.h>
|
#include <Protocol/Runtime.h>
|
||||||
@ -69,7 +60,6 @@ Revision History
|
|||||||
#include <Protocol/Capsule.h>
|
#include <Protocol/Capsule.h>
|
||||||
#include <Protocol/BusSpecificDriverOverride.h>
|
#include <Protocol/BusSpecificDriverOverride.h>
|
||||||
#include <Protocol/Performance.h>
|
#include <Protocol/Performance.h>
|
||||||
#include <Guid/StatusCodeDataTypeId.h>
|
|
||||||
|
|
||||||
#include <Library/DxeCoreEntryPoint.h>
|
#include <Library/DxeCoreEntryPoint.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
@ -82,6 +72,7 @@ Revision History
|
|||||||
#include <Library/CacheMaintenanceLib.h>
|
#include <Library/CacheMaintenanceLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/PeCoffLib.h>
|
#include <Library/PeCoffLib.h>
|
||||||
|
#include <Library/PcdLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
|
||||||
#include "DebugImageInfo.h"
|
#include "DebugImageInfo.h"
|
||||||
@ -133,6 +124,13 @@ typedef struct {
|
|||||||
BOOLEAN Present;
|
BOOLEAN Present;
|
||||||
} ARCHITECTURAL_PROTOCOL_ENTRY;
|
} ARCHITECTURAL_PROTOCOL_ENTRY;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_STATUS_CODE_DATA DataHeader;
|
||||||
|
EFI_HANDLE Handle;
|
||||||
|
} EFI_DXE_DEVICE_HANDLE_EXTENDED_DATA;
|
||||||
|
|
||||||
|
#define EFI_STATUS_CODE_DXE_CORE_GUID \
|
||||||
|
{ 0x335984bd, 0xe805, 0x409a, { 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 } }
|
||||||
|
|
||||||
//
|
//
|
||||||
// DXE Dispatcher Data structures
|
// DXE Dispatcher Data structures
|
||||||
@ -2839,4 +2837,30 @@ DxeMainCustomDecompress (
|
|||||||
IN UINT32 ScratchSize
|
IN UINT32 ScratchSize
|
||||||
);
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
OpenSectionStream (
|
||||||
|
IN UINTN SectionStreamLength,
|
||||||
|
IN VOID *SectionStream,
|
||||||
|
OUT UINTN *SectionStreamHandle
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
GetSection (
|
||||||
|
IN UINTN SectionStreamHandle,
|
||||||
|
IN EFI_SECTION_TYPE *SectionType,
|
||||||
|
IN EFI_GUID *SectionDefinitionGuid,
|
||||||
|
IN UINTN SectionInstance,
|
||||||
|
IN VOID **Buffer,
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
OUT UINT32 *AuthenticationStatus
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CloseSectionStream (
|
||||||
|
IN UINTN StreamHandleToClose
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -73,7 +73,6 @@
|
|||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
@ -134,4 +133,10 @@
|
|||||||
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiLoadedImageProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
gEfiLoadedImageProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||||
gEfiEbcProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
gEfiEbcProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
gEfiSectionExtractionProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
|
||||||
|
[FixedPcd.common]
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeCoreEntry | 0x3041000 # EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_ENTRY_POINT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeCoreHandoffToBds | 0x3041001 # EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueBootServiceExit | 0x3100019 # EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeDriverBegin | 0x3040002 # EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_BEGIN
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeDriverEnd | 0x3040003 # EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_END
|
@ -1,5 +1,6 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
|
||||||
|
DXE Core Main Entry Point
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -9,15 +10,7 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
DxeMain.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
DXE Core Main Entry Point
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <DxeMain.h>
|
#include <DxeMain.h>
|
||||||
|
|
||||||
@ -328,7 +321,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Report Status Code here for DXE_ENTRY_POINT once it is available
|
// Report Status Code here for DXE_ENTRY_POINT once it is available
|
||||||
//
|
//
|
||||||
CoreReportProgressCode ((EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_ENTRY_POINT));
|
CoreReportProgressCode (FixedPcdGet32(PcdStatusCodeValueDxeCoreEntry));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Create the aligned system table pointer structure that is used by external
|
// Create the aligned system table pointer structure that is used by external
|
||||||
@ -423,7 +416,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Report Status code before transfer control to BDS
|
// Report Status code before transfer control to BDS
|
||||||
//
|
//
|
||||||
CoreReportProgressCode ((EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT));
|
CoreReportProgressCode (FixedPcdGet32 (PcdStatusCodeValueDxeCoreHandoffToBds));
|
||||||
//
|
//
|
||||||
// Display any drivers that were not dispatched because dependency expression
|
// Display any drivers that were not dispatched because dependency expression
|
||||||
// evaluated to false if this is a debug build
|
// evaluated to false if this is a debug build
|
||||||
@ -789,7 +782,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// We are using gEfiCallerIdGuid as the caller ID for Dxe Core
|
// We are using gEfiCallerIdGuid as the caller ID for Dxe Core
|
||||||
//
|
//
|
||||||
CoreReportProgressCode ((EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES));
|
CoreReportProgressCode (FixedPcdGet32 (PcdStatusCodeValueBootServiceExit));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clear the non-runtime values of the EFI System Table
|
// Clear the non-runtime values of the EFI System Table
|
||||||
|
@ -151,7 +151,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Close stream and free resources from SEP
|
// Close stream and free resources from SEP
|
||||||
//
|
//
|
||||||
FfsFileEntry->Sep->CloseSectionStream (FfsFileEntry->Sep, FfsFileEntry->StreamHandle);
|
CloseSectionStream (FfsFileEntry->StreamHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
CoreFreePool (FfsFileEntry);
|
CoreFreePool (FfsFileEntry);
|
||||||
@ -281,7 +281,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Scan to check the free space & File list
|
// Scan to check the free space & File list
|
||||||
//
|
//
|
||||||
if (FvbAttributes & EFI_FVB_ERASE_POLARITY) {
|
if (FvbAttributes & EFI_FVB2_ERASE_POLARITY) {
|
||||||
FvDevice->ErasePolarity = 1;
|
FvDevice->ErasePolarity = 1;
|
||||||
} else {
|
} else {
|
||||||
FvDevice->ErasePolarity = 0;
|
FvDevice->ErasePolarity = 0;
|
||||||
|
@ -413,7 +413,6 @@ FvReadFileSection (
|
|||||||
EFI_FV_FILE_ATTRIBUTES FileAttributes;
|
EFI_FV_FILE_ATTRIBUTES FileAttributes;
|
||||||
UINTN FileSize;
|
UINTN FileSize;
|
||||||
UINT8 *FileBuffer;
|
UINT8 *FileBuffer;
|
||||||
EFI_SECTION_EXTRACTION_PROTOCOL *Sep;
|
|
||||||
FFS_FILE_LIST_ENTRY *FfsEntry;
|
FFS_FILE_LIST_ENTRY *FfsEntry;
|
||||||
|
|
||||||
if (NULL == NameGuid || Buffer == NULL) {
|
if (NULL == NameGuid || Buffer == NULL) {
|
||||||
@ -456,17 +455,7 @@ FvReadFileSection (
|
|||||||
// Use FfsEntry to cache Section Extraction Protocol Inforomation
|
// Use FfsEntry to cache Section Extraction Protocol Inforomation
|
||||||
//
|
//
|
||||||
if (FfsEntry->StreamHandle == 0) {
|
if (FfsEntry->StreamHandle == 0) {
|
||||||
//
|
Status = OpenSectionStream (
|
||||||
// Located the protocol
|
|
||||||
//
|
|
||||||
Status = CoreLocateProtocol (&gEfiSectionExtractionProtocolGuid, NULL, (VOID **)&Sep);
|
|
||||||
//
|
|
||||||
// Section Extraction Protocol is part of Dxe Core so this should never fail
|
|
||||||
//
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
Status = Sep->OpenSectionStream (
|
|
||||||
Sep,
|
|
||||||
FileSize,
|
FileSize,
|
||||||
FileBuffer,
|
FileBuffer,
|
||||||
&FfsEntry->StreamHandle
|
&FfsEntry->StreamHandle
|
||||||
@ -474,20 +463,12 @@ FvReadFileSection (
|
|||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
FfsEntry->Sep = Sep;
|
|
||||||
} else {
|
|
||||||
//
|
|
||||||
// Get cached copy of Sep
|
|
||||||
//
|
|
||||||
Sep = FfsEntry->Sep;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// If SectionType == 0 We need the whole section stream
|
// If SectionType == 0 We need the whole section stream
|
||||||
//
|
//
|
||||||
Status = Sep->GetSection (
|
Status = GetSection (
|
||||||
Sep,
|
|
||||||
FfsEntry->StreamHandle,
|
FfsEntry->StreamHandle,
|
||||||
(SectionType == 0) ? NULL : &SectionType,
|
(SectionType == 0) ? NULL : &SectionType,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
Firmware Volume Block protocol.. Consumes FV hobs and creates
|
||||||
|
appropriate block protocols.
|
||||||
|
|
||||||
|
Also consumes NT_NON_MM_FV envinronment variable and produces appropriate
|
||||||
|
block protocols fro them also... (this is TBD)
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -9,19 +14,7 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
FwVolBlock.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Firmware Volume Block protocol.. Consumes FV hobs and creates
|
|
||||||
appropriate block protocols.
|
|
||||||
|
|
||||||
Also consumes NT_NON_MM_FV envinronment variable and produces appropriate
|
|
||||||
block protocols fro them also... (this is TBD)
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <DxeMain.h>
|
#include <DxeMain.h>
|
||||||
|
|
||||||
@ -202,7 +195,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Check if This FW can be read
|
// Check if This FW can be read
|
||||||
//
|
//
|
||||||
if ((FvbDevice->FvbAttributes & EFI_FVB_READ_STATUS) == 0) {
|
if ((FvbDevice->FvbAttributes & EFI_FVB2_READ_STATUS) == 0) {
|
||||||
return EFI_ACCESS_DENIED;
|
return EFI_ACCESS_DENIED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,7 +303,7 @@ Returns:
|
|||||||
|
|
||||||
FvbDevice = FVB_DEVICE_FROM_THIS (This);
|
FvbDevice = FVB_DEVICE_FROM_THIS (This);
|
||||||
|
|
||||||
if (FvbDevice->FvbAttributes & EFI_FVB_MEMORY_MAPPED) {
|
if (FvbDevice->FvbAttributes & EFI_FVB2_MEMORY_MAPPED) {
|
||||||
*Address = FvbDevice->BaseAddress;
|
*Address = FvbDevice->BaseAddress;
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
Firmware File System protocol. Layers on top of Firmware
|
||||||
|
Block protocol to produce a file abstraction of FV based files.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -9,16 +11,7 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
FwVolDriver.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Firmware File System protocol. Layers on top of Firmware
|
|
||||||
Block protocol to produce a file abstraction of FV based files.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef __FWVOL_H
|
#ifndef __FWVOL_H
|
||||||
#define __FWVOL_H
|
#define __FWVOL_H
|
||||||
@ -33,7 +26,6 @@ typedef struct {
|
|||||||
LIST_ENTRY Link;
|
LIST_ENTRY Link;
|
||||||
EFI_FFS_FILE_HEADER *FfsHeader;
|
EFI_FFS_FILE_HEADER *FfsHeader;
|
||||||
UINTN StreamHandle;
|
UINTN StreamHandle;
|
||||||
EFI_SECTION_EXTRACTION_PROTOCOL *Sep;
|
|
||||||
} FFS_FILE_LIST_ENTRY;
|
} FFS_FILE_LIST_ENTRY;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
DXE Core library services.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -9,25 +10,17 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
Library.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
DXE Core library services.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <DxeMain.h>
|
#include <DxeMain.h>
|
||||||
|
|
||||||
UINTN mErrorLevel = EFI_D_ERROR | EFI_D_LOAD;
|
UINTN mErrorLevel = EFI_D_ERROR | EFI_D_LOAD;
|
||||||
|
|
||||||
EFI_DEVICE_HANDLE_EXTENDED_DATA mStatusCodeData = {
|
EFI_DXE_DEVICE_HANDLE_EXTENDED_DATA mStatusCodeData = {
|
||||||
{
|
{
|
||||||
sizeof (EFI_STATUS_CODE_DATA),
|
sizeof (EFI_STATUS_CODE_DATA),
|
||||||
0,
|
0,
|
||||||
EFI_STATUS_CODE_SPECIFIC_DATA_GUID
|
EFI_STATUS_CODE_DXE_CORE_GUID
|
||||||
},
|
},
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
@ -57,7 +50,7 @@ Returns:
|
|||||||
|
|
||||||
--*/
|
--*/
|
||||||
{
|
{
|
||||||
mStatusCodeData.DataHeader.Size = sizeof (EFI_DEVICE_HANDLE_EXTENDED_DATA) - sizeof (EFI_STATUS_CODE_DATA);
|
mStatusCodeData.DataHeader.Size = sizeof (EFI_DXE_DEVICE_HANDLE_EXTENDED_DATA) - sizeof (EFI_STATUS_CODE_DATA);
|
||||||
mStatusCodeData.Handle = Handle;
|
mStatusCodeData.Handle = Handle;
|
||||||
|
|
||||||
if ((gStatusCode != NULL) && (gStatusCode->ReportStatusCode != NULL) ) {
|
if ((gStatusCode != NULL) && (gStatusCode->ReportStatusCode != NULL) ) {
|
||||||
|
@ -1,20 +1,4 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
CoreSectionExtraction.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Section Extraction Protocol implementation.
|
Section Extraction Protocol implementation.
|
||||||
|
|
||||||
Stream database is implemented as a linked list of section streams,
|
Stream database is implemented as a linked list of section streams,
|
||||||
@ -43,7 +27,16 @@ Abstract:
|
|||||||
3) A support protocol is not found, and the data is not available to be read
|
3) A support protocol is not found, and the data is not available to be read
|
||||||
without it. This results in EFI_PROTOCOL_ERROR.
|
without it. This results in EFI_PROTOCOL_ERROR.
|
||||||
|
|
||||||
--*/
|
Copyright (c) 2006 - 2007, 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.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
#include <DxeMain.h>
|
#include <DxeMain.h>
|
||||||
|
|
||||||
@ -131,38 +124,6 @@ CreateGuidedExtractionRpnEvent (
|
|||||||
IN CORE_SECTION_CHILD_NODE *ChildNode
|
IN CORE_SECTION_CHILD_NODE *ChildNode
|
||||||
);
|
);
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
OpenSectionStream (
|
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN SectionStreamLength,
|
|
||||||
IN VOID *SectionStream,
|
|
||||||
OUT UINTN *SectionStreamHandle
|
|
||||||
);
|
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
GetSection (
|
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN SectionStreamHandle,
|
|
||||||
IN EFI_SECTION_TYPE *SectionType,
|
|
||||||
IN EFI_GUID *SectionDefinitionGuid,
|
|
||||||
IN UINTN SectionInstance,
|
|
||||||
IN VOID **Buffer,
|
|
||||||
IN OUT UINTN *BufferSize,
|
|
||||||
OUT UINT32 *AuthenticationStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
CloseSectionStream (
|
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN StreamHandleToClose
|
|
||||||
);
|
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
FindStreamNode (
|
FindStreamNode (
|
||||||
@ -214,6 +175,7 @@ IsValidSectionStream (
|
|||||||
);
|
);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
CustomGuidedSectionExtract (
|
CustomGuidedSectionExtract (
|
||||||
IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
|
IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
|
||||||
IN CONST VOID *InputSection,
|
IN CONST VOID *InputSection,
|
||||||
@ -228,12 +190,6 @@ LIST_ENTRY mStreamRoot = INITIALIZE_LIST_HEAD_VARIABLE (mStreamRoot);
|
|||||||
|
|
||||||
EFI_HANDLE mSectionExtractionHandle = NULL;
|
EFI_HANDLE mSectionExtractionHandle = NULL;
|
||||||
|
|
||||||
EFI_SECTION_EXTRACTION_PROTOCOL mSectionExtraction = {
|
|
||||||
OpenSectionStream,
|
|
||||||
GetSection,
|
|
||||||
CloseSectionStream
|
|
||||||
};
|
|
||||||
|
|
||||||
EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL mCustomGuidedSectionExtractionProtocol = {
|
EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL mCustomGuidedSectionExtractionProtocol = {
|
||||||
CustomGuidedSectionExtract
|
CustomGuidedSectionExtract
|
||||||
};
|
};
|
||||||
@ -264,22 +220,12 @@ Returns:
|
|||||||
EFI_GUID *ExtractHandlerGuidTable;
|
EFI_GUID *ExtractHandlerGuidTable;
|
||||||
UINTN ExtractHandlerNumber;
|
UINTN ExtractHandlerNumber;
|
||||||
|
|
||||||
//
|
|
||||||
// Install SEP to a new handle
|
|
||||||
//
|
|
||||||
Status = CoreInstallProtocolInterface (
|
|
||||||
&mSectionExtractionHandle,
|
|
||||||
&gEfiSectionExtractionProtocolGuid,
|
|
||||||
EFI_NATIVE_INTERFACE,
|
|
||||||
&mSectionExtraction
|
|
||||||
);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get custom extract guided section method guid list
|
// Get custom extract guided section method guid list
|
||||||
//
|
//
|
||||||
ExtractHandlerNumber = ExtractGuidedSectionGetGuidList (&ExtractHandlerGuidTable);
|
ExtractHandlerNumber = ExtractGuidedSectionGetGuidList (&ExtractHandlerGuidTable);
|
||||||
|
|
||||||
|
Status = EFI_SUCCESS;
|
||||||
//
|
//
|
||||||
// Install custom guided extraction protocol
|
// Install custom guided extraction protocol
|
||||||
//
|
//
|
||||||
@ -296,11 +242,9 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
OpenSectionStream (
|
OpenSectionStream (
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN SectionStreamLength,
|
IN UINTN SectionStreamLength,
|
||||||
IN VOID *SectionStream,
|
IN VOID *SectionStream,
|
||||||
OUT UINTN *SectionStreamHandle
|
OUT UINTN *SectionStreamHandle
|
||||||
@ -342,11 +286,9 @@ Returns:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
GetSection (
|
GetSection (
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN SectionStreamHandle,
|
IN UINTN SectionStreamHandle,
|
||||||
IN EFI_SECTION_TYPE *SectionType,
|
IN EFI_SECTION_TYPE *SectionType,
|
||||||
IN EFI_GUID *SectionDefinitionGuid,
|
IN EFI_GUID *SectionDefinitionGuid,
|
||||||
@ -361,7 +303,6 @@ Routine Description:
|
|||||||
SEP member function. Retrieves requested section from section stream.
|
SEP member function. Retrieves requested section from section stream.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
This: Pointer to SEP instance.
|
|
||||||
SectionStreamHandle: The section stream from which to extract the requested
|
SectionStreamHandle: The section stream from which to extract the requested
|
||||||
section.
|
section.
|
||||||
SectionType: A pointer to the type of section to search for.
|
SectionType: A pointer to the type of section to search for.
|
||||||
@ -485,11 +426,9 @@ GetSection_Done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
STATIC
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CloseSectionStream (
|
CloseSectionStream (
|
||||||
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,
|
|
||||||
IN UINTN StreamHandleToClose
|
IN UINTN StreamHandleToClose
|
||||||
)
|
)
|
||||||
/*++
|
/*++
|
||||||
@ -922,7 +861,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// OR in the parent stream's aggregate status.
|
// OR in the parent stream's aggregate status.
|
||||||
//
|
//
|
||||||
AuthenticationStatus |= Stream->AuthenticationStatus & EFI_AGGREGATE_AUTH_STATUS_ALL;
|
AuthenticationStatus |= Stream->AuthenticationStatus & EFI_AUTH_STATUS_ALL;
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// since there's no authentication data contributed by the section,
|
// since there's no authentication data contributed by the section,
|
||||||
@ -959,23 +898,6 @@ Returns:
|
|||||||
// Figure out the proper authentication status
|
// Figure out the proper authentication status
|
||||||
//
|
//
|
||||||
AuthenticationStatus = Stream->AuthenticationStatus;
|
AuthenticationStatus = Stream->AuthenticationStatus;
|
||||||
if (GuidedHeader->Attributes & EFI_GUIDED_SECTION_AUTH_STATUS_VALID) {
|
|
||||||
//
|
|
||||||
// The local status of the new stream is contained in
|
|
||||||
// AuthenticaionStatus. This value needs to be ORed into the
|
|
||||||
// Aggregate bits also...
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clear out and initialize the local status
|
|
||||||
//
|
|
||||||
AuthenticationStatus &= ~EFI_LOCAL_AUTH_STATUS_ALL;
|
|
||||||
AuthenticationStatus |= EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED | EFI_LOCAL_AUTH_STATUS_NOT_TESTED;
|
|
||||||
//
|
|
||||||
// OR local status into aggregate status
|
|
||||||
//
|
|
||||||
AuthenticationStatus |= AuthenticationStatus >> 16;
|
|
||||||
}
|
|
||||||
|
|
||||||
SectionLength = SECTION_SIZE (GuidedHeader);
|
SectionLength = SECTION_SIZE (GuidedHeader);
|
||||||
Status = OpenSectionStreamEx (
|
Status = OpenSectionStreamEx (
|
||||||
@ -991,17 +913,6 @@ Returns:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((AuthenticationStatus & EFI_LOCAL_AUTH_STATUS_ALL) ==
|
|
||||||
(EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED | EFI_LOCAL_AUTH_STATUS_NOT_TESTED)) {
|
|
||||||
//
|
|
||||||
// Need to register for RPN for when the required GUIDed extraction
|
|
||||||
// protocol becomes available. This will enable us to refresh the
|
|
||||||
// AuthenticationStatus cached in the Stream if it's ever requested
|
|
||||||
// again.
|
|
||||||
//
|
|
||||||
CreateGuidedExtractionRpnEvent (Stream, Node);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -1097,7 +1008,7 @@ Returns:
|
|||||||
|
|
||||||
Context = RpnContext;
|
Context = RpnContext;
|
||||||
|
|
||||||
Status = CloseSectionStream (&mSectionExtraction, Context->ChildNode->EncapsulatedStreamHandle);
|
Status = CloseSectionStream (Context->ChildNode->EncapsulatedStreamHandle);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
//
|
//
|
||||||
// The stream closed successfully, so re-open the stream with correct AuthenticationStatus
|
// The stream closed successfully, so re-open the stream with correct AuthenticationStatus
|
||||||
@ -1122,7 +1033,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
// OR in the parent stream's aggregagate status.
|
// OR in the parent stream's aggregagate status.
|
||||||
//
|
//
|
||||||
AuthenticationStatus |= Context->ParentStream->AuthenticationStatus & EFI_AGGREGATE_AUTH_STATUS_ALL;
|
AuthenticationStatus |= Context->ParentStream->AuthenticationStatus & EFI_AUTH_STATUS_ALL;
|
||||||
Status = OpenSectionStreamEx (
|
Status = OpenSectionStreamEx (
|
||||||
NewStreamBufferSize,
|
NewStreamBufferSize,
|
||||||
NewStreamBuffer,
|
NewStreamBuffer,
|
||||||
@ -1173,7 +1084,7 @@ Returns:
|
|||||||
// If it's an encapsulating section, we close the resulting section stream.
|
// If it's an encapsulating section, we close the resulting section stream.
|
||||||
// CloseSectionStream will free all memory associated with the stream.
|
// CloseSectionStream will free all memory associated with the stream.
|
||||||
//
|
//
|
||||||
CloseSectionStream (&mSectionExtraction, ChildNode->EncapsulatedStreamHandle);
|
CloseSectionStream (ChildNode->EncapsulatedStreamHandle);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// Last, free the child node itself
|
// Last, free the child node itself
|
||||||
@ -1454,6 +1365,7 @@ Returns:
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
CustomGuidedSectionExtract (
|
CustomGuidedSectionExtract (
|
||||||
IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
|
IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
|
||||||
IN CONST VOID *InputSection,
|
IN CONST VOID *InputSection,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*++
|
/**@file
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -9,13 +9,7 @@ http://opensource.org/licenses/bsd-license.php
|
|||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
Module Name:
|
**/
|
||||||
|
|
||||||
DxeIpl.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef __PEI_DXEIPL_H__
|
#ifndef __PEI_DXEIPL_H__
|
||||||
#define __PEI_DXEIPL_H__
|
#define __PEI_DXEIPL_H__
|
||||||
@ -26,9 +20,6 @@ Abstract:
|
|||||||
#include <Ppi/EndOfPeiPhase.h>
|
#include <Ppi/EndOfPeiPhase.h>
|
||||||
#include <Protocol/CustomizedDecompress.h>
|
#include <Protocol/CustomizedDecompress.h>
|
||||||
#include <Protocol/Decompress.h>
|
#include <Protocol/Decompress.h>
|
||||||
#include <Ppi/Security.h>
|
|
||||||
#include <Ppi/SectionExtraction.h>
|
|
||||||
#include <Ppi/FvLoadFile.h>
|
|
||||||
#include <Ppi/MemoryDiscovered.h>
|
#include <Ppi/MemoryDiscovered.h>
|
||||||
#include <Ppi/ReadOnlyVariable2.h>
|
#include <Ppi/ReadOnlyVariable2.h>
|
||||||
#include <Guid/MemoryTypeInformation.h>
|
#include <Guid/MemoryTypeInformation.h>
|
||||||
|
@ -59,7 +59,6 @@
|
|||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
PeCoffLib
|
PeCoffLib
|
||||||
@ -102,7 +101,8 @@
|
|||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplEnableIdt
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplEnableIdt
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
||||||
|
|
||||||
|
[FixedPcd.common]
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiHandoffToDxe
|
||||||
[Depex]
|
[Depex]
|
||||||
gEfiPeiMemoryDiscoveredPpiGuid
|
gEfiPeiMemoryDiscoveredPpiGuid
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
#include "DxeIpl.h"
|
#include "DxeIpl.h"
|
||||||
#include <Ppi/GuidedSectionExtraction.h>
|
#include <Ppi/GuidedSectionExtraction.h>
|
||||||
#include <FrameworkPei.h>
|
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
CustomGuidedSectionExtract (
|
CustomGuidedSectionExtract (
|
||||||
@ -258,7 +257,7 @@ DxeLoadCore (
|
|||||||
//
|
//
|
||||||
REPORT_STATUS_CODE (
|
REPORT_STATUS_CODE (
|
||||||
EFI_PROGRESS_CODE,
|
EFI_PROGRESS_CODE,
|
||||||
EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT
|
PcdGet32(PcdStatusCodeValuePeiHandoffToDxe)
|
||||||
);
|
);
|
||||||
|
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
|
@ -23,6 +23,11 @@ Revision History
|
|||||||
|
|
||||||
#include <PeiMain.h>
|
#include <PeiMain.h>
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_STATUS_CODE_DATA DataHeader;
|
||||||
|
EFI_HANDLE Handle;
|
||||||
|
} PEIM_FILE_HANDLE_EXTENDED_DATA;
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
VOID
|
VOID
|
||||||
InvokePeiCore (
|
InvokePeiCore (
|
||||||
@ -223,7 +228,7 @@ Returns:
|
|||||||
UINTN PeimCount;
|
UINTN PeimCount;
|
||||||
UINT32 AuthenticationState;
|
UINT32 AuthenticationState;
|
||||||
EFI_PHYSICAL_ADDRESS EntryPoint;
|
EFI_PHYSICAL_ADDRESS EntryPoint;
|
||||||
EFI_PEIM_ENTRY_POINT PeimEntryPoint;
|
EFI_PEIM_ENTRY_POINT2 PeimEntryPoint;
|
||||||
BOOLEAN PeimNeedingDispatch;
|
BOOLEAN PeimNeedingDispatch;
|
||||||
BOOLEAN PeimDispatchOnThisPass;
|
BOOLEAN PeimDispatchOnThisPass;
|
||||||
UINTN SaveCurrentPeimCount;
|
UINTN SaveCurrentPeimCount;
|
||||||
@ -231,7 +236,7 @@ Returns:
|
|||||||
EFI_PEI_FILE_HANDLE SaveCurrentFileHandle;
|
EFI_PEI_FILE_HANDLE SaveCurrentFileHandle;
|
||||||
VOID *TopOfStack;
|
VOID *TopOfStack;
|
||||||
PEI_CORE_PARAMETERS PeiCoreParameters;
|
PEI_CORE_PARAMETERS PeiCoreParameters;
|
||||||
EFI_DEVICE_HANDLE_EXTENDED_DATA ExtendedData;
|
PEIM_FILE_HANDLE_EXTENDED_DATA ExtendedData;
|
||||||
EFI_FV_FILE_INFO FvFileInfo;
|
EFI_FV_FILE_INFO FvFileInfo;
|
||||||
|
|
||||||
|
|
||||||
@ -270,10 +275,10 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Call the PEIM entry point
|
// Call the PEIM entry point
|
||||||
//
|
//
|
||||||
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT)(UINTN)EntryPoint;
|
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT2)(UINTN)EntryPoint;
|
||||||
|
|
||||||
PERF_START (0, "PEIM", NULL, 0);
|
PERF_START (0, "PEIM", NULL, 0);
|
||||||
PeimEntryPoint(PeimFileHandle, &Private->PS);
|
PeimEntryPoint(PeimFileHandle, (const EFI_PEI_SERVICES **) &Private->PS);
|
||||||
PERF_END (0, "PEIM", NULL, 0);
|
PERF_END (0, "PEIM", NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,7 +362,7 @@ Returns:
|
|||||||
|
|
||||||
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
||||||
EFI_PROGRESS_CODE,
|
EFI_PROGRESS_CODE,
|
||||||
EFI_SOFTWARE_PEI_CORE | EFI_SW_PC_INIT_BEGIN,
|
FixedPcdGet32(PcdStatusCodeValuePeimDispatch),
|
||||||
(VOID *)(&ExtendedData),
|
(VOID *)(&ExtendedData),
|
||||||
sizeof (ExtendedData)
|
sizeof (ExtendedData)
|
||||||
);
|
);
|
||||||
@ -373,18 +378,16 @@ Returns:
|
|||||||
//
|
//
|
||||||
// Call the PEIM entry point for PEIM driver
|
// Call the PEIM entry point for PEIM driver
|
||||||
//
|
//
|
||||||
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT)(UINTN)EntryPoint;
|
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT2)(UINTN)EntryPoint;
|
||||||
PeimEntryPoint (PeimFileHandle, PeiServices);
|
PeimEntryPoint (PeimFileHandle, (const EFI_PEI_SERVICES **) PeiServices);
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// One module has been dispatched.
|
|
||||||
//
|
|
||||||
PeimDispatchOnThisPass = TRUE;
|
PeimDispatchOnThisPass = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
||||||
EFI_PROGRESS_CODE,
|
EFI_PROGRESS_CODE,
|
||||||
EFI_SOFTWARE_PEI_CORE | EFI_SW_PC_INIT_END,
|
FixedPcdGet32(PcdStatusCodeValuePeimDispatch),
|
||||||
(VOID *)(&ExtendedData),
|
(VOID *)(&ExtendedData),
|
||||||
sizeof (ExtendedData)
|
sizeof (ExtendedData)
|
||||||
);
|
);
|
||||||
@ -483,7 +486,7 @@ Returns:
|
|||||||
// We call the entry point a 2nd time so the module knows it's shadowed.
|
// We call the entry point a 2nd time so the module knows it's shadowed.
|
||||||
//
|
//
|
||||||
//PERF_START (PeiServices, L"PEIM", PeimFileHandle, 0);
|
//PERF_START (PeiServices, L"PEIM", PeimFileHandle, 0);
|
||||||
PeimEntryPoint (PeimFileHandle, PeiServices);
|
PeimEntryPoint (PeimFileHandle, (const EFI_PEI_SERVICES **) PeiServices);
|
||||||
//PERF_END (PeiServices, L"PEIM", PeimFileHandle, 0);
|
//PERF_END (PeiServices, L"PEIM", PeimFileHandle, 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -198,7 +198,7 @@ Returns:
|
|||||||
FileHeader = (EFI_FFS_FILE_HEADER **)FileHandle;
|
FileHeader = (EFI_FFS_FILE_HEADER **)FileHandle;
|
||||||
|
|
||||||
FvLength = FwVolHeader->FvLength;
|
FvLength = FwVolHeader->FvLength;
|
||||||
if (FwVolHeader->Attributes & EFI_FVB_ERASE_POLARITY) {
|
if (FwVolHeader->Attributes & EFI_FVB2_ERASE_POLARITY) {
|
||||||
ErasePolarity = 1;
|
ErasePolarity = 1;
|
||||||
} else {
|
} else {
|
||||||
ErasePolarity = 0;
|
ErasePolarity = 0;
|
||||||
@ -781,7 +781,7 @@ Returns:
|
|||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((EFI_FIRMWARE_VOLUME_HEADER*)VolumeHandle)->Attributes & EFI_FVB_ERASE_POLARITY) {
|
if (((EFI_FIRMWARE_VOLUME_HEADER*)VolumeHandle)->Attributes & EFI_FVB2_ERASE_POLARITY) {
|
||||||
ErasePolarity = 1;
|
ErasePolarity = 1;
|
||||||
} else {
|
} else {
|
||||||
ErasePolarity = 0;
|
ErasePolarity = 0;
|
||||||
|
@ -25,8 +25,6 @@ Revision History
|
|||||||
#define _PEI_MAIN_H_
|
#define _PEI_MAIN_H_
|
||||||
|
|
||||||
#include <PiPei.h>
|
#include <PiPei.h>
|
||||||
#include <FrameworkPei.h>
|
|
||||||
#include <Guid/StatusCodeDataTypeId.h>
|
|
||||||
#include <Ppi/DxeIpl.h>
|
#include <Ppi/DxeIpl.h>
|
||||||
#include <Ppi/MemoryDiscovered.h>
|
#include <Ppi/MemoryDiscovered.h>
|
||||||
#include <Ppi/StatusCode.h>
|
#include <Ppi/StatusCode.h>
|
||||||
|
@ -65,7 +65,6 @@
|
|||||||
[Packages]
|
[Packages]
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
TimerLib
|
TimerLib
|
||||||
@ -101,6 +100,8 @@
|
|||||||
[FixedPcd.common]
|
[FixedPcd.common]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeimDispatch
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiCoreEntry
|
||||||
|
|
||||||
[FeaturePcd.common]
|
[FeaturePcd.common]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst
|
||||||
|
@ -213,7 +213,7 @@ Returns:
|
|||||||
//
|
//
|
||||||
REPORT_STATUS_CODE (
|
REPORT_STATUS_CODE (
|
||||||
EFI_PROGRESS_CODE,
|
EFI_PROGRESS_CODE,
|
||||||
EFI_SOFTWARE_PEI_CORE | EFI_SW_PC_INIT
|
FixedPcdGet32 (PcdStatusCodeValuePeiCoreEntry)
|
||||||
);
|
);
|
||||||
|
|
||||||
PERF_START (NULL,"PEI", NULL, mTick);
|
PERF_START (NULL,"PEI", NULL, mTick);
|
||||||
|
@ -97,5 +97,6 @@ typedef struct {
|
|||||||
#define EFI_AUTH_STATUS_IMAGE_SIGNED 0x02
|
#define EFI_AUTH_STATUS_IMAGE_SIGNED 0x02
|
||||||
#define EFI_AUTH_STATUS_NOT_TESTED 0x04
|
#define EFI_AUTH_STATUS_NOT_TESTED 0x04
|
||||||
#define EFI_AUTH_STATUS_TEST_FAILED 0x08
|
#define EFI_AUTH_STATUS_TEST_FAILED 0x08
|
||||||
|
#define EFI_AUTH_STATUS_ALL 0x0f
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -326,6 +326,27 @@
|
|||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1|UINT8|0x00000022
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1|UINT8|0x00000022
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1|UINT8|0x00000023
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1|UINT8|0x00000023
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|0|UINT8|0x00000024 # 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|0|UINT8|0x00000024 # 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMouseInterfaceError|0x01020005|UINT32|0x30001000
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMouseEnable|0x01020004|UINT32|0x30001001
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMouseDisable|0x01020002|UINT32|0x30001002
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardEnable|0x01010004|UINT32|0x30001003
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardDisable|0x01010002|UINT32|0x30001004
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardPresenceDetect|0x01010003|UINT32|0x30001005
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardReset|0x01010001|UINT32|0x30001006
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardClearBuffer|0x01011000|UINT32|0x30001007
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardSelfTest|0x01011001|UINT32|0x30001008
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardInterfaceError|0x01010005|UINT32|0x30001009
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardInputError|0x01010007|UINT32|0x3000100a
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMouseInputError|0x01020007|UINT32|0x3000100b
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMouseReset|0x01020001|UINT32|0x3000100c
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiHandoffToDxe|0x3031001|UINT32|0x3000100d # EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeimDispatch|0x3020002|UINT32|0x3000100e # EFI_SOFTWARE_PEI_CORE | EFI_SW_PC_INIT_BEGIN
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiCoreEntry|0x3020000|UINT32|0x3000100f # EFI_SOFTWARE_PEI_CORE | EFI_SW_PC_INIT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeCoreEntry|0x3041000|UINT32|0x30001010 # EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_ENTRY_POINT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeCoreHandoffToBds|0x3041001|UINT32|0x30001011 # EFI_SOFTWARE_DXE_CORE | EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueBootServiceExit|0x3100019|UINT32|0x30001012 # EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeDriverBegin|0x3040002|UINT32|0x30001013 # EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_BEGIN
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueDxeDriverEnd|0x3040003|UINT32|0x30001014 # EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_END
|
||||||
|
|
||||||
[PcdsFixedAtBuild.IPF]
|
[PcdsFixedAtBuild.IPF]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000|UINT64|0x0000000f
|
gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000|UINT64|0x0000000f
|
||||||
|
Loading…
x
Reference in New Issue
Block a user