[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 08/11] hw/m68k/next-cube: Move rtc into NeXTPC struct
From: |
Thomas Huth |
Subject: |
Re: [PATCH 08/11] hw/m68k/next-cube: Move rtc into NeXTPC struct |
Date: |
Sat, 16 Jan 2021 11:35:10 +0100 |
Am Fri, 15 Jan 2021 20:12:03 +0000
schrieb Peter Maydell <peter.maydell@linaro.org>:
> Move the rtc into the NeXTPC struct. Since this is the last
> use of the 'backdoor' NextState pointer we can now remove that.
>
> Probably the RTC should be its own device at some point: in hardware
> there is a separate MCS1850 RTC chip connected to the Peripheral
> Controller via a 1-bit serial interface. That goes beyond the remit
> of the current refactoring, though.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> hw/m68k/next-cube.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
> index 5a8fc24ed35..3c83b874c56 100644
> --- a/hw/m68k/next-cube.c
> +++ b/hw/m68k/next-cube.c
> @@ -78,8 +78,6 @@ struct NeXTState {
> qemu_irq scsi_dma;
> qemu_irq scsi_reset;
> qemu_irq *fd_irq;
> -
> - NextRtc rtc;
> };
>
> #define TYPE_NEXT_PC "next-pc"
> @@ -88,9 +86,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(NeXTPC, NEXT_PC)
> struct NeXTPC {
> SysBusDevice parent_obj;
>
> - /* Temporary until all functionality has been moved into this
> device */
> - NeXTState *ns;
> -
> M68kCPU *cpu;
>
> MemoryRegion mmiomem;
> @@ -102,6 +97,8 @@ struct NeXTPC {
> uint8_t scsi_csr_2;
> uint32_t int_mask;
> uint32_t int_status;
> +
> + NextRtc rtc;
> };
>
> /* Thanks to NeXT forums for this */
> @@ -130,7 +127,7 @@ static void nextscr2_write(NeXTPC *s, uint32_t
> val, int size) static int phase;
> static uint8_t old_scr2;
> uint8_t scr2_2;
> - NextRtc *rtc = &s->ns->rtc;
> + NextRtc *rtc = &s->rtc;
>
> if (size == 4) {
> scr2_2 = (val >> 8) & 0xFF;
> @@ -864,6 +861,11 @@ static void next_pc_reset(DeviceState *dev)
> /* 0x0000XX00 << vital bits */
> s->scr1 = 0x00011102;
> s->scr2 = 0x00ff0c80;
> +
> + s->rtc.status = 0x90;
> +
> + /* Load RTC RAM - TODO: provide possibility to load contents
> from file */
> + memcpy(s->rtc.ram, rtc_ram2, 32);
> }
>
> static void next_pc_realize(DeviceState *dev, Error **errp)
> @@ -920,7 +922,6 @@ static void next_cube_init(MachineState *machine)
> MemoryRegion *bmapm2 = g_new(MemoryRegion, 1);
> MemoryRegion *sysmem = get_system_memory();
> const char *bios_name = machine->firmware ?: ROM_FILE;
> - NeXTState *ns = NEXT_MACHINE(machine);
> DeviceState *dev;
> DeviceState *pcdev;
>
> @@ -940,13 +941,6 @@ static void next_cube_init(MachineState *machine)
> pcdev = qdev_new(TYPE_NEXT_PC);
> object_property_set_link(OBJECT(pcdev), "cpu", OBJECT(cpu),
> &error_abort); sysbus_realize_and_unref(SYS_BUS_DEVICE(pcdev),
> &error_fatal);
> - /* Temporary while we refactor this code */
> - NEXT_PC(pcdev)->ns = ns;
> -
> - ns->rtc.status = 0x90;
> -
> - /* Load RTC RAM - TODO: provide possibility to load contents
> from file */
> - memcpy(ns->rtc.ram, rtc_ram2, 32);
>
> /* 64MB RAM starting at 0x04000000 */
> memory_region_add_subregion(sysmem, 0x04000000, machine->ram);
Reviewed-by: Thomas Huth <huth@tuxfamily.org>
- Re: [PATCH 04/11] hw/m68k/next-cube: Move scr_ops into NeXTPC device, (continued)
- [PATCH 05/11] hw/m68k/next-cube: Make next_irq take NeXTPC* as its opaque, Peter Maydell, 2021/01/15
- [PATCH 06/11] hw/m68k/next-cube: Move int_status and int_mask to NeXTPC struct, Peter Maydell, 2021/01/15
- [PATCH 07/11] hw/m68k/next-cube: Make next_irq GPIO inputs to NEXT_PC device, Peter Maydell, 2021/01/15
- [PATCH 09/11] hw/m68k/next-cube: Remove unused fields from NeXTState, Peter Maydell, 2021/01/15
- [PATCH 08/11] hw/m68k/next-cube: Move rtc into NeXTPC struct, Peter Maydell, 2021/01/15
- Re: [PATCH 08/11] hw/m68k/next-cube: Move rtc into NeXTPC struct,
Thomas Huth <=
- [PATCH 10/11] hw/m68k/next-cube: Add vmstate for NeXTPC device, Peter Maydell, 2021/01/15
- [PATCH 11/11] hw/m68k/next-cube: Add missing header comment to next-cube.h, Peter Maydell, 2021/01/15