lkml.org 
[lkml]   [2021]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/2] m68k: Add Virtual M68k Machine
Date
The most powerful m68k machine emulated by QEMU is a Quadra 800,

but this machine is very limited: only 1 GiB of memory and only some

specific interfaces, with no DMA.



The Virtual M68k Machine is based on Goldfish interfaces defined by Google

for Android simulator. It uses Goldfish-rtc (timer and RTC),

Goldfish-pic (PIC) and Goldfish-tty (for early tty).



The machine is created with 128 virtio-mmio buses, and they can

be used to add serial console, GPU, disk, NIC, HID, hwrng, 9PFS...



The virtual m68k machine has been merged in QEMU and will be available

with the release 6.0.



This series introduces the support of this new machine in the linux kernel.



If you want to try:



- Configure and build latest QEMU with (or download qemu 6.0 binary):



.../configure --target-list=3Dm68k-softmmu --enable-virglrenderer

make



- Configure and build linux with:



make virt_defconfig

make vmlinux



A pre-installed qcow2 disk image is available at:



http://vivier.eu/debian-10.0.qcow2



You can run the machine with something like:



qemu-system-m68k -M virt \

-m 3G \

-chardev stdio,signal=3Doff,mux=3Don,id=3Dchar0 \

-mon chardev=3Dchar0,mode=3Dreadline \

-kernel vmlinux \

-append "console=3Dhvc0 root=3D/dev/vda2" \

-blockdev node-name=3Dsystem,driver=3Dfile,filename=3Ddebian-10.0.qcow2 \

-blockdev node-name=3Ddrive0,driver=3Dqcow2,file=3Dsystem \

-device virtio-blk-device,drive=3Ddrive0 \

-serial chardev:char0 \

-device virtio-net-device,netdev=3Dhostnet0 \

-netdev bridge,id=3Dhostnet0,br=3Dvirbr0,helper=3D/usr/libexec/qemu-bridge-=

helper \

-device virtio-serial-device \

-device virtio-gpu-device \

-device virtconsole,chardev=3Dchar0 \

-device virtio-keyboard-device \

-device virtio-mouse-device



You can watch a presentation about the machine on the Planet m68k channel:



https://youtu.be/s_ve0bCC9q4

[Demo at 38:00]



Thanks,

Laurent



Laurent Vivier (2):

rtc: goldfish: remove dependency to OF

m68k: introduce a virtual m68k machine



arch/m68k/Kbuild | 1 +

arch/m68k/Kconfig.machine | 17 +++

arch/m68k/configs/virt_defconfig | 93 ++++++++++++++++

arch/m68k/include/asm/irq.h | 3 +-

arch/m68k/include/asm/pgtable_mm.h | 7 ++

arch/m68k/include/asm/setup.h | 44 ++++++--

arch/m68k/include/asm/virt.h | 26 +++++

arch/m68k/include/uapi/asm/bootinfo-virt.h | 18 ++++

arch/m68k/include/uapi/asm/bootinfo.h | 1 +

arch/m68k/kernel/Makefile | 1 +

arch/m68k/kernel/head.S | 30 ++++++

arch/m68k/kernel/setup_mm.c | 9 ++

arch/m68k/mm/kmap.c | 20 ++--

arch/m68k/virt/Makefile | 6 ++

arch/m68k/virt/config.c | 118 +++++++++++++++++++++

arch/m68k/virt/ints.c | 110 +++++++++++++++++++

arch/m68k/virt/platform.c | 80 ++++++++++++++

arch/m68k/virt/timer.c | 91 ++++++++++++++++

drivers/rtc/Kconfig | 2 +-

19 files changed, 659 insertions(+), 18 deletions(-)

create mode 100644 arch/m68k/configs/virt_defconfig

create mode 100644 arch/m68k/include/asm/virt.h

create mode 100644 arch/m68k/include/uapi/asm/bootinfo-virt.h

create mode 100644 arch/m68k/virt/Makefile

create mode 100644 arch/m68k/virt/config.c

create mode 100644 arch/m68k/virt/ints.c

create mode 100644 arch/m68k/virt/platform.c

create mode 100644 arch/m68k/virt/timer.c



--=20

2.30.2



\
 
 \ /
  Last update: 2021-03-23 23:16    [W:0.237 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site