17 cci::cci_param<uint32_t> p_hostbus;
18 cci::cci_param<uint32_t> p_hostaddr;
19 cci::cci_param<std::string> p_hostport;
20 cci::cci_param<uint32_t> p_vendorid;
21 cci::cci_param<uint32_t> p_productid;
23 cci::cci_param<uint32_t> p_isobufs;
24 cci::cci_param<uint32_t> p_isobsize;
25 cci::cci_param<bool> p_guest_reset;
26 cci::cci_param<bool> p_guest_resets_all;
27 cci::cci_param<bool> p_suppress_remote_wake;
30 usb_host(
const sc_core::sc_module_name& name, sc_core::sc_object*
o, sc_core::sc_object*
t)
36 , p_hostbus(
"hostbus", 0,
"host usb device bus")
37 , p_hostaddr(
"hostaddr", 0,
"host usb device addr")
38 , p_hostport(
"hostport", std::string(
""),
"host usb device port")
39 , p_vendorid(
"vendorid", 0,
"host usb device vendorid")
40 , p_productid(
"productid", 0,
"host usb device productid")
41 , p_isobufs(
"isobufs", 4,
"usb isobufs")
42 , p_isobsize(
"isobsize", 32,
"usb isobsize")
43 , p_guest_reset(
"guest_reset",
true,
"guest usb reset")
44 , p_guest_resets_all(
"guest_resets_all",
false,
"guest usb resets all")
45 , p_suppress_remote_wake(
"suppress_remote_wake",
true,
"suppress remote wake")
47 set_dev_props = [
this]() ->
void {
48 m_dev.set_prop_uint(
"hostbus", p_hostbus.get_value());
49 m_dev.set_prop_uint(
"hostaddr", p_hostaddr.get_value());
50 if (!p_hostport.get_value().empty()) {
51 m_dev.set_prop_str(
"hostport", p_hostport.get_value().c_str());
53 m_dev.set_prop_uint(
"vendorid", p_vendorid.get_value());
54 m_dev.set_prop_uint(
"productid", p_productid.get_value());
55 m_dev.set_prop_uint(
"isobufs", p_isobufs.get_value());
56 m_dev.set_prop_uint(
"isobsize", p_isobsize.get_value());
57 m_dev.set_prop_bool(
"guest-reset", p_guest_reset.get_value());
58 m_dev.set_prop_bool(
"guest-resets-all", p_guest_resets_all.get_value());
59 m_dev.set_prop_bool(
"suppress-remote-wake", p_suppress_remote_wake.get_value());
62 xhci->add_device(*
this);