Ard Biesheuvel 12c6484058 OvmfPkg/XenHypercallLib: enable virt extensions for ARM
XenHypercallLib uses the 'hvc' instruction, which is not implemented
on all ARMv7 CPUs, and so we need to explicitly specify a CPU that
has the virtualization extensions.

This override used to be set at the platform level, but this was removed
in commit 0d36a219c7bdbb27d775b50837823b2a9928147c
('ArmPlatformPkg/PL031RealTimeClockLib: drop ArmPlatformSysConfigLib
reference), under the assumption that all users of the 'hvc' instruction
had already been fixed.

So fix this for GNU binutils by adding the 'virt' arch extension
directive, and for RVCT by setting the --cpu command line option to a
CPU that is virt capable.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
2017-11-17 09:56:50 +00:00

70 lines
1.8 KiB
INI

## @file
# Xen Hypercall abstraction lib for Intel and ARM architectures
#
# Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = XenHypercallLib
FILE_GUID = B5EE9A32-CA5A-49A8-82E3-ADA4CCB77C7C
MODULE_TYPE = BASE
VERSION_STRING = 1.0
CONSTRUCTOR = XenHypercallLibInit
[Defines.IA32, Defines.X64]
LIBRARY_CLASS = XenHypercallLib|DXE_DRIVER UEFI_DRIVER
[Defines.ARM, Defines.AARCH64]
LIBRARY_CLASS = XenHypercallLib
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
#
[Sources.IA32, Sources.X64]
X86XenHypercall.c
[Sources.IA32]
Ia32/hypercall.nasm
[Sources.X64]
X64/hypercall.nasm
[Sources.ARM, Sources.AARCH64]
ArmXenHypercall.c
[Sources.ARM]
Arm/Hypercall.S
[Sources.AARCH64]
Aarch64/Hypercall.S
[Sources]
XenHypercall.c
[Packages]
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec
[LibraryClasses.IA32, LibraryClasses.X64]
BaseLib
HobLib
DebugLib
[Guids.IA32, Guids.X64]
gEfiXenInfoGuid
[BuildOptions.ARM]
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15