9#ifndef _LIBQBOX_COMPONENTS_UART_SIFIVE_UART_H
10#define _LIBQBOX_COMPONENTS_UART_SIFIVE_UART_H
12#include <cci_configuration>
16#include <module_factory_registery.h>
19#include <ports/target.h>
20#include <ports/qemu-initiator-signal-socket.h>
34 sifive_uart(
const sc_core::sc_module_name& name, sc_core::sc_object*
o)
39 :
QemuDevice(
n, inst,
"riscv.sifive.uart"), m_ext_ev(
true), socket(
"mem", inst), irq_out(
"irq_out")
43 void before_end_of_elaboration()
override
45 QemuDevice::before_end_of_elaboration();
48 m_chardev = m_inst.
get().chardev_new(
"uart",
"stdio");
49 m_dev.set_prop_chardev(
"chardev", m_chardev);
52 void end_of_elaboration()
override
54 QemuDevice::set_sysbus_as_parent_bus();
55 QemuDevice::end_of_elaboration();
64extern "C" void module_register();
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
qemu::LibQemu & get()
Returns the underlying qemu::LibQemu instance.
Definition qemu-instance.h:448
Definition async_event.h:22
Definition libqemu-cxx.h:742
Definition libqemu-cxx.h:638
Definition sifive-uart.h:23