hw/nubus: add nubus-virtio-mmio device

The nubus-virtio-mmio device is a Nubus card that contains a set of 32 virtio-mmio
devices and a goldfish PIC similar to the m68k virt machine that can be plugged
into the m68k q800 machine.

There are currently a number of drivers under development that can be used in
conjunction with this device to provide accelerated and/or additional hypervisor
services to 68k Classic MacOS.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-ID: <20240111102954.449462-4-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Mark Cave-Ayland 2024-01-11 10:29:54 +00:00 committed by Philippe Mathieu-Daudé
parent 8e8616f3db
commit 31ae8bb15d
3 changed files with 139 additions and 0 deletions

View file

@ -0,0 +1,36 @@
/*
* QEMU Macintosh Nubus Virtio MMIO card
*
* Copyright (c) 2023 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef HW_NUBUS_VIRTIO_MMIO_H
#define HW_NUBUS_VIRTIO_MMIO_H
#include "hw/nubus/nubus.h"
#include "qom/object.h"
#include "hw/intc/goldfish_pic.h"
#include "hw/virtio/virtio-mmio.h"
#define TYPE_NUBUS_VIRTIO_MMIO "nubus-virtio-mmio"
OBJECT_DECLARE_TYPE(NubusVirtioMMIO, NubusVirtioMMIODeviceClass,
NUBUS_VIRTIO_MMIO)
struct NubusVirtioMMIODeviceClass {
DeviceClass parent_class;
DeviceRealize parent_realize;
};
#define NUBUS_VIRTIO_MMIO_NUM_DEVICES 32
struct NubusVirtioMMIO {
NubusDevice parent_obj;
GoldfishPICState pic;
VirtIOMMIOProxy virtio_mmio[NUBUS_VIRTIO_MMIO_NUM_DEVICES];
};
#endif