audk/UefiCpuPkg
Dun Tan ae59b8ba41 UefiCpuPkg/PiSmmCpuDxeSmm:Map SMRAM in 4K page granularity
This patch is to map SMRAM in 4K page granularity
during SMM page table initialization(SmmInitPageTable)
so as to avoid the SMRAM paging-structure layout
change when SMI happens (PerformRemainingTasks).
The reason is to avoid the Paging-Structure change
impact to the multiple Processors. Refer SDM section
"4.10.4" & "4.10.5".

Currently, SMM BSP needs to update the SMRAM range
paging attribute in smm page table according to the
SmmMemoryAttributesTable when SMM ready to lock
happens. If the SMRAM range is not 4k mapped in page
table, the page table update process may split 1G/2M
paging entries to 4k ones.Meanwhile, all APs are still
running in SMI, which might access the affected
linear-address range between the time of modification
and the time of invalidation access. That will be
a potential problem leading exception happens.

Signed-off-by: Dun Tan <dun.tan@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
2024-02-06 08:51:48 +00:00
..
Application/Cpuid
CpuDxe UefiCpuPkg/CpuDxe: Eliminate the unused variable. 2023-10-12 07:30:46 +00:00
CpuDxeRiscV64 UefiCpuPkg: Add cache operations support for Arch proto 2024-02-04 03:09:12 +00:00
CpuFeatures
CpuIo2Dxe
CpuIo2Smm
CpuIoPei
CpuMpPei UefiCpuPkg: change name of gMpInformationHobGuid2 2024-01-15 01:46:36 +00:00
CpuS3DataDxe
CpuTimerDxeRiscV64 UefiCpuPkg/CpuTimerDxeRiscV64: Add support for Sstc 2024-01-11 12:07:42 +00:00
Include UefiCpuPkg: Add more Paging mode enumeration 2024-02-06 08:51:48 +00:00
Library UefiCpuPkg: Reduce and optimize access to attribute 2024-02-06 08:51:48 +00:00
MicrocodeMeasurementDxe
PiSmmCommunication
PiSmmCpuDxeSmm UefiCpuPkg/PiSmmCpuDxeSmm:Map SMRAM in 4K page granularity 2024-02-06 08:51:48 +00:00
ResetVector UefiCpuPkg/ResetVector: Remove AP waking vector from ResetVector 2023-09-18 02:39:25 +00:00
SecCore UefiCpuPkg/SecCore: Remove AP waking Vector logic in SecCore 2023-09-18 02:39:25 +00:00
SecMigrationPei
Test
Universal/Acpi/S3Resume2Pei
UefiCpuPkg.ci.yaml
UefiCpuPkg.dec UefiCpuPkg: change name of gMpInformationHobGuid2 2024-01-15 01:46:36 +00:00
UefiCpuPkg.dsc UefiCpuPkg: Implements SmmCpuSyncLib library instance 2023-12-20 02:30:56 +00:00
UefiCpuPkg.uni
UefiCpuPkgExtra.uni