summary refs log tree commit diff stats
path: root/include/hw/m68k/next-cube.h
diff options
context:
space:
mode:
authorThomas Huth <huth@tuxfamily.org>2018-06-30 08:45:25 +0200
committerThomas Huth <huth@tuxfamily.org>2019-09-07 08:31:51 +0200
commit956a78118bfc7fa512b03cbe8a77b9384c6d89f4 (patch)
tree1c181972c4c30632586eddeb58d850abea5ea624 /include/hw/m68k/next-cube.h
parentc8e8bc85a6ba106ad4fd92468f6ef726200ab1ca (diff)
downloadfocaccia-qemu-956a78118bfc7fa512b03cbe8a77b9384c6d89f4.tar.gz
focaccia-qemu-956a78118bfc7fa512b03cbe8a77b9384c6d89f4.zip
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/next-cube.h')
-rw-r--r--include/hw/m68k/next-cube.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/hw/m68k/next-cube.h b/include/hw/m68k/next-cube.h
index 37f7ce3e34..a3be2b32ab 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 */