Commit 05d51e42 authored by Laurent Vivier's avatar Laurent Vivier Committed by Geert Uytterhoeven
Browse files

m68k: Introduce a virtual m68k machine



This machine allows to have up to 3.2 GiB and 128 Virtio devices.

It is based on android goldfish devices.

Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
Link: https://lore.kernel.org/r/20220406201523.243733-5-laurent@vivier.eu


Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
parent c92e7ef1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -17,3 +17,4 @@ obj-$(CONFIG_M68060) += ifpsp060/
obj-$(CONFIG_M68KFPU_EMU)	+= math-emu/
obj-$(CONFIG_M68000)		+= 68000/
obj-$(CONFIG_COLDFIRE)		+= coldfire/
obj-$(CONFIG_VIRT)		+= virt/
+17 −0
Original line number Diff line number Diff line
@@ -149,6 +149,23 @@ config SUN3

	  If you don't want to compile a kernel exclusively for a Sun 3, say N.

config VIRT
	bool "Virtual M68k Machine support"
	depends on MMU
	select GENERIC_CLOCKEVENTS
	select GOLDFISH
	select GOLDFISH_TIMER
	select GOLDFISH_TTY
	select M68040
	select MMU_MOTOROLA if MMU
	select RTC_CLASS
	select RTC_DRV_GOLDFISH
	select TTY
	select VIRTIO_MMIO
	help
	  This options enable a pure virtual machine based on m68k,
	  VIRTIO MMIO devices and GOLDFISH interfaces (TTY, RTC, PIC)

config PILOT
	bool

+68 −0
Original line number Diff line number Diff line
CONFIG_LOCALVERSION="-virt"
CONFIG_SYSVIPC=y
CONFIG_CGROUPS=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_VIRT=y
CONFIG_PROC_HARDWARE=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_AMIGA_PARTITION=y
CONFIG_ATARI_PARTITION=y
CONFIG_MAC_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
CONFIG_SUN_PARTITION=y
CONFIG_SYSV68_PARTITION=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_DEVTMPFS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_VIRTIO=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_DRM=y
CONFIG_DRM_VIRTIO_GPU=y
CONFIG_FB=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_VIRTIO=y
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_INPUT=y
CONFIG_EXT4_FS=y
CONFIG_AUTOFS_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_9P_FS=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_9P_FS_SECURITY=y
CONFIG_EARLY_PRINTK=y
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ extern int mac_parse_bootinfo(const struct bi_record *record);
extern int mvme147_parse_bootinfo(const struct bi_record *record);
extern int mvme16x_parse_bootinfo(const struct bi_record *record);
extern int q40_parse_bootinfo(const struct bi_record *record);
extern int virt_parse_bootinfo(const struct bi_record *record);

extern void config_amiga(void);
extern void config_apollo(void);
@@ -29,5 +30,6 @@ extern void config_mvme16x(void);
extern void config_q40(void);
extern void config_sun3(void);
extern void config_sun3x(void);
extern void config_virt(void);

#endif /* _M68K_CONFIG_H */
+3 −0
Original line number Diff line number Diff line
@@ -8,6 +8,9 @@
#include <asm/io_mm.h>
#endif

#define gf_ioread32 ioread32be
#define gf_iowrite32 iowrite32be

#include <asm-generic/io.h>

#endif /* _M68K_IO_H */
Loading