qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 10/20] nubus-device: remove nubus_register_rom() and nubus


From: Laurent Vivier
Subject: Re: [PATCH v4 10/20] nubus-device: remove nubus_register_rom() and nubus_register_format_block()
Date: Mon, 20 Sep 2021 23:45:31 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

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>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]