mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
ARM64: XEN: Add a function to initialize Xen specific UEFI runtime services
When running on Xen hypervisor, runtime services are supported through hypercall. Add a Xen specific function to initialize runtime services. Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Tested-by: Julien Grall <julien.grall@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
a62ed50030
commit
be1aaf4e40
6
arch/arm/include/asm/xen/xen-ops.h
Normal file
6
arch/arm/include/asm/xen/xen-ops.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef _ASM_XEN_OPS_H
|
||||
#define _ASM_XEN_OPS_H
|
||||
|
||||
void xen_efi_runtime_setup(void);
|
||||
|
||||
#endif /* _ASM_XEN_OPS_H */
|
@ -1 +1,2 @@
|
||||
obj-y := enlighten.o hypercall.o grant-table.o p2m.o mm.o
|
||||
obj-$(CONFIG_XEN_EFI) += efi.o
|
||||
|
40
arch/arm/xen/efi.c
Normal file
40
arch/arm/xen/efi.c
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Linaro Limited, Shannon Zhao
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <linux/efi.h>
|
||||
#include <xen/xen-ops.h>
|
||||
#include <asm/xen/xen-ops.h>
|
||||
|
||||
/* Set XEN EFI runtime services function pointers. Other fields of struct efi,
|
||||
* e.g. efi.systab, will be set like normal EFI.
|
||||
*/
|
||||
void __init xen_efi_runtime_setup(void)
|
||||
{
|
||||
efi.get_time = xen_efi_get_time;
|
||||
efi.set_time = xen_efi_set_time;
|
||||
efi.get_wakeup_time = xen_efi_get_wakeup_time;
|
||||
efi.set_wakeup_time = xen_efi_set_wakeup_time;
|
||||
efi.get_variable = xen_efi_get_variable;
|
||||
efi.get_next_variable = xen_efi_get_next_variable;
|
||||
efi.set_variable = xen_efi_set_variable;
|
||||
efi.query_variable_info = xen_efi_query_variable_info;
|
||||
efi.update_capsule = xen_efi_update_capsule;
|
||||
efi.query_capsule_caps = xen_efi_query_capsule_caps;
|
||||
efi.get_next_high_mono_count = xen_efi_get_next_high_mono_count;
|
||||
efi.reset_system = NULL; /* Functionality provided by Xen. */
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xen_efi_runtime_setup);
|
6
arch/arm64/include/asm/xen/xen-ops.h
Normal file
6
arch/arm64/include/asm/xen/xen-ops.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef _ASM_XEN_OPS_H
|
||||
#define _ASM_XEN_OPS_H
|
||||
|
||||
void xen_efi_runtime_setup(void);
|
||||
|
||||
#endif /* _ASM_XEN_OPS_H */
|
@ -1,2 +1,3 @@
|
||||
xen-arm-y += $(addprefix ../../arm/xen/, enlighten.o grant-table.o p2m.o mm.o)
|
||||
obj-y := xen-arm.o hypercall.o
|
||||
obj-$(CONFIG_XEN_EFI) += $(addprefix ../../arm/xen/, efi.o)
|
||||
|
@ -275,7 +275,7 @@ config XEN_HAVE_PVMMU
|
||||
|
||||
config XEN_EFI
|
||||
def_bool y
|
||||
depends on X86_64 && EFI
|
||||
depends on (ARM || ARM64 || X86_64) && EFI
|
||||
|
||||
config XEN_AUTO_XLATE
|
||||
def_bool y
|
||||
|
Loading…
Reference in New Issue
Block a user