Skip to content

Commit

Permalink
UefiCpuPkg: Disable MTRR programming for UefiPayloadPkg
Browse files Browse the repository at this point in the history
The MTRRs have already been programmed by FSB.

Signed-off-by: Patrick Rudolph <[email protected]>
Change-Id: I8c6e7657b789edac8ee83a89318209a598712db8
  • Loading branch information
PatrickRudolph authored and MrChromebox committed Aug 7, 2024
1 parent f97c60f commit 8ea0ac7
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 3 deletions.
4 changes: 4 additions & 0 deletions UefiCpuPkg/Library/MtrrLib/MtrrLib.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@ MtrrLibIsMtrrSupported (
CPUID_VERSION_INFO_EDX Edx;
MSR_IA32_MTRRCAP_REGISTER MtrrCap;

if (PcdGetBool(PcdCpuDisableMtrrProgramming)) {
return FALSE;
}

//
// Check CPUID(1).EDX[12] for MTRR capability
//
Expand Down
2 changes: 1 addition & 1 deletion UefiCpuPkg/Library/MtrrLib/MtrrLib.inf
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@

[Pcd]
gUefiCpuPkgTokenSpaceGuid.PcdCpuNumberOfReservedVariableMtrrs ## SOMETIMES_CONSUMES

gUefiCpuPkgTokenSpaceGuid.PcdCpuDisableMtrrProgramming ## CONSUMES
4 changes: 4 additions & 0 deletions UefiCpuPkg/UefiCpuPkg.dec
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,10 @@
# @Prompt SMM Code Access Check.
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmCodeAccessCheckEnable|TRUE|BOOLEAN|0x60000013

## Disables MTRR programming in case it's already programmed by FSB.
# @Prompt Disable MTRR programming.
gUefiCpuPkgTokenSpaceGuid.PcdCpuDisableMtrrProgramming|FALSE|BOOLEAN|0x00000017

## Specifies the number of variable MTRRs reserved for OS use. The default number of
# MTRRs reserved for OS use is 2.
# @Prompt Number of reserved variable MTRRs.
Expand Down
8 changes: 6 additions & 2 deletions UefiCpuPkg/UefiCpuPkg.uni
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,13 @@

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuHotPlugDataAddress_HELP #language en-US "Contains the pointer to a CPU Hot Plug Data structure if CPU hot-plug is supported."

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuNumberOfReservedVariableMtrrs_PROMPT #language en-US "Number of reserved variable MTRRs"
#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuDisableMtrrProgramming_PROMPT #language en-US "Number of reserved variable MTRRs"

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuNumberOfReservedVariableMtrrs_HELP #language en-US "Specifies the number of variable MTRRs reserved for OS use."
#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuDisableMtrrProgramming_HELP #language en-US "Specifies the number of variable MTRRs reserved for OS use."

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuNumberOfReservedVariableMtrrs_PROMPT #language en-US "Disable MTRR programming."

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuNumberOfReservedVariableMtrrs_HELP #language en-US "Disables MTRR programming in case it's already programmed by FSB."

#string STR_gUefiCpuPkgTokenSpaceGuid_PcdCpuApLoopMode_PROMPT #language en-US "The AP wait loop state"

Expand Down
3 changes: 3 additions & 0 deletions UefiPayloadPkg/UefiPayloadPkg.dsc
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,9 @@
!endif
!endif

# Disable MTRR programming
gUefiCpuPkgTokenSpaceGuid.PcdCpuDisableMtrrProgramming|TRUE

[PcdsPatchableInModule.X64]
!if $(NETWORK_DRIVER_ENABLE) == TRUE
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
Expand Down

0 comments on commit 8ea0ac7

Please sign in to comment.