This series contains a number of tidy-ups and improvements to the NeXTCube machine
which include:
- Bringing the code up-to-date with our latest coding standards/APIs, in particular
related to the board configuration and IRQ wiring
- Remove the remaining overlapping memory regions and consolidating multiple
register implementations into a single place
- Add a new next-scsi device containing the ESP device and its associated
CSRs
- Adding the empty_slot device to fill unimplemented devices and removing
the "catch-all" next.scr memory region
- QOMifying the next-rtc device and wiring it up with gpios as required
The next-cube machine looks in fairly good shape now, the main remaining work is to
create a separate device for the DMA controller and update the wiring of the IRQs
(including to the CPU) accordingly.
There is no change to the behaviour of the next-cube machine with this series in
that the next-cube machine with a suitable ROM image can now load the kernel from
a pre-installed NeXTStep image and start executing it.
Note that due to the device model changes this is a migration break, however since
the next-cube machine is currently unable to boot anything useful, I don't see
this as an issue.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
[Patches still needing review: 21, 25, 28, 29, 30]
v3:
- Rebase onto master
- Fix addresses in comments for patch 2 as noted by Thomas
- Add R-B tags from Thomas and Phil
- Use s->rtc directly in patch 25 rather than object_resolve_path_component()
- Use s->escc directly in patch 11 rather than object_resolve_path_component()
- Add numeric suffixes for empty slot names in patch 14
- Drop patch 34 due to legal uncertainty of replace boilerplate licence text
with SPDX equivalent as indicated by Daniel
v2:
- Rebase onto master
- Drop patches 1 and 4 (these have been merged separately as bugfixes)
- Add R-B tags from Thomas and Phil
- Update commit message in patch 2
- Add comments containing system register addresses as requested by Thomas in
patch 2
- Update description for patch 7 explaining that the SCSI CSRs are also now
modelled as standard registers (similar to Previous)
- Update description for patch 8 explaining why the previously hardcoded value
has been dropped
- Add comments suggesting unimplemented devices in patch 14
- Remove next_rtc_vmstate from next_pc_vmstate in patch 25
- Fix cut/paste error in patch 30 headline
Mark Cave-Ayland (33):
next-cube: remove 0x14020 dummy value from next_mmio_read()
next-cube: remove overlap between next.dma and next.mmio memory
regions
next-cube: create new next.scsi container memory region
next-cube: move next_scsi_init() to next_pc_realize()
next-cube: introduce next_pc_init() object init function
next-cube: introduce next-scsi device
next-cube: move SCSI CSRs from next-pc to the next-scsi device
next-cube: move SCSI 4020/4021 logic from next-pc device to next-scsi
device
next-cube: move floppy disk MMIO to separate memory region in next-pc
next-cube: map ESCC registers as a subregion of the next.scr memory
region
next-cube: move ESCC to be QOM child of next-pc device
next-cube: move timer MMIO to separate memory region on next-pc device
next-cube: move en ethernet MMIO to separate memory region on next-pc
device
next-cube: add empty slots for unknown accesses to next.scr memory
region
next-cube: remove unused next.scr memory region
next-cube: rearrange NeXTState declarations to improve readability
next-cube: convert next-pc device to use Resettable interface
next-cube: rename typedef struct NextRtc to NeXTRTC
next-cube: use qemu_irq to drive int_status in next_scr2_rtc_update()
next-cube: separate rtc read and write shift logic
next-cube: always use retval to return rtc read values
next-cube: use named gpio to set RTC data bit in scr2
next-cube: use named gpio to read RTC data bit in scr2
next-cube: don't use rtc phase value of -1
next-cube: QOMify NeXTRTC
next-cube: move reset of next-rtc fields from next-pc to next-rtc
next-cube: move rtc-data-in gpio from next-pc to next-rtc device
next-cube: use named gpio output for next-rtc data
next-cube: add rtc-cmd-reset named gpio to reset the rtc state machine
next-cube: add rtc-power-out named gpio to trigger the NEXT_PWR_I
interrupt
next-cube: move next_rtc_cmd_is_write() and next_rtc_data_in_irq()
functions
next-cube: rename old_scr2 and scr2_2 in next_scr2_rtc_update()
next-cube: add my copyright to the top of the file
hw/m68k/Kconfig | 1 +
hw/m68k/next-cube.c | 1021 ++++++++++++++++++++++++++++---------------
2 files changed, 658 insertions(+), 364 deletions(-)
--
2.39.5