Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Mark Rutland fafb7e9c11 ArmPkg: correct TTBR1_EL1 settings in TCR_EL1
As EDK2 runs in an idmap, we do not use TTBR1_EL1, nor do we configure
it. TTBR1_EL1 may contain UNKNOWN values if it is not programmed since
reset.

Prior to enabling the MMU, we do not set TCR_EL1.EPD1, and hence the CPU
may make page table walks via TTBR1_EL1 at any time, potentially using
UNKNOWN values. This can result in a number of potential problems (e.g.
the CPU may load from MMIO registers as part of a page table walk).

Additionally, in the presence of Cortex-A57 erratum #822227, we must
program TCR_EL1.TG1 == 0b1x (e.g. 4KB granule) regardless of the value
of TCR_EL1.EPD1, to ensure that EDK2 can make forward progress under a
hypervisor which makes use of PAR_EL1.

This patch ensures that we program TCR_EL1.EPD1 and TCR_EL1.TG1 as above
to avoid these issues. TCR_EL1.TG1 is set to 4K for all targets, as any
CPU capable of running EDK2 must support this granule, and given
TCR_EL1.EPD1, programming the field is not detrimental in the absence of
the erratum.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18903 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-19 14:14:25 +00:00
AppPkg AppPkg/Applications/Python/Python-2.7.10: Initial Checkin part 5/5. 2015-11-07 19:43:57 +00:00
ArmPkg ArmPkg: correct TTBR1_EL1 settings in TCR_EL1 2015-11-19 14:14:25 +00:00
ArmPlatformPkg ArmVExpressPkg/ArmVExpressLibRTSM: map NOR flash as normal memory 2015-11-18 11:50:50 +00:00
ArmVirtPkg ArmVirtPkg/ArmVirtPlatformLib: map executable NOR region as normal memory 2015-11-18 11:50:33 +00:00
BaseTools BaseTool/UPT: Add supporting of decimal numbers for INF_VERSION and DEC_SPECIFICATION 2015-11-18 05:38:35 +00:00
BeagleBoardPkg ArmPkg BeagleBoardPkg Omap35xxPkg: fix typo 'ArmDataSyncronizationBarrier' 2015-11-09 13:25:50 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg:Removing EFI_RESOURCE_ATTRIBUTE_TESTED 2015-08-18 16:08:22 +00:00
CorebootPayloadPkg CorebootPayloadPkgIa32: Don't specify X64 architecture 2015-07-27 06:43:29 +00:00
CryptoPkg CryptoPkg: fix AARCH64 build under CLANG35 2015-11-05 14:41:43 +00:00
DuetPkg DuetPkg: exit pci function loops early if device is not multi-function 2015-10-06 20:55:36 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Remove gZeroGuid def in FrameworkHiiOnUefiHiiThunk 2015-07-07 03:05:18 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: Add EFIAPI to several Ebl functions 2015-10-29 12:59:06 +00:00
EmulatorPkg EmulatorPkg/build.sh: Use GCC49 toolchain with GCC 5.* 2015-10-08 05:51:57 +00:00
FatBinPkg FatBinPkg: Update EBC/IA32/X64/IPF binaries 2015-08-28 03:14:25 +00:00
IntelFrameworkModulePkg IntelFrameworkModulePkg BdsDxe: Use PcdSet##S to replace PcdSet## 2015-10-15 00:57:45 +00:00
IntelFrameworkPkg IntelFrameworkPkg: Update DEC and DSC version from 0.94 to 0.96 2015-08-20 08:45:45 +00:00
IntelFspPkg Handle extra module patchable PCD variable in Linux map. 2015-09-06 22:36:43 +00:00
IntelFspWrapperPkg Publish FspHob to PEI Hob by default. 2015-10-27 23:10:49 +00:00
MdeModulePkg MdeModulePkg PeiCore: PeiInstallPeiMemory improper ASSERT test on second call 2015-11-18 10:13:31 +00:00
MdePkg MdePkg: Add Platform Recovery definitions. 2015-11-17 10:06:44 +00:00
NetworkPkg NetworkPkg: Httpboot will fail the 2nd time result by wrong TCP state. 2015-11-13 09:35:54 +00:00
Nt32Pkg Nt32Pkg: Use BootLogoLib for logo and progress bar drawing. 2015-11-12 05:39:39 +00:00
Omap35xxPkg ArmPkg BeagleBoardPkg Omap35xxPkg: fix typo 'ArmDataSyncronizationBarrier' 2015-11-09 13:25:50 +00:00
OptionRomPkg OptionRomPkg: Remove redundant included header file defintion in Ax88772.h and Ax88772b.h files 2015-07-08 02:56:54 +00:00
OvmfPkg OvmfPkg: QemuFlashFvbServicesRuntimeDxe: clean up includes and libraries 2015-10-26 14:58:46 +00:00
PcAtChipsetPkg PcAtChipsetPkg: IdeControllerDxe: fix protocol usage hints in the INF file 2015-09-22 11:18:36 +00:00
PerformancePkg PerformancePkg/Dp_App: Support dumping cumulative data 2015-11-10 04:57:14 +00:00
SecurityPkg Add error handling for TPM in S3 resume failure. 2015-11-10 02:03:40 +00:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2015-09-18 05:51:14 +00:00
ShellPkg ShellPkg: Corrected CatSPrint usage to prevent memory leaks. 2015-11-19 08:37:03 +00:00
SourceLevelDebugPkg SourceLevelDebugPkg: DebugAgent: Set Local APIC SoftwareEnable 2015-10-30 17:53:53 +00:00
StdLib StdLib: remove mention of ARMGCC 2015-08-12 05:25:12 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg UefiCpuPkg: PiSmmCpuDxeSmm: Remove Framework compatibility 2015-11-05 00:01:45 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2TbltDevicePkg/Vlv2DeviceRefCodePkg: 2015-11-10 07:47:29 +00:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Sync the branch changes to Trunk, 2015-11-13 02:38:08 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat BaseTools: Update Edk2Setup.bat to support multiple workspaces 2015-10-08 09:29:36 +00:00
Maintainers.txt edk2: Change BaseTools owner in Maintainers.txt 2015-09-14 05:52:36 +00:00
edksetup.bat BaseTools: Update edksetup.bat to support multiple workspaces 2015-10-08 09:29:09 +00:00
edksetup.sh BaseTools: Update edksetup.sh to support multiple workspaces 2015-10-08 09:29:56 +00:00