add dynamic plugin loading

This commit is contained in:
2021-10-12 14:24:55 +02:00
parent 1d13c8196e
commit 0ea4cba1ca
4 changed files with 73 additions and 9 deletions

View File

@ -48,6 +48,9 @@
#include <util/range_lut.h>
#include <memory>
namespace iss {
class vm_plugin;
}
namespace sysc {
class tlm_dmi_ext : public tlm::tlm_dmi {
@ -99,6 +102,8 @@ public:
cci::cci_param<uint32_t> mhartid{"mhartid", 0};
cci::cci_param<std::string> plugins{"plugins", ""};
core_complex(sc_core::sc_module_name const& name);
#else
@ -122,6 +127,8 @@ public:
scml_property<uint32_t> mhartid{"mhartid", 0};
scml_property<std::string> plugins{"plugins", ""};
core_complex(sc_core::sc_module_name const& name)
: sc_module(name)
, local_irq_i{"local_irq_i", 16}
@ -185,6 +192,8 @@ protected:
std::unique_ptr<scc::tick2time> t2t;
private:
void init();
std::vector<iss::vm_plugin *> plugin_list;
};
} /* namespace SiFive */
} /* namespace sysc */