You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
Sync up with EDK2 stable tag edk2-stable201905
Synced up MdePkg, IntelFsp2Pkg and BaseTools to EDK2 stable tag edk2-stable201905. There are several changes for MdePkg and BaseTools. MdePkg: - Support light print to reduce SBL size MdePkg\Library\BasePrintLib\PrintLibInternal.c MdePkg\Include\Library\DebugLib.h - TCG TPM2 spec changes and remove dependencies MdePkg\Include\IndustryStandard\UefiTcgPlatform.h MdePkg\Include\IndustryStandard\Tpm2Acpi.h - Use old NVM protocol file MdePkg\Include\Protocol\NvmExpressPassthru.h - Removed unused files BaseTools: - Added LZ4 support - Removed unused files Signed-off-by: Maurice Ma <maurice.ma@intel.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
## @file
|
||||
# Module that encodes and decodes a FMP_PAYLOAD_HEADER with a payload.
|
||||
# The FMP_PAYLOAD_HEADER is processed by the FmpPayloadHeaderLib in the
|
||||
# FmpDevicePkg.
|
||||
#
|
||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
'''
|
||||
FmpPayloadHeader
|
||||
'''
|
||||
|
||||
import struct
|
||||
|
||||
def _SIGNATURE_32 (A, B, C, D):
|
||||
return struct.unpack ('=I',bytearray (A + B + C + D, 'ascii'))[0]
|
||||
|
||||
def _SIGNATURE_32_TO_STRING (Signature):
|
||||
return struct.pack ("<I", Signature).decode ()
|
||||
|
||||
class FmpPayloadHeaderClass (object):
|
||||
#
|
||||
# typedef struct {
|
||||
# UINT32 Signature;
|
||||
# UINT32 HeaderSize;
|
||||
# UINT32 FwVersion;
|
||||
# UINT32 LowestSupportedVersion;
|
||||
# } FMP_PAYLOAD_HEADER;
|
||||
#
|
||||
# #define FMP_PAYLOAD_HEADER_SIGNATURE SIGNATURE_32 ('M', 'S', 'S', '1')
|
||||
#
|
||||
_StructFormat = '<IIII'
|
||||
_StructSize = struct.calcsize (_StructFormat)
|
||||
|
||||
_FMP_PAYLOAD_HEADER_SIGNATURE = _SIGNATURE_32 ('M', 'S', 'S', '1')
|
||||
|
||||
def __init__ (self):
|
||||
self._Valid = False
|
||||
self.Signature = self._FMP_PAYLOAD_HEADER_SIGNATURE
|
||||
self.HeaderSize = self._StructSize
|
||||
self.FwVersion = 0x00000000
|
||||
self.LowestSupportedVersion = 0x00000000
|
||||
self.Payload = b''
|
||||
|
||||
def Encode (self):
|
||||
FmpPayloadHeader = struct.pack (
|
||||
self._StructFormat,
|
||||
self.Signature,
|
||||
self.HeaderSize,
|
||||
self.FwVersion,
|
||||
self.LowestSupportedVersion
|
||||
)
|
||||
self._Valid = True
|
||||
return FmpPayloadHeader + self.Payload
|
||||
|
||||
def Decode (self, Buffer):
|
||||
if len (Buffer) < self._StructSize:
|
||||
raise ValueError
|
||||
(Signature, HeaderSize, FwVersion, LowestSupportedVersion) = \
|
||||
struct.unpack (
|
||||
self._StructFormat,
|
||||
Buffer[0:self._StructSize]
|
||||
)
|
||||
if Signature != self._FMP_PAYLOAD_HEADER_SIGNATURE:
|
||||
raise ValueError
|
||||
if HeaderSize < self._StructSize:
|
||||
raise ValueError
|
||||
self.Signature = Signature
|
||||
self.HeaderSize = HeaderSize
|
||||
self.FwVersion = FwVersion
|
||||
self.LowestSupportedVersion = LowestSupportedVersion
|
||||
self.Payload = Buffer[self.HeaderSize:]
|
||||
|
||||
self._Valid = True
|
||||
return self.Payload
|
||||
|
||||
def DumpInfo (self):
|
||||
if not self._Valid:
|
||||
raise ValueError
|
||||
print ('FMP_PAYLOAD_HEADER.Signature = {Signature:08X} ({SignatureString})'.format (Signature = self.Signature, SignatureString = _SIGNATURE_32_TO_STRING (self.Signature)))
|
||||
print ('FMP_PAYLOAD_HEADER.HeaderSize = {HeaderSize:08X}'.format (HeaderSize = self.HeaderSize))
|
||||
print ('FMP_PAYLOAD_HEADER.FwVersion = {FwVersion:08X}'.format (FwVersion = self.FwVersion))
|
||||
print ('FMP_PAYLOAD_HEADER.LowestSupportedVersion = {LowestSupportedVersion:08X}'.format (LowestSupportedVersion = self.LowestSupportedVersion))
|
||||
print ('sizeof (Payload) = {Size:08X}'.format (Size = len (self.Payload)))
|
||||
@@ -0,0 +1,9 @@
|
||||
## @file
|
||||
# Python 'Common.Edk2.Capsule' package initialization file.
|
||||
#
|
||||
# This file is required to make Python interpreter treat the directory
|
||||
# as containing package.
|
||||
#
|
||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
Reference in New Issue
Block a user