[PATCH v2 14/34] next-cube: add empty slots for unknown accesses to next.scr memory region

Mark Cave-Ayland posted 34 patches 5 months ago
There is a newer version of this series
[PATCH v2 14/34] next-cube: add empty slots for unknown accesses to next.scr memory region
Posted by Mark Cave-Ayland 5 months ago
The next.scr memory is now effectively unused, however there are 3 separate region
accesses still logged that occur when booting a NeXTStep disk image. Use the
empty_slot device to capture and ignore memory accesses to these 3 memory regions.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Thomas Huth <huth@tuxfamily.org>
---
 hw/m68k/Kconfig     | 1 +
 hw/m68k/next-cube.c | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
index 0092cda4e9..aff769b30f 100644
--- a/hw/m68k/Kconfig
+++ b/hw/m68k/Kconfig
@@ -18,6 +18,7 @@ config NEXTCUBE
     depends on M68K
     select FRAMEBUFFER
     select ESCC
+    select EMPTY_SLOT
 
 config Q800
     bool
diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
index 76ecf86ed0..95d01030cd 100644
--- a/hw/m68k/next-cube.c
+++ b/hw/m68k/next-cube.c
@@ -22,6 +22,7 @@
 #include "qom/object.h"
 #include "hw/char/escc.h" /* ZILOG 8530 Serial Emulation */
 #include "hw/block/fdc.h"
+#include "hw/misc/empty_slot.h"
 #include "hw/qdev-properties.h"
 #include "qapi/error.h"
 #include "qemu/error-report.h"
@@ -1239,6 +1240,13 @@ static void next_cube_init(MachineState *machine)
     /* BMAP IO - acts as a catch-all for now */
     sysbus_mmio_map(SYS_BUS_DEVICE(pcdev), 1, 0x02100000);
 
+    /* unknown: Brightness control register? */
+    empty_slot_init("next.unknown", 0x02110000, 0x10);
+    /* unknown: Magneto-Optical drive controller? */
+    empty_slot_init("next.unknown", 0x02112000, 0x10);
+    /* unknown: Serial clock configuration register? */
+    empty_slot_init("next.unknown", 0x02118004, 0x10);
+
     /* BMAP memory */
     memory_region_init_ram_flags_nomigrate(&m->bmapm1, NULL, "next.bmapmem",
                                            64, RAM_SHARED, &error_fatal);
-- 
2.39.5
Re: [PATCH v2 14/34] next-cube: add empty slots for unknown accesses to next.scr memory region
Posted by Philippe Mathieu-Daudé 5 months ago
On 12/12/24 12:46, Mark Cave-Ayland wrote:
> The next.scr memory is now effectively unused, however there are 3 separate region
> accesses still logged that occur when booting a NeXTStep disk image. Use the
> empty_slot device to capture and ignore memory accesses to these 3 memory regions.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Reviewed-by: Thomas Huth <huth@tuxfamily.org>
> ---
>   hw/m68k/Kconfig     | 1 +
>   hw/m68k/next-cube.c | 8 ++++++++
>   2 files changed, 9 insertions(+)
> 
> diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
> index 0092cda4e9..aff769b30f 100644
> --- a/hw/m68k/Kconfig
> +++ b/hw/m68k/Kconfig
> @@ -18,6 +18,7 @@ config NEXTCUBE
>       depends on M68K
>       select FRAMEBUFFER
>       select ESCC
> +    select EMPTY_SLOT
>   
>   config Q800
>       bool
> diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
> index 76ecf86ed0..95d01030cd 100644
> --- a/hw/m68k/next-cube.c
> +++ b/hw/m68k/next-cube.c
> @@ -22,6 +22,7 @@
>   #include "qom/object.h"
>   #include "hw/char/escc.h" /* ZILOG 8530 Serial Emulation */
>   #include "hw/block/fdc.h"
> +#include "hw/misc/empty_slot.h"
>   #include "hw/qdev-properties.h"
>   #include "qapi/error.h"
>   #include "qemu/error-report.h"
> @@ -1239,6 +1240,13 @@ static void next_cube_init(MachineState *machine)
>       /* BMAP IO - acts as a catch-all for now */
>       sysbus_mmio_map(SYS_BUS_DEVICE(pcdev), 1, 0x02100000);
>   
> +    /* unknown: Brightness control register? */
> +    empty_slot_init("next.unknown", 0x02110000, 0x10);
> +    /* unknown: Magneto-Optical drive controller? */
> +    empty_slot_init("next.unknown", 0x02112000, 0x10);
> +    /* unknown: Serial clock configuration register? */
> +    empty_slot_init("next.unknown", 0x02118004, 0x10);

IIRC the 'name' argument of empty_slot_init() was to log accesses,
but apparently the patch has never been merged.

Maybe use "next.unknown0/1/2" in preparation?

> +
>       /* BMAP memory */
>       memory_region_init_ram_flags_nomigrate(&m->bmapm1, NULL, "next.bmapmem",
>                                              64, RAM_SHARED, &error_fatal);
Re: [PATCH v2 14/34] next-cube: add empty slots for unknown accesses to next.scr memory region
Posted by Mark Cave-Ayland 5 months ago
On 14/12/2024 13:32, Philippe Mathieu-Daudé wrote:

> On 12/12/24 12:46, Mark Cave-Ayland wrote:
>> The next.scr memory is now effectively unused, however there are 3 separate region
>> accesses still logged that occur when booting a NeXTStep disk image. Use the
>> empty_slot device to capture and ignore memory accesses to these 3 memory regions.
>>
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> Reviewed-by: Thomas Huth <huth@tuxfamily.org>
>> ---
>>   hw/m68k/Kconfig     | 1 +
>>   hw/m68k/next-cube.c | 8 ++++++++
>>   2 files changed, 9 insertions(+)
>>
>> diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig
>> index 0092cda4e9..aff769b30f 100644
>> --- a/hw/m68k/Kconfig
>> +++ b/hw/m68k/Kconfig
>> @@ -18,6 +18,7 @@ config NEXTCUBE
>>       depends on M68K
>>       select FRAMEBUFFER
>>       select ESCC
>> +    select EMPTY_SLOT
>>   config Q800
>>       bool
>> diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
>> index 76ecf86ed0..95d01030cd 100644
>> --- a/hw/m68k/next-cube.c
>> +++ b/hw/m68k/next-cube.c
>> @@ -22,6 +22,7 @@
>>   #include "qom/object.h"
>>   #include "hw/char/escc.h" /* ZILOG 8530 Serial Emulation */
>>   #include "hw/block/fdc.h"
>> +#include "hw/misc/empty_slot.h"
>>   #include "hw/qdev-properties.h"
>>   #include "qapi/error.h"
>>   #include "qemu/error-report.h"
>> @@ -1239,6 +1240,13 @@ static void next_cube_init(MachineState *machine)
>>       /* BMAP IO - acts as a catch-all for now */
>>       sysbus_mmio_map(SYS_BUS_DEVICE(pcdev), 1, 0x02100000);
>> +    /* unknown: Brightness control register? */
>> +    empty_slot_init("next.unknown", 0x02110000, 0x10);
>> +    /* unknown: Magneto-Optical drive controller? */
>> +    empty_slot_init("next.unknown", 0x02112000, 0x10);
>> +    /* unknown: Serial clock configuration register? */
>> +    empty_slot_init("next.unknown", 0x02118004, 0x10);
> 
> IIRC the 'name' argument of empty_slot_init() was to log accesses,
> but apparently the patch has never been merged.
> 
> Maybe use "next.unknown0/1/2" in preparation?
> 
>> +
>>       /* BMAP memory */
>>       memory_region_init_ram_flags_nomigrate(&m->bmapm1, NULL, "next.bmapmem",
>>                                              64, RAM_SHARED, &error_fatal);
> 
> 

That's a good idea: I'll use a numerical suffix for v3.


ATB,

Mark.