[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 04/20] nubus: use bitmap to manage available slots
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 04/20] nubus: use bitmap to manage available slots |
Date: |
Sun, 12 Sep 2021 19:48:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
On 9/12/21 9:48 AM, Mark Cave-Ayland wrote:
> Convert nubus_device_realize() to use a bitmap to manage available slots to
> allow
> for future Nubus devices to be plugged into arbitrary slots from the command
> line.
>
> Update mac_nubus_bridge_init() to only allow slots 0x9 to 0xe on a Macintosh
> machines as documented in "Desigining Cards and Drivers for the Macintosh
> Family".
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
> hw/nubus/mac-nubus-bridge.c | 3 +++
> hw/nubus/nubus-bus.c | 2 +-
> hw/nubus/nubus-device.c | 33 +++++++++++++++++++++++++++------
> include/hw/nubus/nubus.h | 4 ++--
> 4 files changed, 33 insertions(+), 9 deletions(-)
>
> diff --git a/hw/nubus/mac-nubus-bridge.c b/hw/nubus/mac-nubus-bridge.c
> index 7c329300b8..6e78f4c0b3 100644
> --- a/hw/nubus/mac-nubus-bridge.c
> +++ b/hw/nubus/mac-nubus-bridge.c
> @@ -18,6 +18,9 @@ static void mac_nubus_bridge_init(Object *obj)
>
> s->bus = NUBUS_BUS(qbus_create(TYPE_NUBUS_BUS, DEVICE(s), NULL));
>
> + /* Macintosh only has slots 0x9 to 0xe available */
> + s->bus->slot_available_mask = 0x7e00;
So MAKE_64BIT_MASK(9, 6),
> sysbus_init_mmio(sbd, &s->bus->super_slot_io);
> sysbus_init_mmio(sbd, &s->bus->slot_io);
> }
> diff --git a/hw/nubus/nubus-bus.c b/hw/nubus/nubus-bus.c
> index 5c13452308..f6d3655f51 100644
> --- a/hw/nubus/nubus-bus.c
> +++ b/hw/nubus/nubus-bus.c
> @@ -84,7 +84,7 @@ static void nubus_init(Object *obj)
> nubus, "nubus-slots",
> NUBUS_SLOT_NB * NUBUS_SLOT_SIZE);
>
> - nubus->current_slot = NUBUS_FIRST_SLOT;
> + nubus->slot_available_mask = 0xffff;
and MAKE_64BIT_MASK(0, 16)?
> }
- [PATCH 00/20] nubus: bus, device, bridge, IRQ and address space improvements, Mark Cave-Ayland, 2021/09/12
- [PATCH 06/20] nubus: implement BusClass get_dev_path(), Mark Cave-Ayland, 2021/09/12
- [PATCH 04/20] nubus: use bitmap to manage available slots, Mark Cave-Ayland, 2021/09/12
- Re: [PATCH 04/20] nubus: use bitmap to manage available slots,
Philippe Mathieu-Daudé <=
- [PATCH 05/20] nubus: move slot bitmap checks from NubusDevice realize() to BusClass check_address(), Mark Cave-Ayland, 2021/09/12
- [PATCH 03/20] nubus-device: add device slot parameter, Mark Cave-Ayland, 2021/09/12
- [PATCH 07/20] nubus: add trace-events for unassigned slot accesses, Mark Cave-Ayland, 2021/09/12
- [PATCH 08/20] nubus: generate bus error when attempting to access empty slots, Mark Cave-Ayland, 2021/09/12