config, kvm: Enabling KvmCPU in SE mode
authorAlexandru Dutu <alexandru.dutu@amd.com>
Mon, 24 Nov 2014 02:01:08 +0000 (18:01 -0800)
committerAlexandru Dutu <alexandru.dutu@amd.com>
Mon, 24 Nov 2014 02:01:08 +0000 (18:01 -0800)
This patch modifies se.py such that it can now use kvm cpu model.

configs/example/se.py

index 83eabdc83448c45b554918aab0f36678d2fb6c3e..eb84482704ef5355711b1ac2d88901ad66b51cd0 100644 (file)
@@ -62,6 +62,13 @@ import MemConfig
 from Caches import *
 from cpu2000 import *
 
+# Check if KVM support has been enabled, we might need to do VM
+# configuration if that's the case.
+have_kvm_support = 'BaseKvmCPU' in globals()
+def is_kvm_cpu(cpu_class):
+    return have_kvm_support and cpu_class != None and \
+        issubclass(cpu_class, BaseKvmCPU)
+
 def get_processes(options):
     """Interprets provided options and returns a list of processes"""
 
@@ -187,6 +194,15 @@ system.cpu_clk_domain = SrcClockDomain(clock = options.cpu_clock,
 for cpu in system.cpu:
     cpu.clk_domain = system.cpu_clk_domain
 
+if is_kvm_cpu(CPUClass) or is_kvm_cpu(FutureClass):
+    if buildEnv['TARGET_ISA'] == 'x86':
+        system.vm = KvmVM()
+        for process in multiprocesses:
+            process.useArchPT = True
+            process.kvmInSE = True
+    else:
+        fatal("KvmCPU can only be used in SE mode with x86")
+
 # Sanity check
 if options.fastmem:
     if CPUClass != AtomicSimpleCPU: