powerpc/pseries: Introduce option to build secure virtual machines

Introduce CONFIG_PPC_SVM to control support for secure guests and include
Ultravisor-related helpers when it is selected

Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190820021326.6884-3-bauerman@linux.ibm.com
This commit is contained in:
Thiago Jung Bauermann 2019-08-19 23:13:12 -03:00 committed by Michael Ellerman
parent 9044adca78
commit 136bc0397a
3 changed files with 15 additions and 2 deletions

View File

@ -36,7 +36,7 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf); void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
/* Ultravisor */ /* Ultravisor */
#ifdef CONFIG_PPC_POWERNV #if defined(CONFIG_PPC_POWERNV) || defined(CONFIG_PPC_SVM)
long ucall_norets(unsigned long opcode, ...); long ucall_norets(unsigned long opcode, ...);
#else #else
static inline long ucall_norets(unsigned long opcode, ...) static inline long ucall_norets(unsigned long opcode, ...)

View File

@ -156,7 +156,9 @@ endif
obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o
obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
obj-$(CONFIG_PPC_POWERNV) += ucall.o ifneq ($(CONFIG_PPC_POWERNV)$(CONFIG_PPC_SVM),)
obj-y += ucall.o
endif
# Disable GCOV, KCOV & sanitizers in odd or sensitive code # Disable GCOV, KCOV & sanitizers in odd or sensitive code
GCOV_PROFILE_prom_init.o := n GCOV_PROFILE_prom_init.o := n

View File

@ -145,3 +145,14 @@ config PAPR_SCM
tristate "Support for the PAPR Storage Class Memory interface" tristate "Support for the PAPR Storage Class Memory interface"
help help
Enable access to hypervisor provided storage class memory. Enable access to hypervisor provided storage class memory.
config PPC_SVM
bool "Secure virtual machine (SVM) support for POWER"
depends on PPC_PSERIES
help
There are certain POWER platforms which support secure guests using
the Protected Execution Facility, with the help of an Ultravisor
executing below the hypervisor layer. This enables support for
those guests.
If unsure, say "N".