harness: put in basic functionality for testing multicore ARMv7
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Wed, 19 Oct 2016 15:45:27 +0000 (17:45 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Wed, 19 Oct 2016 15:45:29 +0000 (17:45 +0200)
default_bootmodules() for ARMv7:
 * Add kaluga with arguments parsed from template menu.lst for machine
 * Add "corectrl auto"

panda_local:
 * Return ncores = 2

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>

tools/harness/barrelfish.py
tools/harness/machines/__init__.py
tools/harness/machines/pandaboard.py

index 6e9f150..6460837 100644 (file)
@@ -146,12 +146,8 @@ def default_bootmodules(build, machine):
         m.add_module("%s/sbin/kaluga" % a,
                 ["boot", "eth0=%d:%d:%d" % machine.get_eth0()])
 
-    # do not try to boot second core on PandaBoard for now!
-    if a == "armv7" and machine.get_platform() == "arm_gem5":
-       if machine.get_ncores() == 2:
-               m.add_module("corectrl", ["boot", "1"])
-       elif machine.get_ncores() == 4:
-            m.add_module("corectrl", ["boot", "1"])
-            m.add_module("corectrl", ["boot", "2"])
-            m.add_module("corectrl", ["boot", "3"])
+    # coreboot should work on armv7 now
+    if a == "armv7":
+        m.add_module("corectrl", ["auto"])
+        m.add_module("kaluga", machine.get_kaluga_args())
     return m
index ad9dc1c..002f4a3 100644 (file)
@@ -118,6 +118,7 @@ class ARMMachineBase(Machine):
         self.menulst = None
         self.mmap = None
         self.kernel_args = None
+        self.kaluga_args = None
         self.menulst_template = "menu.lst." + self.get_bootarch() + "_" + \
                                 self.get_platform() + ("_%d" % self.get_ncores())
         self._set_kernel_image()
@@ -159,6 +160,15 @@ class ARMMachineBase(Machine):
         debug.debug("got MMAP:\n  %s" % "  ".join(self.mmap))
         return self.mmap
 
+    def get_kaluga_args(self):
+        if self.kaluga_args is None:
+            for line in self._get_template_menu_lst():
+                if 'kaluga' in line:
+                    _,_,args = line.strip().split(' ', 2)
+                    self.kaluga_args = args.split(' ')
+                    break
+        return self.kaluga_args
+
     def _write_menu_lst(self, data, path):
         debug.verbose('writing %s' % path)
         debug.debug(data)
index 46425b1..794a148 100644 (file)
@@ -36,6 +36,9 @@ class PandaboardMachine(ARMMachineBase):
     def setup(self, builddir=None):
         pass
 
+    def get_ncores(self):
+        return 2
+
     def get_bootarch(self):
         return 'armv7'