Ovmf/Xen: implement XenHypercallLib for ARM

This patch adds an implementation of XenHypercallLib for both
AArch64 and AArch32 execution modes on ARM systems.

Contributed-under: TianoCore Contribution Agreement 1.0
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16974 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel
2015-02-28 20:33:22 +00:00
committed by lersek
parent d9fdfd851a
commit b94c3ac93d
5 changed files with 528 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
/** @file
AArch64 implementation of XenHypercall2
Copyright (C) 2014, Linaro Ltd.
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.
**/
#include <IndustryStandard/Xen/arch-arm/xen.h>
.text
.global ASM_PFX(XenHypercall2)
ASM_PFX(XenHypercall2):
mov x16, x0
mov x0, x1
mov x1, x2
hvc #XEN_HYPERCALL_TAG
ret

View File

@@ -0,0 +1,25 @@
/** @file
ARM (AArch32) implementation of XenHypercall2
Copyright (C) 2014, Linaro Ltd.
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.
**/
#include <IndustryStandard/Xen/arch-arm/xen.h>
.text
.global ASM_PFX(XenHypercall2)
ASM_PFX(XenHypercall2):
mov r12, r0
mov r0, r1
mov r1, r2
hvc #XEN_HYPERCALL_TAG
bx lr

View File

@@ -0,0 +1,40 @@
## @file
# Xen Hypercall abstraction lib for ARM architecture
#
# 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 = XenHypercallLibArm
FILE_GUID = 9607AC2E-FCB9-499B-9475-612282019568
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = XenHypercallLib
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = ARM AARCH64
#
[Sources.ARM]
Arm/Hypercall.S
[Sources.AARCH64]
Aarch64/Hypercall.S
[Sources]
XenHypercall.c
[Packages]
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec