return peers parser = argparse.ArgumentParser() parser.add_argument('config_file', metavar='config-file.ini', help='.ini configuration file to load and run') parser.add_argument('--checkpoint-dir', type=str, default=None, help='A checkpoint to directory to restore when starting ' 'the simulation') args = parser.parse_args(sys.argv[1:]) if args.config_file.endswith('.ini'): config = ConfigIniFile() config.load(args.config_file) else: config = ConfigJsonFile() config.load(args.config_file) ticks.fixGlobalFrequency() mgr = ConfigManager(config) mgr.find_all_objects() m5.instantiate(args.checkpoint_dir) exit_event = m5.simulate() print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()))
peers = to_list(obj[port_name]['peer']) return peers parser = argparse.ArgumentParser() parser.add_argument('config_file', metavar='config-file.ini', help='.ini configuration file to load and run') args = parser.parse_args(sys.argv[1:]) if args.config_file.endswith('.ini'): config = ConfigIniFile() config.load(args.config_file) else: config = ConfigJsonFile() config.load(args.config_file) ticks.fixGlobalFrequency() mgr = ConfigManager(config) mgr.find_all_objects() m5.instantiate() exit_event = m5.simulate() print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())
# redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution; # neither the name of the copyright holders nor the names of its # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from m5.objects import * from arm_generic import * from m5.ticks import fixGlobalFrequency, fromSeconds root = LinuxArmFSSystem(mem_mode='atomic_noncaching', machine_type='VExpress_GEM5_V1', mem_class=SimpleMemory, cpu_class=ArmV8KvmCPU, num_cpus=2).create_root() fixGlobalFrequency() root.sim_quantum = fromSeconds(m5.util.convert.anyToLatency("1ms"))