Gabe Black
bfad4b77d0
x86: Delegate process loading to the EmuLinux workload.
...
This is still triggered by the generic mechanism that tries out all
paths to go from an object file to a process. That's not entirely
necessary since the only loader that should be used when using the
X86ISA::EmuLinux workload is the one it provides, but the rest of gem5
isn't ready for that change yet.
This removes the last lingering reason to keep around the
arch/x86/linux/process.(hh|cc) files, so they have been deleted.
Change-Id: I425b95c9c730f31291790d63bc842e2c0092960d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33904
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-26 20:31:24 +00:00
Giacomo Travaglini
ab474613bc
mem: Replace any getDTBPtr/getITBPtr usage
...
JIRA: https://gem5.atlassian.net/browse/GEM5-790
Change-Id: I0759baec87b3682a057239a6b3b8f79fe3f5592c
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34983
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-26 09:20:08 +00:00
Gabe Black
f07dbdacfd
fastmodel: Fix up for the new standardized create() methods.
...
Change-Id: I2e3610b5cad37b67d32907a2c2568b504d5ed113
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36155
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-24 03:35:17 +00:00
Daniel R. Carvalho
0d091f6e07
mem-cache: Implement FPC cache compressor
...
Implementation of Frequent Pattern Compression, proposed
by Alameldeen et al. in "Frequent Pattern Compression: A
Significance-Based Compression Scheme for L2 Caches".
Change-Id: I6dca8ca6b3043b561140bc681dbdbe9f7cef27d7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36395
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 21:49:11 +00:00
Daniel R. Carvalho
a9cce6d645
mem-cache: Make (de)compression latencies params
...
Add 4 params to calculate compression and decompression latencies.
A pair of params informs how many chunks are parsed per cycle, and
the other pair informs how many extra cycles are needed after the
chunks are parsed to finish the (de)compression.
Change-Id: Ie67b0c298f06a08011f553789e3a9a1d89dd7c4f
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36497
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 21:49:11 +00:00
Daniel R. Carvalho
8bee8630c1
python: Add support for Proxy division
...
Allow proxies to use python3's division operations. The dividends
and divisors can be either a proxy or a constant.
Change-Id: I96b854355b8f593edfb1ea52a52548b855b05fc0
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36496
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 21:49:11 +00:00
Daniel R. Carvalho
8f68d9d1be
mem-cache: Undefine compression ratio of perfect compression
...
Commit c0d67b2263 assumes that the
cache contains a parameter for its compression ratio. This is not
the case upstream, so force the user to provide it instead.
Change-Id: Ic7b4878bede6b0a34e4adfe7e0aa65a0ee48d1f6
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36495
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 21:49:11 +00:00
Hoa Nguyen
9a8985a57f
util: Fix an incorrect print statement in git pre-commit hook
...
Change-Id: I13d0a705b6cfab654635380e2adbf36243344a62
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36516
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 21:30:28 +00:00
Giacomo Travaglini
ad5fa9ebe4
arch-arm: Fix implementation of TLBI ALLEx instructions
...
The TLBIALL op in gem5 was designed after the AArch32 TLBIALL instruction.
and was reused by the TLBI ALLEL1, ALLE2, ALLE3 logic.
This is not correct for the following reasons:
- TLBI ALLEx invalidates regardless of the VMID
- TLBI ALLEx (AArch64) is "target regime" oriented, whereas TLBIALL
(AArch32) is "current regime" oriented
TLBIALL has a different behaviour depending on the current exception
level: if issued at EL1 it will invalidate stage1 translations only; if
at EL2, it will invalidate stage2 translations as well.
TLBI ALLEx is more standard; every TLBI ALLE1 will invalidate stage1 and
stage2 translations. This is because the instruction is not executable
from the guest (EL1)
So for TLBIALL the condition for stage2 forwarding will be:
if (!isStage2 && isHyp) {
Whereas for TLBI ALLEx will be:
if (!isStage2 && target_el == EL1) {
Change-Id: I282f2cfaecbfc883e173770e5d2578b41055bb7a
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35241
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 16:23:27 +00:00
Giacomo Travaglini
32d88ae46c
arch-arm: Rewrite the TLB flushing interface
...
We are now using an overloaded flush method which has
different TLBI ops as arguments.
This is simplifying the interface and it is allowing us to
encode some state in the TLBIOp which will then be passed
to the TLB. This is a step towards making the TLB a stateless
cache of translations
Change-Id: Ic4fbae72dc3cfe756047148b1cf5f144298c8b08
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35240
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Richard Cooper <richard.cooper@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 16:23:27 +00:00
Giacomo Travaglini
2a91ea7586
arch-arm: Reimplement TLB::flushAll
...
flushAll is a non architectural flush command; this is not based on
flushAllSecurity anymore. flushAll should always flush stage1 and stage2,
whereas flushAllSecurity is checking for the current state
(vmid, and if we are in Hyp)
Change-Id: I6b81ebfba387e646f256ecbecb7b5ee720745358
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35239
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Richard Cooper <richard.cooper@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 16:23:27 +00:00
Giacomo Travaglini
1a897957d6
arch-arm: TLBIALL/TLBIASID/TLBIMVA base classes for I/D flavours
...
This will be exploited by the incoming patchset
Change-Id: Ic10a8d64910a04d4153b0f2abb133dfd56dbaf62
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35238
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Richard Cooper <richard.cooper@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
2020-10-23 16:23:27 +00:00
Andreas Sandberg
4af84816a4
scons: Don't check for Python 2
...
The build system will now refuse to build gem5 if Python 2.x is
detected. Remove Python 2 specific python-config variants from the
list of candidates we try.
Change-Id: Id59be4a2969ce180848e5df02afdfb4a5b8125c1
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36535
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 16:00:13 +00:00
Andreas Sandberg
bc2e12321a
scons: Test if binaries can embed the Python interpreter
...
Add some more stringent Python tests that ensure that we can link with
and run applications that embed Python. This is implemented by running
building a small c++ program that embeds Python using PyBind11. The
program is run by the build system and prints the version of the
Python interpreter. The version information is then used by the build
system to ensure that the installed version is supported.
Change-Id: I727e0832f171362f5506247c022bea365068a0f6
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36383
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 16:00:13 +00:00
Gabe Black
74005aa8d6
misc: Replace enable_if<>::type with enable_if_t<>.
...
This new abreviated form was added for C++14. Now that we're using that
version of the standard, we can move over to it.
Change-Id: Ia291d2b1e73e503c37593b1e1c4c1b3011abc63b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36477
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 12:59:59 +00:00
Yu-hsin Wang
360b7b06a4
dev-arm: Fix VExpressFastmodel interrupt configs
...
HDLcd interrupt params should receive ArmSPI class
Change-Id: I4a5dacdfe5803511d19f2ed789017fb3b1857bdb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36455
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-23 04:31:48 +00:00
Gabe Black
a79ce29cd6
x86: Move syscall handling for Linux into the EmuLinux workload.
...
Change-Id: I3fe1997e62491e9576b787660b7fae5ae99fb5c9
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33903
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:03:55 +00:00
Gabe Black
4e6339acd2
x86: Create an SEWorkload for x86 linux.
...
This doesn't do anything interesting yet, but soon it will take over
system call duties from the x86 linux processes.
Change-Id: Ic126fc80def0b458de51d3a9c96120c58e5a75ad
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33902
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com >
Maintainer: Gabe Black <gabe.black@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:03:20 +00:00
Gabe Black
e3d8b93142
base,sim: Move BitUnion serialization support to bitunion.hh.
...
This keeps the BitUnion code centralized and out of the generic
serialization code.
Change-Id: I297638df4f8908096b7c439298fbaf03236f9011
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36283
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
2020-10-22 22:02:26 +00:00
Gabe Black
31fc4b24fc
sim: Move the serialization backend handlers to their own header.
...
This way other types which want to enable serialization can include just
these handlers and specialize them as necessary without bringing in all
the other dependencies of the serialization mechanism.
Change-Id: I7310e7741615e23ac0fc762e951bf5eac00aaa74
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36281
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:02:08 +00:00
Gabe Black
f62d1862e0
sim: Refactor how serialization types are handled in the backend.
...
The parseParam and showParam functions partially worked using template
specialization, and partially worked using function overloading. The
template specialization could be resolved later once other functions
were added, but the regular function overloads could not. That meant
that it was practically impossible to add new definitions of those two
functions local to the types they worked with.
Also, because C++ does not allow partial specialization of template
functions, it would not be possible to truly use specialization to wire
in BitUnion types.
To fix these problems, these functions have been turned into structs
which wrap static functions. These can be partially specialized as
desired, making them compatible with BitUnions. Also, it's not possible
to overload structures like it is with functions, so only specialization
is considered, not overloading.
While making these changes, these functions (now structs) were also
reworked so that they share implementation more, and are generally
more streamlined.
Given the fact that the previous parseParam and showParam functions
could not actually be expanded beyond serialize.hh, and were not
actually called directly by any code outside of that file, they should
have never been considered part of the API.
Now that these structs actually *can* be specialized outside of this
file, they should be considered part of the interface.
Change-Id: Ic8e677b97fda8378ee1da1f3cf6001e02783fde3
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36280
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Richard Cooper <richard.cooper@arm.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:01:44 +00:00
Gabe Black
f9bd874b7f
base: Narrow the applicability of the default to_number.
...
That template only works for integral (except bool), floating point,
or enum types, so restrict it to those types. That makes it easier to
detect what types will work with that function.
Change-Id: Ib29a9a0ea75dd617e28bb6850d60be905f93182f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36279
Reviewed-by: Gabe Black <gabe.black@gmail.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Gabe Black <gabe.black@gmail.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:01:16 +00:00
Gabe Black
37146cb942
sim: Fix API comments for optParamIn.
...
The top level comment was correct, but the parameter comments talked
about writing parameters instead of reading them. Also simplified the
wording of the return value comment.
Change-Id: I156aba5b69c281ee2f34297bf3f75fd0acfb2b6e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36278
Maintainer: Gabe Black <gabe.black@gmail.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:00:50 +00:00
Gabe Black
edccff8f23
sim: Generalize the arrayParamOut and arrayParamIn functions.
...
These had been written specifically for the vector, list, set, and C
style array types. This change reworks them to share an implementation,
and to work with more general types. The arrayParamOut method requires
std::begin() and std::end() to accept that type, and the arrayParamIn
method requires either insert or push_back, or the type to be an array.
Also fix up a couple of files which accidentally depended on includes in
the serialize headers which are no longer necessary.
Change-Id: I6ec4fe3bb900603bbb4e35c4efa620c249942452
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36277
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 22:00:38 +00:00
Daniel Gerzhoy
efabe5ec1b
mem-ruby: L1/L2 hit/miss tracking for MOESI_AMD_BASE/GPU_VIPER
...
L1 and L2 access tracking was not fully implemented.
This patch adds the missing tracking actions, and corrects
several errors for the ones that were there.
Change-Id: I69a59283274c08e94b6650ab5f586cbfe5432503
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33915
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Matt Sinclair <mattdsinclair@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
2020-10-22 14:47:06 +00:00
Daniel Gerzhoy
85ede9a180
mem-ruby: L3 hit/miss tracking to MOESI_AMD_BASE-dir
...
L3 access tracking added to the directory controller.
This commit adds L3 hit/miss tracking to the controller.
Hit/miss status is decided when the tag array of the
L3 Cache is checked for the first time for any given request.
Change-Id: Icac122f59509d79135265fb38b112d3f47419b6f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33314
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com >
Maintainer: Matt Sinclair <mattdsinclair@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 14:45:34 +00:00
jiemingyin
076a0e1f5f
mem-garnet: Fix garnet network interface stats
...
Fixing a bug in garnet network interface where flit source delay is
computed using both tick and cycle.
Change-Id: If21a985f371a818611d13e9cd5ce344dbcf5fb2b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36416
Reviewed-by: Srikant Bharadwaj <srikant.bharadwaj@amd.com >
Maintainer: Matthew Poremba <matthew.poremba@amd.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 12:51:49 +00:00
Gabe Black
3ecc998514
misc: Update my email address.
...
Change-Id: Ibbed316125274b742dbcda62f114855176b922e8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36382
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 01:01:46 +00:00
Yu-hsin Wang
bd03072062
configs: Use absolute path for VirtIO9PDiod default root
...
VirtIO9PDiod model requires an absolute path as its parameter. So we
should change the default root path to absolute path as well.
Change-Id: I68a2ae1115e84ed61055298b06b2d0b4bd6410b3
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36381
Reviewed-by: Earl Ou <shunhsingou@google.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 00:49:15 +00:00
Yu-hsin Wang
c70b4e28c4
configs: Fix FastmodelCluster cpu initialization
...
We should create the thread and the interrupt controller of fastmodel by
calling the create function explicitly.
Change-Id: I269440e144e83fa0a31d8cdf285fed31642f4f73
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36380
Reviewed-by: Earl Ou <shunhsingou@google.com >
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-22 00:49:06 +00:00
Gabe Black
7bcef5c048
misc: Fix a few accidental transitive includes.
...
Some files depend on definitions from files that they weren't including
themselves. They were working accidentally by getting those definitions
transitively through other, unrelated headers.
Change-Id: I50c919a4eb6c4484d4ee6b7f4fe02f075132964d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36282
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-21 22:56:14 +00:00
Gabe Black
368e5a492b
sim: Implement optParamIn using paramIn.
...
This means only paramIn needs to be specialized, and then optParamIn
will be as well for free. It also removes some duplicate implementation.
Change-Id: Id124a05d04e1c0897121d0e13dd46efe90e8eed0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36276
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 >
2020-10-21 22:54:39 +00:00
Giacomo Travaglini
c1217f4e89
arch: Use getTlb in BaseMMU to reduce boilerplate
...
Change-Id: I22dcdf0769e854c252788d415d46da113cb8c60a
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35735
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-21 09:47:57 +00:00
Giacomo Travaglini
f6a3e0a2fd
arch-arm: Replace any getDTBPtr/getITBPtr usage
...
The getMMUPtr should be used instead
JIRA: https://gem5.atlassian.net/browse/GEM5-790
Change-Id: I8f09b0dc9844764fbe1a04b34dd963730c91f531
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34978
Reviewed-by: Richard Cooper <richard.cooper@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-21 09:33:39 +00:00
Giacomo Travaglini
a07fd8fe41
cpu: Remove unused demapInstPage and demapDataPage
...
Change-Id: Iecc2ee8d91bfd3caf38e5f27e9689b7e0d488ed5
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34977
Reviewed-by: Gabe Black <gabeblack@google.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-21 09:33:39 +00:00
Giacomo Travaglini
330a5f7bad
misc: BaseCPU using ArchMMU instead of ArchDTB/ArchITB
...
With this commit we replace every TLB pointer stored in the
cpu model with a BaseMMU pointer.
JIRA: https://gem5.atlassian.net/browse/GEM5-790
Change-Id: I4932a32f68582b25cd252b5420b54d6a40ee15b8
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34976
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-21 09:33:39 +00:00
Jason Lowe-Power
85a36581d4
cpu-kvm, arch-x86: Fix KVM on Intel platforms
...
This is the minimal set of changes from the patch that's been floating
around for a few years originally by Mike Upton.
See http://reviews.gem5.org/r/2613/ and
https://gem5-review.googlesource.com/c/public/gem5/+/7361
The change to the tssDesc is the minimal change to get KVM working on
Intel platforms. However, the other changes seem prudent to add.
Tested on both Intel (i7-7700) and AMD (EPYC 7451) platforms.
Change-Id: I000c7ba102ba161c2bb5e224bf826216cf0ff87a
Signed-off-by: Jason Lowe-Power <jason@lowepower.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12278
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-20 16:44:26 +00:00
Giacomo Travaglini
f612d836fc
dev-arm: Adding a SRAM in VExpress_GEM5_V1
...
This is added in order to match the RS1 memory map
JIRA: https://gem5.atlassian.net/browse/GEM5-768
Change-Id: I51e7aeafe1468a68fe7a3d78c7a6c405114df88f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34375
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-20 14:06:20 +00:00
Hoa Nguyen
257834d23f
scons: Raise an exception when scons is run a Python2 environment
...
As gem5 has started to use Python2 incompatible features, compiling
gem5 in a Python2 environment results in an error.
This commit addresses this issue by raising an Exception when scons
is run in a Python2 environment, and adding a few pointers on how to
install Python3 and on how to use scons in a Python3 environment. The
solution works in a system where both Python2 and Python3 are
installed.
JIRA: https://gem5.atlassian.net/browse/GEM5-797
Change-Id: I98d4a39f586f39d9253ab2517b77e86c5ed19466
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36157
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Gabe Black <gabeblack@google.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-20 04:45:45 +00:00
Jason Lowe-Power
2f3f146034
misc: Minor updates to CONTRIBUTING.md
...
This brings the file slightly more up to date
Change-Id: I1ed3300ec3c4980ed22c6a6fb950fa724897906b
Signed-off-by: Jason Lowe-Power <jason@lowepower.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36255
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com >
Maintainer: Jason Lowe-Power <power.jg@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-19 14:20:30 +00:00
Gabe Black
215e12b884
misc: Wrap __attribute__((aligned())) in a macro in compiler.hh.
...
This attribute is gcc specific (also implemented by clang for
compatibility), and so should be behind a level of abstraction to make
using different compilers easier.
Change-Id: I7495f011f617268dd7a589dc0bcf1b3b7f515046
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35976
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-19 05:52:57 +00:00
Gabe Black
463cb28ca5
misc: Use compiler.hh macros when available.
...
Some places were hand coding __attribute__s when macros in compiler.hh
were available to do that job. Using the macros helps abstract away
compiler specific details and should be used when possible.
Change-Id: I94befebcfde2d673e874e9959588f69781bd9021
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35975
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-19 05:52:40 +00:00
Giacomo Travaglini
b3dc64acb9
arch-arm: Implement ArmPMU DTB generation
...
This has been implemented by following Linux documentation:
Documentation/devicetree/bindings/arm/pmu.txt
Change-Id: I22583eed3792d5828f9c260e952ec5e8cf9e118b
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35476
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
2020-10-17 10:21:08 +00:00
Giacomo Travaglini
24bada6835
dev: Use generateFdtProperty in the PioDevice
...
Change-Id: I2126bf84e0648fe76570f9645179f90bdf79eb41
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35398
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
2020-10-17 10:21:08 +00:00
Giacomo Travaglini
aee7bb1769
dev-arm: Use generateFdtProperty in the GenericTimer
...
Change-Id: I4115d14ba65685627b51b0e5438fe5a3ed9328bc
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35397
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
2020-10-17 10:21:08 +00:00
Giacomo Travaglini
328880aaa9
dev-arm: Automate FdtProperty generation with ArmInterruptPin
...
Change-Id: I1963bd139d8abd8988d5ceedaf85c74279546078
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35396
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-17 10:21:08 +00:00
Giacomo Travaglini
007f2d9533
dev-arm, fastmodel: Rewrite Gic.interruptCells
...
The affinity number (aka PPI partition) is used differently
in GICv2 and GICv3. In GICv2 it is ORed to the triggering type
(3rd cell), whereas it is encoded in the 4th cell in GICv3
Change-Id: I36e45d4ec5fb39befa1a271b531dfed2d8e56c10
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36235
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-17 10:21:08 +00:00
Giacomo Travaglini
1c5bbb6e1a
dev-arm: Define ArmInterruptType
...
This is a scoped enum meant to be used mainly in the python world
for DTB autogeneration. By making an ArmInterruptPin self aware of
its own type, we can use it in the C++ world when modelling devices.
For example if a device spec is enforcing a specific triggering behaviour,
its gem5 implementation can query the interrupt type and panic if its
expectations are not met. In this way we are sure what the Linux kernel
sees in the DTB is in sync with how the model really behaves
Change-Id: I66ae3cfbc7b1ed94804f1f882c12eb31f70840da
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35395
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com >
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-17 10:21:08 +00:00
Matthew Poremba
ab482789ab
configs: Make GPU_VIPER config python3 friendly
...
There is no xrange in python3. This will be required when eventually
20.2 is released.
Change-Id: I3a0da6353b70e6e17ce1f77d6177d48059e32487
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35855
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com >
Maintainer: Matt Sinclair <mattdsinclair@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-17 00:43:43 +00:00
Kyle Roarty
834d28c792
configs: python3 compatibility for apu_se
...
This patch changes xrange to range, as the former doesn't exist in
python3.
Change-Id: Ibe2c1fb073194e3e0713bb1718f2e323f7c4e397
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36159
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com >
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com >
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com >
Maintainer: Matt Sinclair <mattdsinclair@gmail.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-10-16 23:15:00 +00:00