aboutsummaryrefslogtreecommitdiff
path: root/include/hw/m68k
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
parentc8e8bc85a6ba106ad4fd92468f6ef726200ab1ca (diff)
downloadqemu-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.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 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 */