Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Mark Rutland ee95f9e1fa ArmPkg/ArmLib: fix barriers in AArch64 ArmEnableMmu
The ARM architecture requires a DSB to complete TLB maintenance, with a
subsequent ISB being required to synchronize subsequent items in the
current instruction stream against the completed TLB maintenance.

The ArmEnableMmu function is currently missing the DSB, and hence the
TLB maintenance is not guaranteed to have completed at the point the MMU
is enabled. This may result in unpredictable behaviour.

The DSB subsequent to the write to SCTLR_EL1 is unnecessary; the ISB
alone is sufficient to complete all prior instructions and to
synchronise the new context with any subsequent instructions.

This patch adds missing DSBs to complete TLB maintenance, and removes
the unnecessary trailing DSB.

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

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18749 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-09 13:25:12 +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/ArmLib: fix barriers in AArch64 ArmEnableMmu 2015-11-09 13:25:12 +00:00
ArmPlatformPkg ArmPlatformPkg: Juno - add correct SPI interrupt numbers for MSI 2015-11-03 11:11:22 +00:00
ArmVirtPkg ArmVirtPkg: include BaseStackCheckLib also for AARCH64 2015-10-16 15:23:46 +00:00
BaseTools BaseTools GCC: move PECOFF_HEADER_SIZE definition before LD script 2015-11-09 08:39:28 +00:00
BeagleBoardPkg BeagleBoardPkg: remove outdated build scripts and instructions 2015-08-12 05:25:41 +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:Fix a bug that HttpLib can not parse Ipv6 address correctly. 2015-11-09 03:45:23 +00:00
MdePkg MdePkg/BaseSynchronizationLib: fix AArch64 return values 2015-10-27 11:56:57 +00:00
NetworkPkg NetworkPkg:Fix the issue that cannot parse ipv6 address correctly. 2015-11-09 07:00:20 +00:00
Nt32Pkg Nt32Pkg: Fix PlatformBootManagerLib to respect PcdShellFile. 2015-09-16 08:04:35 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +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: Fix ASSERT in GetNameFromHandle 2015-07-13 01:24:44 +00:00
SecurityPkg SecurityPkg: Remove temp return solution in PeiRsa2048Sha256 Section Lib 2015-11-06 01:56:51 +00:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2015-09-18 05:51:14 +00:00
ShellPkg ShellPkg: Don't strip positional parameters of quotation marks. 2015-11-09 02:29:31 +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 Fixed C-State issue of CPU1 of dual core. 2015-09-01 01:22:49 +00:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Sync the branch changes to trunk. 2015-10-27 07:44:24 +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