Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Ard Biesheuvel ce82984fe7 ArmPkg/CpuDxe: translate invalid memory types in EfiAttributeToArmAttribute
The single user of EfiAttributeToArmAttribute () is the protocol
method EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes(), which uses the
return value to compare against the ARM attributes of an existing mapping,
to infer whether it is actually necessary to change anything, or whether
the requested update is redundant. This saves some cache and TLB
maintenance on 32-bit ARM systems that use uncached translation tables.

However, EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes() may be invoked with
only permission bits set, in which case the implied requested action is to
update the permissions of the region without modifying the cacheability
attributes. This is currently not possible, because
EfiAttributeToArmAttribute () ASSERT()s [on AArch64] on Attributes arguments
that lack a cacheability bit.

So let's simply return TT_ATTR_INDX_MASK (AArch64) or
TT_DESCRIPTOR_SECTION_TYPE_FAULT (ARM) in these cases (or'ed with the
appropriate permission bits). This way, the return value is equally
suitable for checking whether the attributes need to be modified, but
in a way that accommodates the use without a cacheability bit set.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-02-21 17:23:03 +00:00
AppPkg AppPkg: Update email and URL. 2016-10-26 09:34:34 -07:00
ArmPkg ArmPkg/CpuDxe: translate invalid memory types in EfiAttributeToArmAttribute 2017-02-21 17:23:03 +00:00
ArmPlatformPkg ArmPlatformPkg/PL061Gpio: fix the offset value in Get function 2017-02-16 11:31:25 +00:00
ArmVirtPkg ArmVirtPkg/QemuFwCfgLib: implement QemuFwCfgSkipBytes() API 2017-01-31 00:14:41 +01:00
BaseTools BaseTools: Fix bug for GUIDED tool path override by DSC [BuildOptions] 2017-02-17 09:37:12 +08:00
BeagleBoardPkg Omap35xxPkg/PciEmulation: port to new non-discoverable device infrastructure 2016-12-18 17:31:47 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootPayloadPkg/CbSupportPei: Fix the memory map issue 2016-11-17 14:49:11 -08:00
CorebootPayloadPkg CorebootPayloadPkg: Use EfiEventGroupSignal from UefiLib 2017-01-20 15:55:41 +08:00
CryptoPkg CryptoPkg/TlsLib: Refine the coding style. 2017-01-06 11:59:43 +08:00
DuetPkg DuetPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix some typos of "according" 2017-02-08 14:49:21 +08: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: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-05 15:53:30 +00:00
EmulatorPkg EmulatorPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
FatBinPkg FatBinPkg: New EnhancedFatDxe binaries for IA32, X64, EBC and IPF 2016-12-19 15:26:52 +08:00
FatPkg FatPkg: Explicitly declare FAT_CLUSTER_SPECIAL as unsigned type 2017-01-12 21:26:27 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: Use EfiEventEmptyFunction from UefiLib 2017-01-20 15:55:32 +08:00
IntelFrameworkPkg IntelFrameworkPkg UefiLib: Make the event empty function public 2017-01-20 15:51:17 +08:00
IntelFsp2Pkg IntelFsp2Pkg: 41d739e breaks flat tree build 2016-12-05 14:17:23 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete. 2016-10-28 07:46:42 +08:00
IntelFspPkg IntelFspPkg: Fix typos in comments 2016-10-24 09:26:28 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Fix typos in comments 2016-10-24 09:26:30 +08:00
IntelSiliconPkg IntelSiliconPkg: Fix format issues 2016-12-20 10:51:16 +08:00
MdeModulePkg MdeModulePkg/BMMUiLib: Remove old useless data before new save action 2017-02-21 19:19:22 +08:00
MdePkg MdePkg/BasePrintLib: Add safe print functions [A|U]ValueToStringS 2017-02-21 13:56:14 +08:00
NetworkPkg NetworkPkg/IpSecDxe: Add check to avoid possible divide by zero 2017-02-21 09:25:54 +08:00
Nt32Pkg Nt32Pkg.dsc: Add flag to control HTTP connections 2017-01-23 10:27:45 +08:00
Omap35xxPkg Omap35xxPkg/PciEmulation: port to new non-discoverable device infrastructure 2016-12-18 17:31:47 +00:00
OptionRomPkg OptionRomPkg: Fix typos in comments 2016-11-15 11:05:34 +08:00
OvmfPkg OvmfPkg/AcpiPlatformDxe: replay QEMU_LOADER_WRITE_POINTER commands at S3 2017-02-21 13:10:42 +01:00
PcAtChipsetPkg PcAtChipsetPkg: Fix typing errors 2017-01-20 08:50:09 +08:00
PerformancePkg PerformancePkg/Dp_App: rebase to ARRAY_SIZE() 2016-10-27 11:10:59 +02:00
QuarkPlatformPkg QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Fix GCC build issues 2017-01-11 11:11:30 -08:00
QuarkSocPkg QuarkSocPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
SecurityPkg SecurityPkg/TpmCommandLib: Add Tpm2ReadPublic. 2017-02-21 16:47:18 +08:00
ShellBinPkg ShellBinPkg: New Shell binaries for IA32 and X64 2016-12-19 15:27:38 +08:00
ShellPkg ShellPkg/pci: Report error when invalid value is specified for "-ec" 2017-02-16 13:40:28 +08:00
SignedCapsulePkg SignedCapsulePkg/EdkiiSystemCapsuleLib: Fix logic error. 2017-02-08 21:39:15 -08:00
SourceLevelDebugPkg SourceLevelDebugPkg: Avoid to re-init IDT table again at SMI entry 2016-11-30 14:34:45 +08:00
StdLib StdLib/LibC ARM AARCH64: do not redefine compiler intrinsics 2016-08-09 10:10:12 +02:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg: Modify CpuIoPei to support new IoLib library 2017-01-17 10:10:32 +08:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg: Fixed thermal issue. 2017-02-08 15:32:39 +08:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg/BootScriptSaveDxe: save 64-bit LoopTimes 2017-01-03 12:23:41 +01:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat Edk2Setup.bat: Fix build errors from VS tools PREFIX ENV missing 2016-11-05 09:10:58 +08:00
Maintainers.txt Maintainers.txt: Change maintainer of VLV2 packages. 2016-10-27 21:08:23 +08:00
edksetup.bat edksetup.bat: make sure BASE_TOOLS_PATH be set correctly 2016-10-26 13:45:45 +08:00
edksetup.sh edksetup.sh, BaseTools/BuildEnv: add --reconfig support 2016-10-24 13:53:16 +01:00