[PATCH v2 0/8] q800: GLUE updates for A/UX mode

Mark Cave-Ayland posted 8 patches 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211020134131.4392-1-mark.cave-ayland@ilande.co.uk
Maintainers: Laurent Vivier <laurent@vivier.eu>
hw/m68k/q800.c            | 167 +++++++++++++++++++++++++++++++++++++-
hw/misc/mac_via.c         |  23 ++++++
hw/misc/trace-events      |   1 +
include/hw/misc/mac_via.h |   1 +
4 files changed, 188 insertions(+), 4 deletions(-)
[PATCH v2 0/8] q800: GLUE updates for A/UX mode
Posted by Mark Cave-Ayland 2 years, 6 months ago
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>

[Laurent: I recently discovered that this patchset is also a fix for the
qemu-m68k issue at https://github.com/vivier/qemu-m68k/issues/45]

v2:
- Rebase onto master
- Add R-B tags from Laurent
- Add comment about VIA1B_vMystery bit in via1_auxmode_update() in patch 4
- Use if statement instead of switch in patch 6
- Fix comment in patch 6 to read "classic mode" instead of "A/UX mode"
- Update cover letter to refer to github issue


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            | 167 +++++++++++++++++++++++++++++++++++++-
 hw/misc/mac_via.c         |  23 ++++++
 hw/misc/trace-events      |   1 +
 include/hw/misc/mac_via.h |   1 +
 4 files changed, 188 insertions(+), 4 deletions(-)

-- 
2.20.1