diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2018-08-29 17:59:07 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-08-30 10:42:18 +1000 |
commit | 5c8e3d17eda655ee7644a41cc0df646c7280ab2f (patch) | |
tree | 354ce4069e3c567908594ec042b44a8e578b4c4b | |
parent | bf31c56f096ae11367c6ba19a47387d008791996 (diff) |
macio: add addr property to macio IDE object
This contains the offset of the IDE controller within the macio address space
and is required to allow the address to be included within the fw path.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | hw/ide/macio.c | 1 | ||||
-rw-r--r-- | hw/misc/macio/macio.c | 5 | ||||
-rw-r--r-- | include/hw/misc/macio/macio.h | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/hw/ide/macio.c b/hw/ide/macio.c index f23961e241..bab8c45a43 100644 --- a/hw/ide/macio.c +++ b/hw/ide/macio.c @@ -461,6 +461,7 @@ static void macio_ide_initfn(Object *obj) static Property macio_ide_properties[] = { DEFINE_PROP_UINT32("channel", MACIOIDEState, channel, 0), + DEFINE_PROP_UINT32("addr", MACIOIDEState, addr, -1), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index 229bfddb90..94da85c8d7 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -219,10 +219,11 @@ static void macio_init_ide(MacIOState *s, MACIOIDEState *ide, size_t ide_size, int index) { gchar *name = g_strdup_printf("ide[%i]", index); + uint32_t addr = 0x1f000 + ((index + 1) * 0x1000); macio_init_child_obj(s, name, ide, ide_size, TYPE_MACIO_IDE); - memory_region_add_subregion(&s->bar, 0x1f000 + ((index + 1) * 0x1000), - &ide->mem); + qdev_prop_set_uint32(DEVICE(ide), "addr", addr); + memory_region_add_subregion(&s->bar, addr, &ide->mem); g_free(name); } diff --git a/include/hw/misc/macio/macio.h b/include/hw/misc/macio/macio.h index 3189973ee6..970058b6ed 100644 --- a/include/hw/misc/macio/macio.h +++ b/include/hw/misc/macio/macio.h @@ -51,6 +51,7 @@ typedef struct MACIOIDEState { /*< private >*/ SysBusDevice parent_obj; /*< public >*/ + uint32_t addr; uint32_t channel; qemu_irq real_ide_irq; qemu_irq real_dma_irq; |