Branch: refs/heads/master
Home: https://github.com/tianocore/edk2
Commit: 6834d43991741737acf9e53350cb9293e1c9c2f5
https://github.com/tianocore/edk2/commit/6834d43991741737acf9e53350cb9293e1c9c2f5
Author: Michael D Kinney <[email protected]>
Date: 2026-01-28 (Wed, 28 Jan 2026)
Changed paths:
M MdeModulePkg/Core/Dxe/Mem/Page.c
Log Message:
-----------
MdeModulePkg/Core/Dxe/Mem: Align initial memory map entries
Fix alignment issues in memory map entries returned by
GetMemoryMap() when RUNTIME_PAGE_ALLOCATION_GRANULARITY is
larger than DEFAULT_PAGE_ALLOCATION_GRANULARITY.
Alignment issues are addressed in the initial memory map
layout when Memory Type Information is provided with memory
bins that use RUNTIME_PAGE_ALLOCATION_GRANULARITY.
There are no issues in the Page/Pool Allocation/Free services.
* CoreSetMemoryTypeInformationRange() make sure there is room
for all bins when accounting for alignment requirements.
Allocate space for bins with base and length following
alignment requirements.
* CoreSetMemoryTypeInformationRange() round up NumberOfPages in
Memory Type Information based on alignment requirements.
This is required so GetMemoryMap() will generate memory
map entries that always follow alignment requirements.
* CoreAddMemoryDescriptor() round up NumberOfPages in
Memory Type Information based on alignment requirements.
This is required so GetMemoryMap() will generate memory
map entries that always follow alignment requirements.
Signed-off-by: Michael D Kinney <[email protected]>
Commit: d419725b23207ebbb14ac6f1285a24753e955e92
https://github.com/tianocore/edk2/commit/d419725b23207ebbb14ac6f1285a24753e955e92
Author: Michael D Kinney <[email protected]>
Date: 2026-01-28 (Wed, 28 Jan 2026)
Changed paths:
M MdeModulePkg/Core/Dxe/Mem/Page.c
Log Message:
-----------
MdeModulePkg/Core/Dxe/Mem: Fix GetMemoryMap() Alignment Issues
Fix alignment issues in memory map entries returned by
GetMemoryMap() when RUNTIME_PAGE_ALLOCATION_GRANULARITY is
larger than DEFAULT_PAGE_ALLOCATION_GRANULARITY.
There are no issues in the Page/Pool Allocation/Free services.
Logic issues issues are addressed in the memory map returned
by GetMemoryMap() due to missing cases for memory map entries
of type EfiConventionalMemory that overlap special memory bins.
Add logic to handle all possible memory map splits required to
convert internal memory map entries into an EFI Memory Map with
EFI Memory Map entries the follow alignment requirements when
the EFI Memory Map entries cover memory bins.
The four cases that must be handled are:
* Memory map entry contained within a bin. [Already covered]
Convert memory map entry type
* Memory map entry overlaps beginning of bin. [Added]
Split memory map entry at beginning of bin.
* Memory map entry overlaps end of bin. [Added]
Split memory map entry at end of bin.
* Memory map entry overlaps entire bin. [Added]
Split memory map entry at both ends of bin.
Signed-off-by: Michael D Kinney <[email protected]>
Compare: https://github.com/tianocore/edk2/compare/377cdf06921b...d419725b2320
To unsubscribe from these emails, change your notification settings at
https://github.com/tianocore/edk2/settings/notifications
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits