[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>
- [PATCH v4 05/20] nubus: move slot bitmap checks from NubusDevice realize() to BusClass check_address(), (continued)
- [PATCH v4 05/20] nubus: move slot bitmap checks from NubusDevice realize() to BusClass check_address(), Mark Cave-Ayland, 2021/09/17
- [PATCH v4 06/20] nubus: implement BusClass get_dev_path(), Mark Cave-Ayland, 2021/09/17
- [PATCH v4 11/20] nubus-device: add romfile property for loading declaration ROMs, Mark Cave-Ayland, 2021/09/17
- [PATCH v4 08/20] nubus: generate bus error when attempting to access empty slots, Mark Cave-Ayland, 2021/09/17
- [PATCH v4 10/20] nubus-device: remove nubus_register_rom() and nubus_register_format_block(), Mark Cave-Ayland, 2021/09/17
- Re: [PATCH v4 10/20] nubus-device: remove nubus_register_rom() and nubus_register_format_block(),
Laurent Vivier <=
- [PATCH v4 07/20] nubus: add trace-events for empty slot accesses, Mark Cave-Ayland, 2021/09/17
- [PATCH v4 09/20] macfb: don't register declaration ROM, Mark Cave-Ayland, 2021/09/17
[PATCH v4 13/20] nubus-bridge: introduce separate NubusBridge structure, Mark Cave-Ayland, 2021/09/17
[PATCH v4 14/20] mac-nubus-bridge: rename MacNubusState to MacNubusBridge, Mark Cave-Ayland, 2021/09/17