Commit 35546aee authored by Jiaxun Yang's avatar Jiaxun Yang Committed by Thomas Bogendoerfer
Browse files

MIPS: Retire kvm paravirt



paravirt machine was introduced for Cavium's partial virtualization
technology, however, it's host side support and QEMU support never
landed in upstream.

As Cavium was acquired by Marvel and they have no intention to maintain
their MIPS product line, also paravirt is unlikely to be utilized by
community users, it's time to retire it if nobody steps in to maintain
it.

Signed-off-by: default avatarJiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent 4e4fcc9e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ platform-$(CONFIG_MACH_LOONGSON32) += loongson32/
platform-$(CONFIG_MACH_LOONGSON64)	+= loongson64/
platform-$(CONFIG_MIPS_MALTA)		+= mti-malta/
platform-$(CONFIG_NLM_COMMON)		+= netlogic/
platform-$(CONFIG_MIPS_PARAVIRT)	+= paravirt/
platform-$(CONFIG_PIC32MZDA)		+= pic32/
platform-$(CONFIG_MACH_PISTACHIO)	+= pistachio/
platform-$(CONFIG_SOC_PNX833X)		+= pnx833x/
+0 −19
Original line number Diff line number Diff line
@@ -1013,24 +1013,6 @@ config NLM_XLP_BOARD
	  This board is based on Netlogic XLP Processor.
	  Say Y here if you have a XLP based board.

config MIPS_PARAVIRT
	bool "Para-Virtualized guest system"
	select CEVT_R4K
	select CSRC_R4K
	select SYS_SUPPORTS_64BIT_KERNEL
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_SMP
	select NR_CPUS_DEFAULT_4
	select SYS_HAS_EARLY_PRINTK
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_HAS_CPU_MIPS64_R2
	select SYS_HAS_CPU_CAVIUM_OCTEON
	select HAVE_PCI
	select SWAP_IO_SPACE
	help
	  This option supports guest running under ????

endchoice

source "arch/mips/alchemy/Kconfig"
@@ -1055,7 +1037,6 @@ source "arch/mips/loongson2ef/Kconfig"
source "arch/mips/loongson32/Kconfig"
source "arch/mips/loongson64/Kconfig"
source "arch/mips/netlogic/Kconfig"
source "arch/mips/paravirt/Kconfig"

endmenu

+0 −98
Original line number Diff line number Diff line
CONFIG_SYSVIPC=y
CONFIG_PREEMPT=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
CONFIG_SLAB=y
CONFIG_MIPS_PARAVIRT=y
CONFIG_CPU_MIPS64_R2=y
CONFIG_64BIT=y
CONFIG_SMP=y
CONFIG_HZ_1000=y
CONFIG_PCI=y
CONFIG_MIPS32_O32=y
CONFIG_MIPS32_N32=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
# CONFIG_WIRELESS is not set
# CONFIG_FW_LOADER is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_PHYLIB=y
CONFIG_BCM87XX_PHY=y
CONFIG_BROADCOM_PHY=y
CONFIG_MARVELL_PHY=y
# CONFIG_WLAN is not set
# CONFIG_INPUT is not set
# CONFIG_SERIO is not set
# CONFIG_VT is not set
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
# CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_DES=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_FTRACE is not set
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ generated-y += syscall_table_64_n32.h
generated-y += syscall_table_64_n64.h
generated-y += syscall_table_64_o32.h
generic-y += export.h
generic-y += kvm_para.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += parport.h

arch/mips/include/asm/kvm_para.h

deleted100644 → 0
+0 −115
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_MIPS_KVM_PARA_H
#define _ASM_MIPS_KVM_PARA_H

#include <uapi/asm/kvm_para.h>

#define KVM_HYPERCALL ".word 0x42000028"

/*
 * Hypercalls for KVM.
 *
 * Hypercall number is passed in v0.
 * Return value will be placed in v0.
 * Up to 3 arguments are passed in a0, a1, and a2.
 */
static inline unsigned long kvm_hypercall0(unsigned long num)
{
	register unsigned long n asm("v0");
	register unsigned long r asm("v0");

	n = num;
	__asm__ __volatile__(
		KVM_HYPERCALL
		: "=r" (r) : "r" (n) : "memory"
		);

	return r;
}

static inline unsigned long kvm_hypercall1(unsigned long num,
					unsigned long arg0)
{
	register unsigned long n asm("v0");
	register unsigned long r asm("v0");
	register unsigned long a0 asm("a0");

	n = num;
	a0 = arg0;
	__asm__ __volatile__(
		KVM_HYPERCALL
		: "=r" (r) : "r" (n), "r" (a0) : "memory"
		);

	return r;
}

static inline unsigned long kvm_hypercall2(unsigned long num,
					unsigned long arg0, unsigned long arg1)
{
	register unsigned long n asm("v0");
	register unsigned long r asm("v0");
	register unsigned long a0 asm("a0");
	register unsigned long a1 asm("a1");

	n = num;
	a0 = arg0;
	a1 = arg1;
	__asm__ __volatile__(
		KVM_HYPERCALL
		: "=r" (r) : "r" (n), "r" (a0), "r" (a1) : "memory"
		);

	return r;
}

static inline unsigned long kvm_hypercall3(unsigned long num,
	unsigned long arg0, unsigned long arg1, unsigned long arg2)
{
	register unsigned long n asm("v0");
	register unsigned long r asm("v0");
	register unsigned long a0 asm("a0");
	register unsigned long a1 asm("a1");
	register unsigned long a2 asm("a2");

	n = num;
	a0 = arg0;
	a1 = arg1;
	a2 = arg2;
	__asm__ __volatile__(
		KVM_HYPERCALL
		: "=r" (r) : "r" (n), "r" (a0), "r" (a1), "r" (a2) : "memory"
		);

	return r;
}

static inline bool kvm_check_and_clear_guest_paused(void)
{
	return false;
}

static inline unsigned int kvm_arch_para_features(void)
{
	return 0;
}

static inline unsigned int kvm_arch_para_hints(void)
{
	return 0;
}

#ifdef CONFIG_MIPS_PARAVIRT
static inline bool kvm_para_available(void)
{
	return true;
}
#else
static inline bool kvm_para_available(void)
{
	return false;
}
#endif


#endif /* _ASM_MIPS_KVM_PARA_H */
Loading