13#include <cci_configuration>
16#include <ports/target.h>
17#include <ports/qemu-initiator-signal-socket.h>
20#include <scp/report.h>
43 , virtio_mmio_device(
"virtio_mmio", inst,
"virtio-mmio")
48 void before_end_of_elaboration()
override
50 virtio_mmio_device.instantiate();
51 QemuDevice::before_end_of_elaboration();
53 cci::cci_value
v = gs::cci_get(cci::cci_get_broker(), std::string(name()) +
".device_properties." +
n);
56 SCP_DEBUG(())(
"Setting bool {} to {}",
n,
v.to_json());
57 m_dev.set_prop_bool(
n.c_str(),
v.get_bool());
61 SCP_DEBUG(())(
"Setting number {} to {}",
n,
v.to_json());
62 m_dev.set_prop_int(
n.c_str(),
v.get_uint64());
66 SCP_DEBUG(())(
"Setting string {} to {}",
n,
v.to_json());
67 m_dev.set_prop_str(
n.c_str(),
v.get_string().c_str());
70 SCP_WARN(())(
"Ignoring property {}, unknown type. {}",
n,
v.to_json());
73 virtio_mmio_device.get_qemu_dev().set_prop_bool(
"force-legacy",
true);
76 virtio_mmio_device.get_qemu_dev().set_prop_bool(
"format_transport_address",
false);
79 void end_of_elaboration()
override
85 virtio_mmio_device.set_sysbus_as_parent_bus();
86 virtio_mmio_device.realize();
100 QemuDevice::end_of_elaboration();
QEMU device abstraction as a SystemC module.
Definition device.h:37
A QEMU output GPIO exposed as a InitiatorSignalSocket<bool>
Definition qemu-initiator-signal-socket.h:40
void init_sbd(qemu::SysBusDevice sbd, int gpio_idx)
Initialize this socket with a QEMU SysBusDevice, and a GPIO index.
Definition qemu-initiator-signal-socket.h:173
This class encapsulates a libqemu-cxx qemu::LibQemu instance. It handles QEMU parameters and instance...
Definition qemu-instance.h:89
Definition virtio-mmio.h:23
Definition libqemu-cxx.h:732
Definition libqemu-cxx.h:616
Definition libqemu-cxx.h:638
std::list< std::string > sc_cci_children(sc_core::sc_module_name name)
return a list of 'unconsumed' children from the given module name, can be used inside or outside the ...
Definition cciutils.cc:63