diff options
author | Thomas Huth <huth@tuxfamily.org> | 2018-06-30 08:45:25 +0200 |
---|---|---|
committer | Thomas Huth <huth@tuxfamily.org> | 2019-09-07 08:31:51 +0200 |
commit | 956a78118bfc7fa512b03cbe8a77b9384c6d89f4 (patch) | |
tree | 1c181972c4c30632586eddeb58d850abea5ea624 /include/hw/m68k | |
parent | c8e8bc85a6ba106ad4fd92468f6ef726200ab1ca (diff) | |
download | qemu-956a78118bfc7fa512b03cbe8a77b9384c6d89f4.zip qemu-956a78118bfc7fa512b03cbe8a77b9384c6d89f4.tar.gz qemu-956a78118bfc7fa512b03cbe8a77b9384c6d89f4.tar.bz2 |
m68k: Add NeXTcube machine
It is still quite incomplete (no SCSI, no floppy emulation, no network,
etc.), but the firmware already shows up the debug monitor prompt in the
framebuffer display, so at least the very basics are already working.
This code has been taken from Bryce Lanham's GSoC 2011 NeXT branch at
https://github.com/blanham/qemu-NeXT/blob/next-cube/hw/next-cube.c
and altered quite a bit to fit the latest interface and coding conventions
of the current QEMU.
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190831074519.32613-4-huth@tuxfamily.org>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Diffstat (limited to 'include/hw/m68k')
-rw-r--r-- | include/hw/m68k/next-cube.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/hw/m68k/next-cube.h b/include/hw/m68k/next-cube.h index 37f7ce3..a3be2b3 100644 --- a/include/hw/m68k/next-cube.h +++ b/include/hw/m68k/next-cube.h @@ -6,4 +6,42 @@ #define TYPE_NEXTKBD "next-kbd" +enum next_dma_chan { + NEXTDMA_FD, + NEXTDMA_ENRX, + NEXTDMA_ENTX, + NEXTDMA_SCSI, + NEXTDMA_SCC, + NEXTDMA_SND +}; + +#define DMA_ENABLE 0x01000000 +#define DMA_SUPDATE 0x02000000 +#define DMA_COMPLETE 0x08000000 + +#define DMA_M2DEV 0x0 +#define DMA_SETENABLE 0x00010000 +#define DMA_SETSUPDATE 0x00020000 +#define DMA_DEV2M 0x00040000 +#define DMA_CLRCOMPLETE 0x00080000 +#define DMA_RESET 0x00100000 + +enum next_irqs { + NEXT_FD_I, + NEXT_KBD_I, + NEXT_PWR_I, + NEXT_ENRX_I, + NEXT_ENTX_I, + NEXT_SCSI_I, + NEXT_CLK_I, + NEXT_SCC_I, + NEXT_ENTX_DMA_I, + NEXT_ENRX_DMA_I, + NEXT_SCSI_DMA_I, + NEXT_SCC_DMA_I, + NEXT_SND_I +}; + +void next_irq(void *opaque, int number, int level); + #endif /* NEXT_CUBE_H */ |