9#ifndef _LIBQBOX_COMPONENTS_OPENCORES_ETH_H
10#define _LIBQBOX_COMPONENTS_OPENCORES_ETH_H
12#include <module_factory_registery.h>
15#include <ports/target.h>
16#include <ports/qemu-initiator-signal-socket.h>
21 cci::cci_param<std::string> p_mac;
22 std::string m_netdev_id;
23 cci::cci_param<std::string> p_netdev_str;
30 opencores_eth(
const sc_core::sc_module_name& name, sc_core::sc_object*
o)
36 , p_mac(
"mac",
"00:11:22:33:44:55",
"MAC address of NIC")
37 , m_netdev_id(std::string(name()) +
"-id")
38 , p_netdev_str(
"netdev_str",
"user,hostfwd=tcp::2222-:22",
"netdev string for QEMU (do not specify ID)")
39 , regs_socket(
"regs", inst)
40 , desc_socket(
"desc", inst)
43 std::stringstream
opts;
44 opts << p_netdev_str.get_value();
45 opts <<
",id=" << m_netdev_id;
51 void before_end_of_elaboration()
override
53 QemuDevice::before_end_of_elaboration();
55 m_dev.set_prop_str(
"mac", p_mac.get_value().c_str());
56 m_dev.set_prop_str(
"netdev", m_netdev_id.c_str());
59 void end_of_elaboration()
override
61 QemuDevice::end_of_elaboration();
65 regs_socket.init(
sbd, 0);
66 desc_socket.init(
sbd, 1);
71extern "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
void add_arg(const char *arg)
Add a command line argument to the qemu instance.
Definition qemu-instance.h:329
Definition opencores_eth.h:19
Definition libqemu-cxx.h:638