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:331
Definition opencores_eth.h:19
Definition libqemu-cxx.h:627