summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BaseTools/Source/Python/FMMT/core/FvHandler.py26
-rw-r--r--MdeModulePkg/MdeModulePkg.dec9
-rw-r--r--UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c1
3 files changed, 28 insertions, 8 deletions
diff --git a/BaseTools/Source/Python/FMMT/core/FvHandler.py b/BaseTools/Source/Python/FMMT/core/FvHandler.py
index 6d6a9c2..12d52c1 100644
--- a/BaseTools/Source/Python/FMMT/core/FvHandler.py
+++ b/BaseTools/Source/Python/FMMT/core/FvHandler.py
@@ -237,11 +237,20 @@ class FvHandler:
Size_delta = len(CompressedData) - len(TargetTree.Data.OriData)
ChangeSize(TargetTree, -Size_delta)
if TargetTree.NextRel:
+ Original_Pad_Size = len(TargetTree.Data.PadData)
TargetTree.Data.PadData = b'\x00' * New_Pad_Size
- self.Remain_New_Free_Space = len(TargetTree.Data.OriData) + len(TargetTree.Data.PadData) - len(CompressedData) - New_Pad_Size
+ self.Remain_New_Free_Space = (
+ len(TargetTree.Data.OriData) +
+ Original_Pad_Size -
+ len(CompressedData) -
+ New_Pad_Size
+ )
else:
TargetTree.Data.PadData = b''
- self.Remain_New_Free_Space = len(TargetTree.Data.OriData) - len(CompressedData)
+ self.Remain_New_Free_Space = (
+ len(TargetTree.Data.OriData) -
+ len(CompressedData)
+ )
TargetTree.Data.OriData = CompressedData
elif len(CompressedData) == len(TargetTree.Data.OriData):
TargetTree.Data.OriData = CompressedData
@@ -347,15 +356,24 @@ class FvHandler:
ModifySectionType(ParTree)
Needed_Space += ParTree.Data.HeaderLength - OriHeaderLen
# Update needed space with Delta_Pad_Size
+ Original_Pad_Size = len(ParTree.Data.PadData)
if ParTree.NextRel:
New_Pad_Size = GetPadSize(ParTree.Data.Size, SECTION_COMMON_ALIGNMENT)
- Delta_Pad_Size = New_Pad_Size - len(ParTree.Data.PadData)
+ Delta_Pad_Size = New_Pad_Size - Original_Pad_Size
ParTree.Data.PadData = b'\x00' * New_Pad_Size
Needed_Space += Delta_Pad_Size
else:
ParTree.Data.PadData = b''
if Needed_Space < 0:
- self.Remain_New_Free_Space = len(ParTree.Data.OriData) - len(CompressedData)
+ if ParTree.NextRel:
+ self.Remain_New_Free_Space = (
+ len(ParTree.Data.OriData) + Original_Pad_Size -
+ len(CompressedData) - New_Pad_Size
+ )
+ else:
+ self.Remain_New_Free_Space = (
+ len(ParTree.Data.OriData) - len(CompressedData)
+ )
# If current section is not guided section
elif Needed_Space:
ChangeSize(ParTree, -Needed_Space)
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index ed0b17e..0c0b1c6 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -1352,10 +1352,6 @@
# @Prompt Enable serial port cable detetion.
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|FALSE|BOOLEAN|0x00020006
- ## Base address of 16550 serial port registers in MMIO or I/O space. Default is 0x3F8.
- # @Prompt Base address of serial port registers.
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8|UINT64|0x00020002
-
## Baud rate for the 16550 serial port. Default is 115200 baud.
# @Prompt Baud rate for serial port.
# @ValidList 0x80000001 | 921600, 460800, 230400, 115200, 57600, 38400, 19200, 9600, 7200, 4800, 3600, 2400, 2000, 1800, 1200, 600, 300, 150, 134, 110, 75, 50
@@ -1790,6 +1786,11 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20|UINT32|0x0001004c
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
+
+ ## Base address of 16550 serial port registers in MMIO or I/O space. Default is 0x3F8.
+ # @Prompt Base address of serial port registers.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8|UINT64|0x00020002
+
## UART clock frequency is for the baud rate configuration.
# @Prompt Serial Port Clock Rate.
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|1843200|UINT32|0x00010066
diff --git a/UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c b/UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c
index 8a076e1..155ab79 100644
--- a/UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c
+++ b/UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c
@@ -87,6 +87,7 @@ FindContextByDispatchHandle (
**/
EFI_STATUS
+EFIAPI
SmmSwDispatcher (
IN EFI_HANDLE DispatchHandle,
IN CONST VOID *RegisterContext,