diff mbox series

[v4,10/20] nubus-device: remove nubus_register_rom() and nubus_register_format_block()

Message ID 20210917075057.20924-11-mark.cave-ayland@ilande.co.uk
State New
Headers show
Series nubus: bus, device, bridge, IRQ and address space improvements | expand

Commit Message

Mark Cave-Ayland Sept. 17, 2021, 7:50 a.m. UTC
Since there is no need to generate a dummy declaration ROM, remove both
nubus_register_rom() and nubus_register_format_block(). These will shortly be
replaced with a mechanism to optionally load a declaration ROM from disk to
allow real images to be used within QEMU.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/nubus/nubus-device.c  | 143 ---------------------------------------
 include/hw/nubus/nubus.h |  19 ------
 2 files changed, 162 deletions(-)

Comments

Laurent Vivier Sept. 20, 2021, 9:45 p.m. UTC | #1
Le 17/09/2021 à 09:50, Mark Cave-Ayland a écrit :
> Since there is no need to generate a dummy declaration ROM, remove both
> nubus_register_rom() and nubus_register_format_block(). These will shortly be
> replaced with a mechanism to optionally load a declaration ROM from disk to
> allow real images to be used within QEMU.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
>  hw/nubus/nubus-device.c  | 143 ---------------------------------------
>  include/hw/nubus/nubus.h |  19 ------
>  2 files changed, 162 deletions(-)
> 
> diff --git a/hw/nubus/nubus-device.c b/hw/nubus/nubus-device.c
> index 7a32c8c95b..9c1992ceb0 100644
> --- a/hw/nubus/nubus-device.c
> +++ b/hw/nubus/nubus-device.c
> @@ -13,147 +13,6 @@
>  #include "qapi/error.h"
>  
>  
> -/* The Format Block Structure */
> -
> -#define FBLOCK_DIRECTORY_OFFSET 0
> -#define FBLOCK_LENGTH           4
> -#define FBLOCK_CRC              8
> -#define FBLOCK_REVISION_LEVEL   12
> -#define FBLOCK_FORMAT           13
> -#define FBLOCK_TEST_PATTERN     14
> -#define FBLOCK_RESERVED         18
> -#define FBLOCK_BYTE_LANES       19
> -
> -#define FBLOCK_SIZE             20
> -#define FBLOCK_PATTERN_VAL      0x5a932bc7
> -
> -static uint64_t nubus_fblock_read(void *opaque, hwaddr addr, unsigned int size)
> -{
> -    NubusDevice *dev = opaque;
> -    uint64_t val;
> -
> -#define BYTE(v, b) (((v) >> (24 - 8 * (b))) & 0xff)
> -    switch (addr) {
> -    case FBLOCK_BYTE_LANES:
> -        val = dev->byte_lanes;
> -        val |= (val ^ 0xf) << 4;
> -        break;
> -    case FBLOCK_RESERVED:
> -        val = 0x00;
> -        break;
> -    case FBLOCK_TEST_PATTERN...FBLOCK_TEST_PATTERN + 3:
> -        val = BYTE(FBLOCK_PATTERN_VAL, addr - FBLOCK_TEST_PATTERN);
> -        break;
> -    case FBLOCK_FORMAT:
> -        val = dev->rom_format;
> -        break;
> -    case FBLOCK_REVISION_LEVEL:
> -        val = dev->rom_rev;
> -        break;
> -    case FBLOCK_CRC...FBLOCK_CRC + 3:
> -        val = BYTE(dev->rom_crc, addr - FBLOCK_CRC);
> -        break;
> -    case FBLOCK_LENGTH...FBLOCK_LENGTH + 3:
> -        val = BYTE(dev->rom_length, addr - FBLOCK_LENGTH);
> -        break;
> -    case FBLOCK_DIRECTORY_OFFSET...FBLOCK_DIRECTORY_OFFSET + 3:
> -        val = BYTE(dev->directory_offset, addr - FBLOCK_DIRECTORY_OFFSET);
> -        break;
> -    default:
> -        val = 0;
> -        break;
> -    }
> -    return val;
> -}
> -
> -static void nubus_fblock_write(void *opaque, hwaddr addr, uint64_t val,
> -                               unsigned int size)
> -{
> -    /* read only */
> -}
> -
> -static const MemoryRegionOps nubus_format_block_ops = {
> -    .read = nubus_fblock_read,
> -    .write = nubus_fblock_write,
> -    .endianness = DEVICE_BIG_ENDIAN,
> -    .valid = {
> -        .min_access_size = 1,
> -        .max_access_size = 1,
> -    }
> -};
> -
> -static void nubus_register_format_block(NubusDevice *dev)
> -{
> -    char *fblock_name;
> -
> -    fblock_name = g_strdup_printf("nubus-slot-%d-format-block",
> -                                  dev->slot);
> -
> -    hwaddr fblock_offset = memory_region_size(&dev->slot_mem) - FBLOCK_SIZE;
> -    memory_region_init_io(&dev->fblock_io, NULL, &nubus_format_block_ops,
> -                          dev, fblock_name, FBLOCK_SIZE);
> -    memory_region_add_subregion(&dev->slot_mem, fblock_offset,
> -                                &dev->fblock_io);
> -
> -    g_free(fblock_name);
> -}
> -
> -static void mac_nubus_rom_write(void *opaque, hwaddr addr, uint64_t val,
> -                                       unsigned int size)
> -{
> -    /* read only */
> -}
> -
> -static uint64_t mac_nubus_rom_read(void *opaque, hwaddr addr,
> -                                    unsigned int size)
> -{
> -    NubusDevice *dev = opaque;
> -
> -    return dev->rom[addr];
> -}
> -
> -static const MemoryRegionOps mac_nubus_rom_ops = {
> -    .read  = mac_nubus_rom_read,
> -    .write = mac_nubus_rom_write,
> -    .endianness = DEVICE_BIG_ENDIAN,
> -    .valid = {
> -        .min_access_size = 1,
> -        .max_access_size = 1,
> -    },
> -};
> -
> -
> -void nubus_register_rom(NubusDevice *dev, const uint8_t *rom, uint32_t size,
> -                        int revision, int format, uint8_t byte_lanes)
> -{
> -    hwaddr rom_offset;
> -    char *rom_name;
> -
> -    /* FIXME : really compute CRC */
> -    dev->rom_length = 0;
> -    dev->rom_crc = 0;
> -
> -    dev->rom_rev = revision;
> -    dev->rom_format = format;
> -
> -    dev->byte_lanes = byte_lanes;
> -    dev->directory_offset = -size;
> -
> -    /* ROM */
> -
> -    dev->rom = rom;
> -    rom_name = g_strdup_printf("nubus-slot-%d-rom", dev->slot);
> -    memory_region_init_io(&dev->rom_io, NULL, &mac_nubus_rom_ops,
> -                          dev, rom_name, size);
> -    memory_region_set_readonly(&dev->rom_io, true);
> -
> -    rom_offset = memory_region_size(&dev->slot_mem) - FBLOCK_SIZE +
> -                 dev->directory_offset;
> -    memory_region_add_subregion(&dev->slot_mem, rom_offset, &dev->rom_io);
> -
> -    g_free(rom_name);
> -}
> -
>  static void nubus_device_realize(DeviceState *dev, Error **errp)
>  {
>      NubusBus *nubus = NUBUS_BUS(qdev_get_parent_bus(dev));
> @@ -179,8 +38,6 @@ static void nubus_device_realize(DeviceState *dev, Error **errp)
>      memory_region_add_subregion(&nubus->slot_io, slot_offset,
>                                  &nd->slot_mem);
>      g_free(name);
> -
> -    nubus_register_format_block(nd);
>  }
>  
>  static Property nubus_device_properties[] = {
> diff --git a/include/hw/nubus/nubus.h b/include/hw/nubus/nubus.h
> index 8ff4736259..87a97516c7 100644
> --- a/include/hw/nubus/nubus.h
> +++ b/include/hw/nubus/nubus.h
> @@ -45,25 +45,6 @@ struct NubusDevice {
>      int32_t slot;
>      MemoryRegion super_slot_mem;
>      MemoryRegion slot_mem;
> -
> -    /* Format Block */
> -
> -    MemoryRegion fblock_io;
> -
> -    uint32_t rom_length;
> -    uint32_t rom_crc;
> -    uint8_t rom_rev;
> -    uint8_t rom_format;
> -    uint8_t byte_lanes;
> -    int32_t directory_offset;
> -
> -    /* ROM */
> -
> -    MemoryRegion rom_io;
> -    const uint8_t *rom;
>  };
>  
> -void nubus_register_rom(NubusDevice *dev, const uint8_t *rom, uint32_t size,
> -                        int revision, int format, uint8_t byte_lanes);
> -
>  #endif
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
diff mbox series

Patch

diff --git a/hw/nubus/nubus-device.c b/hw/nubus/nubus-device.c
index 7a32c8c95b..9c1992ceb0 100644
--- a/hw/nubus/nubus-device.c
+++ b/hw/nubus/nubus-device.c
@@ -13,147 +13,6 @@ 
 #include "qapi/error.h"
 
 
-/* The Format Block Structure */
-
-#define FBLOCK_DIRECTORY_OFFSET 0
-#define FBLOCK_LENGTH           4
-#define FBLOCK_CRC              8
-#define FBLOCK_REVISION_LEVEL   12
-#define FBLOCK_FORMAT           13
-#define FBLOCK_TEST_PATTERN     14
-#define FBLOCK_RESERVED         18
-#define FBLOCK_BYTE_LANES       19
-
-#define FBLOCK_SIZE             20
-#define FBLOCK_PATTERN_VAL      0x5a932bc7
-
-static uint64_t nubus_fblock_read(void *opaque, hwaddr addr, unsigned int size)
-{
-    NubusDevice *dev = opaque;
-    uint64_t val;
-
-#define BYTE(v, b) (((v) >> (24 - 8 * (b))) & 0xff)
-    switch (addr) {
-    case FBLOCK_BYTE_LANES:
-        val = dev->byte_lanes;
-        val |= (val ^ 0xf) << 4;
-        break;
-    case FBLOCK_RESERVED:
-        val = 0x00;
-        break;
-    case FBLOCK_TEST_PATTERN...FBLOCK_TEST_PATTERN + 3:
-        val = BYTE(FBLOCK_PATTERN_VAL, addr - FBLOCK_TEST_PATTERN);
-        break;
-    case FBLOCK_FORMAT:
-        val = dev->rom_format;
-        break;
-    case FBLOCK_REVISION_LEVEL:
-        val = dev->rom_rev;
-        break;
-    case FBLOCK_CRC...FBLOCK_CRC + 3:
-        val = BYTE(dev->rom_crc, addr - FBLOCK_CRC);
-        break;
-    case FBLOCK_LENGTH...FBLOCK_LENGTH + 3:
-        val = BYTE(dev->rom_length, addr - FBLOCK_LENGTH);
-        break;
-    case FBLOCK_DIRECTORY_OFFSET...FBLOCK_DIRECTORY_OFFSET + 3:
-        val = BYTE(dev->directory_offset, addr - FBLOCK_DIRECTORY_OFFSET);
-        break;
-    default:
-        val = 0;
-        break;
-    }
-    return val;
-}
-
-static void nubus_fblock_write(void *opaque, hwaddr addr, uint64_t val,
-                               unsigned int size)
-{
-    /* read only */
-}
-
-static const MemoryRegionOps nubus_format_block_ops = {
-    .read = nubus_fblock_read,
-    .write = nubus_fblock_write,
-    .endianness = DEVICE_BIG_ENDIAN,
-    .valid = {
-        .min_access_size = 1,
-        .max_access_size = 1,
-    }
-};
-
-static void nubus_register_format_block(NubusDevice *dev)
-{
-    char *fblock_name;
-
-    fblock_name = g_strdup_printf("nubus-slot-%d-format-block",
-                                  dev->slot);
-
-    hwaddr fblock_offset = memory_region_size(&dev->slot_mem) - FBLOCK_SIZE;
-    memory_region_init_io(&dev->fblock_io, NULL, &nubus_format_block_ops,
-                          dev, fblock_name, FBLOCK_SIZE);
-    memory_region_add_subregion(&dev->slot_mem, fblock_offset,
-                                &dev->fblock_io);
-
-    g_free(fblock_name);
-}
-
-static void mac_nubus_rom_write(void *opaque, hwaddr addr, uint64_t val,
-                                       unsigned int size)
-{
-    /* read only */
-}
-
-static uint64_t mac_nubus_rom_read(void *opaque, hwaddr addr,
-                                    unsigned int size)
-{
-    NubusDevice *dev = opaque;
-
-    return dev->rom[addr];
-}
-
-static const MemoryRegionOps mac_nubus_rom_ops = {
-    .read  = mac_nubus_rom_read,
-    .write = mac_nubus_rom_write,
-    .endianness = DEVICE_BIG_ENDIAN,
-    .valid = {
-        .min_access_size = 1,
-        .max_access_size = 1,
-    },
-};
-
-
-void nubus_register_rom(NubusDevice *dev, const uint8_t *rom, uint32_t size,
-                        int revision, int format, uint8_t byte_lanes)
-{
-    hwaddr rom_offset;
-    char *rom_name;
-
-    /* FIXME : really compute CRC */
-    dev->rom_length = 0;
-    dev->rom_crc = 0;
-
-    dev->rom_rev = revision;
-    dev->rom_format = format;
-
-    dev->byte_lanes = byte_lanes;
-    dev->directory_offset = -size;
-
-    /* ROM */
-
-    dev->rom = rom;
-    rom_name = g_strdup_printf("nubus-slot-%d-rom", dev->slot);
-    memory_region_init_io(&dev->rom_io, NULL, &mac_nubus_rom_ops,
-                          dev, rom_name, size);
-    memory_region_set_readonly(&dev->rom_io, true);
-
-    rom_offset = memory_region_size(&dev->slot_mem) - FBLOCK_SIZE +
-                 dev->directory_offset;
-    memory_region_add_subregion(&dev->slot_mem, rom_offset, &dev->rom_io);
-
-    g_free(rom_name);
-}
-
 static void nubus_device_realize(DeviceState *dev, Error **errp)
 {
     NubusBus *nubus = NUBUS_BUS(qdev_get_parent_bus(dev));
@@ -179,8 +38,6 @@  static void nubus_device_realize(DeviceState *dev, Error **errp)
     memory_region_add_subregion(&nubus->slot_io, slot_offset,
                                 &nd->slot_mem);
     g_free(name);
-
-    nubus_register_format_block(nd);
 }
 
 static Property nubus_device_properties[] = {
diff --git a/include/hw/nubus/nubus.h b/include/hw/nubus/nubus.h
index 8ff4736259..87a97516c7 100644
--- a/include/hw/nubus/nubus.h
+++ b/include/hw/nubus/nubus.h
@@ -45,25 +45,6 @@  struct NubusDevice {
     int32_t slot;
     MemoryRegion super_slot_mem;
     MemoryRegion slot_mem;
-
-    /* Format Block */
-
-    MemoryRegion fblock_io;
-
-    uint32_t rom_length;
-    uint32_t rom_crc;
-    uint8_t rom_rev;
-    uint8_t rom_format;
-    uint8_t byte_lanes;
-    int32_t directory_offset;
-
-    /* ROM */
-
-    MemoryRegion rom_io;
-    const uint8_t *rom;
 };
 
-void nubus_register_rom(NubusDevice *dev, const uint8_t *rom, uint32_t size,
-                        int revision, int format, uint8_t byte_lanes);
-
 #endif