Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

non-internal ETISS config options in "Allowed options" #103

Open
JoGei opened this issue Jan 4, 2022 · 0 comments
Open

non-internal ETISS config options in "Allowed options" #103

JoGei opened this issue Jan 4, 2022 · 0 comments

Comments

@JoGei
Copy link
Member

JoGei commented Jan 4, 2022

ETISS initialize exposes configuration options that are not used by the neither core nor architecture. This leads to false feedback to users implying such options exists "out of the box". Some examples:

  • etiss.enable_dmi the "direct memory interface" seems to be something from for systemc wrapper of the CPUCore - no usage in standalone ETISS
  • etiss.log_pc is only checked in the example bare etiss processor to activate an additional plugin
  • vp.sw_binary_ram no usage, deprecated since existing SystemWrappers now rely on ELF files
  • vp.sw_binary_rom ""

The ETISS-Core should only expose options that it can also handle. While options like etiss.log_pc are used in the example, the example should expose its "extending" features, but not the Core.

Related code sections, where options are defined:

etiss/src/ETISS.cpp

Lines 721 to 753 in 36902d3

po::options_description desc("Allowed options");
desc.add_options()
("help", "Produce a help message that lists all supported options.")
("arch.cpu", po::value<std::string>(), "The CPU Architecture to simulate.")
("arch.or1k.ignore_sr_iee", po::value<bool>(), "Ignore exception on OpenRISC.")
("arch.or1k.if_stall_cycles", po::value<int>(), "Add instruction stall cycles on OpenRISC.")
("arch.cpu_cycle_time_ps", po::value<int>(), "Sets CPU cycles time on OpenRISC and ARM.")
("etiss.enable_dmi", po::value<bool>(), "Enables the Direct Memory Interface feature of SystemC to speed up memory accesses. This needs to be disabled for memory tracing.")
("etiss.log_pc", po::value<bool>(), "Enables logging of the program counter.")
("etiss.max_block_size", po::value<int>(), "Sets maximum amount of instructions in a block.")
("etiss.output_path_prefix", po::value<std::string>(), "Path prefix to use when writing output files.")
("etiss.loglevel", po::value<int>(), "Verbosity of logging output.")
("jit.gcc.cleanup", po::value<bool>(), "Cleans up temporary files in GCCJIT. ")
("jit.verify", po::value<bool>(), "Run some basic checks to verify the functionality of the JIT engine.")
("jit.debug", po::value<bool>(), "Causes the JIT Engines to compile in debug mode.")
("jit.type", po::value<std::string>(), "The JIT compiler to use.")
("jit.external_headers", po::value<std::string>(), "List of semicolon-separated paths to headers for the JIT to include.")
("jit.external_libs", po::value<std::string>(), "List of semicolon-separated library names for the JIT to link.")
("jit.external_header_paths", po::value<std::string>(), "List of semicolon-separated headers paths for the JIT.")
("jit.external_lib_paths", po::value<std::string>(), "List of semicolon-separated library paths for the JIT.")
("vp.sw_binary_ram", po::value<std::string>(), "Path to binary file to be loaded into RAM.")
("vp.sw_binary_rom", po::value<std::string>(), "Path to binary file to be loaded into ROM.")
("vp.elf_file", po::value<std::string>(), "Load ELF file.")
("vp.stats_file_path", po::value<std::string>(), "Path where the output json file gets stored after bare processor is run.")
("simple_mem_system.print_dbus_access", po::value<bool>(), "Traces accesses to the data bus.")
("simple_mem_system.print_ibus_access", po::value<bool>(), "Traces accesses to the instruction bus.")
("simple_mem_system.print_dbgbus_access", po::value<bool>(), "Traces accesses to the debug bus.")
("simple_mem_system.print_to_file", po::value<bool>(), "Write all tracing to a file instead of the terminal. The file will be located at etiss.output_path_prefix.")
("plugin.logger.logaddr", po::value<std::string>(), "Provides the compare address that is used to check for memory accesses that are redirected to the logger.")
("plugin.logger.logmask", po::value<std::string>(), "Provides the mask that is used to check for memory accesses that are redirected to the logger.")
("plugin.gdbserver.port", po::value<std::string>(), "Option for gdbserver")
("pluginToLoad,p", po::value<std::vector<std::string>>()->multitoken(), "List of plugins to be loaded.")
;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant