1. FvLength not change issue; 2. FileSystemGuid align with File Size; Cc: Rebecca Cran <rebe...@bsdio.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Bob Feng <bob.c.f...@intel.com> Signed-off-by: Yuwei Chen <yuwei.c...@intel.com> --- BaseTools/Source/Python/FMMT/core/FMMTOperation.py | 2 +- BaseTools/Source/Python/FMMT/core/FvHandler.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Source/Python/FMMT/core/FMMTOperation.py b/BaseTools/Source/Python/FMMT/core/FMMTOperation.py index a86f8dda9a1a..d4aa3397036d 100644 --- a/BaseTools/Source/Python/FMMT/core/FMMTOperation.py +++ b/BaseTools/Source/Python/FMMT/core/FMMTOperation.py @@ -188,7 +188,7 @@ def ExtractFfs(inputfile: str, Ffs_name: str, outputfile: str, Fv_name: str=None FmmtParser.WholeFvTree.Findlist.remove(FmmtParser.WholeFvTree.Findlist[index]) if FmmtParser.WholeFvTree.Findlist != []: TargetNode = FmmtParser.WholeFvTree.Findlist[0] - if TargetNode.type == FV_TREE or SEC_FV_TREE or DATA_FV_TREE: + if TargetNode.type == FV_TREE or TargetNode.type == SEC_FV_TREE or TargetNode.type == DATA_FV_TREE: FinalData = struct2stream(TargetNode.Data.Header) + TargetNode.Data.Data with open(outputfile, "wb") as f: f.write(FinalData) diff --git a/BaseTools/Source/Python/FMMT/core/FvHandler.py b/BaseTools/Source/Python/FMMT/core/FvHandler.py index ff3d637623f8..b0cc1951a1c6 100644 --- a/BaseTools/Source/Python/FMMT/core/FvHandler.py +++ b/BaseTools/Source/Python/FMMT/core/FvHandler.py @@ -279,7 +279,7 @@ class FvHandler: ParTree.Child.remove(ParTree.Child[-1]) ParTree.Data.Free_Space = 0 ParTree.Data.Size += Needed_Space - ParTree.Data.Header.Fvlength = ParTree.Data.Size + ParTree.Data.Header.FvLength = ParTree.Data.Size ModifyFvSystemGuid(ParTree) for item in ParTree.Child: if item.type == FFS_FREE_SPACE: @@ -650,8 +650,12 @@ class FvHandler: Removed_Space = TargetFv.Data.Free_Space - New_Free_Space TargetFv.Child[-1].Data.Data = b'\xff' * New_Free_Space TargetFv.Data.Size -= Removed_Space - TargetFv.Data.Header.Fvlength = TargetFv.Data.Size - ModifyFvSystemGuid(TargetFv) + TargetFv.Data.Header.FvLength = TargetFv.Data.Size + if struct2stream(TargetFv.Data.Header.FileSystemGuid) == EFI_FIRMWARE_FILE_SYSTEM3_GUID_BYTE: + if TargetFv.Data.Size <= 0xFFFFFF: + TargetFv.Data.Header.FileSystemGuid = ModifyGuidFormat( + "8c8ce578-8a3d-4f1c-9935-896185c32dd3") + for item in TargetFv.Child: if item.type == FFS_FREE_SPACE: TargetFv.Data.Data += item.Data.Data + item.Data.PadData -- 2.27.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#106490): https://edk2.groups.io/g/devel/message/106490 Mute This Topic: https://groups.io/mt/99845056/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-