Am Wed, 23 Oct 2024 09:58:47 +0100 schrieb Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>:
> This allows us to decouple the next-pc and next-rtc devices from each > other in next_scr2_rtc_update(). > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> > --- > hw/m68k/next-cube.c | 23 +++++++++++++++++++---- > 1 file changed, 19 insertions(+), 4 deletions(-) > > diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c > index bd24359913..16b16e9956 100644 > --- a/hw/m68k/next-cube.c > +++ b/hw/m68k/next-cube.c > @@ -108,6 +108,7 @@ struct NeXTPC { > NeXTRTC rtc; > qemu_irq rtc_power_irq; > qemu_irq rtc_data_irq; > + qemu_irq rtc_cmd_reset_irq; > }; > > typedef struct next_dma { > @@ -264,7 +265,6 @@ static void next_rtc_data_in_irq(void *opaque, int n, int > level) > static void next_scr2_rtc_update(NeXTPC *s) > { > uint8_t old_scr2, scr2_2; > - NeXTRTC *rtc = &s->rtc; > > old_scr2 = extract32(s->old_scr2, 8, 8); > scr2_2 = extract32(s->scr2, 8, 8); > @@ -282,9 +282,7 @@ static void next_scr2_rtc_update(NeXTPC *s) > } > } else { > /* else end or abort */ > - rtc->phase = 0; > - rtc->command = 0; > - rtc->value = 0; > + qemu_irq_raise(s->rtc_cmd_reset_irq); > } > } Don't we also need a spot where the gpio gets lowered again? Thomas