arch,cpu: Distribute KVM checks and get rid of ISA switch statement.

Because tags don't work properly on SimObject()s right now (which will
be fixed by my SCons series), there are extra checks which manually
exclude files that should be excluded by their tags automatically.

Change-Id: Idb110269d6400ae6892eac994e673121e49b937c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52495
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
Gabe Black
2021-11-01 17:56:10 -07:00
parent d759b42869
commit 605c7ac88e
6 changed files with 139 additions and 71 deletions

View File

@@ -37,29 +37,27 @@
Import('*')
if not env['CONF']['USE_KVM']:
Return()
if env['CONF']['USE_KVM']:
env.TagImplies('kvm', 'gem5 lib')
env.TagImplies(env.subst('${CONF["KVM_ISA"]} kvm'),
env.subst('${CONF["KVM_ISA"]} isa'))
kvm_isa = env['CONF']['KVM_ISA']
if not env['CONF'][f'USE_{kvm_isa.upper()}_ISA']:
Return()
SimObject('KvmVM.py', sim_objects=['KvmVM'], tags='kvm')
SimObject('BaseKvmCPU.py', sim_objects=['BaseKvmCPU'], tags='kvm')
SimObject('KvmVM.py', sim_objects=['KvmVM'])
SimObject('BaseKvmCPU.py', sim_objects=['BaseKvmCPU'])
Source('base.cc', tags='kvm')
Source('device.cc', tags='kvm')
Source('vm.cc', tags='kvm')
Source('perfevent.cc', tags='kvm')
Source('timer.cc', tags='kvm')
Source('base.cc')
Source('device.cc')
Source('vm.cc')
Source('perfevent.cc')
Source('timer.cc')
DebugFlag('Kvm', 'Basic KVM Functionality')
DebugFlag('KvmContext', 'KVM/gem5 context synchronization')
DebugFlag('KvmIO', 'KVM MMIO diagnostics')
DebugFlag('KvmInt', 'KVM Interrupt handling')
DebugFlag('KvmRun', 'KvmRun entry/exit diagnostics')
DebugFlag('KvmTimer', 'KVM timing')
DebugFlag('Kvm', 'Basic KVM Functionality', tags='kvm')
DebugFlag('KvmContext', 'KVM/gem5 context synchronization', tags='kvm')
DebugFlag('KvmIO', 'KVM MMIO diagnostics', tags='kvm')
DebugFlag('KvmInt', 'KVM Interrupt handling', tags='kvm')
DebugFlag('KvmRun', 'KvmRun entry/exit diagnostics', tags='kvm')
DebugFlag('KvmTimer', 'KVM timing', tags='kvm')
CompoundFlag('KvmAll', [ 'Kvm', 'KvmContext', 'KvmRun',
'KvmIO', 'KvmInt', 'KvmTimer' ],
'All KVM debug flags')
'All KVM debug flags', tags='kvm')