sid/main/dynamic/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * mepCfg.cxx (set_dynamic_config): New method of MepMemCfg. (MepCacheCfg::set_dynamic_config): Don't use the new-config pin or the dynamic-configurator attribute. Instead, relate the cache to the dynamic configurator using its client relation. (MepBoardCfg::write_config): Likewise for the insn_buffer, dmac, hw_engines and peripherals. Call set_dynamic_config for shared_main_mem. * mainDynamic.cxx (BoardConfig): New struct type. (main): Keep a vector of the boards in board_configs. Call set_start_config for each board after all the --wrap options have been seen. Call add_wrapped_component to identify each wrapped component to the session. * commonCfg.h (wrapped_components): New member of SessionCfg. (add_wrapped_component): New method of SessionCfg. (wrap_config): Likewise. * commonCfg.cxx (wrap_config): New method of SessionCfg. (profile_config): Use possible_wrap_name to obtain the component being wrapped so we can get its name. (GdbCfg::write_config): Don't connect the new-config pin or use the dynamic-configurator relation. Instead, use the dynamic configurator's client relation. (BoardCfg::write_config): Likewise. Relate the dynamic configurator to gloss. * baseCfg.cxx (wrap_component): Now returns AtomicCfg *. (possible_wrap_name): Likewise. (dynamic_config_for_wrapped_children): Don't connect the dynamic configurator's new-config pin to the components or relate the dynamic configurator to them. Rather, relate the components to the dynamic configurator using its 'client' relation. * baseCfg.h (wrap_component): Now returns AtomicCfg *. (possible_wrap_name): Likewise. 2005-07-05 Dave Brolley * commonCfg.cxx (BoardCfg::write_load): Connect dynamic configurator's "reset" pin to output 2 of reset_net. (write_config): Set the "start-config" attribute of the dynamic configurator not gloss. Relate "main" to the dynamic configurator unconditionally. Connect the "config-error" pins of the dynamic configurator and gloss. 2005-06-30 Dave Brolley * mainDynamic.cxx (try_add_gprof): Make sure an argument is specified after the comma. 2005-06-06 Dave Brolley * mainDynamic.cxx (need_sess): Now takes 'verbose' argument. Use it to initialize sess->verbose. Update all callers. (main): Add " --model-busses" to board_start_config instead of " --model_busses" (typo). * commonCfg.h (need_core_probe): New member of SessionCfg. (BoardCfg::dynamic_configurator): Now public. * commonCfg.cxx (SessionCfg): Initialize need_core_probe. (profile_config): Set need_core_probe for --trace-core. Call use_tcl_bridge and possible_wrap_name for --wrap. (LoaderCfg): Don't set verbose? attribute here. (GlossCfg): Likewise. (GdbCfg::write_config): Connect the stub and the socket to the dynamic_configurator. (BoardCfg): Initialize core_probe and warmup_funcs. Connect the cpu's print-insn-summary pin to the shutdown sequence here. (BoardCfg::write_load): Connect the dynamic configurator's step! pin to the init-sequence's output 6. Set the core_probe's trace? attribute. Set the gloss and loader's verbose? attributes. (BoardCfg::write_config): Give the dynamic configurator its own subscription to sim-sched. Set the cpu's 'main' and core-probe relations. Connect gloss, core_probe, loader and all of the board's wrapped childred to the dynamic configurator. Check whether components are wrapped before connecting them to the dynamic configurator. Don't connect the cpu's print-insn-summary pin to the shutdown sequence here. * baseCfg.cxx (AtomicCfg): Initialize my_possibly_wrapped. (wrap_component): Set my_possibly_wrapped. (possible_wrap_name): New static method of AtomicCfg. (AtomicCfg::write_construct): Check my_possibly_wrapped. Set victim-trace? to false if only possibly wrapped. (dynamic_config_for_wrapped_children): New method of AggregateCfg. * baseCfg.h (possible_wrap_name): New static method of AtomicCfg. (possibly_wrapped): New method of AtomicCfg. (my_possibly_wrapped): New member of AtomicCfg. (dynamic_config_for_wrapped_children): New method of AggregateCfg. 2005-05-29 Dave Brolley * mainDynamic.cxx (usage): Document --profile-config,--profile-func, --warmup-func and --warmup. (Defs): Initialize warmup, profile_func and start_config. (warmup,profile_func,warmup_func,start_config): New members of Defs. (need_sess): Call profile_config with "sid-internal-warmup:". (opt_warmup,opt_warmup_func,opt_profile_func,opt_profile_config): New enumerators. (long_options): Add --profile-config,--profile-func, --warmup-func and --warmup. (main): Accumulate start_config with reconfigurable options which occur before the first --board. For each board call set_start_config with the value of start_config concatenated with the additional reconfigurable options specified for that --board. Call set_warmup, add_warmup_func and add_profile_func for each board. Handle new option enums. * commonCfg.h (add_profile_config): New method of SessionCfg. (profile_config_error, profile_opt_value, profile_opt_int_value) (profile_opt_gprof_value, match_profile_opt, profile_config): New methods of SessionCfg. (GprofCfg): New constructor. (write_load): New virtual override in BoardCfg. (add_profile_func, add_warmup_func, set_warmup, set_start_config): New methods of BoardCfg. (need_gprof): New member of BoardCfg. (start_config,warmup_funcs,profile_funcs): New members of BoardCfg. * commonCfg.cxx (SessionCfg): Initialize need_gprof. (add_profile_config): New method of SessionCfg. (profile_config_error, profile_opt_value, profile_opt_int_value) (profile_opt_gprof_value, match_profile_opt, profile_config): New methods of SessionCfg. (GprofCfg): Always add a sunscription to sim_sched. Set the sim-sched-event attribute. (GprofCfg): New constructor. (BoardCfg): Initialize dynamic_configurator and start_config. (write_load): New virtual override in BoardCfg. (BoardCfg::write_config): Make connections and set attributes to allow for dynamic configuration. (add_profile_func, add_warmup_func, set_warmup, set_start_config): New methods of BoardCfg. sid/include/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * sidcpuutil.h (num_cycles): New member of basic_cpu. (step_pin_handler): Call configure_gprof. (cg_profile): Call last_caller and last_callee. (cg_profile_jump): Call last_caller and last_callee. (configure_gprof): New method of basic_cpu. (unconfigure_gprof): New method of basic_cpu. (gprof_configured_p,configure_gprof_p,last_caller,last_callee) (pprof_spec): New members of basic_cpu. (configure): Call configure_gprof. (basic_cpu): Initialize gprof_configured_p, configure_gprof_p, last_caller and last_callee. * sidattrutil.h (configurable_component): Moved here ... * sidcomputil.h (configurable_component): ... from here. * sidbusutil.h (bus_arbitrator): Inherit from no_relation_component. 2005-06-24 Dave Brolley * sidattrutil.h (fixed_attribute_map_with_logging_component): Initialize buffer_output to false. 2005-06-21 Dave Brolley * sidcpuutil.h (basic_cpu::configure): Call update_final_insn_count_p after processing "final-insn-count". 2005-06-06 Dave Brolley * sidcpuutil.h (print_final_insn_count_p): New member of basic_cpu. (print_insn_summary): Check print_final_insn_count_p. (update_final_insn_count_p): New method of basic_cpu. (core_probe,main); New members of basic_cpu. (basic_cpu::configure): Handle insn-count, verbose, trace-core, trace-counter, trace-extract, trace-semantics and final-insn-count. (stream_state): Stream print_final_insn_count_p. (destream_state): Destream print_final_insn_count_p. (basic_cpu): Initialize core_probe and main. Initialize print_final_insn_count_p. Add final-insn-count? using add_attribute_notify. Add relations core-probe and main. * sidcomputil.h (configurable_component::configure_pin_handler): Now virtual. 2005-05-29 Dave Brolley * sidcpuutil.h (basic_cpu): New inherits from configurable_component. (cg_jump_pin,cg_return_pin): New members of basic_cpu. (cg_profile_jump): New method of basic_cpu. (configure): New virtual override on basic_cpu. (basic_cpu): Initialize gprof. Add cg-return and cg-jump pins. Add gprof relation. * sidcomputil.h (configurable_component): New mix-in class for components. * sidattrutil.h (sidcomputil.h): #include it. (fixed_attribute_map_with_logging_component): Inherit from configurable_component. (configure): New virtual override in fixed_attribute_map_with_logging_component. sid/component/tcl/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * compTcl.cxx (set_attribute_value): Handle the configure! attribute. (find_pin): Don't handle the configure! pin. (relate): Don't handle the dynamic-configurator relation. (unrelate): Likewise. (configure_pin_handler): Removed. 2005-06-06 Dave Brolley * sid-api-trace.tcl (attribute_value): Handle component-type and victim attributes. * compTcl.cxx (tcl_component): component and configurable_component inherited virtually. (victim_name): New member of tcl_component. (set_attrinute_value): Handle victim-name attribute. (find_pin): Handle the "configure" pin specially. (relate): Handle the dynamic-configurator relation specially. (unrelate): Likewise. (configure_pin_handler,configure): New virtual overrides in tcl_component. sid/component/profiling/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * gprof.cxx (gprof_component): Inherit virtually from fixed_attribute_map_component. 2005-05-29 Dave Brolley * gprof.cxx: Keep a vector of statistics to allow switching from one output file to another dynamically. (sid::pin,sidutil::configurable_component) (sidutil::output_pin,sidutil::tokenize): Add using clauses. (profiling_components): Inherit virtually from fixed_pin_map_component and fixed_relation_map_component. Inherit from configurable_component. (statistics): New struct type. (stats,current_stats): New members of gprof_component. (set_nothing,value_min_get,value_max_get,value_count_get,limit_min_get) (limit_min_set,limit_max_get,limit_max_set,output_file_get) (output_file_set): New methods of gprof_component. (reset): Initialize stats vector. (store): Call store stats for each element of the stats vector. (configure): New virtual override in gprof_component. (gprof_component): Call reset. Add sim-sched-event attribute. Add sim-sched relation. sid/component/loader/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * compLoader.cxx (generic_loader): Inherit virtually from fixed_attribute_map_component. Inherit from no_relation_component. 2005-06-06 Dave Brolley * elfload.c (readElfFile): Return and empty symbol table if none found. * compLoader.cxx: Add using cleause for sidutil::configurable_component. (generic_loader): fixed_pin_map_component and configurable_component inherited virtually. (configure): New virtual override in generic_loader. (check_function_pin_handler): Return the empty string if no function is associated with the given address. * sw-load-elf.xml: Add description of new interfaces. * sw-load-elf.txt: Regenerated. 2005-05-29 Dave Brolley * elfload.h (StringTable, Symbol): New struct types. (readElfFile): New takes symbol_table argument. (SHT_SYMTAB, SHT_STRTAB, ELF32_ST_TYPE, STT_FUNC): New macros. * elfload.c (stringTables,stringTableCount,stringTableNum): New static variables. (newStringTable): New static function. (symbolTable,symbolCount,symbolNum): New static variables. (newSymbol): New static function. (readElfFile): New takes symbol_table argument. Build string tables and symbol table while reading the input file. * compLoader.cxx (elf_loader): New constructor. (load_it): Obtain symmol_table from readElfFile. (check_function_pin,symbol_table,current_function): New members of elf_loader. (check_function_pin_handler): New method of elf_loader. sid/component/gloss/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * gloss.cxx (gloss32): Initialize dynamic_configurator. Add dynamic-configurator relation. * gloss.h (gloss32): Inherit virtually from fixed_attribute_map_component. (dynamic_configurator): New member of gloss32. 2005-07-05 Dave Brolley * gloss.cxx (start_config): Removed from gloss32. (gloss32): Remove "start-config" attribute. Add "config-error" pin. (reset): Don't call sys_config_set. (sys_reconfig_set): Call set_error_result based on the value driven on config_error_pin. (sys_reconfig_reset): Likewise. * gloss.h (start_config): Removed from gloss32. (config_error_pin): New member of gloss32. 2005-06-06 Dave Brolley * gloss.cxx (gloss32): Don't initialize dynamic_configurator. Don't add dynamic-configurator relation. (configure_pin): Renamed to sys_configure_pin. (configure): New virtual override in gloss32. (do_sys_reconfig): Print log messages to cerr and only when verbose_p. * gloss.h (gloss32): fixed_pin_map_component and configurable_component inherited virtually. (dynamic_configurator): Removed. (configure_pin): Renamed to sys_configure_pin. (configure): New virtual override in gloss32. 2005-05-29 Dave Brolley * libgloss.h (SYS_reconfig): New enumerator. * gloss.h (main, dynamic_configurator): New members of gloss32. (configure_pin, config_result_pin, start_config): Likewise. (sys_reconfig_set): New method of gloss32. (sys_reconfig_reset, do_sys_reconfig): Likewise. * gloss.cxx (gloss32): Initialize main, dynamic_configurator and start_config. Add relations main, dynamic-configurator. Add configure pin. Add start-config addtribute. Add config-result pin. (reset): Call sys_reconfig_set with start_config if it's not empty. (syscall_trap): Handle SYS_reconfig. (sys_reconfig_set): New method of gloss32. (sys_reconfig_reset, do_sys_reconfig): Likewise. sid/component/gdb/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * gdb.h (configurable_component): Inherit virtually from fixed_attribute_map_component. 2005-06-06 Dave Brolley * gdb.cxx (configure): New virtual override in gdb. * gdb.h (configure): Likewise. (gdb): fixed_pin_map_component, fixed_relation_map_component and configurable_component inherited virtually. * sw-debug-gdb.xml: Add description of new interfaces. * sw-debug-gdb.txt: Regenerated. sid/component/consoles/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * components.h (socketio): Inherit virtually from fixed_attribute_map_component. Inherit from no_relation_component. 2005-06-06 Dave Brolley * components.h: Add using clause for sidutil::configurable_component. (socketio): fixed_pin_map_component and configurable_component inherited virtually. no_relation_component no longer inherited. (configure): New virtual override in socketio. * socketio.cxx (configure): Likewise. * sid-io-socket.xml: Add description of new interfaces. * sid-io-socket.txt: Regenerated. sid/component/cgen-cpu/ChangeLog: 2005-08-04 Dave Brolley * Contribute the following changes: 2005-07-13 Dave Brolley * cgen-cpu.h (notify_ret): Set last_caller and last_callee. 2005-05-29 Dave Brolley * cgen-cpu.h (branch, done_insn, done_cti_insn, notify_ret): New virtual overrides. (was_return): New member of cgen_bi_endian_cpu. sid/component/cfgroot/ChangeLog: 2005-08-04 Dave Brolley * Contribute these changes: 2005-07-13 Dave Brolley * compConfig.cxx (new_config_pin): Removed from dynamic_configurator_component. (clients): Added to dynamic_configurator_component. (dynamic_configurator_component): Remove new-config pin. Add clients as a multi relation. (step_pin_handler): Set the configure! attribute of each component related via the client relationship. (do_configure): Set config_names[0] and config_specs[0] if the handle is zero. * sid-control-dynamic-configurator.xml: Document the removal of the new-config pin and the addition of the clients relationship. * sid-control-dynamic-configurator.txt: Regenerated. 2005-07-05 Dave Brolley * compConfig.cxx (reset_pin_handler): New method of dynamic_configurator_component. (set_start_config): Likewise. (reset): Likewise. (reset_pin): New member of dynamic_configurator_component. (config_error_pin): Likewise. (dynamic_configurator_component): Initialize current_config, prev_config and prev_user_config in the reset method. Add "start-config" attribute. Add "reset" and "config-error" pins. (configure): Check result of do_configure. Drive config_error_pin if not ok. (configure_pin_handler): Drive config_error_pin if the handle is not valid. * sid-control-dynamic-configurator.xml: Document the "config-error" and "reset" pins * sid-control-dynamic-configurator.txt: Regenerated. 2005-06-21 Dave Brolley * compConfig.cxx (step_pin_handler): Always drive new_config_pin. 2005-06-06 Dave Brolley * Makefile.am (pkgdata_DATA): Add sid-control-dynamic-configurator.txt. * Makefile.in: Regenerated. * compConfig.cxx (cfgroot_component::configure): Renamed to configure_file. (restore_config,set_syscall_config,check_config_change): New methods of dynamic_configurator_component. (in_function): Likewise. (prev_user_config): New member of dynamic_configurator_component. (dynamic_configurator_component): Prime the config_stack with a dummy entry. (add_warmup_functions): Tokenize based on ",". (add_profile_functions): Move on to the next spec on parse error. (dynamic_configurator_component::configure): Drive config_result_pin with prev_user_config. Call set_syscall_config and check_config_change. (do_configure): Don't drive the config_result_pin here. Don't drive the step_control_pin here. Duplicate the first stack entry for the first config in the dummy entry of the stack. Now takes a reference to a config handle. (configure_pin_handler): Drive the config_result_pin with prev_user_config. Call restore_config, sys_syscall_config and check_config_change. (function_callee_pin_handler): Always use sid-internal-warmup for _Sid_config. (function_return_pin_handler): Return if the loader can't identify the current function. Call restore_config and check_config_change. * sid-control-dynamic-configurator.txt: New file. * sid-control-dynamic-configurator.xml: New file. 2005-05-29 Dave Brolley * compConfig.cxx (std::pair,sidutil::tokenize): Add using clause for these. (dynamic_config,lookup_dynamic_config): New methods of cfgroot_component. (dynamic_configs,found_dynamic_config): New members of cfgroot_component. (configure_line): Initialize num_invalid_chars. (cfgroot_component): Initialize dynamic_configs and found_dynamic_config. Add virtual attributes dynamic-config! and lookup-dynamic-config!. Add attribute found-dynamic-config. (dynamic_configurator_component): New class. (compConfigListTypes): Push back sid-control-dynamic-configurator. (compConfigCreate): Handle sid-control-dynamic-configurator. (compConfigDelete): Delete dynamic_configurator_component.