mirror of
https://github.com/qemu/qemu.git
synced 2025-08-14 20:31:47 +00:00
hw/net/xilinx_ethlite: Map RESERVED I/O as unimplemented
In order to track access to reserved I/O space, use yet another UnimplementedDevice covering the whole device memory range. Mapped with lower priority (-1). The memory flat view becomes: (qemu) info mtree -f FlatView #0 Root memory region: system 0000000081000000-00000000810007e3 (prio 0, ram): ethlite.tx[0]buf 00000000810007e4-00000000810007f3 (prio 0, i/o): ethlite.mdio 00000000810007f4-00000000810007ff (prio 0, i/o): ethlite.tx[0]io 0000000081000800-0000000081000fe3 (prio 0, ram): ethlite.tx[1]buf 0000000081000fe4-0000000081000ff3 (prio -1, i/o): ethlite.reserved @0000000000000fe4 0000000081000ff4-0000000081000fff (prio 0, i/o): ethlite.tx[1]io 0000000081001000-00000000810017e3 (prio 0, ram): ethlite.rx[0]buf 00000000810017e4-00000000810017fb (prio -1, i/o): ethlite.reserved @00000000000017e4 00000000810017fc-00000000810017ff (prio 0, i/o): ethlite.rx[0]io 0000000081001800-0000000081001fe3 (prio 0, ram): ethlite.rx[1]buf 0000000081001fe4-0000000081001ffb (prio -1, i/o): ethlite.reserved @0000000000001fe4 0000000081001ffc-0000000081001fff (prio 0, i/o): ethlite.rx[1]io Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20241114210010.34502-20-philmd@linaro.org>
This commit is contained in:
parent
ce336679b7
commit
74f1caa8c3
@ -94,6 +94,7 @@ struct XlnxXpsEthLite
|
||||
uint32_t c_rx_pingpong;
|
||||
unsigned int port_index; /* dual port RAM index */
|
||||
|
||||
UnimplementedDeviceState rsvd;
|
||||
UnimplementedDeviceState mdio;
|
||||
XlnxXpsEthLitePort port[2];
|
||||
};
|
||||
@ -303,6 +304,16 @@ static void xilinx_ethlite_realize(DeviceState *dev, Error **errp)
|
||||
memory_region_init(&s->container, OBJECT(dev),
|
||||
"xlnx.xps-ethernetlite", 0x2000);
|
||||
|
||||
object_initialize_child(OBJECT(dev), "ethlite.reserved", &s->rsvd,
|
||||
TYPE_UNIMPLEMENTED_DEVICE);
|
||||
qdev_prop_set_string(DEVICE(&s->rsvd), "name", "ethlite.reserved");
|
||||
qdev_prop_set_uint64(DEVICE(&s->rsvd), "size",
|
||||
memory_region_size(&s->container));
|
||||
sysbus_realize(SYS_BUS_DEVICE(&s->rsvd), &error_fatal);
|
||||
memory_region_add_subregion_overlap(&s->container, 0,
|
||||
sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->rsvd), 0),
|
||||
-1);
|
||||
|
||||
object_initialize_child(OBJECT(dev), "ethlite.mdio", &s->mdio,
|
||||
TYPE_UNIMPLEMENTED_DEVICE);
|
||||
qdev_prop_set_string(DEVICE(&s->mdio), "name", "ethlite.mdio");
|
||||
|
Loading…
Reference in New Issue
Block a user