summaryrefslogtreecommitdiff
path: root/ArmVirtPkg/Library/ArmVirtPlatformLib
AgeCommit message (Collapse)Author
2016-10-25ArmVirtPkg/ArmVirtPlatformLib: eliminate unchecked PcdSetXX() callsLaszlo Ersek
These are deprecated / disabled under the DISABLE_NEW_DEPRECATED_INTERFACES feature test macro. Introduce a variable called PcdStatus, and use it to assert the success of these operations (there is no reason for them to fail here). Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=165 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> # RVCT Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-08-11ArmVirtPkg: clean up assembly source filesArd Biesheuvel
This updates all assembly source files under ArmVirtPkg to mark exported functions as ASM_FUNC(), which puts them in a separate section, allowing the linker to prune code that is left unused. At the same time, clean up the code to get rid of LoadConstantToReg() instances involving symbol references, each of which emits an absolute literal, and hence and entry in the PE/COFF .reloc table. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-12-04ArmVirtPkg: ArmVirtPlatformLib: find the lowest memory nodeShannon Zhao
While QEMU NUMA support on ARM will introduce more than one /memory node in the device tree, it needs to find the lowest one and set PcdSystemMemorySize with the actual size of this memory node. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19123 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-27ArmVirtPkg: drop ArmPlatformGlobalVariableLib dependencyArd Biesheuvel
Now that all PeiServicesTablePointerLib and PrePiHobListPointerLib library dependencies in both ArmVirtQemu and ArmVirtXen are satisfied by implementations that do not depend on ArmPlatformGlobalVariableLib, we can remove all mention of it from the various .dsc files. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18986 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-24ArmVirtPkg/ArmVirtPlatformLib: reduce ID map size to GCD region sizeArd Biesheuvel
The ID mapping routines on virtual platforms simply map the entire hardware supported physical address space as device memory, and then punch some holes for regions that need to be mapped cacheable. On virtual platforms hosted on CPUs that support a large physical address range, this may result in a lot of overhead, i.e., 4 KB of page tables for each 512 GB of address space, which quickly adds up (i.e., 2 MB for the architectural maximum of 48 bits). Since there may be a platform specific limit to the size of the (I)PA space that is not reflected by CPU id registers, restrict the range of the ID mapping to gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize bits. This makes sense by itself, since we cannot manipulate mappings above that limit anwyay (because they are not covered by GCD), and it allows the PCD be set to a lower value by platforms whose (I)PA space is smaller than the hardware supported maximum. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Wei Huang <wei@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18929 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-18ArmVirtPkg/ArmVirtPlatformLib: map executable NOR region as normal memoryArd Biesheuvel
The ARM architecture version 7 and later mandates that device mappings have the XN (non-executable) bit set, to prevent speculative instruction fetches from read-sensitive regions. This implies that we should not map regions as device if we want to execute from them, so the NOR region that contains our FD image should be mapped as normal memory instead. The MMU code deals correctly with overlapping ARM_MEMORY_REGION_DESCRIPTOR entries, and later entries in the array take precedence over earlier ones. So simply add an entry to the end of the array that overrides the mapping attributes of the FD image, wherever it resides. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18889 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-29Renamed ArmPlatformPkg/ArmVirtualizationPkg into ArmVirtPkgOlivier Martin
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17537 6f19259b-4bc3-4df7-8a09-765794883524