1. FvLength not change issue;
2. FileSystemGuid align with File Size;
Cc: Rebecca Cran <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Bob Feng <[email protected]>
Signed-off-by: Yuwei Chen <[email protected]>
---
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: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-