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:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user