Reviewed-by: Liming Gao <[email protected]> > -----Original Message----- > From: Zhu, Yonghong > Sent: Monday, August 22, 2016 3:24 PM > To: [email protected] > Cc: Gao, Liming <[email protected]> > Subject: [Patch] BaseTools: add capsule image header for auth FMP capsule > file > > in last commit 91ae29, it missed to add the > EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER for the auth > FMP capsule. > > Cc: Liming Gao <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Yonghong Zhu <[email protected]> > --- > BaseTools/Source/Python/GenFds/Capsule.py | 15 +++++++++++---- > BaseTools/Source/Python/GenFds/CapsuleData.py | 10 ---------- > 2 files changed, 11 insertions(+), 14 deletions(-) > > diff --git a/BaseTools/Source/Python/GenFds/Capsule.py > b/BaseTools/Source/Python/GenFds/Capsule.py > index f8af12a..93ecee1 100644 > --- a/BaseTools/Source/Python/GenFds/Capsule.py > +++ b/BaseTools/Source/Python/GenFds/Capsule.py > @@ -139,10 +139,11 @@ class Capsule (CapsuleClassObject) : > PreSize += os.path.getsize(FileName) > File = open(FileName, 'rb') > Content.write(File.read()) > File.close() > for fmp in self.FmpPayloadList: > + Buffer = fmp.GenCapsuleSubItem() > if fmp.Certificate_Guid: > ExternalTool, ExternalOption = FindExtendTool([], > GenFdsGlobalVariable.ArchList, fmp.Certificate_Guid) > CmdOption = '' > CapInputFile = fmp.ImageFile > if not os.path.isabs(fmp.ImageFile): > @@ -159,11 +160,11 @@ class Capsule (CapsuleClassObject) : > GenFdsGlobalVariable.CallExternalTool(CmdList, "Failed to > generate > FMP auth capsule") > if uuid.UUID(fmp.Certificate_Guid) == > EFI_CERT_TYPE_PKCS7_GUID: > dwLength = 4 + 2 + 2 + 16 + > os.path.getsize(CapOutputTmp) - > os.path.getsize(CapInputFile) > else: > dwLength = 4 + 2 + 2 + 16 + 16 + 256 + 256 > - Buffer = pack('Q', fmp.MonotonicCount) > + Buffer += pack('Q', fmp.MonotonicCount) > Buffer += pack('I', dwLength) > Buffer += pack('H', WIN_CERT_REVISION) > Buffer += pack('H', WIN_CERT_TYPE_EFI_GUID) > Buffer += uuid.UUID(fmp.Certificate_Guid).get_bytes_le() > if os.path.exists(CapOutputTmp): > @@ -176,14 +177,20 @@ class Capsule (CapsuleClassObject) : > VendorFile.close() > FwMgrHdr.write(pack('=Q', PreSize)) > PreSize += len(Buffer) > Content.write(Buffer) > else: > - payload = fmp.GenCapsuleSubItem() > + ImageFile = open(fmp.ImageFile, 'rb') > + Buffer += ImageFile.read() > + ImageFile.close() > + if fmp.VendorCodeFile: > + VendorFile = open(fmp.VendorCodeFile, 'rb') > + Buffer += VendorFile.read() > + VendorFile.close() > FwMgrHdr.write(pack('=Q', PreSize)) > - PreSize += len(payload) > - Content.write(payload) > + PreSize += len(Buffer) > + Content.write(Buffer) > BodySize = len(FwMgrHdr.getvalue()) + len(Content.getvalue()) > Header.write(pack('=I', HdrSize + BodySize)) > # > # The real capsule header structure is 28 bytes > # > diff --git a/BaseTools/Source/Python/GenFds/CapsuleData.py > b/BaseTools/Source/Python/GenFds/CapsuleData.py > index 2a5c454..5d5a1e4 100644 > --- a/BaseTools/Source/Python/GenFds/CapsuleData.py > +++ b/BaseTools/Source/Python/GenFds/CapsuleData.py > @@ -214,16 +214,6 @@ class CapsulePayload(CapsuleData): > 0, > ImageFileSize, > VendorFileSize, > int(self.HardwareInstance, 16) > ) > - # > - # Append file content to the structure > - # > - ImageFile = open(self.ImageFile, 'rb') > - Buffer += ImageFile.read() > - ImageFile.close() > - if self.VendorCodeFile: > - VendorFile = open(self.VendorCodeFile, 'rb') > - Buffer += VendorFile.read() > - VendorFile.close() > return Buffer > -- > 2.6.1.windows.1
_______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

