History log of /gem5/configs/example/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
14178:f68430623245 13-Aug-2019 Adrian Herrera <adrian.herrera@arm.com>

configs: root, platform options in fs bigLITTLE

(1) Two new options are added to fs_bigLITTLE.py:
- "root": disk/partition containing the rootfs (def. "/dev/vda1")
- "machine-type": hardware platform class (def. "VExpress_GEM5_V1")
+ Accepts platform classes from PlatformConfig
(2) Default kernel is not available in public uploads, force the user
to provide its own kernel instead of crashing.

Change-Id: I88283ae12cd7289e15b9277ea2cc382e9136f11c
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20148
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>

14115:2a3eee6ded38 29-Jul-2019 Chun-Chen TK Hsu <chunchenhsu@google.com>

configs, arch-arm: Check if gic has cpu_addr attribute

Add this check because Gicv3 does not have the cpu_addr attribute.

Test: Change VExpress_GEM5_V1() to VExpress_GEM5_V2() and run the
following command to boot Debian.

M5_PATH=$PWD/fs_files ./build/ARM/gem5.opt ./configs/example/arm/fs_bigLITTLE.py \
--dtb $PWD/fs_files/binaries/armv8_gem5_v2_1cpu.dtb \
--kernel $PWD/fs_files/binaries/vmlinux \
--disk $PWD/fs_files/disks/disk.img \
--cpu-type atomic --big-cpus 1 --little-cpus 0

Change-Id: I23595ae5238dc7cc915ab09300f91aa5e8c24fdc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19648
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>

14051:aff599136be8 07-Jun-2019 Nikos Nikoleris <nikos.nikoleris@arm.com>

configs: Fix read_config to work with new AddrRange serialization

Change-Id: I122c77c34c2f8c75f8b32682be858f651112ce89
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19151
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>

14050:09be542e022f 07-Jun-2019 Nikos Nikoleris <nikos.nikoleris@arm.com>

configs: Add python3 workarounds in read_config

Change-Id: Ib065f41b87e5ada9535b9c2645067162aa69234b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19150
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>

14032:f65b663b0df8 03-Apr-2019 Willy Wolff <willy.mh.wolff.ml@gmail.com>

config, arm: memoryMode test

Commit 9a13acaa367769c38859342de9bc35aac59a6710 doesn't comply with the
same behaviour. The conditional test the memory mode on the same cluster,
while it should test the other cluster.

Change-Id: If3a7863f0905e66a548001d8e74689f5dd07179c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17748
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13980:62a28c423e91 16-May-2019 Jason Lowe-Power <jason@lowepower.com>

configs: Generalize FileSystemConfig for non se.py

This patch updates the FileSystemConfig so it works with more kinds of
config scripts (e.g., the Learning gem5 scripts).

There are 4 main changes:
- Added system as a parameter to the config_filesystem function so the
function can search the system for the number of CPUs instead of relying
on options from Options.py
- Instead of calling redirect_paths everywhere config_filesystem is
used, now it is implicitly called.
- Cleaned up the Ruby scripts a bit to remove redundant calls to
config_filesystem
- Added a config_filesystem call to the Ruby Learning gem5 script
(currently the only Learning gem5 script that requires it).

In the future, I think it would be better to move the config_filesystem
call into simulate.py, probably into the instantiate function. I tried to
use the per-CPU configuration parameters instead of options from
Options.py, but that's not possible until after the SimObject params
have been finalized in instantiate.

Change-Id: Ie6501a7435cfb3ac9d2b45be3722388b34063b1e
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18848
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Tested-by: kokoro <noreply+kokoro@google.com>

13958:1945df12e5b0 07-Jan-2019 Jairo Balart <jairo.balart@metempsy.com>

config: add an option to list and select indirect branch predictor

Change-Id: I9a855d36de7d95b7785ff8a897899037cea6a3d8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/15320
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>

13883:f44e21d3aaa7 18-Apr-2018 David Hashe <david.hashe@amd.com>

sim-se: add a faux-filesystem

This change introduces the concept of a faux-filesystem.
The faux-filesystem creates a directory structure in m5out
(or whatever output dir the user specifies) where system calls
may be redirected.

This is useful to avoid non-determinism when reading files
with varying path names (e.g., variations from run-to-run if
the simulation is scheduled on a cluster where paths may change).

Also, this changeset allows circumventing host pseudofiles which
have information specific to the host processor (such as cache
hierarchy or processor information). Bypassing host pseudofiles
can be useful when executing runtimes in the absence of an
operating system kernel since runtimes may try to query standard
files (i.e. /proc or /sys) which are not relevant to an
application executing in syscall emulation mode.

Change-Id: I90821b3b403168b904a662fa98b85def1628621c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12119
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>

13864:815193aa6617 22-Apr-2019 Po-Hao Su <supohaosu@gmail.com>

configs: Use param to get number of processors

Although the parameter np is the same as options.num_cpus. But we should
get the number of processors from the parameters of the function.

Change-Id: I3eb02d7c75ab35410b773b06001d1b145cdccd49
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18248
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>

13838:d90eaeb087c8 07-Apr-2019 Ryan Gambord <gambordr@oregonstate.edu>

configs: Removed redudant exec-style import

garnet_synth_traffic.py imports common.Options on line 40, so exec'ing
the Options.py file again seems redundant.

It also runs Options.py as a script rather than a module, which throws
ValueError: Attempted relative import in non-package due to the recent
change to python3 imports.

Change-Id: Id729a8dfa776af0d14312e765168aff6900eb727
Signed-off-by: Ryan Gambord <gambordr@oregonstate.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17888
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13803:32c104f40e57 25-Jul-2018 Daniel R. Carvalho <odanrc@yahoo.com.br>

configs: Remove default kernel value from system creation

Kernel was being set using a placeholder and then assigned the
correct value. This would generate the following error if the
placeholder file did not exist:
'IOError: Can't find file <placeholder> on path'

This patch follows the same directions of commit
12eca7ac04ae1ba559bf322b5c625513929d369d and removes the default
values, forcing the user to properly configure the kernel.

Change-Id: I0eb45d12eda6b6efe9a3fe118996b640844a7b34
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/11850
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13774:a1be2a0c55f2 25-Feb-2019 Andreas Sandberg <andreas.sandberg@arm.com>

configs: Use absolute import paths

Use absoluate import paths to be Python 3 compatible. This also
imports absolute_import from __future__ to ensure that Python 2.7
behaves the same way as Python 3.

Change-Id: Ica06ed95814e9cd3e768b3e1785075e36f6e56d0
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/16708
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>


/gem5/configs/common/BPConfig.py
/gem5/configs/common/Benchmarks.py
/gem5/configs/common/CacheConfig.py
/gem5/configs/common/Caches.py
/gem5/configs/common/CpuConfig.py
/gem5/configs/common/FSConfig.py
/gem5/configs/common/GPUTLBConfig.py
/gem5/configs/common/GPUTLBOptions.py
/gem5/configs/common/HMC.py
/gem5/configs/common/MemConfig.py
/gem5/configs/common/Options.py
/gem5/configs/common/PlatformConfig.py
/gem5/configs/common/SimpleOpts.py
/gem5/configs/common/Simulation.py
/gem5/configs/common/SysPaths.py
/gem5/configs/common/__init__.py
/gem5/configs/common/cores/__init__.py
/gem5/configs/common/cores/arm/HPI.py
/gem5/configs/common/cores/arm/O3_ARM_v7a.py
/gem5/configs/common/cores/arm/__init__.py
/gem5/configs/common/cores/arm/ex5_LITTLE.py
/gem5/configs/common/cores/arm/ex5_big.py
/gem5/configs/common/cpu2000.py
/gem5/configs/dram/lat_mem_rd.py
/gem5/configs/dram/low_power_sweep.py
/gem5/configs/dram/sweep.py
apu_se.py
arm/devices.py
arm/dist_bigLITTLE.py
arm/fs_bigLITTLE.py
arm/fs_power.py
arm/starter_fs.py
arm/starter_se.py
etrace_replay.py
fs.py
garnet_synth_traffic.py
hmc_hello.py
hmctest.py
memcheck.py
memtest.py
read_config.py
ruby_direct_test.py
ruby_gpu_random_test.py
ruby_mem_test.py
ruby_random_test.py
se.py
/gem5/configs/learning_gem5/part1/caches.py
/gem5/configs/learning_gem5/part1/simple.py
/gem5/configs/learning_gem5/part1/two_level.py
/gem5/configs/learning_gem5/part2/hello_goodbye.py
/gem5/configs/learning_gem5/part2/run_simple.py
/gem5/configs/learning_gem5/part2/simple_cache.py
/gem5/configs/learning_gem5/part2/simple_memobj.py
/gem5/configs/learning_gem5/part3/msi_caches.py
/gem5/configs/learning_gem5/part3/ruby_caches_MI_example.py
/gem5/configs/learning_gem5/part3/ruby_test.py
/gem5/configs/learning_gem5/part3/simple_ruby.py
/gem5/configs/learning_gem5/part3/test_caches.py
/gem5/configs/network/Network.py
/gem5/configs/network/__init__.py
/gem5/configs/ruby/GPU_RfO.py
/gem5/configs/ruby/MI_example.py
/gem5/configs/ruby/Ruby.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/configs/topologies/BaseTopology.py
/gem5/configs/topologies/Cluster.py
/gem5/configs/topologies/Crossbar.py
/gem5/configs/topologies/CrossbarGarnet.py
/gem5/configs/topologies/MeshDirCorners_XY.py
/gem5/configs/topologies/Mesh_XY.py
/gem5/configs/topologies/Mesh_westfirst.py
/gem5/configs/topologies/Pt2Pt.py
/gem5/configs/topologies/__init__.py
13731:67cd980cb20f 26-Jan-2019 Andreas Sandberg <andreas.sandberg@arm.com>

configs: Fix Python 3 iterator and exec compatibility issues

Python 2.7 used to return lists for operations such as map and range,
this has changed in Python 3. To make the configs Python 3 compliant,
add explicit conversions from iterators to lists where needed, replace
xrange with range, and fix changes to exec syntax.

This change doesn't fix import paths since that might require us to
restructure the configs slightly.

Change-Id: Idcea8482b286779fc98b4e144ca8f54069c08024
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/16002
Reviewed-by: Gabe Black <gabeblack@google.com>

13727:8d69b7e86acd 20-Feb-2019 Gabe Black <gabeblack@google.com>

systemc: Update the sc_main.py config to use m5.systemc.

Change-Id: I386970b5cf7ee1262b259abfb3b5e902ccea9991
Reviewed-on: https://gem5-review.googlesource.com/c/16568
Maintainer: Gabe Black <gabeblack@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

13684:076506a21535 24-Jan-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

configs: simpoint-profile usable with NonCachingCPUs only

NonCachingCPU is replacing the Atomic+fastmem option.

Change-Id: I66f5c8a880d1b3fd1331871d89e8d6a229938e57
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15935
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13659:c2d68b376f7f 11-Feb-2019 Gabe Black <gabeblack@google.com>

systemc: config: Don't inject a custom argv[0] in sc_main.py.

argv[0] is already part of sys.argv, so we don't need to add an
additional argument in front of sys.argv.

The argv[0] which is used in gem5 config scripts is the name of the
config script itself. While it might seem a little odd for the name of
a systemc program to end in .py, it's as arbitrary as any other name,
and generally shouldn't cause a problem. If some other more
sophisticated mechanism for setting argv[0] is necessary, then the user
can write a very slightly more complicated version of this script with
additional logic.

Change-Id: Ifd5d8a02d3cd5db76054151ed6c7a7b1f8495fa8
Reviewed-on: https://gem5-review.googlesource.com/c/16342
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

13658:f82614880471 09-Feb-2019 Gabe Black <gabeblack@google.com>

systemc: configs: Add a very simple config which just runs sc_main.

This config will just run the sc_main function (which must have been
provided in c++ somehow), passing through any of the scripts command
line arguments to sc_main.

Needing to do this sort of thing is common enough that there should be
a canned config which supports it.

Change-Id: I8f88ba4776b9ec919dd8145a58cd856e11ac4e77
Reviewed-on: https://gem5-review.googlesource.com/c/16287
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13636:3b55e4bae1d8 04-Feb-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

configs, arch-arm: Using AddrRange for Realview mem_regions

Physical memory ranges are now saved in Realview objects as pairs of
addresses (start address and size). This patch is substituting them with
a single AddrRange object.

Change-Id: I02d25d557c5c54d062f0dccef8ede45744d0ce6b
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/16206
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13635:d9dcebb1d6b6 03-Feb-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

configs: Unifiy interpretation of Realview mem_regions

In every arm platform which is making use of them, mem_regions are
interpreted as a pair of start address and size. However arm
SimpleSystem, which is using VExpress_GEM5_V1, is interpreting them as
start address and end address. This patch is fixing this mismatch.

Change-Id: I0b2a2193cd07fbc5430f233438269a9c7c353df9
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/16205
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13609:adc3dd5e3384 25-Jan-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

configs: Enable DTB autogeneration in starter_fs.py

This patch is removing hardcoded default DTBs in favour of common DTB
autogeneration.

Change-Id: I68fdc2a169bfa8e8657c9ed4e4e127957a08cca1
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15959
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13608:e91969b61d3d 25-Jan-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm, configs: Create single instance of DTB autogeneration

This patch is rewriting the DTB autogeneration functions available in
fs_bigLITTLE.py and fs.py as a single method in the GenericArmSystem
so that other configuration scripts can make use of it.

Change-Id: I492bbf77e6b0ac5c5fbdbc75c0eecba29bd63bda
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15958
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13606:2ad4449e6cb4 24-Jan-2019 Ciro Santilli <ciro.santilli@arm.com>

configs: fs.py remove --generate-dtb and enable it by default

The option is now enabled if neither --bare-metal nor --dtb-filename are
given.

This is what fs_bigLITTLE.py already did before this patch.

Change-Id: I9179f8c9fa18edbd1e0f1a65ea2c1de0a26b7921
Reviewed-on: https://gem5-review.googlesource.com/c/15899
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13432:6ce67b7e6e44 07-Nov-2018 Pau Cabre <pau.cabre@metempsy.com>

configs: Added an option for choosing branch predictor type

Added the parameter "--bp-type" to set the branch predictor type
Added the parameter "--list-bp-types" to list all the available branch
predictor types

Change-Id: Ia6aae90c784aef359b6d8233c8383cd7a871aca1
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14015
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

13408:f586d7fb4623 04-Oct-2018 Nikos Nikoleris <nikos.nikoleris@arm.com>

configs: Revamp ruby mem test to align with MemTest

The test script was broken as it was based on an older version of
MemTest, this changes revamps the creation of MemTest and removes
parameters that are not any longer valid.

Change-Id: Ib87369c1e4717c2da23e8108c72eec871e56f6ed
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/13596
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13357:110926e15f1f 13-Sep-2018 Ciro Santilli <ciro.santilli@arm.com>

config: add --param to fs.py, se.py and fs_bigLITTLE.py

The option allows to set SimObject params from the CLI.

The existing config scripts have a large number of options that simply set
a single SimObject parameter, and many still are not exposed.

This commit allows users to pass arbitrary parameters from the command
line to prevent the need for this kind of trivial option.

Change-Id: Ic4bd36948aca4998d2eaf6369c85d3668efa3944
Reviewed-on: https://gem5-review.googlesource.com/c/12985
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13174:6d96125a657c 09-Oct-2018 Daniel R. Carvalho <odanrc@yahoo.com.br>

configs: Fix CPUClass typo in se.py

Change 719eb033fe435133abf15501c249eec10d1c861f added a typo
to se.py that breaks simpoint simulation, which generates the
following error:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/daniel/gem5/src/python/m5/main.py", line 435, in main
exec filecode in scope
File "./configs/example/se.py", line 217, in <module>
if not CpuConfig.is_atomic_cpu(TestCPUClass):
NameError: name 'TestCPUClass' is not defined

Change-Id: Ideede8c96a40ee16af733c3d57b02b64f1a18d12
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/13267
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13022:6c0f747b0c64 14-Sep-2018 Sherif Elhabbal <elhabbalsherif@gmail.com>

config, arm, power: Example to report the power for the L2 Cache

This patch add an example to demonstrate how to report the power for the L2
Cache of the big cluster separately ,it decouples the L2 contributions from
the CPU power equation

Signed-off-by: Sherif Elhabbal <elhabbalsherif@gmail.com>
Change-Id: Idde43c8bcb10df9d44d20282eaf21ce87a9d3f58
Reviewed-on: https://gem5-review.googlesource.com/12684
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anouk Van Laer <anouk.vanlaer@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13012:5fbc6b9c64bc 15-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

cpu: Replace the fastmem with a new CPU model

The AtomicSimpleCPU used to be able to access memory directly to speed
up simulation if no caches are used. This is fine as long as no
switching between CPU models is required. In order to switch to a new
CPU model that requires caches, we currently need to checkpoint the
system and restore it into a new configuration. The new
'atomic_noncaching' memory mode provides a solution that avoids this
issue since caches are bypassed in this mode. This changeset removes
the old fastmem option from the AtomicSimpleCPU and introduces a new
CPU, NonCachingSimpleCPU, which derives from the AtomicSimpleCPU.

The NonCachingSimpleCPU uses the same mechanism as the AtomicSimpleCPU
used to use when accessing memory in when fastmem was enabled.

This changeset also introduces a new switcheroo test that tests
switching between a NonCachingSimpleCPU and a TimingSimpleCPU with
caches.

Change-Id: If01893f9b37528b14f530c11ce6f53c097582c21
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/12419
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12941:24771c7aee2e 28-Aug-2018 Andreas Sandberg <andreas.sandberg@arm.com>

config: Move KVM CPU checking to CpuConfig helper module

Both se.py and fs.py need to check if a CPU is a KVM CPU. This is
somewhat involved since CPUs can be disabled at compile time. Enable
better code reuse by moving it to the CpuConfig module.

Change-Id: I47b1512ecb62e757399a407a0e41be83b9f83be3
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/12418
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12726:850e9965525b 05-Feb-2018 Nikos Nikoleris <nikos.nikoleris@arm.com>

mem-cache: Add a non-coherent cache

The class re-uses the existing MSHR and write queue. At the moment
every single access is handled by the cache, even uncacheable
accesses, and nothing is forwarded.

This is a modified version of a changeset put together by Andreas
Hansson <andreas.hansson@arm.com>

Change-Id: I41f7f9c2b8c7fa5ec23712a4446e8adb1c9a336a
Reviewed-on: https://gem5-review.googlesource.com/8291
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>

12697:cd71b966be1e 27-Apr-2018 Tony Gutierrez <anthony.gutierrez@amd.com>

style: fix amd license and style issues

Change-Id: I26136fb49f743c4a597f8021cfd27f78897267b5
Reviewed-on: https://gem5-review.googlesource.com/10463
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>


apu_se.py
/gem5/configs/ruby/MOESI_AMD_Base.py
/gem5/src/gpu-compute/LdsState.py
/gem5/src/gpu-compute/SConscript
/gem5/src/gpu-compute/X86GPUTLB.py
/gem5/src/gpu-compute/compute_unit.cc
/gem5/src/gpu-compute/compute_unit.hh
/gem5/src/gpu-compute/dispatcher.cc
/gem5/src/gpu-compute/dispatcher.hh
/gem5/src/gpu-compute/exec_stage.cc
/gem5/src/gpu-compute/exec_stage.hh
/gem5/src/gpu-compute/fetch_stage.cc
/gem5/src/gpu-compute/fetch_stage.hh
/gem5/src/gpu-compute/fetch_unit.cc
/gem5/src/gpu-compute/fetch_unit.hh
/gem5/src/gpu-compute/global_memory_pipeline.cc
/gem5/src/gpu-compute/global_memory_pipeline.hh
/gem5/src/gpu-compute/gpu_dyn_inst.cc
/gem5/src/gpu-compute/gpu_dyn_inst.hh
/gem5/src/gpu-compute/gpu_exec_context.cc
/gem5/src/gpu-compute/gpu_exec_context.hh
/gem5/src/gpu-compute/gpu_static_inst.cc
/gem5/src/gpu-compute/gpu_static_inst.hh
/gem5/src/gpu-compute/gpu_tlb.hh
/gem5/src/gpu-compute/lds_state.cc
/gem5/src/gpu-compute/lds_state.hh
/gem5/src/gpu-compute/local_memory_pipeline.cc
/gem5/src/gpu-compute/local_memory_pipeline.hh
/gem5/src/gpu-compute/misc.hh
/gem5/src/gpu-compute/pool_manager.cc
/gem5/src/gpu-compute/pool_manager.hh
/gem5/src/gpu-compute/schedule_stage.cc
/gem5/src/gpu-compute/schedule_stage.hh
/gem5/src/gpu-compute/scoreboard_check_stage.cc
/gem5/src/gpu-compute/scoreboard_check_stage.hh
/gem5/src/gpu-compute/shader.cc
/gem5/src/gpu-compute/simple_pool_manager.cc
/gem5/src/gpu-compute/simple_pool_manager.hh
/gem5/src/gpu-compute/tlb_coalescer.cc
/gem5/src/gpu-compute/tlb_coalescer.hh
/gem5/src/gpu-compute/vector_register_file.cc
/gem5/src/gpu-compute/vector_register_file.hh
/gem5/src/gpu-compute/wavefront.cc
/gem5/src/gpu-compute/wavefront.hh
/gem5/src/mem/ruby/common/IntVec.cc
/gem5/src/mem/ruby/common/IntVec.hh
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/GPUCoalescer.hh
/gem5/src/mem/ruby/system/GPUCoalescer.py
/gem5/src/mem/ruby/system/VIPERCoalescer.cc
/gem5/src/mem/ruby/system/VIPERCoalescer.hh
/gem5/src/mem/ruby/system/VIPERCoalescer.py
/gem5/src/mem/ruby/system/WeightedLRUPolicy.cc
/gem5/src/mem/ruby/system/WeightedLRUPolicy.hh
/gem5/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
/gem5/src/sim/aux_vector.cc
/gem5/src/sim/aux_vector.hh
/gem5/src/sim/fd_array.cc
/gem5/src/sim/fd_array.hh
/gem5/src/sim/fd_entry.cc
/gem5/src/sim/fd_entry.hh
12647:6d7e2f321496 12-Apr-2018 Tony Gutierrez <anthony.gutierrez@amd.com>

configs, mem-ruby: fix issues with style in AMD license

fixes line length and white space issues.

Change-Id: Ia04a91ec68cae2bcdabeb93bb1a0f74e8e5486c3
Reviewed-on: https://gem5-review.googlesource.com/9801
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>

12598:b80b2d9a251b 12-Feb-2018 Nikos Nikoleris <nikos.nikoleris@arm.com>

arch-arm, configs: Treat the bootloader rom as cacheable memory

Prior to this changeset the bootloader rom (instantiated as a
SimpleMemory) in ruby Arm systems was treated as an IO device and it
was fronted by a DMA controller. This changeset moves the bootloader
rom and adds it to the system as another memory with a dedicated
directory controller.

Change-Id: I094fed031cdef7f77a939d94f948d967b349b7e0
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/8741
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12564:2778478ca882 06-Mar-2018 Gabe Black <gabeblack@google.com>

config: Switch from the print statement to the print function.

Change-Id: I701fa58cfcfa2767ce9ad24da314a053889878d0
Reviewed-on: https://gem5-review.googlesource.com/8762
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>

12490:a98a4a21417a 04-Feb-2018 Nayan Deshmukh <nayan26deshmukh@gmail.com>

config: remove dead code in fs.py

We have not added the --generate-dtb option for non-ARM systems and
hence this case becomes dead code. It also leads to error on non-ARM
systems as is tries to access a non existent field.

Change-Id: Ia926bd0c61efa275bc5e3864b8a9c3ffb7aa3cb5
Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com>
Reviewed-on: https://gem5-review.googlesource.com/7801
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12476:a891137813ec 11-Sep-2017 Curtis Dunham <Curtis.Dunham@arm.com>

config, arm: enable device tree autogeneration for bigLITTLE

Change-Id: Iaa5eeb3504b3ff9e46b6f592a06d6b833c830d83
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5969
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12475:c6a23d6370de 14-Mar-2016 Glenn Bergmans <glenn.bergmans@arm.com>

config: Embed Device Tree generation in fs.py config

Equips the fs.py config routine with an extra commandline option
--generate-dtb that will generate a dtb file automatically before
running the simulation. Only works with ARM systems and gives a warning
if the simulated system is not of --machine-type VExpress_GEM5_V1.

Change-Id: I7766e5459fd9bec2245de83cef103091ebaf7229
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5968
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12430:11cb907bd81b 03-Jan-2018 Chen Zou <chenzou@uchicago.edu>

configs: Fill in the cpu.isa field in etrace_replay.py since no default are provided now

Change-Id: I5f337b9969820bd74ed67e576e2d1a8e4666ecdb
Reviewed-on: https://gem5-review.googlesource.com/7021
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12418:340406d827e2 05-Jan-2018 Tony Gutierrez <anthony.gutierrez@amd.com>

gpu-compute: call createThreads() on cpu objs in apu_se.py

commit 8ad26e2688b8736f9290086bb4026cc7500429e9
cpu: Don't override ISA if provided by user

removed the default ISA from the BaseCPU, and instead relies on
createThreads() to initiate a default ISA if none is specified. the apu_se.py
script, however does not call creatThreads() leading to a fatal when
constructing CPU objects. this patch adds the appropriate calls to
createThreads() inside apu_se.py.

Change-Id: I16a5929454c59d68a3f1b7b3858c48a70cb76412
Reviewed-on: https://gem5-review.googlesource.com/7101
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Michael LeBeane <Michael.Lebeane@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>

12411:394fa4ecc018 21-Dec-2017 Gabe Black <gabeblack@google.com>

config: Handle NULL simobject parameters in read_config.py.

Change-Id: If0f87e8ee37099be4d0f3567db4fc34f8467e409
Reviewed-on: https://gem5-review.googlesource.com/6943
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12410:184beca7f554 21-Dec-2017 Gabe Black <gabeblack@google.com>

config: Fix parsing AddrRange parameters in read_config.py.

The format of AddrRange parameters was changed, but
config/example/read_config.py wasn't updated for the new format.

Change-Id: Ie0da7aaa47c827bacc2b4f7f44929efd868b8794
Reviewed-on: https://gem5-review.googlesource.com/6942
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12409:0435e2ab811a 14-Dec-2017 Gabe Black <gabeblack@google.com>

config: Add a --checkpoint-dir argument to read_config.py.

This argument lets the user restore a checkpoint after loading
simulator state from config.ini.

Change-Id: I6e0630d75b798a1d2536e2408660843f57f46c4b
Reviewed-on: https://gem5-review.googlesource.com/6941
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12395:322bb93e5f06 09-Nov-2017 Swapnil Haria <swapnilster@gmail.com>

mem-ruby: Support atomic_noncaching acceses in ruby

Ruby has no support for atomic_noncaching accesses, which prevents using
it with kvm-cpu. This patch fixes this by directly forwarding atomic
requests from the ruby port/sequencer to the corresponding directory
based on the destination address of the packet.

Change-Id: I0b4928bfda44fd9e5e48583c51d1ea422800da2d
Reviewed-on: https://gem5-review.googlesource.com/5601
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>

12340:a52f6d327259 22-Nov-2017 Éder F. Zulian <zulian@eit.uni-kl.de>

config, mem, hmc: fix HMC test script

This patch keeps the logic behind the HMC model implementation untouched.

Additional changes:
- simple hello world script using HMC (SE simulation)

Usage examples:

./build/ARM/gem5.opt configs/example/hmctest.py
./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=same
./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=mixed
./build/ARM/gem5.opt configs/example/hmc_hello.py
./build/ARM/gem5.opt configs/example/hmc_hello.py --enable-global-monitor --enable-link-monitor

Change-Id: I64eb6c9abb45376b6ed72722926acddd50765394
Reviewed-on: https://gem5-review.googlesource.com/6061
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12166:1e88ad5f1a47 03-Aug-2017 Andreas Sandberg <andreas.sandberg@arm.com>

configs, arm: Fix incorrect use of mem_range in bL example

The change "config: Change mem_range attribute naming in ARM
SimpleSystem" modified the SimpleSystem class to be compatible with
the MemConfig utility script. While doing so, the way we report the
memory ranges supported by the system changed, which broke the bL
example configration. This changeset introduces the necessary changes
to make the script work again.

Change-Id: I789987950ff04b6c5ae1c8b807355bcba34f6b3c
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4380
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12165:463d335724d7 20-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

arm, config: Fix CPU names in ARM example configs

The ARM example configs used to rely on CPU aliases for the
AtomicSimpleCPU and KVM when configuring clusters. This broken when
support for CPU aliases was removed ('config: Remove support for CPU
aliases.'). This change updates the config scripts to use the full
class names instead.

Change-Id: If36c46207f39ca1897ecf77d9588f1c059819e63
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4360
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12153:dc6e9f6dfd9c 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

arch-arm: Switch to DTOnly as the default machine type

Old ARM systems used to pass the machine type in the ATAGS list passed
to the kernel. This has been largely deprecated by the introduction of
device trees. Switch to the DTOnly machine type by default in gem5
since all new platforms and kernel will require this behavior.

Change-Id: Icfd085e4862863b4ef495566bfddbd11591866c3
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4260
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12151:52ac7a63ca39 07-Jul-2017 Gabor Dozsa <gabor.dozsa@arm.com>

config, arm: SE configuration for the ARM starter kit

Add a full system example configuration for the ARM Research Starter
Kit on System Modeling. More information can be found at:
http://www.arm.com/ResearchEnablement/SystemModeling

Change-Id: Ia32a28eb713ba7050d790327ba6dbb73ec33b53a
Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com>
[ Minor cleanups and more documentation ]
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4203
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12150:765558361fd6 05-Jul-2017 Gabor Dozsa <gabor.dozsa@arm.com>

config, arm: FS configuration for the ARM starter kit

Add a full system example configuration for the ARM Research Starter
Kit on System Modeling. More information can be found at:
http://www.arm.com/ResearchEnablement/SystemModeling

Change-Id: Ifa40419d21923a32bb383d58466e421fe4260ddd
Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com>
[ Minor cleanups and more documentation ]
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4202
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12148:6d367c7fdb1d 05-Jul-2017 Gabor Dozsa <gabor.dozsa@arm.com>

config: Change mem_range attribute naming in ARM SimpleSystem

MemConfig.config() expects memory ranges to be defined in a particular
way. This patch changes the naming of the mem_range attribute in
SympleSystem to enable use of MemConfig for configuring the memory.

Change-Id: I4964c136e53a99c69ff5e086cacb929aa435168d
Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com>
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4200
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12146:bb4ca633cf1f 19-Jul-2017 Pau Cabre <pau.cabre@metempsy.com>

configs,sim-se: fix se.py multi-cpu multi-cmd issue

Assign different pids to the different commands specified with the "--cmd"
flag to configs/example/se.py

Without this change, the following command line triggers
a "fatal: _pid 100 is already used" error:

command=$PWD/tests/test-progs/hello/bin/arm/linux/hello
./build/ARM/gem5.opt configs/example/se.py -n 2 -c "$command;$command"

Change-Id: If6f726481eb196d4f42680b6aa46364fce4190ed
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/4160
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Brandon Potter <Brandon.Potter@amd.com>

12097:77a3d2890ba6 26-Jun-2017 Andreas Sandberg <andreas.sandberg@arm.com>

config: Move core timing models to config/common/cores

Change-Id: I189b6462cc64f7cc6c1b7a6c2af1abb60e1854de
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3943
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12079:a5cc6df83fcf 23-Feb-2017 Gedare Bloom <gedare@rtems.org>

configs, arm: add option to enable security extensions

Change-Id: I0c839bb649a5d2d73080b7e718da3c9b5839cf8c
Signed-off-by: Gedare Bloom <gedare@rtems.org>
Reviewed-on: https://gem5-review.googlesource.com/3264
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12029:f8b3a3bf4711 12-May-2017 Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr>

configs: fix cpu names in big.LITTLE example

CPU aliases have been dropped, this change fixes the big.LITTLE example.

Change-Id: Idd59a6eca93448ef0e23087365fb5452bcef9247
Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr>
Reviewed-on: https://gem5-review.googlesource.com/3300
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12028:29ea3c7bc92f 22-Mar-2017 Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr>

arm, config: added support for ex5 model of big.LITTLE

This patch enables using calibrated big and LITTLE cores, ex5_big and
ex5_LITTLE instead of the default 'arm_detailed' and 'minor' cpus. The ex5
model is based on the Samsung Exynos 5 Octa (5422) SoC. Operation and memory
hierarchy latencies have been calibrated using the lmbench micro-benchmark
suite. The preliminary validation results have been published as: 'Full-System
Simulation of big.LITTLE Multicore Architecture for Performance and Energy
Exploration', in International Symposium on Embedded Multicore/Many-core
Systems-on-Chip (MCSoC'16), Lyon, France (Sep, 2016).

From http://reviews.gem5.org/r/3666

Change-Id: I4935dee0a9222bd1bf7adfccb9443014945bb2d7
Signed-off-by: Anastasiia Butko <abutko@lbl.gov>
Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr>
Reviewed-on: https://gem5-review.googlesource.com/2464
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12014:f973caaf935d 08-May-2017 Gabe Black <gabeblack@google.com>

config: Fix up some configs to not use CPU aliases.

Support for CPU aliases were removed recently.

Change-Id: I3c1173dc34170d8639d95e52bf660f248848f77f
Reviewed-on: https://gem5-review.googlesource.com/3100
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

11995:d3dbd5a6b19a 27-Apr-2017 Gabe Black <gabeblack@google.com>

config: Remove support for CPU aliases.

This was added for backwards compatability, but it adds a decent amount
of complexity.

The table below shows what CPU class name to use in place of a given
alias.

+==========+========================================================+
| Alias | CPU class |
+==========+========================================================+
| timing | TimingSimpleCPU |
| atomic | AtomicSimpleCPU |
| minor | MinorCPU |
| detailed | DrivO3CPU |
| kvm | ArmKvmCPU, ArmV8KvmCPU or X86KvmCPU, depending on arch |
| trace | TraceCPU |
+==========+========================================================+

Change-Id: I251c4f64b7869c6b64dd25b36967ae240f01ef08
Reviewed-on: https://gem5-review.googlesource.com/2940
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

11973:aa43e508ade4 05-Apr-2017 Andreas Sandberg <andreas.sandberg@arm.com>

config, arm: Add an example power model

Add a script to demonstrate how power models can be wired to gem5
models. The script is meant as an example only and does not correlate
with any realistic implementation.

Change-Id: Ib95a74b2cb4af77a7816e3e8e89c89f3460775a1
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2721
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

11936:8ab45fd19f40 17-Mar-2017 Andreas Sandberg <andreas.sandberg@arm.com>

config, arm: Add multi-core KVM support to bL config

Add support for KVM in the big.LITTLE(tm) example configuration. This
replaces the --atomic option with a --cpu-type option that can be used
to switch between atomic, kvm, and timing simulation.

When running in KVM mode, the simulation script automatically assigns
separate event queues (threads) to each of the simulated CPUs. All
simulated devices, including CPU child devices (e.g., interrupt
controllers and caches), are assigned to event queue 0.

Change-Id: Ic9a3f564db91f5a3d3cb754c5a02fdd5c17d5fdf
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2561
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>

11935:28290ed77b03 20-Mar-2017 Andreas Sandberg <andreas.sandberg@arm.com>

config, arm: Unify checkpoint path handling in bL configs

The vanilla bL configuration file and the dist-gem5 configuration file
use slightly different code paths when restoring from
checkpoints. Unify this by passing the parsed options to the
instantiate() method and adding an optional checkpoint keyword
argument for checkpoint directories (only used by the dist-gem5
script).

Change-Id: I9943ec10bd7a256465e29c8de571142ec3fbaa0e
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2560
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>

11851:824055fe6b30 09-Nov-2016 Brandon Potter <brandon.potter@amd.com>

syscall_emul: [patch 5/22] remove LiveProcess class and use Process instead

The EIOProcess class was removed recently and it was the only other class
which derived from Process. Since every Process invocation is also a
LiveProcess invocation, it makes sense to simplify the organization by
combining the fields from LiveProcess into Process.


/gem5/configs/common/cpu2000.py
apu_se.py
se.py
/gem5/configs/learning_gem5/part1/simple.py
/gem5/configs/learning_gem5/part1/two_level.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/src/arch/alpha/linux/process.cc
/gem5/src/arch/alpha/linux/process.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/process.hh
/gem5/src/arch/arm/freebsd/process.cc
/gem5/src/arch/arm/freebsd/process.hh
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/linux/process.hh
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/process.hh
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/linux/process.hh
/gem5/src/arch/mips/process.cc
/gem5/src/arch/mips/process.hh
/gem5/src/arch/power/linux/process.cc
/gem5/src/arch/power/linux/process.hh
/gem5/src/arch/power/process.cc
/gem5/src/arch/power/process.hh
/gem5/src/arch/riscv/linux/process.cc
/gem5/src/arch/riscv/linux/process.hh
/gem5/src/arch/riscv/process.cc
/gem5/src/arch/riscv/process.hh
/gem5/src/arch/sparc/faults.cc
/gem5/src/arch/sparc/linux/process.cc
/gem5/src/arch/sparc/linux/process.hh
/gem5/src/arch/sparc/linux/syscalls.cc
/gem5/src/arch/sparc/process.cc
/gem5/src/arch/sparc/process.hh
/gem5/src/arch/sparc/solaris/process.cc
/gem5/src/arch/sparc/solaris/process.hh
/gem5/src/arch/x86/linux/process.cc
/gem5/src/arch/x86/linux/process.hh
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/process.hh
/gem5/src/gpu-compute/cl_driver.cc
/gem5/src/gpu-compute/cl_driver.hh
/gem5/src/kern/freebsd/freebsd.hh
/gem5/src/kern/linux/linux.cc
/gem5/src/kern/linux/linux.hh
/gem5/src/kern/operatingsystem.cc
/gem5/src/kern/operatingsystem.hh
/gem5/src/sim/Process.py
/gem5/src/sim/emul_driver.hh
/gem5/src/sim/process.cc
/gem5/src/sim/process.hh
/gem5/src/sim/syscall_desc.cc
/gem5/src/sim/syscall_desc.hh
/gem5/src/sim/syscall_emul.cc
/gem5/src/sim/syscall_emul.hh
/gem5/tests/long/se/10.mcf/test.py
/gem5/tests/long/se/20.parser/test.py
/gem5/tests/long/se/30.eon/test.py
/gem5/tests/long/se/40.perlbmk/test.py
/gem5/tests/long/se/50.vortex/test.py
/gem5/tests/long/se/60.bzip2/test.py
/gem5/tests/long/se/70.twolf/test.py
/gem5/tests/quick/se/00.hello.mp/test.py
/gem5/tests/quick/se/00.hello/test.py
/gem5/tests/quick/se/01.hello-2T-smt/test.py
/gem5/tests/quick/se/02.insttest/test.py
/gem5/tests/quick/se/04.gpu/test.py
/gem5/tests/quick/se/10.mcf/test.py
/gem5/tests/quick/se/30.eon/test.py
/gem5/tests/quick/se/40.m5threads-test-atomic/test.py
/gem5/tests/quick/se/50.vortex/test.py
/gem5/tests/quick/se/70.twolf/test.py
11845:afd6aaee268e 14-Feb-2017 Gabor Dozsa <gabor.dozsa@arm.com>

arm,config: Add dist-gem5 support to the big.LITTLE(tm) config

This patch extends the example big.LITTLE configuration to enable
dist-gem5 simulations of big.LITTLE systems.

Change-Id: I49c095ab3c737b6a082f7c6f15f514c269217756
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11843:9323db591b22 14-Feb-2017 Gabor Dozsa <gabor.dozsa@arm.com>

arm,config: Refactor the example big.LITTLE(tm) configuration

This patch prepares future extensions and customisation of the example
big.LITTLE configuration script. It breaks out the major phases into
functions so they can be called from other python scripts.

Change-Id: I2cb7c207c410fe14602cf17af7482719abba6c24
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11839:dd6df2e47c14 14-Feb-2017 Curtis Dunham <Curtis.Dunham@arm.com>

sim, kvm: make KvmVM a System parameter

A KVM VM is typically a child of the System object already, but for
solving future issues with configuration graph resolution, the most
logical way to keep track of this object is for it to be an actual
parameter of the System object.

Change-Id: I965ded22203ff8667db9ca02de0042ff1c772220
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11837:17b37f38944a 14-Feb-2017 Wendy Elsasser <wendy.elsasser@arm.com>

mem: Update DRAM configuration names

Names of DRAM configurations were updated to reflect both
the channel and device data width.

Previous naming format was:
<DEVICE_TYPE>_<DATA_RATE>_<CHANNEL_WIDTH>

The following nomenclature is now used:
<DEVICE_TYPE>_<DATA_RATE>_<n>x<w>
where n = The number of devices per rank on the channel
x = Device width

Total channel width can be calculated by n*w

Example:
A 64-bit DDR4, 2400 channel consisting of 4-bit devices:
n = 16
w = 4
The resulting configuration name is:
DDR4_2400_16x4

Updated scripts to match new naming convention.

Added unique configurations for DDR4 for:
1) 16x4
2) 8x8
3) 4x16

Change-Id: Ibd7f763b7248835c624309143cb9fc29d56a69d1
Reviewed-by: Radhika Jagtap <radhika.jagtap@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>


/gem5/configs/common/HMC.py
/gem5/configs/common/MemConfig.py
/gem5/configs/common/Options.py
/gem5/configs/dram/lat_mem_rd.py
/gem5/configs/dram/sweep.py
hmctest.py
memcheck.py
/gem5/configs/learning_gem5/part1/simple.py
/gem5/configs/learning_gem5/part1/two_level.py
/gem5/src/mem/DRAMCtrl.py
/gem5/tests/configs/minor-timing-mp.py
/gem5/tests/configs/minor-timing.py
/gem5/tests/configs/o3-timing-checker.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing-mt.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/pc-switcheroo-full.py
/gem5/tests/configs/realview-minor-dual.py
/gem5/tests/configs/realview-minor.py
/gem5/tests/configs/realview-o3-checker.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/realview-switcheroo-full.py
/gem5/tests/configs/realview-switcheroo-o3.py
/gem5/tests/configs/realview-switcheroo-timing.py
/gem5/tests/configs/realview64-minor-dual.py
/gem5/tests/configs/realview64-minor.py
/gem5/tests/configs/realview64-o3-checker.py
/gem5/tests/configs/realview64-o3-dual.py
/gem5/tests/configs/realview64-o3.py
/gem5/tests/configs/realview64-simple-timing-dual.py
/gem5/tests/configs/realview64-simple-timing.py
/gem5/tests/configs/realview64-switcheroo-full.py
/gem5/tests/configs/realview64-switcheroo-o3.py
/gem5/tests/configs/realview64-switcheroo-timing.py
/gem5/tests/configs/tgen-dram-ctrl.py
/gem5/tests/configs/tsunami-minor-dual.py
/gem5/tests/configs/tsunami-minor.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/configs/tsunami-switcheroo-full.py
11790:f1ffedcf3b98 09-Jan-2017 Matthias Jung <jungma@eit.uni-kl.de>

config: Fix missing include in fs.py

Bugfix for Elastic Traces

This patch fixes the bug when elastic traces are used:


build/ARM/gem5.opt \
configs/example/fs.py \
--cpu-type=arm_detailed \
--num-cpu=1 \
--mem-type=SimpleMemory \
--mem-size=512MB \
--mem-channels=1 \
--caches \
--elastic-trace-en \
--data-trace-file=data.proto.gz \
--inst-trace-file=inst.proto.gz \
--machine-type=VExpress_EMM \
--dtb-filename=vexpress.aarch32.ll_20131205.0-gem5.1cpu.dtb \
--kernel=vmlinux.aarch32.ll_20131205.0-gem5 \
--disk-image=linux-aarch32-ael.img


NameError: global name 'CpuConfig' is not defined

Signed-off by: Jason Lowe-Power <jason@lowepower.com>

11756:0d38e56356c7 06-Dec-2016 Gabor Dozsa <gabor.dozsa@arm.com>

arm, config: Add missing IOCache in bL config

This patch adds an IOCache to the example bigLITTLE
configuration. An IOCache is required for correct DMA
transfers when we have caches in the system.

Change-Id: Ifeddc1b360aacbb16b1393f361dd98873c834012
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11753:6aefb19ff369 05-Dec-2016 Nikos Nikoleris <nikos.nikoleris@arm.com>

config: Add an option to generate a random topology in memcheck

This change adds the option to use the memcheck with random memory
hierarchies at the moment limited to a maximum depth of 3 allowing
testing with uncommon topologies.

Change-Id: Id2c2fe82a8175d9a67eb4cd7f3d2e2720a809b60
Reviewed-by: Andreas Hansson <andreas.hansson@arm.com>

11752:e922938edf18 05-Dec-2016 Nikos Nikoleris <nikos.nikoleris@arm.com>

config: Add whole line accesses to improve memchecker's coverage

Change-Id: Ie1a047139e350ce7400f3a20be644eaff1e21428
Reviewed-by: Andreas Hansson <andreas.hansson@arm.com>

11722:f15f02d8c79e 30-Nov-2016 Sophiane Senni <sophiane.senni@gmail.com>

mem: Split the hit_latency into tag_latency and data_latency

If the cache access mode is parallel, i.e. "sequential_access" parameter
is set to "False", tags and data are accessed in parallel. Therefore,
the hit_latency is the maximum latency between tag_latency and
data_latency. On the other hand, if the cache access mode is
sequential, i.e. "sequential_access" parameter is set to "True",
tags and data are accessed sequentially. Therefore, the hit_latency
is the sum of tag_latency plus data_latency.

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11700:7d4d424c9f17 26-Oct-2016 Tony Gutierrez <anthony.gutierrez@amd.com>

gpu-compute: support in-order data delivery in GM pipe

this patch adds an ordered response buffer to the GM pipeline
to ensure in-order data delivery. the buffer is implemented as
a stl ordered map, which sorts the request in program order by
using their sequence ID. when requests return to the GM pipeline
they are marked as done. only the oldest request may be serviced
from the ordered buffer, and only if is marked as done.

the FIFO response buffers are kept and used in OoO delivery mode

11688:725fef71f376 26-Oct-2016 Andreas Hansson <andreas.hansson@arm.com>

config: Break out base options for usage with NULL ISA

This patch breaks out the most basic configuration options into a set
of base options, to allow them to be used also by scripts that do not
involve any ISA, and thus no actual CPUs or devices.

The patch also fixes a few modules so that they can be imported in a
NULL build, and avoid dragging in FSConfig every time Options is
imported.

11682:612f75cf36a0 14-Oct-2016 Andreas Hansson <andreas.hansson@arm.com>

config: Make configs/common a Python package

Continue along the same line as the recent patch that made the
Ruby-related config scripts Python packages and make also the
configs/common directory a package.

All affected config scripts are updated (hopefully).

Note that this change makes it apparent that the current organisation
and naming of the config directory and its subdirectories is rather
chaotic. We mix scripts that are directly invoked with scripts that
merely contain convenience functions. While it is not addressed in
this patch we should follow up with a re-organisation of the
config structure, and renaming of some of the packages.


/gem5/configs/common/__init__.py
/gem5/configs/dist/sw.py
/gem5/configs/dram/lat_mem_rd.py
/gem5/configs/dram/sweep.py
apu_se.py
arm/devices.py
arm/fs_bigLITTLE.py
etrace_replay.py
fs.py
garnet_synth_traffic.py
hmctest.py
ruby_direct_test.py
ruby_gpu_random_test.py
ruby_mem_test.py
ruby_random_test.py
se.py
/gem5/configs/learning_gem5/part1/caches.py
/gem5/configs/learning_gem5/part1/two_level.py
/gem5/configs/ruby/Ruby.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/tests/configs/alpha_generic.py
/gem5/tests/configs/arm_generic.py
/gem5/tests/configs/base_config.py
/gem5/tests/configs/checkpoint.py
/gem5/tests/configs/gpu-randomtest-ruby.py
/gem5/tests/configs/gpu-ruby.py
/gem5/tests/configs/learning-gem5-p1-two-level.py
/gem5/tests/configs/memtest-filter.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-mp-ruby.py
/gem5/tests/configs/o3-timing-mt.py
/gem5/tests/configs/o3-timing-ruby.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-simple-timing-ruby.py
/gem5/tests/configs/realview-o3-checker.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview64-o3-checker.py
/gem5/tests/configs/realview64-o3-dual.py
/gem5/tests/configs/realview64-o3.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/configs/switcheroo.py
/gem5/tests/configs/t1000-simple-atomic.py
/gem5/tests/configs/twosys-tsunami-simple-atomic.py
/gem5/tests/configs/x86_generic.py
11670:6ce719503eae 13-Oct-2016 Andreas Hansson <andreas.hansson@arm.com>

ruby: Fix regressions and make Ruby configs Python packages

This patch moves the addition of network options into the Ruby module
to avoid the regressions all having to add it explicitly. Doing this
exposes an issue in our current config system though, namely the fact
that addtoPath is relative to the Python script being executed. Since
both example and regression scripts use the Ruby module we would end
up with two different (relative) paths being added. Instead we take a
first step at turning the config modules into Python packages, simply
by adding a __init__.py in the configs/ruby, configs/topologies and
configs/network subdirectories.

As a result, we can now add the top-level configs directory to the
Python search path, and then use the package names in the various
modules. The example scripts are also updated, and the messy
path-deducing variations in the scripts are unified.

11662:004d34b65092 06-Oct-2016 Tushar Krishna <tushar@ece.gatech.edu>

config: add a separate config file for the network.
This patch adds a new file configs/network/Network.py to setup the network,
instead of doing that within Ruby.py.

11661:2bc3962f59fe 06-Oct-2016 Tushar Krishna <tushar@ece.gatech.edu>

ruby: rename networktest to garnet_synthetic_traffic.
networktest is essentially a collection of synthetic traffic patterns
for the network. The protocol name and the tester having the same name
led to multiple python configuration files with the same name, adding
confusion. This patch renames networktest to garnet_synthetic_traffic,
and also adds more synthetic traffic patterns.

11630:6e2408ad4425 15-Sep-2016 Gabor Dozsa <gabor.dozsa@arm.com>

arm, config: Fixups for the example big.LITTLE(tm) configuration

This patch refactors the configuration file to use a more
object-oriented design.

Change-Id: I44ac2d063c2b5901f385544fb6ce3f259459cb05
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>

11616:d726d0cea027 22-Aug-2016 David Hashe <david.j.hashe@gmail.com>

config: KVM acceleration for apu_se.py

Add support for using KVM to accelerate APU simulations. The intended use
case is to fast-forward through runtime initialization until the first
kernel launch.

11598:e0ddee91eb13 10-Aug-2016 Andreas Sandberg <andreas.sandberg@arm.com>

arm, config: Add initial support for Ruby

Add initial support for creating an ARM system with a Ruby-based
memory system. This support is currently experimental and limited to
the new VExpress_GEM5_V1 platform.

Change-Id: I36baeb68b0d891e34ea46aafe17b5e55217b4bfa
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Brad Beckmann <brad.beckmann@amd.com>

11569:2eae1dfaa791 21-Jul-2016 Gabor Dozsa <gabor.dozsa@arm.com>

arm, config: Add an example ARM big.LITTLE(tm) configuration script

An ARM big.LITTLE system consists of two cpu clusters: the big
CPUs are typically complex out-of-order cores and the little
CPUs are simpler in-order ones. The fs_bigLITTLE.py script
can run a full system simulation with various number of big
and little cores and cache hierarchy. The commit also includes
two example device tree files for booting Linux on the
bigLITTLE system.

Change-Id: I6396fb3b2d8f27049ccae49d8666d643b66c088b
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11552:354e5631a6c1 01-Jul-2016 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

mem: tester for new HMC configuration

This patch provides the example test script to configure different HMC
architecture and run traffic through traffic generator.

Committed by Jason Lowe-Power <jason@lowepower.com>

11534:7106f550afad 09-Jun-2016 jkalamat <john.kalamatianos@amd.com>

gpu-compute: parametrize Wavefront size

Eliminate the VSZ constant that defined the Wavefront size (in numbers of work
items); replaced it with a parameter in the GPU.py configuration script.
Changed all data structures dependent on the Wavefront size to be dynamically
sized. Legal values of Wavefront size are 16, 32, 64 for now and checked at
initialization time.

11451:082f25c02518 21-Apr-2016 Andreas Hansson <andreas.hansson@arm.com>

config: Add missing point of coherency to memcheck script

Bring in line with changes to the XBar class.

11334:9bd2e84abdca 10-Feb-2016 Andreas Hansson <andreas.hansson@arm.com>

mem: Move the point of coherency to the coherent crossbar

This patch introduces the ability of making the coherent crossbar the
point of coherency. If so, the crossbar does not forward packets where
a cache with ownership has already committed to responding, and also
does not forward any coherency-related packets that are not intended
for a downstream memory controller. Thus, invalidations and upgrades
are turned around in the crossbar, and the memory controller only sees
normal reads and writes.

In addition this patch moves the express snoop promotion of a packet
to the crossbar, thus allowing the downstream cache to check the
express snoop flag (as it should) for bypassing any blocking, rather
than relying on whether a cache is responding or not.

11320:42ecb523c64a 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

style: remove trailing whitespace

Result of running 'hg m5style --skip-all --fix-white -a'.


/gem5/configs/common/CacheConfig.py
/gem5/configs/common/Simulation.py
ruby_mem_test.py
/gem5/src/arch/alpha/isa/decoder.isa
/gem5/src/arch/alpha/linux/linux.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/arm/SConscript
/gem5/src/arch/arm/interrupts.cc
/gem5/src/arch/arm/isa/bitfields.isa
/gem5/src/arch/arm/isa/formats/pred.isa
/gem5/src/arch/arm/linux/linux.hh
/gem5/src/arch/arm/stacktrace.cc
/gem5/src/arch/mips/isa/decoder.isa
/gem5/src/arch/mips/linux/linux.hh
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/pagetable.hh
/gem5/src/arch/power/SConscript
/gem5/src/arch/sparc/interrupts.cc
/gem5/src/arch/sparc/linux/linux.hh
/gem5/src/arch/sparc/pagetable.hh
/gem5/src/arch/x86/cpuid.cc
/gem5/src/arch/x86/faults.cc
/gem5/src/arch/x86/insts/micromediaop.hh
/gem5/src/arch/x86/isa/insts/general_purpose/system_calls.py
/gem5/src/arch/x86/isa/insts/romutil.py
/gem5/src/arch/x86/isa/insts/simd64/integer/data_transfer/move.py
/gem5/src/arch/x86/isa/microops/base.isa
/gem5/src/arch/x86/isa/microops/mediaop.isa
/gem5/src/arch/x86/isa/microops/regop.isa
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/process.hh
/gem5/src/base/cp_annotate.cc
/gem5/src/base/cp_annotate.hh
/gem5/src/base/cprintf.hh
/gem5/src/base/flags.hh
/gem5/src/base/inet.cc
/gem5/src/base/inet.hh
/gem5/src/base/loader/ecoff_object.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/statistics.cc
/gem5/src/cpu/o3/decode_impl.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/testers/directedtest/DirectedGenerator.cc
/gem5/src/cpu/testers/directedtest/DirectedGenerator.hh
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.hh
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.hh
/gem5/src/cpu/testers/networktest/networktest.cc
/gem5/src/cpu/timebuf.hh
/gem5/src/dev/mc146818.cc
/gem5/src/dev/net/i8254xGBe.cc
/gem5/src/dev/net/i8254xGBe.hh
/gem5/src/dev/net/i8254xGBe_defs.hh
/gem5/src/dev/x86/i8042.cc
/gem5/src/dev/x86/i8254.hh
/gem5/src/dev/x86/intdev.hh
/gem5/src/mem/mport.hh
/gem5/src/mem/ruby/network/Topology.cc
/gem5/src/mem/ruby/network/Topology.hh
/gem5/src/mem/ruby/network/fault_model/FaultModel.cc
/gem5/src/mem/ruby/network/fault_model/FaultModel.hh
/gem5/src/mem/ruby/network/fault_model/FaultModel.py
/gem5/src/mem/ruby/network/fault_model/SConscript
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
/gem5/src/mem/ruby/network/simple/SimpleLink.cc
/gem5/src/mem/slicc/ast/StallAndWaitStatementAST.py
/gem5/src/mem/slicc/ast/TypeFieldEnumAST.py
/gem5/src/mem/slicc/ast/TypeFieldStateAST.py
/gem5/src/python/m5/util/__init__.py
/gem5/src/python/swig/event.i
/gem5/src/sim/Root.py
/gem5/src/sim/eventq.cc
/gem5/src/sim/eventq.hh
/gem5/src/sim/insttracer.hh
/gem5/src/sim/pseudo_inst.cc
/gem5/src/unittest/cprintftest.cc
/gem5/system/alpha/console/console.c
/gem5/tests/configs/memtest-ruby.py
/gem5/util/checkpoint-tester.py
/gem5/util/compile
/gem5/util/m5/m5.c
/gem5/util/qdo
/gem5/util/statetrace/SConstruct
11310:b4bbf540d1a7 22-Jan-2016 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: changed all references to numCPs to num-cp

11308:7d8836fd043d 19-Jan-2016 Tony Gutierrez <anthony.gutierrez@amd.com>

gpu-compute: AMD's baseline GPU model


/gem5/SConstruct
/gem5/build_opts/HSAIL_X86
/gem5/build_opts/X86_MOESI_AMD_Base
/gem5/configs/common/GPUTLBConfig.py
/gem5/configs/common/GPUTLBOptions.py
apu_se.py
ruby_gpu_random_test.py
/gem5/configs/ruby/AMD_Base_Constructor.py
/gem5/configs/ruby/GPU_RfO.py
/gem5/configs/ruby/GPU_VIPER.py
/gem5/configs/ruby/GPU_VIPER_Baseline.py
/gem5/configs/ruby/GPU_VIPER_Region.py
/gem5/configs/ruby/MOESI_AMD_Base.py
/gem5/src/SConscript
/gem5/src/arch/SConscript
/gem5/src/arch/hsail/Brig.h
/gem5/src/arch/hsail/Brig_new.hpp
/gem5/src/arch/hsail/SConscript
/gem5/src/arch/hsail/SConsopts
/gem5/src/arch/hsail/gen.py
/gem5/src/arch/hsail/generic_types.cc
/gem5/src/arch/hsail/generic_types.hh
/gem5/src/arch/hsail/gpu_decoder.hh
/gem5/src/arch/hsail/gpu_types.hh
/gem5/src/arch/hsail/insts/branch.cc
/gem5/src/arch/hsail/insts/branch.hh
/gem5/src/arch/hsail/insts/decl.hh
/gem5/src/arch/hsail/insts/gpu_static_inst.cc
/gem5/src/arch/hsail/insts/gpu_static_inst.hh
/gem5/src/arch/hsail/insts/main.cc
/gem5/src/arch/hsail/insts/mem.cc
/gem5/src/arch/hsail/insts/mem.hh
/gem5/src/arch/hsail/insts/mem_impl.hh
/gem5/src/arch/hsail/insts/pseudo_inst.cc
/gem5/src/arch/hsail/operand.cc
/gem5/src/arch/hsail/operand.hh
/gem5/src/gpu-compute/GPU.py
/gem5/src/gpu-compute/LdsState.py
/gem5/src/gpu-compute/SConscript
/gem5/src/gpu-compute/X86GPUTLB.py
/gem5/src/gpu-compute/brig_object.cc
/gem5/src/gpu-compute/brig_object.hh
/gem5/src/gpu-compute/cl_driver.cc
/gem5/src/gpu-compute/cl_driver.hh
/gem5/src/gpu-compute/cl_event.hh
/gem5/src/gpu-compute/code_enums.hh
/gem5/src/gpu-compute/compute_unit.cc
/gem5/src/gpu-compute/compute_unit.hh
/gem5/src/gpu-compute/condition_register_state.cc
/gem5/src/gpu-compute/condition_register_state.hh
/gem5/src/gpu-compute/dispatcher.cc
/gem5/src/gpu-compute/dispatcher.hh
/gem5/src/gpu-compute/exec_stage.cc
/gem5/src/gpu-compute/exec_stage.hh
/gem5/src/gpu-compute/fetch_stage.cc
/gem5/src/gpu-compute/fetch_stage.hh
/gem5/src/gpu-compute/fetch_unit.cc
/gem5/src/gpu-compute/fetch_unit.hh
/gem5/src/gpu-compute/global_memory_pipeline.cc
/gem5/src/gpu-compute/global_memory_pipeline.hh
/gem5/src/gpu-compute/gpu_dyn_inst.cc
/gem5/src/gpu-compute/gpu_dyn_inst.hh
/gem5/src/gpu-compute/gpu_exec_context.cc
/gem5/src/gpu-compute/gpu_exec_context.hh
/gem5/src/gpu-compute/gpu_static_inst.cc
/gem5/src/gpu-compute/gpu_static_inst.hh
/gem5/src/gpu-compute/gpu_tlb.cc
/gem5/src/gpu-compute/gpu_tlb.hh
/gem5/src/gpu-compute/hsa_code.hh
/gem5/src/gpu-compute/hsa_kernel_info.hh
/gem5/src/gpu-compute/hsa_object.cc
/gem5/src/gpu-compute/hsa_object.hh
/gem5/src/gpu-compute/hsail_code.cc
/gem5/src/gpu-compute/hsail_code.hh
/gem5/src/gpu-compute/kernel_cfg.cc
/gem5/src/gpu-compute/kernel_cfg.hh
/gem5/src/gpu-compute/lds_state.cc
/gem5/src/gpu-compute/lds_state.hh
/gem5/src/gpu-compute/local_memory_pipeline.cc
/gem5/src/gpu-compute/local_memory_pipeline.hh
/gem5/src/gpu-compute/misc.hh
/gem5/src/gpu-compute/ndrange.hh
/gem5/src/gpu-compute/of_scheduling_policy.cc
/gem5/src/gpu-compute/of_scheduling_policy.hh
/gem5/src/gpu-compute/pool_manager.cc
/gem5/src/gpu-compute/pool_manager.hh
/gem5/src/gpu-compute/qstruct.hh
/gem5/src/gpu-compute/rr_scheduling_policy.cc
/gem5/src/gpu-compute/rr_scheduling_policy.hh
/gem5/src/gpu-compute/schedule_stage.cc
/gem5/src/gpu-compute/schedule_stage.hh
/gem5/src/gpu-compute/scheduler.cc
/gem5/src/gpu-compute/scheduler.hh
/gem5/src/gpu-compute/scheduling_policy.hh
/gem5/src/gpu-compute/scoreboard_check_stage.cc
/gem5/src/gpu-compute/scoreboard_check_stage.hh
/gem5/src/gpu-compute/shader.cc
/gem5/src/gpu-compute/shader.hh
/gem5/src/gpu-compute/simple_pool_manager.cc
/gem5/src/gpu-compute/simple_pool_manager.hh
/gem5/src/gpu-compute/tlb_coalescer.cc
/gem5/src/gpu-compute/tlb_coalescer.hh
/gem5/src/gpu-compute/vector_register_file.cc
/gem5/src/gpu-compute/vector_register_file.hh
/gem5/src/gpu-compute/vector_register_state.cc
/gem5/src/gpu-compute/vector_register_state.hh
/gem5/src/gpu-compute/wavefront.cc
/gem5/src/gpu-compute/wavefront.hh
/gem5/src/mem/protocol/GPU_RfO-SQC.sm
/gem5/src/mem/protocol/GPU_RfO-TCC.sm
/gem5/src/mem/protocol/GPU_RfO-TCCdir.sm
/gem5/src/mem/protocol/GPU_RfO-TCP.sm
/gem5/src/mem/protocol/GPU_RfO.slicc
/gem5/src/mem/protocol/GPU_VIPER-SQC.sm
/gem5/src/mem/protocol/GPU_VIPER-TCC.sm
/gem5/src/mem/protocol/GPU_VIPER-TCP.sm
/gem5/src/mem/protocol/GPU_VIPER.slicc
/gem5/src/mem/protocol/GPU_VIPER_Baseline.slicc
/gem5/src/mem/protocol/GPU_VIPER_Region-TCC.sm
/gem5/src/mem/protocol/GPU_VIPER_Region.slicc
/gem5/src/mem/protocol/MOESI_AMD_Base-CorePair.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-L3cache.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-CorePair.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-msg.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-RegionBuffer.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-RegionDir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-dir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-msg.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-probeFilter.sm
/gem5/src/mem/protocol/MOESI_AMD_Base.slicc
/gem5/src/mem/protocol/RubySlicc_ComponentMapping.sm
/gem5/src/mem/protocol/RubySlicc_Exports.sm
/gem5/src/mem/protocol/RubySlicc_Types.sm
/gem5/src/mem/protocol/SConsopts
/gem5/src/mem/ruby/SConscript
/gem5/src/mem/ruby/profiler/Profiler.cc
/gem5/src/mem/ruby/slicc_interface/AbstractCacheEntry.hh
/gem5/src/mem/ruby/slicc_interface/AbstractController.cc
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh
/gem5/src/mem/ruby/structures/CacheMemory.cc
/gem5/src/mem/ruby/structures/CacheMemory.hh
/gem5/src/mem/ruby/structures/RubyCache.py
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/GPUCoalescer.hh
/gem5/src/mem/ruby/system/GPUCoalescer.py
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPort.hh
/gem5/src/mem/ruby/system/RubySystem.cc
/gem5/src/mem/ruby/system/SConscript
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/Sequencer.hh
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/ruby/system/VIPERCoalescer.cc
/gem5/src/mem/ruby/system/VIPERCoalescer.hh
/gem5/src/mem/ruby/system/VIPERCoalescer.py
/gem5/src/mem/ruby/system/WeightedLRUPolicy.cc
/gem5/src/mem/ruby/system/WeightedLRUPolicy.hh
/gem5/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/tests/SConscript
/gem5/tests/configs/gpu-randomtest-ruby.py
/gem5/tests/configs/gpu-ruby.py
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/stats.txt
/gem5/tests/quick/se/04.gpu/test.py
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/config.ini
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/simerr
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/simout
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/stats.txt
/gem5/tests/quick/se/60.gpu-randomtest/test.py
/gem5/tests/test-progs/gpu-hello/bin/x86/linux/gpu-hello
/gem5/tests/test-progs/gpu-hello/bin/x86/linux/gpu-hello-kernel.asm
/gem5/tests/test-progs/gpu-hello/src/gpu-hello-kernel.cl
/gem5/tests/test-progs/gpu-hello/src/gpu-hello.cpp
/gem5/util/regress
11291:9d2364203316 07-Jan-2016 Gabor Dozsa <gabor.dozsa@arm.com>

config: Updates for distributed gem5 simulations

11272:744e6074f6ae 17-Dec-2015 Andreas Hansson <andreas.hansson@arm.com>

configs: Make the default memtest behaviour more complex

Add functional and uncacheable accesses by default.

11266:452e10b868ea 20-Jul-2015 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: more flexible ruby tester support

This patch allows the ruby random tester to use ruby ports that may only
support instr or data requests. This patch is similar to a previous changeset
(8932:1b2c17565ac8) that was unfortunately broken by subsequent changesets.
This current patch implements the support in a more straight-forward way.
Since retries are now tested when running the ruby random tester, this patch
splits up the retry and drain check behavior so that RubyPort children, such
as the GPUCoalescer, can perform those operations correctly without having to
duplicate code. Finally, the patch also includes better DPRINTFs for
debugging the tester.

11251:a15c86af004a 07-Dec-2015 Radhika Jagtap <radhika.jagtap@ARM.com>

config: Enable elastic trace capture and replay in se/fs

This patch adds changes to the configuration scripts to support elastic
tracing and replay.

The patch adds a command line option to enable elastic tracing in SE mode
and FS mode. When enabled the Elastic Trace cpu probe is attached to O3CPU
and a few O3 CPU parameters are tuned. The Elastic Trace probe writes out
both instruction fetch and data dependency traces. The patch also enables
configuring the TraceCPU to replay traces using the SE and FS script.

The replay run is designed to resume from checkpoint using atomic cpu to
restore state keeping it consistent with FS run flow. It then switches to
TraceCPU to replay the input traces.

11228:021524c21cbc 22-Nov-2015 Andrew Bardsley <Andrew.Bardsley@arm.com>

config: Added missing types to JSON/INI Python reader

Added the missing types EthernetAddr and Current to the JSON/INI file
reader example configs/example/read_config.py.

Also added __str__ to EthernetAddr to make values appear in the same form
in JSON an INI files.

11200:6ef7d715d583 06-Nov-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Update memtest to stress test clean writebacks

This patch adds yet another twist to the memtest cache hierarchy, in that
the writeback_clean option is toggled at every level to match the
clusivity of the downstream cache.

11198:8149b36b8803 06-Nov-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Update memtest to stress test cache clusivity

This patch adds an new twist to the memtest cache hierarchy, in that
it switches from mostly inclusive to mostly exclusive at every level
in the tree. This has helped weed out plenty issues, and serves as a
good stress tests.

11183:276ad9121192 03-Nov-2015 Erfan Azarkhish <erfan.azarkhish@unibo.it>

mem: hmc: top level design

This patch enables modeling a complete Hybrid Memory Cube (HMC) device. It
highly reuses the existing components in gem5's general memory system with some
small modifications. This changeset requires additional patches to model a
complete HMC device.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

11150:a8a64cca231b 30-Sep-2015 Mitch Hayenga <mitch.hayenga@arm.com>

isa,cpu: Add support for FS SMT Interrupts

Adds per-thread interrupt controllers and thread/context logic
so that interrupts properly get routed in SMT systems.

11147:cc8d6e99cf46 30-Sep-2015 Mitch Hayenga <mitch.hayenga@arm.com>

config,cpu: Add SMT support to Atomic and Timing CPUs

Adds SMT support to the "simple" CPU models so that they can be
used with other SMT-supported CPUs. Example usage: this enables
the TimingSimpleCPU to be used to warmup caches before swapping to
detailed mode with the in-order or out-of-order based CPU models.

11088:d322dd2e2b2d 07-Sep-2015 Nilay Vaish <nilay@cs.wisc.edu>

config: allow ruby to be used with Minor CPU

11053:62544e45c0f4 21-Aug-2015 Andreas Hansson <andreas.hansson@arm.com>

mem: Add explicit Cache subclass and make BaseCache abstract

Open up for other subclasses to BaseCache and transition to using the
explicit Cache subclass.

10926:f48e72961850 21-Jul-2015 Nilay Vaish <nilay@cs.wisc.edu>

configs: network test: remove redundant physical memory

10887:279efb97ec99 03-Jul-2015 Andreas Hansson <andreas.hansson@arm.com>

mem: Remove redundant is_top_level cache parameter

This patch takes the final step in removing the is_top_level parameter
from the cache. With the recent changes to read requests and write
invalidations, the parameter is no longer needed, and consequently
removed.

This also means that asymmetric cache hierarchies are now fully
supported (and we are actually using them already with L1 caches, but
no table-walker caches, connected to a shared L2).

10803:a91eb7b4a442 23-Apr-2015 bpotter <brandon.potter@amd.com>

config: enable setting SE-mode environment variables from file

10780:46070443051e 08-Apr-2015 Curtis Dunham <Curtis.Dunham@arm.com>

config: Support full-system with SST's memory system

This patch adds an example configuration in ext/sst/tests/ that allows
an SST/gem5 instance to simulate a 4-core AArch64 system with SST's
memHierarchy components providing all the caches and memories.

10750:30efc3828bb4 19-Mar-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Add soak test for memtest.py

This patch adds a random option to memtest.py which allows the user to
easily test valid random tree topologies. The patch also adds a
wrapper script to run soak tests using the newly introduced option.

We also adjust the progress interval and progress limit check to make
the output less noisy, and avoid false positives.

Bring on the pain.

10747:3fe41011333d 19-Mar-2015 Chris Emmons <Chris.Emmons@arm.com>

config: Specify OS type and release on command line

This patch enables users to speficy --os-type on the command
line. This option is used to take specific actions for an OS type,
such as changing the kernel command line. This patch is part of the
Android KitKat enablement.

10720:67b3e74de9ae 02-Mar-2015 Andreas Hansson <andreas.hansson@arm.com>

mem: Move crossbar default latencies to subclasses

This patch introduces a few subclasses to the CoherentXBar and
NoncoherentXBar to distinguish the different uses in the system. We
use the crossbar in a wide range of places: interfacing cores to the
L2, as a system interconnect, connecting I/O and peripherals,
etc. Needless to say, these crossbars have very different performance,
and the clock frequency alone is not enough to distinguish these
scenarios.

Instead of trying to capture every possible case, this patch
introduces dedicated subclasses for the three primary use-cases:
L2XBar, SystemXBar and IOXbar. More can be added if needed, and the
defaults can be overridden.

10705:c6cb94a14fea 16-Feb-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Add memcheck stress test

This is a rather unfortunate copy of the memtest.py example script,
that actually stresses the system with true sharing as opposed to the
false sharing of the MemTest. To do so it uses TrafficGen instances to
generate the reads/writes, and MemCheckerMonitor combined with the
MemChecker to check the validity of the read/written values.

As a bonus, this script also enables the addition of prefetchers, and
the traffic is created to have a mix of random addresses and linear
strides. We use the TaggedPrefetcher since the packets do not have a
request with a PC.

At the moment the code is almost identical to the memtest.py script,
and no effort has been made to factor out the construction of the
tree. The challenge is that the instantiation and connection of the
testers and monitors is done as part of the tree building.

10697:71c40e5c8bd4 16-Jan-2015 Curtis Dunham <Curtis.Dunham@arm.com>

config: add --root-device machine parameter

In case /dev/sda1 is not actually the boot partition for an image,
we can override it on the command line or in a benchmark definition.

10690:4972ada74310 11-Feb-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Revamp memtest to allow testers on any level

This patch revamps the memtest example script and allows for the
insertion of testers at any level in the cache hierarchy. Previously
all created topologies placed testers only at the very top, and the
tree was thus entirely symmetric. With the changes made, it is possible
to not only place testers at the leaf caches (L1), but also to connect
testers at the L2, L3 etc.

As part of the changes the object hierarchy is also simplified to
ensure that the visual representation from the DOT printing looks
sensible. Using SubSystems to group the objects is one of the key
features.

10688:22452667fd5c 11-Feb-2015 Andreas Hansson <andreas.hansson@arm.com>

cpu: Tidy up the MemTest and make false sharing more obvious

The MemTest class really only tests false sharing, and as such there
was a lot of old cruft that could be removed. This patch cleans up the
tester, and also makes it more clear what the assumptions are. As part
of this simplification the reference functional memory is also
removed.

The regression configs using MemTest are updated to reflect the
changes, and the stats will be bumped in a separate patch. The example
config will be updated in a separate patch due to more extensive
re-work.

In a follow-on patch a new tester will be introduced that uses the
MemChecker to implement true sharing.

10650:a6fe75e8296b 20-Jan-2015 Andreas Hansson <andreas.hansson@arm.com>

scons: Do not build the InOrderCPU

One step closer to shifting focus to the MinorCPU.

10635:ab05a080d7c5 03-Jan-2015 Anthony Gutierrez <atgutier@umich.edu>

arm: fix build_drive_system when not using default options

when trying to dual boot on arm build_drive_system will only use the default
values for the dtb file, number of processors, and disk image. if you are using
the non-default files by passing values on the command line for example, or by
making a new entry in Benchmarks.py, the build config scripts will still look
for the default files. this will lead to the wrong system files being used, or
the simulator will fail if you do not have them.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

10608:427f988fe6e5 23-Dec-2014 Dam Sunwoo <dam.sunwoo@arm.com>

config: Add options to take/resume from SimPoint checkpoints

More documentation at http://gem5.org/Simpoints

Steps to profile, generate, and use SimPoints with gem5:

1. To profile workload and generate SimPoint BBV file, use the
following option:

--simpoint-profile --simpoint-interval <interval length>

Requires single Atomic CPU and fastmem.
<interval length> is in number of instructions.

2. Generate SimPoint analysis using SimPoint 3.2 from UCSD.
(SimPoint 3.2 not included with this flow.)

3. To take gem5 checkpoints based on SimPoint analysis, use the
following option:

--take-simpoint-checkpoint=<simpoint file path>,<weight file
path>,<interval length>,<warmup length>

<simpoint file> and <weight file> is generated by SimPoint analysis
tool from UCSD. SimPoint 3.2 format expected. <interval length> and
<warmup length> are in number of instructions.

4. To resume from gem5 SimPoint checkpoints, use the following option:

--restore-simpoint-checkpoint -r <N> --checkpoint-dir <simpoint
checkpoint path>

<N> is (SimPoint index + 1). E.g., "-r 1" will resume from SimPoint
#0.

10594:4fdc929c0aaa 04-Dec-2014 Gabe Black <gabeblack@google.com>

config: Add two options for setting the kernel command line.

Both options accept template which will, through python string formatting,
have "mem", "disk", and "script" values substituted in from the mdesc.
Additional values can be used on a case by case basis by passing them as
keyword arguments to the fillInCmdLine function. That makes it possible to
have specialized parameters for a particular ISA, for instance.

The first option lets you specify the template directly, and the other lets
you specify a file which has the template in it.

10555:9f456b5cc474 23-Nov-2014 Alexandru Dutu <alexandru.dutu@amd.com>

config, kvm: Enabling KvmCPU in SE mode
This patch modifies se.py such that it can now use kvm cpu model.

10547:b61dc895269a 18-Nov-2014 Nilay Vaish <nilay@cs.wisc.edu>

configs: small fix to ruby portion of fs.py and se.py
In fs.py the io port controller was being attached to the iobus multiple
times. This should be done only once. In se.py, the the option use_map
was being set which no longer exists.

10524:fff17530cef6 06-Nov-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: interface with classic memory controller
This patch is the final in the series. The whole series and this patch in
particular were written with the aim of interfacing ruby's directory controller
with the memory controller in the classic memory system. This is being done
since ruby's memory controller has not being kept up to date with the changes
going on in DRAMs. Classic's memory controller is more up to date and
supports multiple different types of DRAM. This also brings classic and
ruby ever more close. The patch also changes ruby's memory controller to
expose the same interface.


/gem5/configs/common/MemConfig.py
fs.py
ruby_direct_test.py
ruby_mem_test.py
ruby_random_test.py
se.py
/gem5/configs/ruby/MESI_Three_Level.py
/gem5/configs/ruby/MESI_Two_Level.py
/gem5/configs/ruby/MI_example.py
/gem5/configs/ruby/MOESI_CMP_directory.py
/gem5/configs/ruby/MOESI_CMP_token.py
/gem5/configs/ruby/MOESI_hammer.py
/gem5/configs/ruby/Ruby.py
/gem5/src/mem/protocol/MESI_Two_Level-dir.sm
/gem5/src/mem/protocol/MI_example-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_token-dir.sm
/gem5/src/mem/protocol/MOESI_hammer-dir.sm
/gem5/src/mem/protocol/RubySlicc_Defines.sm
/gem5/src/mem/protocol/RubySlicc_Types.sm
/gem5/src/mem/ruby/SConscript
/gem5/src/mem/ruby/network/MessageBuffer.cc
/gem5/src/mem/ruby/slicc_interface/AbstractController.cc
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/Controller.py
/gem5/src/mem/ruby/structures/Cache.py
/gem5/src/mem/ruby/structures/DirectoryMemory.py
/gem5/src/mem/ruby/structures/MemoryControl.cc
/gem5/src/mem/ruby/structures/MemoryControl.hh
/gem5/src/mem/ruby/structures/MemoryControl.py
/gem5/src/mem/ruby/structures/MemoryNode.cc
/gem5/src/mem/ruby/structures/MemoryNode.hh
/gem5/src/mem/ruby/structures/MemoryVector.hh
/gem5/src/mem/ruby/structures/RubyMemoryControl.cc
/gem5/src/mem/ruby/structures/RubyMemoryControl.hh
/gem5/src/mem/ruby/structures/RubyMemoryControl.py
/gem5/src/mem/ruby/structures/SConscript
/gem5/src/mem/ruby/system/RubySystem.py
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/ruby/system/System.cc
/gem5/src/mem/ruby/system/System.hh
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/src/python/swig/pyobject.cc
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/pc-simple-timing-ruby.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-ruby.py
10519:7a3ad4b09ce4 06-Nov-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: single physical memory in fs mode
Both ruby and the system used to maintain memory copies. With the changes
carried for programmed io accesses, only one single memory is required for
fs simulations. This patch sets the copy of memory that used to reside
with the system to null, so that no space is allocated, but address checks
can still be carried out. All the memory accesses now source and sink values
to the memory maintained by ruby.

10512:b423e1d0735e 30-Oct-2014 Ali Saidi <Ali.Saidi@ARM.com>

arm, tests: Update config files to more recent kernels and create 64-bit regressions.

This changes the default ARM system to a Versatile Express-like system that supports
2GB of memory and PCI devices and updates the default kernels/file-systems for
AArch64 ARM systems (64-bit) to support up to 32GB of memory and PCI devices. Some
platforms that are no longer supported have been pruned from the configuration files.

In addition a set of 64-bit ARM regressions have been added to the regression system.

10458:64809024b924 16-Oct-2014 Andreas Hansson <andreas.hansson@arm.com>

config: Add the ability to read a config file using C++ and Python

This patch adds the ability to load in config.ini files generated from
gem5 into another instance of gem5 built without Python configuration
support. The intended use case is for configuring gem5 when it is a
library embedded in another simulation system.

A parallel config file reader is also provided purely in Python to
demonstrate the approach taken and to provided similar functionality
for as-yet-unknown use models. The Python configuration file reader
can read both .ini and .json files.

C++ configuration file reading:

A command line option has been added for scons to enable C++ configuration
file reading: --with-cxx-config

There is an example in util/cxx_config that shows C++ configuration in action.
util/cxx_config/README explains how to build the example.

Configuration is achieved by the object CxxConfigManager. It handles
reading object descriptions from a CxxConfigFileBase object which
wraps a config file reader. The wrapper class CxxIniFile is provided
which wraps an IniFile for reading .ini files. Reading .json files
from C++ would be possible with a similar wrapper and a JSON parser.

After reading object descriptions, CxxConfigManager creates
SimObjectParam-derived objects from the classes in the (generated with this
patch) directory build/ARCH/cxx_config

CxxConfigManager can then build SimObjects from those SimObjectParams (in an
order dictated by the SimObject-value parameters on other objects) and bind
ports of the produced SimObjects.

A minimal set of instantiate-replacing member functions are provided by
CxxConfigManager and few of the member functions of SimObject (such as drain)
are extended onto CxxConfigManager.

Python configuration file reading (configs/example/read_config.py):

A Python version of the reader is also supplied with a similar interface to
CxxConfigFileBase (In Python: ConfigFile) to config file readers.

The Python config file reading will handle both .ini and .json files.

The object construction strategy is slightly different in Python from the C++
reader as you need to avoid objects prematurely becoming the children of other
objects when setting parameters.

Port binding also needs to be strictly in the same port-index order as the
original instantiation.

10405:7a618c07e663 20-Sep-2014 Andreas Hansson <andreas.hansson@arm.com>

mem: Rename Bus to XBar to better reflect its behaviour

This patch changes the name of the Bus classes to XBar to better
reflect the actual timing behaviour. The actual instances in the
config scripts are not renamed, and remain as e.g. iobus or membus.

As part of this renaming, the code has also been clean up slightly,
making use of range-based for loops and tidying up some comments. The
only changes outside the bus/crossbar code is due to the delay
variables in the packet.

10381:ab8b8601b6ff 20-Sep-2014 Dam Sunwoo <dam.sunwoo@arm.com>

cpu: use probes infrastructure to do simpoint profiling

Instead of having code embedded in cpu model to do simpoint profiling use
the probes infrastructure to do it.

10300:ed3816dae6d5 01-Sep-2014 Emilio Castillo <castilloe@unican.es>, Nilay Vaish <nilay@cs.wisc.edu>

ruby: Fixes clock domains in configuration files

This patch fixes scripts related to ruby by adding the ruby clock domain.
Now the L1 controllers and the Sequencer shares the cpu clock domain,
while the rest of the components use the ruby clock domain.

Before this patch, running simulations with the cpu clock set at 2GHz or
1GHz will output the same time results and could distort power measurements.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

10270:763f76d5dea7 10-Aug-2014 Radhika Jagtap <radhika.jagtap@ARM.com>

config: Fix cache latency param in mem test

This patch fixes the cache latency in mem test which is split into two params,
hit and response latency as per BaseCache.

10150:240969297314 01-Apr-2014 Nilay Vaish <nilay@cs.wisc.edu>

configs: use SimpleMemory when using ruby in se mode
A recent changeset altered the default memory class to DRAMCtrl. In se mode,
ruby uses the physical memory to check if a given address is within the bounds
of the physical memory. SimpleMemory is enough for this. Moreover,
SimpleMemory does not check whether it is connected or not, something which
DRAMCtrl does.

10120:f5ceb3c3edb6 20-Mar-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: ruby: rename _cpu_ruby_ports to _cpu_ports

10119:6f3f839bb496 20-Mar-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: fs.py: move creating of test/drive systems to functions
The code that creates test and drive systems is being moved to separate
functions so as to make the code more readable. Ultimately the two
functions would be combined so that the replicated code is eliminated.

10118:5e1f04b4d5e4 20-Mar-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: remove ruby_fs.py

The patch removes the ruby_fs.py file. The functionality is being moved to
fs.py. This would being ruby fs simulations in line with how ruby se
simulations are started (using --ruby option). The alpha fs config functions
are being combined for classing and ruby memory systems. This required
renaming the piobus in ruby to iobus. So, we will have stats being renamed
in the stats file for ruby fs regression.

10117:37e333de580f 20-Mar-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: no piobus in se mode
Piobus was recently added to se scripts for ruby so that the interrupt
controller can be connected to something (required since the interrupt
controller sends address range messages). This patch removes the piobus
and instead, the pio port of ruby port will now ignore the range change
messages in se mode.

10092:c0db268f811b 24-Feb-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: correct errors in changeset 4eec7bdde5b0
Couple of errors were discovered in 4eec7bdde5b0 which necessitated this patch.
Firstly, we create interrupt controllers in the se mode, but no piobus was
being created. RubyPort, which earlier used to ignore range changes now
forwards those to the piobus. The lack of piobus resulted in segmentation
fault. This patch creates a piobus even in se mode. It is not created only
when some tester is running. Secondly, I had missed out on modifying port
connections for other coherence protocols.

10090:4eec7bdde5b0 23-Feb-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: route all packets through ruby port
Currently, the interrupt controller in x86 is connected to the io bus
directly. Therefore the packets between the io devices and the interrupt
controller do not go through ruby. This patch changes ruby port so that
these packets arrive at the ruby port first, which then routes them to their
destination. Note that the patch does not make these packets go through the
ruby network. That would happen in a subsequent patch.

10083:2beea2a439b4 21-Feb-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: ruby_random_test: updates due to recent unrelated changes

10056:33db5d81c2cb 31-Jan-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: correct bug in x86 drive sys instantiation

10041:fae4550d2103 27-Jan-2014 Nilay Vaish <nilay@cs.wisc.edu>

config: allow more than 3GB of memory for x86 simulations
This patch edits the configuration files so that x86 simulations can have
more than 3GB of memory. It also corrects a bug in the MemConfig.py script.

10037:5cac77888310 24-Jan-2014 ARM gem5 Developers

arm: Add support for ARMv8 (AArch64 & AArch32)

Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64
kernel you are restricted to AArch64 user-mode binaries. This will be addressed
in a later patch.

Note: Virtualization is only supported in AArch32 mode. This will also be fixed
in a later patch.

Contributors:
Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation)
Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation)
Mbou Eyole (AArch64 NEON, validation)
Ali Saidi (AArch64 Linux support, code integration, validation)
Edmund Grimley-Evans (AArch64 FP)
William Wang (AArch64 Linux support)
Rene De Jong (AArch64 Linux support, performance opt.)
Matt Horsnell (AArch64 MP, validation)
Matt Evans (device models, code integration, validation)
Chris Adeniyi-Jones (AArch64 syscall-emulation)
Prakash Ramrakhyani (validation)
Dam Sunwoo (validation)
Chander Sudanthi (validation)
Stephan Diestelhorst (validation)
Andreas Hansson (code integration, performance opt.)
Eric Van Hensbergen (performance opt.)
Gabe Black


/gem5/configs/common/FSConfig.py
/gem5/configs/common/O3_ARM_v7a.py
/gem5/configs/common/Options.py
/gem5/configs/common/cpu2000.py
fs.py
se.py
/gem5/ext/libelf/elf_common.h
/gem5/src/arch/arm/ArmISA.py
/gem5/src/arch/arm/ArmSystem.py
/gem5/src/arch/arm/ArmTLB.py
/gem5/src/arch/arm/SConscript
/gem5/src/arch/arm/decoder.cc
/gem5/src/arch/arm/decoder.hh
/gem5/src/arch/arm/faults.cc
/gem5/src/arch/arm/faults.hh
/gem5/src/arch/arm/insts/branch64.cc
/gem5/src/arch/arm/insts/branch64.hh
/gem5/src/arch/arm/insts/data64.cc
/gem5/src/arch/arm/insts/data64.hh
/gem5/src/arch/arm/insts/fplib.cc
/gem5/src/arch/arm/insts/fplib.hh
/gem5/src/arch/arm/insts/macromem.cc
/gem5/src/arch/arm/insts/macromem.hh
/gem5/src/arch/arm/insts/mem.cc
/gem5/src/arch/arm/insts/mem64.cc
/gem5/src/arch/arm/insts/mem64.hh
/gem5/src/arch/arm/insts/misc.cc
/gem5/src/arch/arm/insts/misc.hh
/gem5/src/arch/arm/insts/misc64.cc
/gem5/src/arch/arm/insts/misc64.hh
/gem5/src/arch/arm/insts/neon64_mem.hh
/gem5/src/arch/arm/insts/pred_inst.hh
/gem5/src/arch/arm/insts/static_inst.cc
/gem5/src/arch/arm/insts/static_inst.hh
/gem5/src/arch/arm/insts/vfp.cc
/gem5/src/arch/arm/insts/vfp.hh
/gem5/src/arch/arm/interrupts.cc
/gem5/src/arch/arm/interrupts.hh
/gem5/src/arch/arm/intregs.hh
/gem5/src/arch/arm/isa.cc
/gem5/src/arch/arm/isa.hh
/gem5/src/arch/arm/isa/bitfields.isa
/gem5/src/arch/arm/isa/decoder/aarch64.isa
/gem5/src/arch/arm/isa/decoder/arm.isa
/gem5/src/arch/arm/isa/decoder/decoder.isa
/gem5/src/arch/arm/isa/decoder/thumb.isa
/gem5/src/arch/arm/isa/formats/aarch64.isa
/gem5/src/arch/arm/isa/formats/branch.isa
/gem5/src/arch/arm/isa/formats/formats.isa
/gem5/src/arch/arm/isa/formats/fp.isa
/gem5/src/arch/arm/isa/formats/mem.isa
/gem5/src/arch/arm/isa/formats/misc.isa
/gem5/src/arch/arm/isa/formats/neon64.isa
/gem5/src/arch/arm/isa/formats/uncond.isa
/gem5/src/arch/arm/isa/formats/unimp.isa
/gem5/src/arch/arm/isa/includes.isa
/gem5/src/arch/arm/isa/insts/aarch64.isa
/gem5/src/arch/arm/isa/insts/branch.isa
/gem5/src/arch/arm/isa/insts/branch64.isa
/gem5/src/arch/arm/isa/insts/data.isa
/gem5/src/arch/arm/isa/insts/data64.isa
/gem5/src/arch/arm/isa/insts/div.isa
/gem5/src/arch/arm/isa/insts/fp.isa
/gem5/src/arch/arm/isa/insts/fp64.isa
/gem5/src/arch/arm/isa/insts/insts.isa
/gem5/src/arch/arm/isa/insts/ldr.isa
/gem5/src/arch/arm/isa/insts/ldr64.isa
/gem5/src/arch/arm/isa/insts/m5ops.isa
/gem5/src/arch/arm/isa/insts/macromem.isa
/gem5/src/arch/arm/isa/insts/mem.isa
/gem5/src/arch/arm/isa/insts/misc.isa
/gem5/src/arch/arm/isa/insts/misc64.isa
/gem5/src/arch/arm/isa/insts/neon.isa
/gem5/src/arch/arm/isa/insts/neon64.isa
/gem5/src/arch/arm/isa/insts/neon64_mem.isa
/gem5/src/arch/arm/isa/insts/str.isa
/gem5/src/arch/arm/isa/insts/str64.isa
/gem5/src/arch/arm/isa/insts/swap.isa
/gem5/src/arch/arm/isa/operands.isa
/gem5/src/arch/arm/isa/templates/basic.isa
/gem5/src/arch/arm/isa/templates/branch64.isa
/gem5/src/arch/arm/isa/templates/data64.isa
/gem5/src/arch/arm/isa/templates/macromem.isa
/gem5/src/arch/arm/isa/templates/mem.isa
/gem5/src/arch/arm/isa/templates/mem64.isa
/gem5/src/arch/arm/isa/templates/misc.isa
/gem5/src/arch/arm/isa/templates/misc64.isa
/gem5/src/arch/arm/isa/templates/neon.isa
/gem5/src/arch/arm/isa/templates/neon64.isa
/gem5/src/arch/arm/isa/templates/templates.isa
/gem5/src/arch/arm/isa/templates/vfp.isa
/gem5/src/arch/arm/isa/templates/vfp64.isa
/gem5/src/arch/arm/isa_traits.hh
/gem5/src/arch/arm/linux/linux.cc
/gem5/src/arch/arm/linux/linux.hh
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/linux/process.hh
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/linux/system.hh
/gem5/src/arch/arm/locked_mem.hh
/gem5/src/arch/arm/miscregs.cc
/gem5/src/arch/arm/miscregs.hh
/gem5/src/arch/arm/nativetrace.cc
/gem5/src/arch/arm/pagetable.hh
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/process.hh
/gem5/src/arch/arm/registers.hh
/gem5/src/arch/arm/remote_gdb.cc
/gem5/src/arch/arm/remote_gdb.hh
/gem5/src/arch/arm/stage2_lookup.cc
/gem5/src/arch/arm/stage2_lookup.hh
/gem5/src/arch/arm/stage2_mmu.cc
/gem5/src/arch/arm/stage2_mmu.hh
/gem5/src/arch/arm/system.cc
/gem5/src/arch/arm/system.hh
/gem5/src/arch/arm/table_walker.cc
/gem5/src/arch/arm/table_walker.hh
/gem5/src/arch/arm/tlb.cc
/gem5/src/arch/arm/tlb.hh
/gem5/src/arch/arm/types.hh
/gem5/src/arch/arm/utility.cc
/gem5/src/arch/arm/utility.hh
/gem5/src/arch/arm/vtophys.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/elf_object.hh
/gem5/src/base/loader/object_file.cc
/gem5/src/base/loader/object_file.hh
/gem5/src/cpu/BaseCPU.py
/gem5/src/dev/arm/RealView.py
/gem5/src/dev/arm/SConscript
/gem5/src/dev/arm/generic_timer.cc
/gem5/src/dev/arm/generic_timer.hh
/gem5/src/dev/arm/gic_pl390.cc
/gem5/src/dev/arm/vgic.cc
/gem5/src/dev/arm/vgic.hh
/gem5/src/sim/System.py
/gem5/src/sim/process.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/system.cc
/gem5/src/sim/system.hh
/gem5/system/arm/aarch64_bootloader/LICENSE.txt
/gem5/system/arm/aarch64_bootloader/boot.S
/gem5/system/arm/aarch64_bootloader/makefile
/gem5/util/cpt_upgrader.py
/gem5/util/m5/m5op_arm_A64.S
9935:cc9dc514036e 17-Oct-2013 Dam Sunwoo <dam.sunwoo@arm.com>

util: Streamline .apc project convertsion script

This Python script generates an ARM DS-5 Streamline .apc project based
on gem5 run. To successfully convert, the gem5 runs needs to be run
with the context-switch-based stats dump option enabled (The guest
kernel also needs to be patched to allow gem5 interrogate its task
information.) See help for more information.

9928:9d3b979cd3ed 17-Oct-2013 Ali Saidi <Ali.Saidi@ARM.com>

config: Fix memtest example script

9909:0679c3554ba3 09-Oct-2013 Nilay Vaish <nilay@cs.wisc.edu>

config: correct example ruby scripts
A couple of recent changesets added/deleted/edited some variables
that are needed for running the example ruby scripts. This changeset
edits these scripts to bring them to a working state.

9907:8bddb3879c16 07-Oct-2013 Nilay Vaish <nilay@cs.wisc.edu>

config: set cwd for processes in se.py

9872:ad7d5f966b74 17-Sep-2013 Joel Hestness <jthestness@gmail.com>

configs: Fix ruby_fs.py cache line size

Recent changes added setting of system-wide cache line size and these settings
occur in the top-level configs (se.py and fs.py). This setting also needs to
take place in ruby_fs.py. This change sets the cache line size as appropriate.

9870:e147cc305061 12-Sep-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Add voltage domain to Ruby example scripts

This patch adds the minimum required voltage domain configuration to
the Ruby example scripts.

9836:4411b4e0c03a 19-Aug-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Command line support for multi-channel memory

This patch adds support for specifying multi-channel memory
configurations on the command line, e.g. 'se/fs.py
--mem-type=ddr3_1600_x64 --mem-channels=4'. To enable this, it
enhances the functionality of MemConfig and moves the existing
makeMultiChannel class method from SimpleDRAM to the support scripts.

The se/fs.py example scripts are updated to make use of the new
feature.

9835:cc7a7fc71c42 19-Aug-2013 Andreas Hansson <andreas.hansson@arm.com>

mem: Change AbstractMemory defaults to match the common case

This patch changes the default parameter value of conf_table_reported
to match the common case. It also simplifies the regression and config
scripts to reflect this change.

9827:f47274776aa0 19-Aug-2013 Akash Bagdia <akash.bagdia@arm.com>

power: Add voltage domains to the clock domains

This patch adds the notion of voltage domains, and groups clock
domains that operate under the same voltage (i.e. power supply) into
domains. Each clock domain is required to be associated with a voltage
domain, and the latter requires the voltage to be explicitly set.

A voltage domain is an independently controllable voltage supply being
provided to section of the design. Thus, if you wish to perform
dynamic voltage scaling on a CPU, its clock domain should be
associated with a separate voltage domain.

The current implementation of the voltage domain does not take into
consideration cases where there are derived voltage domains running at
ratio of native voltage domains, as with the case where there can be
on-chip buck/boost (charge pumps) voltage regulation logic.

The regression and configuration scripts are updated with a generic
voltage domain for the system, and one for the CPUs.

9826:014ff1fbff6d 19-Aug-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Move the memory instantiation outside FSConfig

This patch moves the instantiation of the memory controller outside
FSConfig and instead relies on the mem_ranges to pass the information
to the caller (e.g. fs.py or one of the regression scripts). The main
motivation for this change is to expose the structural composition of
the memory system and allow more tuning and configuration without
adding a large number of options to the makeSystem functions.

The patch updates the relevant example scripts to maintain the current
functionality. As the order that ports are connected to the memory bus
changes (in certain regresisons), some bus stats are shuffled
around. For example, what used to be layer 0 is now layer 1.

Going forward, options will be added to support the addition of
multi-channel memory controllers.


/gem5/configs/common/FSConfig.py
fs.py
ruby_fs.py
/gem5/configs/ruby/MESI_CMP_directory.py
/gem5/configs/ruby/MI_example.py
/gem5/configs/ruby/MOESI_CMP_directory.py
/gem5/configs/ruby/MOESI_CMP_token.py
/gem5/configs/ruby/MOESI_hammer.py
/gem5/configs/ruby/Network_test.py
/gem5/configs/ruby/Ruby.py
/gem5/tests/configs/alpha_generic.py
/gem5/tests/configs/arm_generic.py
/gem5/tests/configs/base_config.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-atomic.py
/gem5/tests/configs/pc-simple-timing-ruby.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/pc-switcheroo-full.py
/gem5/tests/configs/realview-o3-checker.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-atomic-dual.py
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/realview-switcheroo-atomic.py
/gem5/tests/configs/realview-switcheroo-full.py
/gem5/tests/configs/realview-switcheroo-o3.py
/gem5/tests/configs/realview-switcheroo-timing.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/configs/t1000-simple-atomic.py
/gem5/tests/configs/tsunami-inorder.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/configs/tsunami-switcheroo-full.py
/gem5/tests/configs/twosys-tsunami-simple-atomic.py
/gem5/tests/configs/x86_generic.py
9815:3b3b94536547 18-Jul-2013 Andreas Hansson <andreas.hansson>

config: Update script to set cache line size on system

This patch changes the config scripts such that they do not set the
cache line size per cache instance, but rather for the system as a
whole.

9800:5fdd91246b7b 28-Jun-2013 Nilay Vaish <nilay@cs.wisc.edu>

configs: rearrange the available options in Options.py
It also changes the instantiation of physmem in se.py so as to make
use of the memory size supplied by the mem_size option.

9793:6e6cefc1db1f 27-Jun-2013 Akash Bagdia <akash.bagdia@arm.com>

sim: Add the notion of clock domains to all ClockedObjects

This patch adds the notion of source- and derived-clock domains to the
ClockedObjects. As such, all clock information is moved to the clock
domain, and the ClockedObjects are grouped into domains.

The clock domains are either source domains, with a specific clock
period, or derived domains that have a parent domain and a divider
(potentially chained). For piece of logic that runs at a derived clock
(a ratio of the clock its parent is running at) the necessary derived
clock domain is created from its corresponding parent clock
domain. For now, the derived clock domain only supports a divider,
thus ensuring a lower speed compared to its parent. Multiplier
functionality implies a PLL logic that has not been modelled yet
(create a separate clock instead).

The clock domains should be used as a mechanism to provide a
controllable clock source that affects clock for every clocked object
lying beneath it. The clock of the domain can (in a future patch) be
controlled by a handler responsible for dynamic frequency scaling of
the respective clock domains.

All the config scripts have been retro-fitted with clock domains. For
the System a default SrcClockDomain is created. For CPUs that run at a
different speed than the system, there is a seperate clock domain
created. This domain incorporates the CPU and the associated
caches. As before, Ruby runs under its own clock domain.

The clock period of all domains are pre-computed, such that no virtual
functions or multiplications are needed when calling
clockPeriod. Instead, the clock period is pre-computed when any
changes occur. For this to be possible, each clock domain tracks its
children.

9790:ccc428657233 27-Jun-2013 Akash Bagdia <akash.bagdia@arm.com>

config: Add a system clock command-line option

This patch adds a 'sys_clock' command-line option and use it to assign
clocks to the system during instantiation.

As part of this change, the default clock in the System class is
removed and whenever a system is instantiated a system clock value
must be set. A default value is provided for the command-line option.

The configs and tests are updated accordingly.

9789:233420718e61 27-Jun-2013 Akash Bagdia <akash.bagdia@arm.com>

config: Add a CPU clock command-line option

This patch adds a 'cpu_clock' command-line option and uses the value
to assign clocks to components running at the CPU speed (L1 and L2
including the L2-bus). The configuration scripts are updated
accordingly.

The 'clock' option is left unchanged in this patch as it is still used
by a number of components. In follow-on patches the latter will be
disambiguated further.

9788:5558ee8dd7d9 27-Jun-2013 Akash Bagdia <akash.bagdia@arm.com>

config: Remove redundant explicit setting of default clocks

This patch removes the explicit setting of the clock period for
certain instances of CoherentBus, NonCoherentBus and IOCache where the
specified clock is same as the default value of the system clock. As
all the values used are the defaults, there are no performance
changes. There are similar cases where the toL2Bus is set to use the
parent CPU clock which is already the default behaviour.

The main motivation for these simplifications is to ease the
introduction of clock domains.

9756:0b4a08751b42 13-Jun-2013 Nilay Vaish <nilay@cs.wisc.edu>

config: Do not instantiate membus when using ruby
This patch moves the instantiation of system.membus in se.py to the area of
code where classic memory system has been dealt with. Ruby does not require
this bus and hence it should not be instantiated.

9677:773aae0990ae 23-Apr-2013 Marco Elver <marco.elver@ed.ac.uk>

config: Fix mem-type option not used in ruby_fs script
This fixes missing mem-type arguments to makeLinuxAlphaRubySystem and
makeLinuxX86System after a recent changeset allowing mem-type to be
configured via options missed fixing these calls.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

9665:6dbdeee787cc 22-Apr-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Add a mem-type config option to se/fs scripts

This patch enables selection of the memory controller class through a
mem-type command-line option. Behind the scenes, this option is
treated much like the cpu-type, and a similar framework is used to
resolve the valid options, and translate the short-hand description to
a valid class.

The regression scripts are updated with a hardcoded memory class for
the moment. The best solution going forward is probably to get the
memory out of the makeSystem functions, but Ruby complicates things as
it does not connect the memory controller to the membus.

9653:5307d06e1d0e 22-Apr-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

config: Add a KVM VM to systems with KVM CPUs

KVM-based CPUs need a KVM VM object in the system to manage
system-global KVM stuff (VM creation, interrupt delivery, memory
managment, etc.). This changeset adds a VM to the system if KVM has
been enabled at compile time (the BaseKvmCPU object exists) and a
KVM-based CPU has been selected at runtime.

9647:5b6b315472e7 22-Apr-2013 Dam Sunwoo <dam.sunwoo@arm.com>

cpu: generate SimPoint basic block vector profiles

This patch is based on http://reviews.m5sim.org/r/1474/ originally written by
Mitch Hayenga. Basic block vectors are generated (simpoint.bb.gz in simout
folder) based on start and end addresses of basic blocks.

Some comments to the original patch are addressed and hooks are added to create
and resume from checkpoints based on instruction counts dictated by external
SimPoint analysis tools.

SimPoint creation/resuming options will be implemented as a separate patch.

9577:91cac7c9c636 06-Mar-2013 Nilay Vaish <nilay@cs.wisc.edu>

ruby: remove the functional copy of memory in se mode
This patch removes the functional copy of the memory that was maintained in
the se mode. Now ruby itself will provide the data.

9539:0ac00d9a8aaf 15-Feb-2013 Anthony Gutierrez <atgutier@umich.edu>

options: add command line option for dtb file

9408:10a84dceab25 07-Jan-2013 Andreas Hansson <andreas.hansson@arm.com>

config: Do not use hardcoded physmem in fs script

This patch generalises the address range resolution for the I/O cache
and I/O bridge such that they do not assume a single memory. The patch
involves adding a parameter to the system which is then defined based
on the memories that are to be visible from the I/O subsystem, whether
behind a cache or a bridge.

The change is needed to allow interleaved memory controllers in the
system.

9384:877293183bdf 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@arm.com>

arch: Make the ISA class inherit from SimObject

The ISA class on stores the contents of ID registers on many
architectures. In order to make reset values of such registers
configurable, we make the class inherit from SimObject, which allows
us to use the normal generated parameter headers.

This patch introduces a Python helper method, BaseCPU.createThreads(),
which creates a set of ISAs for each of the threads in an SMT
system. Although it is currently only needed when creating
multi-threaded CPUs, it should always be called before instantiating
the system as this is an obvious place to configure ID registers
identifying a thread/CPU.

9365:644be05ee7c2 11-Dec-2012 Nilay Vaish <nilay@cs.wisc.edu>

ruby: modify the directed tester to read/write streams
The directed tester supports only generating only read or only write accesses. The
patch modifies the tester to support streams that have both read and write accesses.

9317:2daeea4bce1b 26-Oct-2012 Andreas Hansson <andreas.hansson@arm.com>

config: Add a check for fastmem only used with Atomic CPU

This patch adds an additional check to ensure that the fastmem option
is only used if the system is using the Atomic CPU.

9316:4e2dc4b01c50 26-Oct-2012 Andreas Hansson <andreas.hansson@arm.com>

config: Remove unused mem_size in fs.py

This patch removes a segment of dead code that is never used.

9302:c2e70a9bc340 15-Oct-2012 Nilay Vaish <nilay@cs.wisc.edu>

ruby: improved support for functional accesses
This patch adds support to different entities in the ruby memory system
for more reliable functional read/write accesses. Only the simple network
has been augmented as of now. Later on Garnet will also support functional
accesses.
The patch adds functional access code to all the different types of messages
that protocols can send around. These messages are functionally accessed
by going through the buffers maintained by the network entities.
The patch also rectifies some of the bugs found in coherence protocols while
testing the patch.

With this patch applied, functional writes always succeed. But functional
reads can still fail.


ruby_mem_test.py
/gem5/src/mem/protocol/MESI_CMP_directory-L1cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-L2cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MESI_CMP_directory-msg.sm
/gem5/src/mem/protocol/MI_example-cache.sm
/gem5/src/mem/protocol/MI_example-dir.sm
/gem5/src/mem/protocol/MI_example-msg.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-L1cache.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-L2cache.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-msg.sm
/gem5/src/mem/protocol/MOESI_CMP_token-L1cache.sm
/gem5/src/mem/protocol/MOESI_CMP_token-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_token-msg.sm
/gem5/src/mem/protocol/MOESI_hammer-cache.sm
/gem5/src/mem/protocol/MOESI_hammer-dir.sm
/gem5/src/mem/protocol/MOESI_hammer-msg.sm
/gem5/src/mem/protocol/Network_test-msg.sm
/gem5/src/mem/protocol/RubySlicc_Exports.sm
/gem5/src/mem/protocol/RubySlicc_MemControl.sm
/gem5/src/mem/ruby/buffers/MessageBuffer.cc
/gem5/src/mem/ruby/buffers/MessageBuffer.hh
/gem5/src/mem/ruby/buffers/MessageBufferNode.hh
/gem5/src/mem/ruby/network/Network.hh
/gem5/src/mem/ruby/network/simple/PerfectSwitch.cc
/gem5/src/mem/ruby/network/simple/SimpleNetwork.cc
/gem5/src/mem/ruby/network/simple/SimpleNetwork.hh
/gem5/src/mem/ruby/network/simple/Switch.cc
/gem5/src/mem/ruby/network/simple/Switch.hh
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/Message.hh
/gem5/src/mem/ruby/slicc_interface/NetworkMessage.hh
/gem5/src/mem/ruby/slicc_interface/RubyRequest.cc
/gem5/src/mem/ruby/slicc_interface/RubyRequest.hh
/gem5/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
/gem5/src/mem/ruby/system/MemoryControl.cc
/gem5/src/mem/ruby/system/MemoryControl.hh
/gem5/src/mem/ruby/system/RubyMemoryControl.cc
/gem5/src/mem/ruby/system/RubyMemoryControl.hh
/gem5/src/mem/ruby/system/System.cc
/gem5/src/mem/slicc/ast/TypeDeclAST.py
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/src/mem/slicc/symbols/SymbolTable.py
/gem5/src/mem/slicc/symbols/Type.py
9288:3d6da8559605 15-Oct-2012 Andreas Hansson <andreas.hansson@arm.com>

Mem: Use cycles to express cache-related latencies

This patch changes the cache-related latencies from an absolute time
expressed in Ticks, to a number of cycles that can be scaled with the
clock period of the caches. Ultimately this patch serves to enable
future work that involves dynamic frequency scaling. As an immediate
benefit it also makes it more convenient to specify cache performance
without implicitly assuming a specific CPU core operating frequency.

The stat blocked_cycles that actually counter in ticks is now updated
to count in cycles.

As the timing is now rounded to the clock edges of the cache, there
are some regressions that change. Plenty of them have very minor
changes, whereas some regressions with a short run-time are perturbed
quite significantly. A follow-on patch updates all the statistics for
the regressions.


/gem5/configs/common/Caches.py
/gem5/configs/common/O3_ARM_v7a.py
fs.py
/gem5/src/mem/cache/BaseCache.py
/gem5/src/mem/cache/base.cc
/gem5/src/mem/cache/base.hh
/gem5/src/mem/cache/cache.hh
/gem5/src/mem/cache/cache_impl.hh
/gem5/src/mem/cache/prefetch/Prefetcher.py
/gem5/src/mem/cache/prefetch/base.cc
/gem5/src/mem/cache/prefetch/base.hh
/gem5/src/mem/cache/prefetch/ghb.cc
/gem5/src/mem/cache/prefetch/ghb.hh
/gem5/src/mem/cache/prefetch/stride.cc
/gem5/src/mem/cache/prefetch/stride.hh
/gem5/src/mem/cache/prefetch/tagged.cc
/gem5/src/mem/cache/prefetch/tagged.hh
/gem5/src/mem/cache/tags/fa_lru.cc
/gem5/src/mem/cache/tags/fa_lru.hh
/gem5/src/mem/cache/tags/iic.cc
/gem5/src/mem/cache/tags/iic.hh
/gem5/src/mem/cache/tags/lru.cc
/gem5/src/mem/cache/tags/lru.hh
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-checker.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-atomic.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/realview-o3-checker.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-atomic-dual.py
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing.py
/gem5/tests/configs/tsunami-inorder.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
9268:a0ca00815cc4 28-Sep-2012 Malek Musleh <malek.musleh@gmail.com>

Configs: SE script fix for Alpha and Ruby simulations

PIO interrupt port is only present for x86. Do not attempt to connect
for other ISAs.

9267:f8c85a7d109f 27-Sep-2012 Andreas Hansson <andreas.hansson@arm.com>

Configs: Fix memtest cache latency to match new parameters

This patch changes the memtest config to use the new response latency
of the cache model.

9266:6ed55550d19e 27-Sep-2012 Andreas Hansson <andreas.hansson@arm.com>

Configs: Fix memtest.py by moving the system port

The memtest.py script used to connect the system port directly to the
SimpleMemory, but the latter is now single ported. Since the system
port is not used for anything in this particular example, a quick fix
is to attach it to the functional bus instead.

9222:dfc6a4ba338c 12-Sep-2012 Joel Hestness <hestness@cs.wisc.edu>

se.py Ruby: Connect TLB walker ports
In order to ensure correct functionality of switch CPUs, the TLB walker ports
must be connected to the Ruby system in x86 simulation.

This fixes x86 assertion failures that the TLB walker ports are not connected
during the CPU switch process.

9217:d3772fe85fa6 11-Sep-2012 Nilay Vaish <nilay@cs.wisc.edu>

se.py: removes error in passing options to a binary

9197:0281650db548 09-Sep-2012 Nilay Vaish <nilay@cs.wisc.edu>

se.py: support specifying multiple programs via command line
This patch allows for specifying multiple programs via command line. It also
adds an option for specifying whether to use of SMT. But SMT does not work for
the o3 cpu as of now.

9164:d112473185ea 22-Aug-2012 Andreas Hansson <andreas.hansson@arm.com>

Bridge: Remove NACKs in the bridge and unify with packet queue

This patch removes the NACKing in the bridge, as the split
request/response busses now ensure that protocol deadlocks do not
occur, i.e. the message-dependency chain is broken by always allowing
responses to make progress without being stalled by requests. The
NACKs had limited support in the system with most components ignoring
their use (with a suitable call to panic), and as the NACKs are no
longer needed to avoid protocol deadlocks, the cleanest way is to
simply remove them.

The bridge is the starting point as this is the only place where the
NACKs are created. A follow-up patch will remove the code that deals
with NACKs in the endpoints, e.g. the X86 table walker and DMA
port. Ultimately the type of packet can be complete removed (until
someone sees a need for modelling more complex protocols, which can
now be done in parts of the system since the port and interface is
split).

As a consequence of the NACK removal, the bridge now has to send a
retry to a master if the request or response queue was full on the
first attempt. This change also makes the bridge ports very similar to
QueuedPorts, and a later patch will change the bridge to use these. A
first step in this direction is taken by aligning the name of the
member functions, as done by this patch.

A bit of tidying up has also been done as part of the simplifications.

Surprisingly, this patch has no impact on any of the
regressions. Hence, there was never any NACKs issued. In a follow-up
patch I would suggest changing the size of the bridge buffers set in
FSConfig.py to also test the situation where the bridge fills up.

9129:b57966a6c512 23-Jul-2012 Andreas Hansson <andreas.hansson@arm.com>

Config: Use clock option in se/fs script and pass to switch_cpus

This patch changes the se and fs script to use the clock option and
not simply set the CPUs clock to 2 GHz. It also makes a minor change
to the assignment of the switch_cpus clock to allow different clocks.

9120:48eeef8a0997 12-Jul-2012 Andreas Hansson <andreas.hansson@arm.com>

Mem: Make SimpleMemory single ported

This patch changes the simple memory to have a single slave port
rather than a vector port. The simple memory makes no attempts at
modelling the contention between multiple ports, and any such
multiplexing and demultiplexing could be done in a bus (or crossbar)
outside the memory controller. This scenario also matches with the
ongoing work on a SimpleDRAM model, which will be a single-ported
single-channel controller that can be used in conjunction with a bus
(or crossbar) to create a multi-port multi-channel controller.

There are only very few regressions that make use of the vector port,
and these are all for functional accesses only. To facilitate these
cases, memtest and memtest-ruby have been updated to also have a
"functional" bus to perform the (de)multiplexing of the functional
memory accesses.

9108:ad76a669e9d9 11-Jul-2012 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: remove the cpu assumptions for the random tester

9100:3caf131d7a95 11-Jul-2012 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: changes how Topologies are created

Instead of just passing a list of controllers to the makeTopology function
in src/mem/ruby/network/topologies/<Topo>.py we pass in a function pointer
which knows how to make the topology, possibly with some extra state set
in the configs/ruby/<protocol>.py file. Thus, we can move all of the files
from network/topologies to configs/topologies. A new class BaseTopology
is added which all topologies in configs/topologies must inheirit from and
follow its API.

9061:135aa8f54bc4 07-Jun-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: call to setWorkCountOptions() for all ISAs

9060:ee4104e628f3 07-Jun-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Remove setMipsOptions
As status matrix, MIPS fs does not work. Hence, these options are not
required. Secondly, the function is setting param values for a CPU class.
This seems strange, should probably be done in a different way.

9059:95b525b1d3a0 07-Jun-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: changes to a couple of error msgs

9036:6385cf85bf12 31-May-2012 Andreas Hansson <andreas.hansson@arm.com>

Bus: Split the bus into a non-coherent and coherent bus

This patch introduces a class hierarchy of buses, a non-coherent one,
and a coherent one, splitting the existing bus functionality. By doing
so it also enables further specialisation of the two types of buses.

A non-coherent bus connects a number of non-snooping masters and
slaves, and routes the request and response packets based on the
address. The request packets issued by the master connected to a
non-coherent bus could still snoop in caches attached to a coherent
bus, as is the case with the I/O bus and memory bus in most system
configurations. No snoops will, however, reach any master on the
non-coherent bus itself. The non-coherent bus can be used as a
template for modelling PCI, PCIe, and non-coherent AMBA and OCP buses,
and is typically used for the I/O buses.

A coherent bus connects a number of (potentially) snooping masters and
slaves, and routes the request and response packets based on the
address, and also forwards all requests to the snoopers and deals with
the snoop responses. The coherent bus can be used as a template for
modelling QPI, HyperTransport, ACE and coherent OCP buses, and is
typically used for the L1-to-L2 buses and as the main system
interconnect.

The configuration scripts are updated to use a NoncoherentBus for all
peripheral and I/O buses.

A bit of minor tidying up has also been done.


/gem5/configs/common/CacheConfig.py
/gem5/configs/common/FSConfig.py
memtest.py
se.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/src/cpu/BaseCPU.py
/gem5/src/mem/Bus.py
/gem5/src/mem/SConscript
/gem5/src/mem/bus.cc
/gem5/src/mem/bus.hh
/gem5/src/mem/coherent_bus.cc
/gem5/src/mem/coherent_bus.hh
/gem5/src/mem/noncoherent_bus.cc
/gem5/src/mem/noncoherent_bus.hh
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-checker.py
/gem5/tests/configs/o3-timing-mp-ruby.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing-ruby.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-atomic.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/realview-o3-checker.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-atomic-dual.py
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/simple-atomic-dummychecker.py
/gem5/tests/configs/simple-atomic-mp-ruby.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing.py
/gem5/tests/configs/tsunami-inorder.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
9006:431fcc41ae4a 16-May-2012 Andreas Hansson <andreas.hansson@arm.com>

Config: Fix a typo in the se.py script for setting fastmem

This patch changes a hardcoded index 0 to the appropriate CPU index so
that fastmem is set correctly for all the CPUs in the system.

8957:0bba1c59b4d1 17-Apr-2012 Jayneel Gandhi <jayneel@cs.wisc.edu>

SE Config: Changed se.py to support multithreaded mode
Multithreaded programs did not run by just specifying the binary once on the
command line of SE mode.The default mode is multi-programmed mode. Added
check in SE mode to run multi-threaded programs in case only one program is
specified with multiple CPUS. Default mode is still multi-programmed mode.

8956:1df031399919 16-Apr-2012 Jayneel Gandhi <jayneel@cs.wisc.edu>

Config: Add command line options for disk image and memory size
Added the options to Options.py for FS mode with backward compatibility. It is
good to provide an option to specify the disk image and the memory size from
command line since a lot of disk images are created to support different
benchmark suites as well as per user needs. Change in program also leads to
change in memory requirements. These options provide the interface to provide
both disk image and memory size from the command line and gives more
flexibility.

8932:1b2c17565ac8 06-Apr-2012 Brad Beckmann <Brad.Beckmann@amd.com>

rubytest: seperated read and write ports.

This patch allows the ruby tester to support protocols where the i-cache and d-cache
are managed by seperate controllers.

8931:7a1dfb191e3f 06-Apr-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Enable multiple distributed generalized memories

This patch removes the assumption on having on single instance of
PhysicalMemory, and enables a distributed memory where the individual
memories in the system are each responsible for a single contiguous
address range.

All memories inherit from an AbstractMemory that encompasses the basic
behaviuor of a random access memory, and provides untimed access
methods. What was previously called PhysicalMemory is now
SimpleMemory, and a subclass of AbstractMemory. All future types of
memory controllers should inherit from AbstractMemory.

To enable e.g. the atomic CPU and RubyPort to access the now
distributed memory, the system has a wrapper class, called
PhysicalMemory that is aware of all the memories in the system and
their associated address ranges. This class thus acts as an
infinitely-fast bus and performs address decoding for these "shortcut"
accesses. Each memory can specify that it should not be part of the
global address map (used e.g. by the functional memories by some
testers). Moreover, each memory can be configured to be reported to
the OS configuration table, useful for populating ATAG structures, and
any potential ACPI tables.

Checkpointing support currently assumes that all memories have the
same size and organisation when creating and resuming from the
checkpoint. A future patch will enable a more flexible
re-organisation.


/gem5/configs/common/FSConfig.py
memtest.py
ruby_direct_test.py
ruby_mem_test.py
ruby_network_test.py
ruby_random_test.py
se.py
/gem5/configs/ruby/MESI_CMP_directory.py
/gem5/configs/ruby/MI_example.py
/gem5/configs/ruby/MOESI_CMP_directory.py
/gem5/configs/ruby/MOESI_CMP_token.py
/gem5/configs/ruby/MOESI_hammer.py
/gem5/configs/ruby/Network_test.py
/gem5/configs/ruby/Ruby.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/src/arch/alpha/remote_gdb.cc
/gem5/src/arch/alpha/remote_gdb.hh
/gem5/src/arch/arm/ArmSystem.py
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/remote_gdb.hh
/gem5/src/arch/arm/system.cc
/gem5/src/arch/mips/remote_gdb.hh
/gem5/src/arch/sparc/SparcSystem.py
/gem5/src/arch/sparc/remote_gdb.hh
/gem5/src/base/remote_gdb.cc
/gem5/src/base/remote_gdb.hh
/gem5/src/cpu/checker/thread_context.hh
/gem5/src/cpu/inorder/thread_context.hh
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/ozone/cpu.hh
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/atomic.hh
/gem5/src/dev/alpha/backdoor.cc
/gem5/src/dev/arm/RealView.py
/gem5/src/dev/ide_disk.hh
/gem5/src/mem/AbstractMemory.py
/gem5/src/mem/PhysicalMemory.py
/gem5/src/mem/SConscript
/gem5/src/mem/SimpleMemory.py
/gem5/src/mem/abstract_mem.cc
/gem5/src/mem/abstract_mem.hh
/gem5/src/mem/cache/mshr.cc
/gem5/src/mem/physical.cc
/gem5/src/mem/physical.hh
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/simple_mem.cc
/gem5/src/mem/simple_mem.hh
/gem5/src/sim/System.py
/gem5/src/sim/system.cc
/gem5/src/sim/system.hh
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-checker.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-atomic-dummychecker.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/configs/simple-timing.py
8929:4148f9af0b70 05-Apr-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: corrects the way Ruby attaches to the DMA ports
With recent changes to the memory system, a port cannot be assigned a peer
port twice. While making use of the Ruby memory system in FS mode, DMA
ports were assigned peer twice, once for the classic memory system
and once for the Ruby memory system. This patch removes this double
assignment of peer ports.

8928:051bc173ea72 05-Apr-2012 Andreas Hansson <andreas.hansson@arm.com>

Ruby: Fix the example configurations option parsing

This patch fixes the, currently broken, Ruby example scripts to
reflect the changes in the parsing of command-line options.

8926:570b44fe6e04 03-Apr-2012 Andreas Hansson <andreas.hansson@arm.com>

Atomic: Remove the physmem_port and access memory directly

This patch removes the physmem_port from the Atomic CPU and instead
uses the system pointer to access the physmem when using the fastmem
option. The system already keeps track of the physmem and the valid
memory address ranges, and with this patch we merely make use of that
existing functionality. As a result of this change, the overloaded
getMasterPort in the Atomic CPU can be removed, thus unifying the CPUs.

8920:99083b5b7ed4 28-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Change the way options are added
I am not too happy with the way options are added in files se.py and fs.py
currently. This patch moves all the options to the file Options.py, functions
from which are called when required.

8919:c1366a30d5eb 27-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Move setWorkCountOptions() to Simulation.py
The function is presently defined in FSConfig.py, which does not seem to be
the correct place for it.

8899:0541a014b811 16-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

ruby_fs.py: Add call to createInterruptController()

8896:6df06e5975c6 11-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

se.py: Changes to ruby portion due to SE/FS merge
With the SE/FS merge, interrupt controller is created irrespective of the
mode. This patch creates the interrupt controller when Ruby is used and
connects its ports.

8894:351585c17699 09-Mar-2012 Ali Saidi <saidi@eecs.umich.edu>

ARM: Fix memory starting at non-zero address and exceeding max mem for a system.

8887:20ea02da9c53 09-Mar-2012 Geoffrey Blake <geoffrey.blake@arm.com>

CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable

Enables the CheckerCPU to be selected at runtime with the --checker option
from the configs/example/fs.py and configs/example/se.py configuration
files. Also merges with the SE/FS changes.

8883:c92153af04ac 09-Mar-2012 Ali Saidi <Ali.Saidi@ARM.com>

cache: Allow main memory to be at disjoint address ranges.

8870:f95c4042f2d0 01-Mar-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for Versatile Express extended memory map

Also clean up how we create boot loader memory a bit.

8863:50ce4deacda9 01-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

x86: Fix switching of CPUs
This patch prevents creation of interrupt controller for
cpus that will be switched in later

8862:dedd8be81731 01-Mar-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: make option ruby available always

8847:ef8630054b5e 14-Feb-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Fix residual bus ports and make them master/slave

This patch cleans up a number of remaining uses of bus.port which
is now split into bus.master and bus.slave. The only non-trivial change
is the memtest where the level building now has to be aware of the role
of the ports used in the previous level.

8845:a230379caf65 14-Feb-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Fix master/slave ports in Ruby and non-regression scripts

This patch brings the Ruby and other scripts up to date with the
introduction of the master/slave ports.

8839:eeb293859255 13-Feb-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Introduce the master/slave port roles in the Python classes

This patch classifies all ports in Python as either Master or Slave
and enforces a binding of master to slave. Conceptually, a master (such
as a CPU or DMA port) issues requests, and receives responses, and
conversely, a slave (such as a memory or a PIO device) receives
requests and sends back responses. Currently there is no
differentiation between coherent and non-coherent masters and slaves.

The classification as master/slave also involves splitting the dual
role port of the bus into a master and slave port and updating all the
system assembly scripts to use the appropriate port. Similarly, the
interrupt devices have to have their int_port split into a master and
slave port. The intdev and its children have minimal changes to
facilitate the extra port.

Note that this patch does not enforce any port typing in the C++
world, it merely ensures that the Python objects have a notion of the
port roles and are connected in an appropriate manner. This check is
carried when two ports are connected, e.g. bus.master =
memory.port. The following patches will make use of the
classifications and specialise the C++ ports into masters and slaves.


/gem5/configs/common/CacheConfig.py
/gem5/configs/common/FSConfig.py
fs.py
ruby_fs.py
se.py
/gem5/configs/ruby/Ruby.py
/gem5/src/arch/arm/ArmTLB.py
/gem5/src/arch/x86/X86LocalApic.py
/gem5/src/arch/x86/X86TLB.py
/gem5/src/arch/x86/interrupts.hh
/gem5/src/cpu/BaseCPU.py
/gem5/src/cpu/simple/AtomicSimpleCPU.py
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.py
/gem5/src/cpu/testers/memtest/MemTest.py
/gem5/src/cpu/testers/networktest/NetworkTest.py
/gem5/src/cpu/testers/rubytest/RubyTester.py
/gem5/src/dev/Device.py
/gem5/src/dev/Ethernet.py
/gem5/src/dev/Pci.py
/gem5/src/dev/alpha/Tsunami.py
/gem5/src/dev/arm/RealView.py
/gem5/src/dev/x86/I82094AA.py
/gem5/src/dev/x86/Pc.py
/gem5/src/dev/x86/SouthBridge.py
/gem5/src/dev/x86/i82094aa.hh
/gem5/src/dev/x86/intdev.hh
/gem5/src/mem/Bridge.py
/gem5/src/mem/Bus.py
/gem5/src/mem/PhysicalMemory.py
/gem5/src/mem/cache/BaseCache.py
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/python/m5/SimObject.py
/gem5/src/python/m5/params.py
/gem5/src/sim/System.py
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-mp-ruby.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing-ruby.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-atomic.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-atomic-dual.py
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-atomic-mp-ruby.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing.py
/gem5/tests/configs/tsunami-inorder.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/configs/twosys-tsunami-simple-atomic.py
8810:00f0d0230596 01-Feb-2012 Ali Saidi <Ali.Saidi@ARM.com>

configs: More fixes for the memory system updates

8808:8af87554ad7e 31-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

Merge with main repository.

8807:35e77c938919 29-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

Yet another merge with the main repository.

8803:f6c5785bc8fd 28-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

SE/FS: Get rid of FULL_SYSTEM in the configs directory

8801:1a84c6a81299 28-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

SE/FS: Make SE vs. FS mode a runtime parameter.


/gem5/configs/common/FSConfig.py
fs.py
memtest.py
ruby_direct_test.py
ruby_fs.py
ruby_mem_test.py
ruby_network_test.py
ruby_random_test.py
se.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/src/sim/Root.py
/gem5/src/sim/full_system.hh
/gem5/src/sim/root.cc
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-mp-ruby.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing-ruby.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/pc-o3-timing.py
/gem5/tests/configs/pc-simple-atomic.py
/gem5/tests/configs/pc-simple-timing.py
/gem5/tests/configs/realview-o3-dual.py
/gem5/tests/configs/realview-o3.py
/gem5/tests/configs/realview-simple-atomic-dual.py
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing-dual.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-atomic-mp-ruby.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/configs/simple-timing.py
/gem5/tests/configs/t1000-simple-atomic.py
/gem5/tests/configs/tsunami-inorder.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/configs/twosys-tsunami-simple-atomic.py
8732:fd510b6e124d 30-Jan-2012 Andreas Hansson <andreas.hansson@arm.com>

Ruby: Connect system port in Ruby network test

This patch moves the connection of the system port to create_system in
Ruby.py. Thereby it allows the failing Ruby test (and other Ruby
systems) to run again.

8729:9d7c1dc54954 28-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Enable O3 CPU and Ruby in FS mode

8723:bbcc7afd82cb 25-Jan-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Fix fs.py by specifying the range size rather than end

This patch fixes the currently broken fs.py by specifying the size of
the bridge range rather than the end address. This effectively
subtracts one when determining the address range for the IO bridge
(from IO bus to membus), and thus avoids the overlapping ranges.

8718:062bf3879857 23-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Enable using O3 CPU and Ruby in SE mode

8713:2f1a3e335255 17-Jan-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Make the bus bridge unidirectional and fixed address range

This patch makes the bus bridge uni-directional and specialises the
bus ports to be a master port and a slave port. This greatly
simplifies the assumptions on both sides as either port only has to
deal with requests or responses. The following patches introduce the
notion of master and slave ports, and would not be possible without
this split of responsibilities.

In making the bridge unidirectional, the address range mechanism of
the bridge is also changed. For the cases where communication is
taking place both ways, an additional bridge is needed. This causes
issues with the existing mechanism, as the busses cannot determine
when to stop iterating the address updates from the two bridges. To
avoid this issue, and also greatly simplify the specification, the
bridge now has a fixed set of address ranges, specified at creation
time.

8706:b1838faf3bcc 17-Jan-2012 Andreas Hansson <andreas.hansson@arm.com>

MEM: Add port proxies instead of non-structural ports

Port proxies are used to replace non-structural ports, and thus enable
all ports in the system to correspond to a structural entity. This has
the advantage of accessing memory through the normal memory subsystem
and thus allowing any constellation of distributed memories, address
maps, etc. Most accesses are done through the "system port" that is
used for loading binaries, debugging etc. For the entities that belong
to the CPU, e.g. threads and thread contexts, they wrap the CPU data
port in a port proxy.

The following replacements are made:
FunctionalPort > PortProxy
TranslatingPort > SETranslatingPortProxy
VirtualPort > FSTranslatingPortProxy


/gem5/configs/common/FSConfig.py
se.py
/gem5/configs/ruby/Ruby.py
/gem5/src/arch/alpha/freebsd/system.cc
/gem5/src/arch/alpha/linux/process.cc
/gem5/src/arch/alpha/linux/system.cc
/gem5/src/arch/alpha/linux/system.hh
/gem5/src/arch/alpha/linux/threadinfo.hh
/gem5/src/arch/alpha/remote_gdb.cc
/gem5/src/arch/alpha/stacktrace.cc
/gem5/src/arch/alpha/system.cc
/gem5/src/arch/alpha/system.hh
/gem5/src/arch/alpha/tru64/process.cc
/gem5/src/arch/alpha/tru64/system.cc
/gem5/src/arch/alpha/utility.cc
/gem5/src/arch/alpha/vtophys.cc
/gem5/src/arch/alpha/vtophys.hh
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/stacktrace.cc
/gem5/src/arch/arm/system.cc
/gem5/src/arch/arm/system.hh
/gem5/src/arch/arm/utility.cc
/gem5/src/arch/arm/vtophys.cc
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/linux/system.cc
/gem5/src/arch/mips/linux/threadinfo.hh
/gem5/src/arch/mips/stacktrace.cc
/gem5/src/arch/mips/utility.cc
/gem5/src/arch/power/linux/process.cc
/gem5/src/arch/power/process.cc
/gem5/src/arch/sparc/linux/syscalls.cc
/gem5/src/arch/sparc/process.cc
/gem5/src/arch/sparc/solaris/process.cc
/gem5/src/arch/sparc/system.cc
/gem5/src/arch/sparc/system.hh
/gem5/src/arch/sparc/utility.cc
/gem5/src/arch/sparc/vtophys.cc
/gem5/src/arch/x86/bios/intelmp.cc
/gem5/src/arch/x86/bios/intelmp.hh
/gem5/src/arch/x86/bios/smbios.cc
/gem5/src/arch/x86/bios/smbios.hh
/gem5/src/arch/x86/linux/syscalls.cc
/gem5/src/arch/x86/linux/system.cc
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/stacktrace.cc
/gem5/src/arch/x86/system.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/elf_object.hh
/gem5/src/base/loader/hex_file.cc
/gem5/src/base/loader/hex_file.hh
/gem5/src/base/loader/object_file.cc
/gem5/src/base/loader/object_file.hh
/gem5/src/base/remote_gdb.cc
/gem5/src/cpu/checker/thread_context.hh
/gem5/src/cpu/inorder/cpu.cc
/gem5/src/cpu/inorder/cpu.hh
/gem5/src/cpu/inorder/resources/cache_unit.cc
/gem5/src/cpu/inorder/resources/cache_unit.hh
/gem5/src/cpu/inorder/thread_context.cc
/gem5/src/cpu/inorder/thread_context.hh
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/cpu.hh
/gem5/src/cpu/o3/lsq.hh
/gem5/src/cpu/o3/lsq_impl.hh
/gem5/src/cpu/o3/thread_context.hh
/gem5/src/cpu/o3/thread_context_impl.hh
/gem5/src/cpu/ozone/cpu.hh
/gem5/src/cpu/ozone/cpu_impl.hh
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/atomic.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/simple/timing.hh
/gem5/src/cpu/simple_thread.cc
/gem5/src/cpu/simple_thread.hh
/gem5/src/cpu/thread_context.hh
/gem5/src/cpu/thread_state.cc
/gem5/src/cpu/thread_state.hh
/gem5/src/dev/simple_disk.cc
/gem5/src/kern/tru64/tru64.hh
/gem5/src/kern/tru64/tru64_events.cc
/gem5/src/mem/SConscript
/gem5/src/mem/fs_translating_port_proxy.cc
/gem5/src/mem/fs_translating_port_proxy.hh
/gem5/src/mem/port.hh
/gem5/src/mem/port_impl.hh
/gem5/src/mem/port_proxy.hh
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPortProxy.cc
/gem5/src/mem/ruby/system/RubyPortProxy.hh
/gem5/src/mem/ruby/system/SConscript
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/se_translating_port_proxy.cc
/gem5/src/mem/se_translating_port_proxy.hh
/gem5/src/mem/translating_port.cc
/gem5/src/mem/translating_port.hh
/gem5/src/mem/vport.cc
/gem5/src/mem/vport.hh
/gem5/src/sim/arguments.hh
/gem5/src/sim/process.cc
/gem5/src/sim/process.hh
/gem5/src/sim/process_impl.hh
/gem5/src/sim/syscall_emul.cc
/gem5/src/sim/syscall_emul.hh
/gem5/src/sim/system.cc
/gem5/src/sim/system.hh
/gem5/src/sim/vptr.hh
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/memtest.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-atomic-mp.py
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-mp.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/configs/simple-timing.py
8661:2d791d07c59b 09-Jan-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for running multiple systems

8659:78f27ef5e919 09-Jan-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for initparam m5 op

8649:c3e7a961c727 05-Jan-2012 Nilay Vaish <nilay@cs.wisc.edu>

Config: Add an option of type 'choice' for cpu type
This patch adds a new option for cpu type. This option is of type 'choice'
which is similar to a C++ enum, except that it takes string values as
possible choices. Following options are being removed -- detailed, timing,
inorder.

8635:23ba076b2cca 01-Dec-2011 Chris Emmons <chris.emmons@arm.com>

VNC: Add support for capturing frame buffer to file each time it is changed.

When a change in the frame buffer from the VNC server is detected, the new
frame is stored out to the m5out/frames_*/ directory. Specifiy the flag
"--frame-capture" when running configs/example/fs.py to enable this behavior.

8604:ccf744c70583 29-Oct-2011 Nilay Vaish<nilay@cs.wisc.edu>

Ruby FS: Add the options for kernel and simulation script
These options were missing from the script ruby_fs.py. This patch adds these
options to the script.

8482:353abb676fa2 02-Aug-2011 Nilay Vaish<nilay@cs.wisc.edu>

Scons: Drop RUBY as compile time option.
This patch drops RUBY as a compile time option. Instead the PROTOCOL option
is used to figure out whether or not to build Ruby. If the specified protocol
is 'None', then Ruby is not compiled.

8467:82ff928182c5 11-Jul-2011 Nilay Vaish<nilay@cs.wisc.edu>

se.py: Fixes the way ruby's options are added

8437:94c7423ecd87 30-Jun-2011 Brad Beckmann <Brad.Beckmann@amd.com>

config: removed unnecessary slashes
This patch removes unnecessary slashes from a couple of python scripts.

8436:5648986156db 30-Jun-2011 Brad Beckmann <Brad.Beckmann@amd.com>, Nilay Vaish <nilay@cs.wisc.edu>

Ruby: Add support for functional accesses
This patch rpovides functional access support in Ruby. Currently only
the M5Port of RubyPort supports functional accesses. The support for
functional through the PioPort will be added as a separate patch.


ruby_direct_test.py
ruby_fs.py
ruby_mem_test.py
ruby_network_test.py
ruby_random_test.py
se.py
/gem5/configs/ruby/MESI_CMP_directory.py
/gem5/configs/ruby/MI_example.py
/gem5/configs/ruby/MOESI_CMP_directory.py
/gem5/configs/ruby/MOESI_CMP_token.py
/gem5/configs/ruby/MOESI_hammer.py
/gem5/configs/ruby/Ruby.py
/gem5/src/cpu/testers/memtest/MemTest.py
/gem5/src/cpu/testers/memtest/memtest.cc
/gem5/src/cpu/testers/memtest/memtest.hh
/gem5/src/mem/packet.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/protocol/MESI_CMP_directory-L1cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-L2cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MESI_CMP_directory-dma.sm
/gem5/src/mem/protocol/MI_example-cache.sm
/gem5/src/mem/protocol/MI_example-dir.sm
/gem5/src/mem/protocol/MI_example-dma.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-L1cache.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-L2cache.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_directory-dma.sm
/gem5/src/mem/protocol/MOESI_CMP_token-L1cache.sm
/gem5/src/mem/protocol/MOESI_CMP_token-L2cache.sm
/gem5/src/mem/protocol/MOESI_CMP_token-dir.sm
/gem5/src/mem/protocol/MOESI_CMP_token-dma.sm
/gem5/src/mem/protocol/MOESI_hammer-cache.sm
/gem5/src/mem/protocol/MOESI_hammer-dir.sm
/gem5/src/mem/protocol/MOESI_hammer-dma.sm
/gem5/src/mem/protocol/RubySlicc_Exports.sm
/gem5/src/mem/ruby/network/Network.cc
/gem5/src/mem/ruby/network/Network.py
/gem5/src/mem/ruby/profiler/Profiler.cc
/gem5/src/mem/ruby/profiler/Profiler.py
/gem5/src/mem/ruby/recorder/Tracer.cc
/gem5/src/mem/ruby/recorder/Tracer.py
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/Controller.py
/gem5/src/mem/ruby/slicc_interface/SConscript
/gem5/src/mem/ruby/system/Cache.py
/gem5/src/mem/ruby/system/DirectoryMemory.cc
/gem5/src/mem/ruby/system/DirectoryMemory.py
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPort.hh
/gem5/src/mem/ruby/system/RubySystem.py
/gem5/src/mem/ruby/system/SConscript
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/ruby/system/System.cc
/gem5/src/mem/ruby/system/System.hh
/gem5/src/mem/slicc/ast/MemberExprAST.py
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-ruby.py
8354:26be660e365a 17-Jun-2011 Gedare Bloom <gedare@gwmail.gwu.edu>

ARM: Add m5ops and related support for workbegin() and workend() to ARM ISA.

8322:19949c6de823 23-May-2011 Steve Reinhardt <steve.reinhardt@amd.com>

config: tweak ruby configs to clean up hierarchy

Re-enabling implicit parenting (see previous patch) causes current
Ruby config scripts to create some strange hierarchies and generate
several warnings. This patch makes three general changes to address
these issues.

1. The order of object creation in the ruby config files makes the L1
caches children of the sequencer rather than the controller; these
config ciles are rewritten to assign the L1 caches to the
controller first.

2. The assignment of the sequencer list to system.ruby.cpu_ruby_ports
causes the sequencers to be children of system.ruby, generating
warnings because they are already parented to their respective
controllers. Changing this attribute to _cpu_ruby_ports fixes this
because the leading underscore means this is now treated as a plain
Python attribute rather than a child assignment. As a result, the
configuration hierarchy changes such that, e.g.,
system.ruby.cpu_ruby_ports0 becomes system.l1_cntrl0.sequencer.

3. In the topology classes, the routers become children of some random
internal link node rather than direct children of the topology.
The topology classes are rewritten to assign the routers to the
topology object first.

8312:de2451e66935 21-May-2011 Tushar Krishna <tushar@csail.mit.edu>

configs: remove -p from ruby_network_test.py

A recent patch broke the ruby network tester by adding -p inside Options.py
which conflicts with the -p inside ruby_network_test.py.
Have removed -p from ruby_network_test.py

8293:db269e704d07 07-May-2011 Tushar Krishna <tushar@csail.mit.edu>

NetworkTest: added sim_cycles parameter to the network tester.

The network tester terminates after injecting for sim_cycles
(default=1000), instead of having to explicitly pass --maxticks from the
command line as before. If fixed_pkts is enabled, the tester only
injects maxpackets number of packets, else it keeps injecting till sim_cycles.
The tester also works with zero command line arguments now.

8184:a8d64545cda6 28-Mar-2011 Somayeh Sardashti <somayeh@cs.wisc.edu>

This patch supports cache flushing in MOESI_hammer

8171:19444b1f092c 21-Mar-2011 Tushar Krishna <tushar@csail.mit.edu>

This patch adds the network tester for simple and garnet networks.
The tester code is in testers/networktest.
The tester can be invoked by configs/example/ruby_network_test.py.
A dummy coherence protocol called Network_test is also addded for network-only simulations and testing. The protocol takes in messages from the tester and just pushes them into the network in the appropriate vnet, without storing any state.

8169:89cd8302abd3 20-Mar-2011 Lisa Hsu <Lisa.Hsu@amd.com>

configs: combine ruby_se.py and se.py to avoid all that code duplication

8168:5cbb0a68dce1 20-Mar-2011 Lisa Hsu <Lisa.Hsu@amd.com>

enable x86 workloads on se.py

8167:f596091c854d 20-Mar-2011 Lisa Hsu <Lisa.Hsu@amd.com>

se.py: Modify script to make multiprogramming much easier.
Now, instead of --bench benchname, you can do --bench bench1-bench2-bench3 and it will
set up a simulation that instantiates those three workloads. Only caveat is that now,
for sanity checking, your -n X must match the number of benches in the list.

8061:08e91664adac 23-Feb-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Clarifies creation of Linux and baremetal ARM systems.

makeArmSystem creates both bare-metal and Linux systems more cleanly.
machine_type was never optional though listed as an optional argument; a system
such as "RealView_PBX" must now be explicitly specified. Now that it is a
required argument, the placement of the arguments has changed slightly
requiring some changes to calls that create ARM systems.

7938:685719afafe6 08-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

memtest: due to contention increase, increased deadlock threshold

7937:bb6411d45356 08-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

config: fixed minor bug connecting dma devices to ruby

7925:6823ef6d7a9f 07-Feb-2011 Gabe Black <gblack@eecs.umich.edu>

X86, Config: Move the setting of work count options to a separate function.

This way things that don't care about work count options and/or aren't called
by something that has those command line options set up doesn't have to build
a fake object to carry in inert values.

7914:eee5bb0fb8ea 07-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

m5: added work completed monitoring support

7905:00ad807ed2ca 07-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: x86 fs config support

7877:19beb0676222 03-Feb-2011 Gabe Black <gblack@eecs.umich.edu>

Mem,X86: Make the IO bridge pass APIC messages back towards the CPU.

7876:189b9b258779 03-Feb-2011 Gabe Black <gblack@eecs.umich.edu>

Config: Keep track of uncached and cached ports separately.

This makes sure that the address ranges requested for caches and uncached ports
don't conflict with each other, and that accesses which are always uncached
(message signaled interrupts for instance) don't waste time passing through
caches.

7861:4ebff121cc0e 19-Jan-2011 Gabe Black <gblack@eecs.umich.edu>

Time: Add a mechanism to prevent M5 from running faster than real time.

M5 skips over any simulated time where it doesn't have any work to do. When
the simulation is active, the time skipped is short and the work done at any
point in time is relatively substantial. If the time between events is long
and/or the work to do at each event is small, it's possible for simulated time
to pass faster than real time. When running a benchmark that can be good
because it means the simulation will finish sooner in real time. When
interacting with the real world through, for instance, a serial terminal or
bridge to a real network, this can be a problem. Human or network response time
could be greatly exagerated from the perspective of the simulation and make
simulated events happen "too soon" from an external perspective.

This change adds the capability to force the simulation to run no faster than
real time. It does so by scheduling a periodic event that checks to see if
its simulated period is shorter than its real period. If it is, it stalls the
simulation until they're equal. This is called time syncing.

A future change could add pseudo instructions which turn time syncing on and
off from within the simulation. That would allow time syncing to be used for
the interactive parts of a session but then turned off when running a
benchmark using the m5 utility program inside a script. Time syncing would
probably not happen anyway while running a benchmark because there would be
plenty of work for M5 to do, but the event overhead could be avoided.

7787:af976dd0c6e7 07-Dec-2010 Ali Saidi <Ali.Saidi@ARM.com>

Configs: Automatically choose the correct hello world binary.

7656:dd4d229b716d 26-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

memtest: scale associativity and mshrs according to config
Use the actual fanouts in the tree specification to scale
cache associativity and mshrs instead of dumb constants.

7635:a322932de08f 24-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

config: changed ruby config file names to be consistent

7634:9a469388e8b3 24-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

config: remove ruby's requirement on the timing cmd line param

Since ruby only works in timing mode, explicitly requiring the timing cmd line
param to be specified is not necessary.

7633:d8112aa18a1b 24-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

config: fixed ruby dma device connections

7632:acf43d6bbc18 24-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

testers: move testers to a new directory

This patch moves the testers to a new subdirectory under src/cpu and includes
the necessary fixes to work with latest m5 initialization patches.


determ_test.py
memtest-ruby.py
ruby_direct_test.py
rubytest.py
/gem5/configs/ruby/MOESI_hammer.py
/gem5/src/cpu/directedtest/DirectedGenerator.cc
/gem5/src/cpu/directedtest/DirectedGenerator.hh
/gem5/src/cpu/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/directedtest/InvalidateGenerator.hh
/gem5/src/cpu/directedtest/RubyDirectedTester.cc
/gem5/src/cpu/directedtest/RubyDirectedTester.hh
/gem5/src/cpu/directedtest/RubyDirectedTester.py
/gem5/src/cpu/directedtest/SConscript
/gem5/src/cpu/directedtest/SeriesRequestGenerator.cc
/gem5/src/cpu/directedtest/SeriesRequestGenerator.hh
/gem5/src/cpu/memtest/MemTest.py
/gem5/src/cpu/memtest/SConscript
/gem5/src/cpu/memtest/memtest.cc
/gem5/src/cpu/memtest/memtest.hh
/gem5/src/cpu/rubytest/Check.cc
/gem5/src/cpu/rubytest/Check.hh
/gem5/src/cpu/rubytest/CheckTable.cc
/gem5/src/cpu/rubytest/CheckTable.hh
/gem5/src/cpu/rubytest/RubyTester.cc
/gem5/src/cpu/rubytest/RubyTester.hh
/gem5/src/cpu/rubytest/RubyTester.py
/gem5/src/cpu/rubytest/SConscript
/gem5/src/cpu/testers/directedtest/DirectedGenerator.cc
/gem5/src/cpu/testers/directedtest/DirectedGenerator.hh
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.hh
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.cc
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.hh
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.py
/gem5/src/cpu/testers/directedtest/SConscript
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.hh
/gem5/src/cpu/testers/memtest/MemTest.py
/gem5/src/cpu/testers/memtest/SConscript
/gem5/src/cpu/testers/memtest/memtest.cc
/gem5/src/cpu/testers/memtest/memtest.hh
/gem5/src/cpu/testers/rubytest/Check.cc
/gem5/src/cpu/testers/rubytest/Check.hh
/gem5/src/cpu/testers/rubytest/CheckTable.cc
/gem5/src/cpu/testers/rubytest/CheckTable.hh
/gem5/src/cpu/testers/rubytest/RubyTester.cc
/gem5/src/cpu/testers/rubytest/RubyTester.hh
/gem5/src/cpu/testers/rubytest/RubyTester.py
/gem5/src/cpu/testers/rubytest/SConscript
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/Sequencer.cc
7586:da93206873dc 23-Aug-2010 Ali Saidi <Ali.Saidi@arm.com>

ARM: Add configuration for Linux/Full System

7553:fcdd99057b8a 20-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Resurrected Ruby's deterministic tests

Added the request series and invalidate deterministic tests as new cpu models
and removed the no longer needed ruby tests

7551:b10ee98aea91 20-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Reduced ruby latencies

The previous slower ruby latencies created a mismatch between the faster M5
cpu models and the much slower ruby memory system. Specifically smp
interrupts were much slower and infrequent, as well as cpus moving in and out
of spin locks. The result was many cpus were idle for large periods of time.

These changes fix the latency mismatch.

7544:90c5eb6a5e66 20-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

memtest: Memtester support for DMA

This patch adds DMA testing to the Memtester and is inherits many changes from
Polina's old tester_dma_extension patch. Since Ruby does not work in atomic
mode, the atomic mode options are removed.

7541:1e1f63dfd130 20-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

config: Improve ruby simobject names

This patch attaches ruby objects to the system before the topology is
created so that their simobject names read their meaningful variable
names instead of their topology name.

7538:5691b9dd51f4 20-Aug-2010 Brad Beckmann <Brad.Beckmann@amd.com>

config: reorganized how ruby specifies command-line options

7525:722f2ad014a7 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

sim: make Python Root object a singleton
Enforce that the Python Root SimObject is instantiated only
once. The C++ Root object already panics if more than one is
created. This change avoids the need to track what the root
object is, since it's available from Root.getInstance() (if it
exists). It's now redundant to have the user pass the root
object to functions like instantiate(), checkpoint(), and
restoreCheckpoint(), so that arg is gone. Users who use
configs/common/Simulate.py should not notice.

7018:1c6d209888d7 22-Mar-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: removed ruby.config from configs/example

7014:441317194b08 22-Mar-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: fixed how ruby_fs creates phsyical memory

Now ruby_fs creates physical memory of the right size.

6995:f2b4d8bea5d3 27-Feb-2010 Gabe Black <gblack@eecs.umich.edu>

Config: Fix fs.py's call to CacheConfig.config_cache.

6981:aba5f7216636 25-Feb-2010 Lisa Hsu <Lisa.Hsu@amd.com>

configs: pull out cache configuration code from se.py and fs.py.
Most of these frontend configurations share cache configuration code, pull it out so that
changes to caches don't have to require changing multiple config files.

6978:ab05e20dc4a7 23-Feb-2010 Lisa Hsu <Lisa.Hsu@amd.com>

cache: Make caches sharing aware and add occupancy stats.
On the config end, if a shared L2 is created for the system, it is
parameterized to have n sharers as defined by option.num_cpus. In addition to
making the cache sharing aware so that discriminating tag policies can make use
of context_ids to make decisions, I added an occupancy AverageStat and an occ %
stat to each cache so that you could know which contexts are occupying how much
cache on average, both in terms of blocks and percentage. Note that since
devices have context_id -1, having an array of occ stats that correspond to
each context_id will break here, so in FS mode I add an extra bucket for device
blocks. This bucket is explicitly not added in SE mode in order to not only
avoid ugliness in the stats.txt file, but to avoid broken stats (some formulas
break when a bucket is 0).

6924:bb6be90ec74b 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: ruby_se.py updated to new config system

6919:dd45a54732aa 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: memtest-ruby updated to the new config system

6903:27f47cf65ab7 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: convert to M5 MemorySize
Converted both ruby caches and directory memory to use the M5 MemorySize python
type.

6899:f8057af86bf7 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: added the GEMS ruby tester

6893:9cdf9b65d946 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: FS support using the new configuration system

6892:6a2db6c8a9b1 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: reorganized ruby python configuration
Reorganized ruby python configuration so that protocol and ruby memory system
configuration code can be shared by multiple front-end configuration files
(i.e. memory tester, full system, and hopefully the regression tester). This
code works for memory tester, but have not tested fs mode.

6889:323cd43a3c46 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Memory Controller Profiler with new config system
This patch includes a rather substantial change to the memory controller
profiler in order to work with the new configuration system. Most
noteably, the mem_cntrl_profiler no longer uses a string map, but instead
a vector. Eventually this support should be removed from the main
profiler and go into a separate object. Each memory controller should have
a pointer to that new mem_cntrl profile object.

6888:de8e755aca4f 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Converted MOESI_hammer dma cntrl to new config system

6887:b10cae7bacf4 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Added the cache profiler to the new config system

6883:f57e272cf8a1 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Added clock to ruby system
As a first step to migrate ruby to the M5 eventqueue, added a clock
variable to the ruby system.

6882:898047a3672c 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Ruby changes required to use the python config system
This patch includes the necessary changes to connect ruby objects using
the python configuration system. Mainly it consists of removing
unnecessary ruby object pointers and connecting the necessary object
pointers using the generated param objects. This patch includes the
slicc changes necessary to connect generated ruby objects together using
the python configuraiton system.

6881:5a61a8a9009a 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: connects sm queues to the network

6880:a9e3c07205a8 29-Jan-2010 Steve Reinhardt <steve.reinhardt@amd.com>

ruby: Calculate system total memory capacity in Python
rather than in RubySystem object.

6879:c07cf29b5a33 29-Jan-2010 Steve Reinhardt <steve.reinhardt@amd.com>

ruby: Add support for generating topologies in Python.

6876:a658c315512c 29-Jan-2010 Steve Reinhardt <steve.reinhardt@amd.com>

ruby: Convert most Ruby objects to M5 SimObjects.
The necessary companion conversion of Ruby objects generated by SLICC
are converted to M5 SimObjects in the following patch, so this patch
alone does not compile.
Conversion of Garnet network models is also handled in a separate
patch; that code is temporarily disabled from compiling to allow
testing of interim code.


memtest-ruby.py
/gem5/src/mem/SConscript
/gem5/src/mem/ruby/SConscript
/gem5/src/mem/ruby/common/Debug.cc
/gem5/src/mem/ruby/common/Debug.hh
/gem5/src/mem/ruby/common/Debug.py
/gem5/src/mem/ruby/common/SConscript
/gem5/src/mem/ruby/config/MESI_CMP_directory.rb
/gem5/src/mem/ruby/config/MI_example-homogeneous.rb
/gem5/src/mem/ruby/config/MI_example.rb
/gem5/src/mem/ruby/config/MOESI_CMP_directory.rb
/gem5/src/mem/ruby/config/MOESI_CMP_token.rb
/gem5/src/mem/ruby/config/MOESI_hammer-homogeneous.rb
/gem5/src/mem/ruby/config/MOESI_hammer.rb
/gem5/src/mem/ruby/config/SConscript
/gem5/src/mem/ruby/config/TwoLevel_SplitL1UnifiedL2.rb
/gem5/src/mem/ruby/config/assert.rb
/gem5/src/mem/ruby/config/cfg.rb
/gem5/src/mem/ruby/config/defaults.rb
/gem5/src/mem/ruby/config/libruby_cfg_test.cc
/gem5/src/mem/ruby/config/print_cfg.rb
/gem5/src/mem/ruby/config/util.rb
/gem5/src/mem/ruby/eventqueue/RubyEventQueue.cc
/gem5/src/mem/ruby/libruby.cc
/gem5/src/mem/ruby/network/Network.cc
/gem5/src/mem/ruby/network/Network.hh
/gem5/src/mem/ruby/network/Network.py
/gem5/src/mem/ruby/network/SConscript
/gem5/src/mem/ruby/network/garnet-fixed-pipeline/GarnetNetwork_d.cc
/gem5/src/mem/ruby/network/garnet-fixed-pipeline/GarnetNetwork_d.hh
/gem5/src/mem/ruby/network/garnet-fixed-pipeline/SConscript
/gem5/src/mem/ruby/network/garnet-flexible-pipeline/GarnetNetwork.cc
/gem5/src/mem/ruby/network/garnet-flexible-pipeline/GarnetNetwork.hh
/gem5/src/mem/ruby/network/garnet-flexible-pipeline/NetworkConfig.hh
/gem5/src/mem/ruby/network/garnet-flexible-pipeline/SConscript
/gem5/src/mem/ruby/network/orion/SConscript
/gem5/src/mem/ruby/network/simple/HierarchicalSwitchTopology.hh
/gem5/src/mem/ruby/network/simple/PtToPtTopology.hh
/gem5/src/mem/ruby/network/simple/SConscript
/gem5/src/mem/ruby/network/simple/SimpleNetwork.cc
/gem5/src/mem/ruby/network/simple/SimpleNetwork.hh
/gem5/src/mem/ruby/network/simple/SimpleNetwork.py
/gem5/src/mem/ruby/network/simple/Topology.cc
/gem5/src/mem/ruby/network/simple/Topology.hh
/gem5/src/mem/ruby/network/simple/Torus2DTopology.hh
/gem5/src/mem/ruby/profiler/Profiler.cc
/gem5/src/mem/ruby/profiler/Profiler.hh
/gem5/src/mem/ruby/profiler/Profiler.py
/gem5/src/mem/ruby/profiler/SConscript
/gem5/src/mem/ruby/recorder/SConscript
/gem5/src/mem/ruby/recorder/Tracer.cc
/gem5/src/mem/ruby/recorder/Tracer.hh
/gem5/src/mem/ruby/recorder/Tracer.py
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/Controller.py
/gem5/src/mem/ruby/slicc_interface/SConscript
/gem5/src/mem/ruby/system/Cache.py
/gem5/src/mem/ruby/system/CacheMemory.cc
/gem5/src/mem/ruby/system/CacheMemory.hh
/gem5/src/mem/ruby/system/DMASequencer.cc
/gem5/src/mem/ruby/system/DMASequencer.hh
/gem5/src/mem/ruby/system/DirectoryMemory.cc
/gem5/src/mem/ruby/system/DirectoryMemory.hh
/gem5/src/mem/ruby/system/DirectoryMemory.py
/gem5/src/mem/ruby/system/MemoryControl.cc
/gem5/src/mem/ruby/system/MemoryControl.hh
/gem5/src/mem/ruby/system/MemoryControl.py
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPort.hh
/gem5/src/mem/ruby/system/RubySystem.py
/gem5/src/mem/ruby/system/SConscript
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/Sequencer.hh
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/ruby/system/System.cc
/gem5/src/mem/ruby/system/System.hh
6796:daf49a57df75 18-Nov-2009 Brad Beckmann <Brad.Beckmann@amd.com>

m5: improvements to the ruby_fs.py file

6767:71b272bd988e 18-Nov-2009 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: included ruby config parameter ports per core
Slightly improved the major hack need to correctly assign the number of ports
per core. CPUs have two ports: icache + dcache. MemTester has one port.

6765:b5101309174d 18-Nov-2009 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Support for merging ALPHA_FS and ruby
Connects M5 cpu and dma ports directly to ruby sequencers and dma
sequencers. Rubymem also includes a pio port so that pio requests
and be forwarded to a special pio bus connecting to device pio
ports.

6760:12da457d6e5c 18-Nov-2009 Brad Beckmann <Brad.Beckmann@amd.com>

ruby: Ruby memtest python script.

6679:a1d8c53d92b8 16-Oct-2009 Brad Beckmann <Brad.Beckmann@amd.com>

removed libruby file reference from ruby_se.py

6654:4c84e771cca7 22-Sep-2009 Nathan Binkert <nate@binkert.org>

python: Move more code into m5.util allow SCons to use that code.
Get rid of misc.py and just stick misc things in __init__.py
Move utility functions out of SCons files and into m5.util
Move utility type stuff from m5/__init__.py to m5/util/__init__.py
Remove buildEnv from m5 and allow access only from m5.defines
Rename AddToPath to addToPath while we're moving it to m5.util
Rename read_command to readCommand while we're moving it
Rename compare_versions to compareVersions while we're moving it.


/gem5/SConstruct
/gem5/configs/common/Caches.py
/gem5/configs/common/FSConfig.py
/gem5/configs/common/Simulation.py
fs.py
memtest.py
ruby_se.py
se.py
/gem5/configs/splash2/cluster.py
/gem5/configs/splash2/run.py
/gem5/src/SConscript
/gem5/src/arch/mips/BISystem.py
/gem5/src/arch/mips/MipsCPU.py
/gem5/src/arch/mips/MipsSystem.py
/gem5/src/arch/x86/X86TLB.py
/gem5/src/cpu/BaseCPU.py
/gem5/src/cpu/CheckerCPU.py
/gem5/src/cpu/inorder/InOrderCPU.py
/gem5/src/cpu/memtest/MemTest.py
/gem5/src/cpu/o3/O3CPU.py
/gem5/src/cpu/o3/O3Checker.py
/gem5/src/cpu/ozone/OzoneCPU.py
/gem5/src/cpu/ozone/OzoneChecker.py
/gem5/src/cpu/ozone/SimpleOzoneCPU.py
/gem5/src/cpu/simple/AtomicSimpleCPU.py
/gem5/src/cpu/simple/TimingSimpleCPU.py
/gem5/src/dev/Uart.py
/gem5/src/mem/Bus.py
/gem5/src/python/SConscript
/gem5/src/python/m5/SimObject.py
/gem5/src/python/m5/__init__.py
/gem5/src/python/m5/convert.py
/gem5/src/python/m5/environment.py
/gem5/src/python/m5/main.py
/gem5/src/python/m5/params.py
/gem5/src/python/m5/simulate.py
/gem5/src/python/m5/smartdict.py
/gem5/src/python/m5/ticks.py
/gem5/src/python/m5/trace.py
/gem5/src/python/m5/util/__init__.py
/gem5/src/python/m5/util/convert.py
/gem5/src/python/m5/util/jobfile.py
/gem5/src/python/m5/util/misc.py
/gem5/src/python/m5/util/smartdict.py
/gem5/src/sim/System.py
/gem5/tests/configs/inorder-timing.py
/gem5/tests/configs/o3-timing-mp-ruby.py
/gem5/tests/configs/o3-timing-mp.py
/gem5/tests/configs/o3-timing-ruby.py
/gem5/tests/configs/o3-timing.py
/gem5/tests/configs/t1000-simple-atomic.py
/gem5/tests/configs/tsunami-o3-dual.py
/gem5/tests/configs/tsunami-o3.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/configs/twosys-tsunami-simple-atomic.py
/gem5/tests/long/00.gzip/test.py
/gem5/tests/long/10.mcf/test.py
/gem5/tests/long/20.parser/test.py
/gem5/tests/long/30.eon/test.py
/gem5/tests/long/40.perlbmk/test.py
/gem5/tests/long/50.vortex/test.py
/gem5/tests/long/60.bzip2/test.py
/gem5/tests/long/70.twolf/test.py
6642:0b72f4f7c814 16-Sep-2009 Korey Sewell <ksewell@umich.edu>

inorder-configs: update se.py
fix bug with 'numThreads=len(workloads)' which was counting characters of command-line not counting threads as intended.
Update numThreads for inorder/o3 cases and default to 1 for all other cases.

6636:8c68656b8564 15-Sep-2009 Steve Reinhardt <steve.reinhardt@amd.com>

Add an I/O cache to FS config even if there's just an "L2" cache.

6391:af82c0870667 26-Jul-2009 Korey Sewell <ksewell@umich.edu>

se-configs: edit se.py to account for non-O3CPU workloads

6387:70172be3f986 25-Jul-2009 Korey Sewell <ksewell@umich.edu>

o3-smt: enforce numThreads parameter for SMT SE mode

6165:2d26c346f1be 11-May-2009 Daniel Sanchez <sanchezd@stanford.edu>

ruby: Working M5 interface and updated Ruby interface.
This changeset also includes a lot of work from Derek Hower <drh5@cs.wisc.edu>

RubyMemory is now both a driver for Ruby and a port for M5. Changed
makeRequest/hitCallback interface. Brought packets (superficially)
into the sequencer. Modified tester infrastructure to be packet based.
and Ruby can be used together through the example ruby_se.py
script. SPARC parallel applications work, and the timing *seems* right
from combined M5/Ruby debug traces. To run,
% build/ALPHA_SE/m5.debug configs/example/ruby_se.py -c
tests/test-progs/hello/bin/alpha/linux/hello -n 4 -t

6135:9327451a8e7a 26-Apr-2009 Gabe Black <gblack@eecs.umich.edu>

X86, Config: Make makeX86System consider the number of CPUs, and clean up interrupt assignment.

6122:9af6fb59752f 16-Jul-2008 Steve Reinhardt <Steve.Reinhardt@amd.com>

mem: use single BadAddr responder per system.
Previously there was one per bus, which caused some coherence problems
when more than one decided to respond. Now there is just one on
the main memory bus. The default bus responder on all other buses
is now the downstream cache's cpu_side port. Caches no longer need
to do address range filtering; instead, we just have a simple flag
to prevent snoops from propagating to the I/O bus.

5822:05ffa2c3c800 30-Jan-2009 Ali Saidi <saidi@eecs.umich.edu>

Errors: Print a URL with a hash of the format string to find more information about an error.

5514:9a903bf83a33 23-Jul-2008 Michael Adler <Michael.Adler@intel.com>

process: separate stderr from stdout
- Add the option of redirecting stderr to a file. With the old
behaviour, stderr would follow stdout if stdout was to a file, but
stderr went to the host stderr if stdout went to the host stdout. The
new default maintains stdout and stderr going to the host. Now the
two can specify different files, but they will share a file descriptor
if the name of the files is the same.
- Add --output and --errout options to se.py to go with --input.

5457:08bd3709d482 13-Jun-2008 Ali Saidi <saidi@eecs.umich.edu>

Scripts: Check for the appropriate build type as soon as possible.

5369:9358355117b0 28-Feb-2008 Ali Saidi <saidi@eecs.umich.edu>

Configs: Fix some bugs we introduced in the simpoints code

5299:e61b9f2a9732 02-Dec-2007 Gabe Black <gblack@eecs.umich.edu>

X86: Move startup code to the system object to initialize a Linux system.

5254:c555f8b07345 15-Nov-2007 Korey Sewell <ksewell@umich.edu>

fix MIPS headers

5222:bb733a878f85 13-Nov-2007 Korey Sewell <ksewell@umich.edu>

Add in files from merge-bare-iron, get them compiling in FS and SE mode


/gem5/build_opts/MIPS_FS
/gem5/configs/common/FSConfig.py
fs.py
/gem5/src/arch/alpha/regfile.hh
/gem5/src/arch/isa_parser.py
/gem5/src/arch/mips/BISystem.py
/gem5/src/arch/mips/MipsCPU.py
/gem5/src/arch/mips/MipsSystem.py
/gem5/src/arch/mips/MipsTLB.py
/gem5/src/arch/mips/SConscript
/gem5/src/arch/mips/SConsopts
/gem5/src/arch/mips/bare_iron/system.cc
/gem5/src/arch/mips/bare_iron/system.hh
/gem5/src/arch/mips/constants.hh
/gem5/src/arch/mips/dsp.cc
/gem5/src/arch/mips/dsp.hh
/gem5/src/arch/mips/dt_constants.hh
/gem5/src/arch/mips/faults.cc
/gem5/src/arch/mips/faults.hh
/gem5/src/arch/mips/idle_event.cc
/gem5/src/arch/mips/idle_event.hh
/gem5/src/arch/mips/interrupts.cc
/gem5/src/arch/mips/interrupts.hh
/gem5/src/arch/mips/isa/base.isa
/gem5/src/arch/mips/isa/bitfields.isa
/gem5/src/arch/mips/isa/decoder.isa
/gem5/src/arch/mips/isa/formats/basic.isa
/gem5/src/arch/mips/isa/formats/branch.isa
/gem5/src/arch/mips/isa/formats/control.isa
/gem5/src/arch/mips/isa/formats/dsp.isa
/gem5/src/arch/mips/isa/formats/formats.isa
/gem5/src/arch/mips/isa/formats/fp.isa
/gem5/src/arch/mips/isa/formats/int.isa
/gem5/src/arch/mips/isa/formats/mem.isa
/gem5/src/arch/mips/isa/formats/mt.isa
/gem5/src/arch/mips/isa/formats/noop.isa
/gem5/src/arch/mips/isa/formats/tlbop.isa
/gem5/src/arch/mips/isa/formats/trap.isa
/gem5/src/arch/mips/isa/formats/unimp.isa
/gem5/src/arch/mips/isa/formats/unknown.isa
/gem5/src/arch/mips/isa/formats/util.isa
/gem5/src/arch/mips/isa/includes.isa
/gem5/src/arch/mips/isa/main.isa
/gem5/src/arch/mips/isa/operands.isa
/gem5/src/arch/mips/isa_traits.hh
/gem5/src/arch/mips/kernel_stats.hh
/gem5/src/arch/mips/linux/aligned.hh
/gem5/src/arch/mips/linux/hwrpb.hh
/gem5/src/arch/mips/linux/linux.cc
/gem5/src/arch/mips/linux/linux.hh
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/linux/process.hh
/gem5/src/arch/mips/linux/system.cc
/gem5/src/arch/mips/linux/system.hh
/gem5/src/arch/mips/linux/thread_info.hh
/gem5/src/arch/mips/linux/threadinfo.hh
/gem5/src/arch/mips/locked_mem.hh
/gem5/src/arch/mips/mips_core_specific.cc
/gem5/src/arch/mips/mips_core_specific.hh
/gem5/src/arch/mips/mmaped_ipr.hh
/gem5/src/arch/mips/mt.hh
/gem5/src/arch/mips/mt_constants.hh
/gem5/src/arch/mips/pagetable.cc
/gem5/src/arch/mips/pagetable.hh
/gem5/src/arch/mips/pra_constants.hh
/gem5/src/arch/mips/predecoder.hh
/gem5/src/arch/mips/process.cc
/gem5/src/arch/mips/process.hh
/gem5/src/arch/mips/regfile.cc
/gem5/src/arch/mips/regfile.hh
/gem5/src/arch/mips/regfile/float_regfile.cc
/gem5/src/arch/mips/regfile/float_regfile.hh
/gem5/src/arch/mips/regfile/int_regfile.cc
/gem5/src/arch/mips/regfile/int_regfile.hh
/gem5/src/arch/mips/regfile/misc_regfile.cc
/gem5/src/arch/mips/regfile/misc_regfile.hh
/gem5/src/arch/mips/regfile/regfile.cc
/gem5/src/arch/mips/regfile/regfile.hh
/gem5/src/arch/mips/remote_gdb.hh
/gem5/src/arch/mips/stacktrace.cc
/gem5/src/arch/mips/stacktrace.hh
/gem5/src/arch/mips/syscallreturn.hh
/gem5/src/arch/mips/system.cc
/gem5/src/arch/mips/system.hh
/gem5/src/arch/mips/tlb.cc
/gem5/src/arch/mips/tlb.hh
/gem5/src/arch/mips/types.hh
/gem5/src/arch/mips/utility.cc
/gem5/src/arch/mips/utility.hh
/gem5/src/arch/mips/vtophys.cc
/gem5/src/arch/mips/vtophys.hh
/gem5/src/base/SConscript
/gem5/src/base/loader/hex_file.cc
/gem5/src/base/loader/hex_file.cc~
/gem5/src/base/loader/hex_file.hh
/gem5/src/base/loader/object_file.cc
/gem5/src/cpu/BaseCPU.py
/gem5/src/cpu/base.hh
/gem5/src/cpu/o3/thread_context.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/base.hh
/gem5/src/cpu/simple_thread.hh
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/thread_context.hh
/gem5/src/dev/mips/Malta.py
/gem5/src/dev/mips/MipsConsole.py
/gem5/src/dev/mips/SConscript
/gem5/src/dev/mips/access.h
/gem5/src/dev/mips/console
/gem5/src/dev/mips/console.cc
/gem5/src/dev/mips/console.hh
/gem5/src/dev/mips/malta.cc
/gem5/src/dev/mips/malta.hh
/gem5/src/dev/mips/malta_cchip.cc
/gem5/src/dev/mips/malta_cchip.hh
/gem5/src/dev/mips/malta_io.cc
/gem5/src/dev/mips/malta_io.hh
/gem5/src/dev/mips/malta_pchip.cc
/gem5/src/dev/mips/malta_pchip.hh
/gem5/src/dev/mips/maltareg.h
/gem5/src/mem/physical.cc
/gem5/src/mem/request.hh
/gem5/src/sim/system.cc
5142:73aa4932b65b 08-Oct-2007 Ali Saidi <saidi@eecs.umich.edu>

Configuration: Move iocache outside of processors loop so it works for MP systems

5133:a88763dd4a84 07-Oct-2007 Gabe Black <gblack@eecs.umich.edu>

X86: Adjust the config scripts for x86 fs.

5056:11789c986e14 05-Sep-2007 Ali Saidi <saidi@eecs.umich.edu>

Configuration: Fix example script to only create one L2 if --l2cache and -nX are given as parameters.

Patch submitted by: Jonas Diemer [diemer (a) ida.ing.tu-bs.de]

4968:f1c856d8c460 08-Aug-2007 Vincentius Robby <acolyte@umich.edu>

Added fastmem option.
Lets CPU accesses to physical memory bypass Bus.

4965:ad0e792a5c78 10-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

DMA: Add IOCache and fix bus bridge to optionally only send requests one
way so a cache can handle partial block requests for i/o devices.

4895:d36959284fbc 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

Fix up a bunch of multilevel coherence issues.
Atomic mode seems to work. Timing is closer but not there yet.

4893:3439144e474a 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

Fix problem with unset max_loads in memtest.
Also make default 0, and make that mean run forever.

4892:298bc09b72fa 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

Punt on old -n/-c memtest args.
Also added comments to document treespec format.

4891:02babad9bfce 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

Add --force-bus option to memtest.py.

4890:5fbfbcd22796 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

New tree-based algorithm for creating more complex cache hierarchies.

4847:41126ac89de7 01-Aug-2007 Gabe Black <gblack@eecs.umich.edu>

Fix how the "cmd" parameter is set in se.py and remove hack in x86 process initialization code.

4837:4e5c7f774548 01-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

Configuration: Update the drive systems kernel as well as the testsys kernel with cmd line option.

4672:cc97e595e07d 27-Jun-2007 Steve Reinhardt <stever@eecs.umich.edu>

Get rid of coherence protocol object.

4628:17b3ce796176 21-Jun-2007 Steve Reinhardt <stever@eecs.umich.edu>

Getting closer...

configs/example/memtest.py:
Add progress interval option.
src/base/traceflags.py:
Add MemTest flag.
src/cpu/memtest/memtest.cc:
Clean up tracing.
src/cpu/memtest/memtest.hh:
Get rid of unused code.

4627:2766d5cfbd9d 17-Jun-2007 Steve Reinhardt <stever@eecs.umich.edu>

Merge vm1.(none):/home/stever/bk/newmem-head
into vm1.(none):/home/stever/bk/newmem-cache2

configs/example/memtest.py:
Hand merge redundant changes.

4626:ed8aacb19c03 17-Jun-2007 Steve Reinhardt <stever@eecs.umich.edu>

More major reorg of cache. Seems to work for atomic mode now,
timing mode still broken.

configs/example/memtest.py:
Revamp options.
src/cpu/memtest/memtest.cc:
No need for memory initialization.
No need to make atomic response... memory system should do that now.
src/cpu/memtest/memtest.hh:
MemTest really doesn't want to snoop.
src/mem/bridge.cc:
checkFunctional() cleanup.
src/mem/bus.cc:
src/mem/bus.hh:
src/mem/cache/base_cache.cc:
src/mem/cache/base_cache.hh:
src/mem/cache/cache.cc:
src/mem/cache/cache.hh:
src/mem/cache/cache_blk.hh:
src/mem/cache/cache_builder.cc:
src/mem/cache/cache_impl.hh:
src/mem/cache/coherence/coherence_protocol.cc:
src/mem/cache/coherence/coherence_protocol.hh:
src/mem/cache/coherence/simple_coherence.hh:
src/mem/cache/miss/SConscript:
src/mem/cache/miss/mshr.cc:
src/mem/cache/miss/mshr.hh:
src/mem/cache/miss/mshr_queue.cc:
src/mem/cache/miss/mshr_queue.hh:
src/mem/cache/prefetch/base_prefetcher.cc:
src/mem/cache/tags/fa_lru.cc:
src/mem/cache/tags/fa_lru.hh:
src/mem/cache/tags/iic.cc:
src/mem/cache/tags/iic.hh:
src/mem/cache/tags/lru.cc:
src/mem/cache/tags/lru.hh:
src/mem/cache/tags/split.cc:
src/mem/cache/tags/split.hh:
src/mem/cache/tags/split_lifo.cc:
src/mem/cache/tags/split_lifo.hh:
src/mem/cache/tags/split_lru.cc:
src/mem/cache/tags/split_lru.hh:
src/mem/packet.cc:
src/mem/packet.hh:
src/mem/physical.cc:
src/mem/physical.hh:
src/mem/tport.cc:
More major reorg. Seems to work for atomic mode now,
timing mode still broken.


memtest.py
/gem5/src/cpu/memtest/memtest.cc
/gem5/src/cpu/memtest/memtest.hh
/gem5/src/mem/bridge.cc
/gem5/src/mem/bus.cc
/gem5/src/mem/bus.hh
/gem5/src/mem/cache/base_cache.cc
/gem5/src/mem/cache/base_cache.hh
/gem5/src/mem/cache/cache.cc
/gem5/src/mem/cache/cache.hh
/gem5/src/mem/cache/cache_blk.hh
/gem5/src/mem/cache/cache_builder.cc
/gem5/src/mem/cache/cache_impl.hh
/gem5/src/mem/cache/coherence/coherence_protocol.cc
/gem5/src/mem/cache/coherence/coherence_protocol.hh
/gem5/src/mem/cache/coherence/simple_coherence.hh
/gem5/src/mem/cache/miss/SConscript
/gem5/src/mem/cache/miss/blocking_buffer.cc
/gem5/src/mem/cache/miss/blocking_buffer.hh
/gem5/src/mem/cache/miss/miss_buffer.cc
/gem5/src/mem/cache/miss/miss_buffer.hh
/gem5/src/mem/cache/miss/miss_queue.cc
/gem5/src/mem/cache/miss/miss_queue.hh
/gem5/src/mem/cache/miss/mshr.cc
/gem5/src/mem/cache/miss/mshr.hh
/gem5/src/mem/cache/miss/mshr_queue.cc
/gem5/src/mem/cache/miss/mshr_queue.hh
/gem5/src/mem/cache/prefetch/base_prefetcher.cc
/gem5/src/mem/cache/tags/fa_lru.cc
/gem5/src/mem/cache/tags/fa_lru.hh
/gem5/src/mem/cache/tags/iic.cc
/gem5/src/mem/cache/tags/iic.hh
/gem5/src/mem/cache/tags/lru.cc
/gem5/src/mem/cache/tags/lru.hh
/gem5/src/mem/cache/tags/split.cc
/gem5/src/mem/cache/tags/split.hh
/gem5/src/mem/cache/tags/split_lifo.cc
/gem5/src/mem/cache/tags/split_lifo.hh
/gem5/src/mem/cache/tags/split_lru.cc
/gem5/src/mem/cache/tags/split_lru.hh
/gem5/src/mem/packet.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/physical.cc
/gem5/src/mem/physical.hh
/gem5/src/mem/tport.cc
4549:42b30b2529e1 10-Jun-2007 Nathan Binkert <binkertn@umich.edu>

More realistic parameters

4476:19ae7f38237e 22-May-2007 Steve Reinhardt <stever@eecs.umich.edu>

memtest.py:
Make clocks more reasonable.
Fix bug in sense of options.timing flag.

configs/example/memtest.py:
Fix bug in sense of options.timing flag.
configs/example/memtest.py:
Make clocks more reasonable.

4467:cb5715e021ca 19-May-2007 Steve Reinhardt <stever@eecs.umich.edu>

PhysicalMemory has vector of uniform ports instead of one special one.

configs/example/memtest.py:
PhysicalMemory has vector of uniform ports instead of one special one.
Other updates to fix obsolete brokenness.
src/mem/physical.cc:
src/mem/physical.hh:
src/python/m5/objects/PhysicalMemory.py:
Have vector of uniform ports instead of one special one.
src/python/swig/pyobject.cc:
Add comment.

4455:18ff8ee46de8 15-May-2007 Ali Saidi <saidi@eecs.umich.edu>

add an l2 cache option to se example config

configs/common/Options.py:
configs/example/fs.py:
move l2 cache option to Options.py

4167:ce5d0f62f13b 06-Mar-2007 Nathan Binkert <binkertn@umich.edu>

Move all of the parameters of the Root SimObject so they are
directly configured by python. Move stuff from root.(cc|hh) to
core.(cc|hh) since it really belogs there now.
In the process, simplify how ticks are used in the python code.


/gem5/configs/common/FSConfig.py
/gem5/configs/common/Simulation.py
fs.py
/gem5/src/base/annotate.cc
/gem5/src/base/misc.cc
/gem5/src/base/pollevent.cc
/gem5/src/base/pollevent.hh
/gem5/src/base/trace.hh
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/inst_queue_impl.hh
/gem5/src/cpu/ozone/inst_queue_impl.hh
/gem5/src/cpu/pc_event.cc
/gem5/src/cpu/static_inst.cc
/gem5/src/dev/etherbus.cc
/gem5/src/dev/etherdump.cc
/gem5/src/dev/etherlink.cc
/gem5/src/dev/ide_disk.cc
/gem5/src/dev/pcidev.cc
/gem5/src/kern/tru64/tru64.hh
/gem5/src/mem/cache/cache_blk.hh
/gem5/src/mem/cache/miss/mshr.cc
/gem5/src/mem/cache/tags/iic.cc
/gem5/src/mem/cache/tags/lru.cc
/gem5/src/mem/cache/tags/split_lifo.cc
/gem5/src/mem/cache/tags/split_lru.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/request.hh
/gem5/src/python/m5/__init__.py
/gem5/src/python/m5/convert.py
/gem5/src/python/m5/event.py
/gem5/src/python/m5/main.py
/gem5/src/python/m5/objects/BaseCPU.py
/gem5/src/python/m5/objects/PhysicalMemory.py
/gem5/src/python/m5/objects/Root.py
/gem5/src/python/m5/params.py
/gem5/src/python/m5/ticks.py
/gem5/src/python/swig/core.i
/gem5/src/python/swig/event.i
/gem5/src/sim/builder.cc
/gem5/src/sim/core.cc
/gem5/src/sim/core.hh
/gem5/src/sim/eventq.cc
/gem5/src/sim/main.cc
/gem5/src/sim/root.cc
/gem5/src/sim/sim_events.cc
/gem5/src/sim/sim_events.hh
/gem5/tests/configs/t1000-simple-atomic.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
3970:d54945bab95d 03-Jan-2007 Gabe Black <gblack@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zower.eecs.umich.edu:/eecshome/m5/newmem

3873:9c1773b9f603 23-Dec-2006 Nathan Binkert <binkertn@umich.edu>

Add options for setting the kernel to run and the
script to run

3819:8a9d3f3d3398 04-Dec-2006 Lisa Hsu <hsul@eecs.umich.edu>

automatically build sparc system or alpha system.

configs/example/fs.py:
make it an automatic system build for alpha vs. sparc.

3668:bacb0a392e78 15-Nov-2006 Ron Dreslinski <rdreslin@umich.edu>

Add L2 cache option to fs.py --l2cache

3623:c37f82ace0fe 12-Nov-2006 Ron Dreslinski <rdreslin@umich.edu>

Update for maxtick in splash2/memtest configs

configs/example/memtest.py:
configs/splash2/run.py:
Update for maxtick

3514:b166ee5dce91 09-Nov-2006 Kevin Lim <ktlim@umich.edu>

Clean up config scripts to not have to worry about attaching a cache only to the TimingCPU. Now the Atomic CPU works with caches.

configs/common/Simulation.py:
Atomic CPU now works properly with caches, so we don't have to do extra parsing to hook up caches only to the timing CPU.

However the O3CPU must always use caches, so a check for that must still exist.

Also change the switch_cpus to be placed at the system level, now that Steve changed how the IntrController gets its CPU.
configs/example/fs.py:
configs/example/se.py:
Atomic CPU now handles caches.

3481:14362d3b0756 01-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

factor some more commone code and enable going from checkpoint into arbitrary CPU with or without caches.

configs/common/Simulation.py:
enable going from checkpoint into arbitrary CPU with or without caches.

3477:eaf445891a4e 31-Oct-2006 Kevin Lim <ktlim@umich.edu>

Fix up configs.

configs/common/Simulation.py:
Remove mem parameter.
configs/example/se.py:
Remove debug output that got included in my other push.

3476:0e26b5458236 31-Oct-2006 Kevin Lim <ktlim@umich.edu>

Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix

configs/example/fs.py:
configs/example/se.py:
src/mem/tport.hh:
Hand merge.

3448:bb2632fa57dc 30-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

se.py, fs.py:
import Caches
Simulation.py:
Fix typo - L2Cache --> L1Cache

configs/common/Simulation.py:
Fix typo - L2Cache --> L1Cache
configs/example/fs.py:
configs/example/se.py:
import Caches

3444:6abefa632e10 30-Oct-2006 Kevin Lim <ktlim@umich.edu>

Use some python os.path stuff to make it more flexible where we can execute this script from.

3409:769707cf0664 27-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zed.eecs.umich.edu:/z/hsul/work/m5/newmem

configs/example/fs.py:
configs/example/se.py:
hand merge

3402:db60546818d0 31-Oct-2006 Kevin Lim <ktlim@umich.edu>

Remove mem parameter. Now the translating port asks the CPU's dcache's peer for its MemObject instead of having to have a paramter for the MemObject.

configs/example/fs.py:
configs/example/se.py:
src/cpu/simple/base.cc:
src/cpu/simple/base.hh:
src/cpu/simple/timing.cc:
src/cpu/simple_thread.cc:
src/cpu/simple_thread.hh:
src/cpu/thread_state.cc:
src/cpu/thread_state.hh:
tests/configs/o3-timing-mp.py:
tests/configs/o3-timing.py:
tests/configs/simple-atomic-mp.py:
tests/configs/simple-atomic.py:
tests/configs/simple-timing-mp.py:
tests/configs/simple-timing.py:
tests/configs/tsunami-simple-atomic-dual.py:
tests/configs/tsunami-simple-atomic.py:
tests/configs/tsunami-simple-timing-dual.py:
tests/configs/tsunami-simple-timing.py:
No need for mem parameter any more.
src/cpu/checker/cpu.cc:
Use new constructor for simple thread (no more MemObject parameter).
src/cpu/checker/cpu.hh:
Remove MemObject parameter.
src/cpu/memtest/memtest.hh:
Ports now take in their MemObject owner.
src/cpu/o3/alpha/cpu_builder.cc:
Remove mem parameter.
src/cpu/o3/alpha/cpu_impl.hh:
Remove memory parameter and clean up handling of TranslatingPort.
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
src/cpu/o3/fetch.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/mips/cpu_builder.cc:
src/cpu/o3/mips/cpu_impl.hh:
src/cpu/o3/params.hh:
src/cpu/o3/thread_state.hh:
src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_builder.cc:
src/cpu/ozone/cpu_impl.hh:
src/cpu/ozone/front_end.hh:
src/cpu/ozone/front_end_impl.hh:
src/cpu/ozone/lw_lsq.hh:
src/cpu/ozone/lw_lsq_impl.hh:
src/cpu/ozone/simple_params.hh:
src/cpu/ozone/thread_state.hh:
src/cpu/simple/atomic.cc:
Remove memory parameter.

3399:8206f6b9283e 26-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

se.py:
make the same os.getcwd fix ali made in fs.py, make connectMemPorts occur after caches are created.

configs/example/se.py:
make the same os.getcwd fix ali made in fs.py, make connectMemPorts occur after caches are created.

3398:7f14cadf3afd 24-Oct-2006 Ali Saidi <saidi@eecs.umich.edu>

Fix fs.py. Lisa did you test this? Is there some wierd python version thing?

3395:49e674f2fb5d 27-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

factor out common run code from se.py and fs.py.

configs/example/fs.py:
factor out common code.
configs/example/se.py:
factor out common code

3394:0a6b4a7a6df6 23-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

warmup of 1B cpu cycles.

configs/example/fs.py:
configs/example/se.py:
warm up of 1B CPU cycles

3393:43e1a001a7ce 23-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zed.eecs.umich.edu:/z/hsul/work/m5/newmem

3355:f15cc71cdf09 20-Oct-2006 Ron Dreslinski <rdreslin@umich.edu>

Give physical memory some latency to stress the system

3354:2ea739dd597c 20-Oct-2006 Ron Dreslinski <rdreslin@umich.edu>

Add a config file in the example with the memtester and some parser options.

3328:50b7be1f9ab6 19-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

First cut at LL/SC support in caches (atomic mode only).

configs/example/fs.py:
Add MOESI protocol to caches (uni coherence not quite working w/FS yet).

3323:ca667530b8a0 23-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

make a lot of the same changes as to fs.py for checkpointing.

1) rearrange the options to be in a nice logical order
2) add an option for what i call "standard switch", which is from simple->timing->detailed
3) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries.
4) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first

3322:bccece90053b 23-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

changes regarding fs.py

1) rearrange the options to be in a nice logical order
2) add an option for what i call "standard switch", which is from simple->timing->detailed
3) change the client/server naming system to testsys/drivesys
4) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries.
5) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first

doesn't fully work because of a caching issue, but the python side of things i think should work - the counterpart of se.py does work.
i think i should factor out a lot of the common code in both, but i'll do that after this checkin, just to get this in the tree.

configs/example/fs.py:
1) rearrange the options to be in a nice logical order
2) add an option for what i call "standard switch", which is from simple->timing->detailed
3) change the client/server naming system to testsys/drivesys
4) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries.
5) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first

3314:1247da7b4d26 18-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

Add --caches option to add caches to server CPUs.

3312:dbaec4804adf 18-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

Enable MP systems via cmd-line flag in fs.py.

configs/example/fs.py:
Add flag for MP server systems.
src/python/m5/objects/AlphaConsole.py:
src/python/m5/objects/IntrControl.py:
Change CPU from 'any' to 'cpu[0]' to work better with MP sytems.
tests/configs/tsunami-simple-atomic-dual.py:
tests/configs/tsunami-simple-timing-dual.py:
Don't need to set console & intrcontrol cpu
params anymore (default is fixed now).

3304:c5917aeb8e2f 17-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

Rename 'Machine' to 'SysConfig'.
Clean up a little.

3230:e86a03911728 09-Oct-2006 Kevin Lim <ktlim@umich.edu>

Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem

src/cpu/memtest/memtest.cc:
src/cpu/memtest/memtest.hh:
src/cpu/simple/timing.hh:
tests/configs/o3-timing-mp.py:
Hand merge.

3223:a2b6fa575c05 08-Oct-2006 Kevin Lim <ktlim@umich.edu>

Clean up configs.

configs/common/FSConfig.py:
configs/common/SysPaths.py:
configs/example/fs.py:
configs/example/se.py:
tests/configs/o3-timing-mp.py:
tests/configs/o3-timing.py:
Clean up configs by removing FullO3Config and instead using default values.
src/python/m5/objects/FUPool.py:
Add in default FUPool.
src/python/m5/objects/O3CPU.py:
Use defaults better. Also set checker parameters, and fix up a config bug.

3183:bd8f3870620f 09-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N. the default checkpoint directory is the cwd.

so you can restore by a command line like this:

m5.opt fs.py --checkpoint_dir="/my/ckpt/dir" -c 3

configs/example/fs.py:
add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N.

3180:664fe611de8e 08-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

Set cpu_id params (required by ll/sc code now).

3143:76c70c8bc5c8 06-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

add an option for defining a directory in which to place all your checkpoints. if none, default is cwd.

3133:ad45cbafebdd 05-Oct-2006 Lisa Hsu <hsul@eecs.umich.edu>

fix the argument to m5.simulate() on a checkpoint.

src/sim/stat_control.cc:
add curTick to reset stats printf.

3088:d8a809416104 29-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Add FULL_SYSTEM check to example/fs.py.

3087:e50b0686850d 29-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Add missing cpu mem param to example/se.py.

configs/example/se.py:
Add missing cpu mem param.

3050:358a23f67bf6 21-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

fs.py:
Add temporary cpu.mem parameter settings.

configs/example/fs.py:
Add temporary cpu.mem parameter settings.

3046:fc3297be3869 20-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

configs/example/fs.py:
Arg to m5.simulate() is a delta, not an absolute curTick value.
I didn't test this change, but I'm not convinced the previous
example was tested either, so I don't feel too badly about it.

configs/example/fs.py:
Arg to m5.simulate() is a delta, not an absolute curTick value.
I didn't test this change, but I'm not convinced the previous
example was tested either, so I don't feel too badly about it.

3025:00fe36086a14 16-Aug-2006 Ali Saidi <saidi@eecs.umich.edu>

add etherdump file option

3022:b3b379cb97ef 16-Aug-2006 Lisa Hsu <hsul@eecs.umich.edu>

Add in checkpointing in the frontend, so that when a checkpoint is called, the python handles it, and the simulation continues. Also, make it so that the cycle number is part of the cpt dir name, so that multiple checkpoints do not overwrite each other.

3005:ceb86e85d62d 16-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Finish test clean-up & reorg.

configs/common/FSConfig.py:
Add default Machine() param
configs/example/fs.py:
configs/example/se.py:
make it work again
src/python/m5/objects/BaseCPU.py:
Make mem PhysicalMemory so that a Parent.any proxy works well
src/sim/process.cc:
Increase default stack size so we don't get an
'increasing stack' message on 'hello world'
tests/SConscript:
Add full list of current configs.
tests/configs/simple-atomic.py:
tests/configs/simple-timing.py:
don't need SEConfig anymore
tests/quick/00.hello/test.py:
tests/quick/20.eio-short/test.py:
fix
tests/run.py:
move configs to separate dir


/gem5/configs/common/FSConfig.py
fs.py
se.py
/gem5/configs/test/fs.py
/gem5/configs/test/test.py
/gem5/src/python/m5/objects/BaseCPU.py
/gem5/src/sim/process.cc
/gem5/tests/SConscript
/gem5/tests/configs/simple-atomic.py
/gem5/tests/configs/simple-timing.py
/gem5/tests/configs/tsunami-simple-atomic-dual.py
/gem5/tests/configs/tsunami-simple-atomic.py
/gem5/tests/configs/tsunami-simple-timing-dual.py
/gem5/tests/configs/tsunami-simple-timing.py
/gem5/tests/linux-boot/ref/alpha/atomic/config.ini
/gem5/tests/linux-boot/ref/alpha/atomic/config.out
/gem5/tests/linux-boot/ref/alpha/atomic/console.system.sim_console
/gem5/tests/linux-boot/ref/alpha/atomic/m5stats.txt
/gem5/tests/linux-boot/ref/alpha/atomic/stderr
/gem5/tests/linux-boot/ref/alpha/atomic/stdout
/gem5/tests/linux-mpboot/ref/alpha/atomic/config.ini
/gem5/tests/linux-mpboot/ref/alpha/atomic/config.out
/gem5/tests/linux-mpboot/ref/alpha/atomic/console.system.sim_console
/gem5/tests/linux-mpboot/ref/alpha/atomic/m5stats.txt
/gem5/tests/linux-mpboot/ref/alpha/atomic/stderr
/gem5/tests/linux-mpboot/ref/alpha/atomic/stdout
/gem5/tests/linux-mpboot/ref/alpha/timing/config.ini
/gem5/tests/linux-mpboot/ref/alpha/timing/config.out
/gem5/tests/linux-mpboot/ref/alpha/timing/console.system.sim_console
/gem5/tests/linux-mpboot/ref/alpha/timing/m5stats.txt
/gem5/tests/linux-mpboot/ref/alpha/timing/stderr
/gem5/tests/linux-mpboot/ref/alpha/timing/stdout
/gem5/tests/quick/00.hello/test.py
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout
/gem5/tests/quick/10.linux-boot/test.py
/gem5/tests/quick/20.eio-short/test.py
/gem5/tests/run.py
/gem5/tests/simple-atomic.py
/gem5/tests/simple-timing.py
/gem5/tests/test-progs/hello/bin/mips/linux/hello
/gem5/tests/test-progs/hello/bin/mips/linux/hello_mips
/gem5/tests/test-progs/hello/bin/sparc/bin
/gem5/tests/test-progs/hello/bin/sparc/linux/hello