updates submodules and applies respective fixes

This commit is contained in:
2025-11-06 17:36:09 +01:00
parent db82473e95
commit 85b11cde33
6 changed files with 42 additions and 22 deletions

34
.vscode/launch.json vendored
View File

@@ -1,6 +1,14 @@
{ {
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{
"type": "gdb",
"request": "launch",
"name": "riscv-sim hello.elf",
"program": "${workspaceFolder}/build/Debug/dbt-rise-riscv/riscv-sim",
"arguments": "-f dbt-rise-riscv/contrib/fw/hello-world/hello.elf",
"cwd": "${workspaceFolder}"
},
{ {
"type": "gdbtarget", "type": "gdbtarget",
"request": "launch", "request": "launch",
@@ -11,7 +19,16 @@
}, },
"target": { "target": {
"server": "${workspaceFolder}/build/RelWithDebInfo/src/riscv-vp", "server": "${workspaceFolder}/build/RelWithDebInfo/src/riscv-vp",
"serverParameters": ["--isa", "rv32gc_msu", "-v", "INFO", "-f", "fw/hello-world/hello.elf", "-g", "10000"], "serverParameters": [
"--isa",
"rv32gc_msu",
"-v",
"INFO",
"-f",
"fw/hello-world/hello.elf",
"-g",
"10000"
],
"watchServerProcess": true, "watchServerProcess": true,
"port": "10000" "port": "10000"
}, },
@@ -22,7 +39,10 @@
"hidden": false, "hidden": false,
"group": "FW Debug", "group": "FW Debug",
"order": 2 "order": 2
},"initCommands": ["b main"] },
"initCommands": [
"b main"
]
}, },
{ {
"type": "gdbtarget", "type": "gdbtarget",
@@ -110,11 +130,17 @@
"compounds": [ "compounds": [
{ {
"name": "FW-Debug 32bit", "name": "FW-Debug 32bit",
"configurations": ["32bit VP with gdbserver", "Attach GDB to VP"] "configurations": [
"32bit VP with gdbserver",
"Attach GDB to VP"
]
}, },
{ {
"name": "FW-Debug 64bit", "name": "FW-Debug 64bit",
"configurations": ["64bit VP with gdbserver", "Attach GDB to VP"] "configurations": [
"64bit VP with gdbserver",
"Attach GDB to VP"
]
} }
] ]
} }

2
scc

Submodule scc updated: 323dcb3bf3...f626f0259f

View File

@@ -40,11 +40,9 @@ CLIParser::CLIParser(int argc, char* argv[])
} }
auto log_level = vm_["verbose"].as<scc::log>(); auto log_level = vm_["verbose"].as<scc::log>();
auto log_level_num = static_cast<unsigned>(log_level); auto log_level_num = static_cast<unsigned>(log_level);
LOGGER(DEFAULT)::reporting_level() = logging::as_log_level(log_level_num > 6 ? 6 : log_level_num); LOGGER(DEFAULT)::set_reporting_level(logging::as_log_level(log_level_num > 6 ? 6 : log_level_num));
LOGGER(connection)::reporting_level() = LOGGER(connection)::set_reporting_level(logging::as_log_level(log_level_num > 4 ? log_level_num - 1 : log_level_num));
logging::as_log_level(log_level_num > 4 ? log_level_num - 1 : log_level_num); LOGGER(dbt_rise_iss)::set_reporting_level(logging::as_log_level(log_level_num > 4 ? log_level_num - 1 : log_level_num));
LOGGER(dbt_rise_iss)::reporting_level() =
logging::as_log_level(log_level_num > 4 ? log_level_num - 1 : log_level_num);
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// configure logging // configure logging
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@@ -57,8 +55,8 @@ CLIParser::CLIParser(int argc, char* argv[])
scc::stream_redirection cerr_redir(std::cerr, scc::log::ERROR); scc::stream_redirection cerr_redir(std::cerr, scc::log::ERROR);
sc_core::sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", sc_core::SC_DO_NOTHING); sc_core::sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", sc_core::SC_DO_NOTHING);
sc_core::sc_report_handler::set_actions(sc_core::SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, sc_core::SC_DO_NOTHING); sc_core::sc_report_handler::set_actions(sc_core::SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, sc_core::SC_DO_NOTHING);
sc_core::sc_report_handler::set_actions(sc_core::SC_ERROR, sc_core::SC_LOG | sc_core::SC_CACHE_REPORT | sc_core::sc_report_handler::set_actions(sc_core::SC_ERROR,
sc_core::SC_DISPLAY | sc_core::SC_STOP); sc_core::SC_LOG | sc_core::SC_CACHE_REPORT | sc_core::SC_DISPLAY | sc_core::SC_STOP);
} }
void CLIParser::build() { void CLIParser::build() {

View File

@@ -73,8 +73,7 @@ int sc_main(int argc, char* argv[]) {
if(auto trace_level = parser.get<unsigned>("trace-level")) { if(auto trace_level = parser.get<unsigned>("trace-level")) {
auto file_name = parser.get<std::string>("trace-file"); auto file_name = parser.get<std::string>("trace-file");
auto enable_sig_trace = (trace_level & 0x1) != 0; // bit0 enables sig trace auto enable_sig_trace = (trace_level & 0x1) != 0; // bit0 enables sig trace
auto tx_trace_type = auto tx_trace_type = static_cast<scc::tracer::file_type>(trace_level >> 1); // bit3-bit1 define the kind of transaction trace
static_cast<scc::tracer::file_type>(trace_level >> 1); // bit3-bit1 define the kind of transaction trace
auto trace_default_on = parser.is_set("trace-default-on"); auto trace_default_on = parser.is_set("trace-default-on");
if(parser.is_set("trace-default-off")) if(parser.is_set("trace-default-off"))
cfg.set_value("scc_tracer.default_trace_enable", false); cfg.set_value("scc_tracer.default_trace_enable", false);
@@ -102,8 +101,7 @@ int sc_main(int argc, char* argv[]) {
cfg.configure(); cfg.configure();
std::unique_ptr<scc::hierarchy_dumper> dumper; std::unique_ptr<scc::hierarchy_dumper> dumper;
if(parser.is_set("dump-structure")) if(parser.is_set("dump-structure"))
dumper.reset( dumper.reset(new scc::hierarchy_dumper(parser.get<std::string>("dump-structure"), scc::hierarchy_dumper::D3JSON));
new scc::hierarchy_dumper(parser.get<std::string>("dump-structure"), scc::hierarchy_dumper::D3JSON));
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// overwrite config with command line settings // overwrite config with command line settings
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@@ -121,13 +119,11 @@ int sc_main(int argc, char* argv[]) {
tlm::tlm_global_quantum::instance().set(sc_core::sc_time(parser.get<unsigned>("quantum"), sc_core::SC_NS)); tlm::tlm_global_quantum::instance().set(sc_core::sc_time(parser.get<unsigned>("quantum"), sc_core::SC_NS));
if(parser.is_set("reset")) { if(parser.is_set("reset")) {
auto str = parser.get<std::string>("reset"); auto str = parser.get<std::string>("reset");
uint64_t start_address = uint64_t start_address = str.find("0x") == 0 ? std::stoull(str.substr(2), nullptr, 16) : std::stoull(str, nullptr, 10);
str.find("0x") == 0 ? std::stoull(str.substr(2), nullptr, 16) : std::stoull(str, nullptr, 10);
cfg.set_value(core_path + ".reset_address", start_address); cfg.set_value(core_path + ".reset_address", start_address);
} }
if(parser.is_set("disass")) { if(parser.is_set("disass")) {
cfg.set_value(core_path + ".enable_disass", true); cfg.set_value(core_path + ".enable_disass", true);
LOGGER(disass)::reporting_level() = logging::INFO;
auto file_name = parser.get<std::string>("disass"); auto file_name = parser.get<std::string>("disass");
if(file_name.length() > 0) { if(file_name.length() > 0) {
LOG_OUTPUT(disass)::stream() = fopen(file_name.c_str(), "w"); LOG_OUTPUT(disass)::stream() = fopen(file_name.c_str(), "w");