This patchset contains a set of GLUE updates to enable switching between
so-called A/UX mode and classic mode which is required to allow the q800
machine to boot both Linux/NetBSD and MacOS.
Patch 1 updates the comment for the VIA1B_vMystery bit indicating that
VIA1 port B bit 6 is used to switch between A/UX and classic mode.
Patch 2 moves the VIA1 IRQ from level 1 to level 6: this is because in
its current configuration the q800 machine is statically wired in A/UX mode
except for VIA1 which is currently still wired according to classic mode.
Patch 3 starts the process of abstracting the CPU IRQ levels from the GPIO
pins by using a set of numbered GPIO defines and using these to map to the
corresponding CPU IRQs accordingly.
Patches 4 and 5 add a GPIO to VIA1 so that updates to the VIA1B_vMystery bit
will set the auxmode variable in the GLUE device to facilitate dynamic CPU
IRQ routing.
Patches 6 and 7 adjust the CPU IRQ routing in GLUE_set_irq() so that the
incoming IRQs are mapped to the appropriate CPU IRQ levels dynamically based
upon the auxmode variable.
Finally patch 8 adds an NMI handler which can be used to invoke the Quadra's
programmer switch from the monitor for debugging.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Mark Cave-Ayland (8):
mac_via: update comment for VIA1B_vMystery bit
q800: move VIA1 IRQ from level 1 to level 6
q800: use GLUE IRQ numbers instead of IRQ level for GLUE IRQs
mac_via: add GPIO for A/UX mode
q800: wire up auxmode GPIO to GLUE
q800: route SONIC on-board Ethernet IRQ via nubus IRQ 9 in classic
mode
q800: wire up remaining IRQs in classic mode
q800: add NMI handler
hw/m68k/q800.c | 174 +++++++++++++++++++++++++++++++++++++-
hw/misc/mac_via.c | 22 +++++
hw/misc/trace-events | 1 +
include/hw/misc/mac_via.h | 1 +
4 files changed, 194 insertions(+), 4 deletions(-)
--
2.20.1