MdeModulePkg CapsulePei: Validate capsule integrity by memory resource hob
Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Common header file.
|
||||
|
||||
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
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
|
||||
@@ -35,6 +35,17 @@ typedef struct {
|
||||
} EFI_CAPSULE_PEIM_PRIVATE_DATA;
|
||||
#pragma pack()
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
/// The physical start address of the resource region.
|
||||
///
|
||||
EFI_PHYSICAL_ADDRESS PhysicalStart;
|
||||
///
|
||||
/// The number of bytes of the resource region.
|
||||
///
|
||||
UINT64 ResourceLength;
|
||||
} MEMORY_RESOURCE_DESCRIPTOR;
|
||||
|
||||
#define CAPSULE_TEST_SIGNATURE SIGNATURE_32('T', 'E', 'S', 'T')
|
||||
|
||||
#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
|
||||
@@ -45,6 +56,7 @@ typedef struct {
|
||||
UINT64 StackBufferLength;
|
||||
EFI_PHYSICAL_ADDRESS JumpBuffer;
|
||||
EFI_PHYSICAL_ADDRESS BlockListAddr;
|
||||
EFI_PHYSICAL_ADDRESS MemoryResource;
|
||||
EFI_PHYSICAL_ADDRESS MemoryBase64Ptr;
|
||||
EFI_PHYSICAL_ADDRESS MemorySize64Ptr;
|
||||
BOOLEAN Page1GSupport;
|
||||
@@ -71,6 +83,7 @@ typedef struct {
|
||||
|
||||
@param PeiServices General purpose services available to every PEIM.
|
||||
@param BlockListBuffer Point to the buffer of Capsule Descriptor Variables.
|
||||
@param MemoryResource Pointer to the buffer of memory resource descriptor.
|
||||
@param MemoryBase Pointer to the base of a block of memory that we can walk
|
||||
all over while trying to coalesce our buffers.
|
||||
On output, this variable will hold the base address of
|
||||
@@ -94,7 +107,8 @@ EFI_STATUS
|
||||
EFIAPI
|
||||
CapsuleDataCoalesce (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
|
||||
IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
|
||||
IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
|
||||
IN OUT VOID **MemoryBase,
|
||||
IN OUT UINTN *MemorySize
|
||||
);
|
||||
|
Reference in New Issue
Block a user