24 cci::cci_param<unsigned int> p_num_harts;
25 cci::cci_param<uint64_t> p_timecmp_base;
26 cci::cci_param<uint64_t> p_time_base;
27 cci::cci_param<uint64_t> p_aperture_size;
28 cci::cci_param<uint32_t> p_timebase_freq;
29 cci::cci_param<bool> p_provide_rdtime;
39 , p_num_harts(
"num_harts", 0,
"Number of HARTS this CLINT is connected to")
40 , p_timecmp_base(
"timecmp_base", 0,
"Base address for the TIMECMP registers")
41 , p_time_base(
"time_base", 0,
"Base address for the TIME registers")
42 , p_aperture_size(
"aperture_size", 0,
"Size of the whole CLINT address space")
43 , p_timebase_freq(
"timebase_freq", 10000000,
"")
44 , p_provide_rdtime(
"provide_rdtime",
false,
45 "If true, provide the CPU with "
51 void before_end_of_elaboration()
override
53 QemuDevice::before_end_of_elaboration();
55 m_dev.set_prop_int(
"num-harts", p_num_harts);
56 m_dev.set_prop_int(
"timecmp-base", p_timecmp_base);
57 m_dev.set_prop_int(
"time-base", p_time_base);
58 m_dev.set_prop_int(
"aperture-size", p_aperture_size);
59 m_dev.set_prop_int(
"timebase-freq", p_timebase_freq);
60 m_dev.set_prop_bool(
"provide-rdtime", p_provide_rdtime);
63 void end_of_elaboration()
override
65 QemuDevice::set_sysbus_as_parent_bus();
66 QemuDevice::end_of_elaboration();