config: Warn not fail for ARM systems configured with ruby
authorNikos Nikoleris <nikos.nikoleris@arm.com>
Mon, 6 Mar 2017 09:57:25 +0000 (09:57 +0000)
committerNikos Nikoleris <nikos.nikoleris@arm.com>
Tue, 13 Jun 2017 15:54:03 +0000 (15:54 +0000)
Ruby for ARM systems is not fully supported but certain configurations
are expected to work. This change removes the more general fail
statement and warns or fails depending on the particular
configuration.

Change-Id: Ic24799aff966ba15858b93482e0f24a8672d9483
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2905
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
configs/common/FSConfig.py

index cf9f034bc92389c3f602b81450ede48044059df4..b1d87f26f968fa566a55d42253373b670d14b22b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2010-2012, 2015-2016 ARM Limited
+# Copyright (c) 2010-2012, 2015-2017 ARM Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -402,9 +402,12 @@ def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
         self.system_port = self.membus.slave
 
     if ruby:
-        fatal("You're trying to use Ruby on ARM, which is not working " \
-              "properly yet. If you want to test it anyway, you " \
-              "need to remove this fatal error from FSConfig.py.")
+        if buildEnv['PROTOCOL'] == 'MI_example' and num_cpus > 1:
+            fatal("The MI_example protocol cannot implement Load/Store "
+                  "Exclusive operations. Multicore ARM systems configured "
+                  "with the MI_example protocol will not work properly.")
+        warn("You are trying to use Ruby on ARM, which is not working "
+             "properly yet.")
 
     return self