debug: Fix the XLEN command line check
authorMegan Wachs <megan@sifive.com>
Fri, 17 Nov 2017 19:27:04 +0000 (11:27 -0800)
committerMegan Wachs <megan@sifive.com>
Fri, 17 Nov 2017 19:27:04 +0000 (11:27 -0800)
debug/targets.py

index e92b5932c00ff453542d8165bc136a06763b34d7..1401f1d0565c662938417a170535ac5ec43a92e2 100644 (file)
@@ -153,9 +153,9 @@ def add_target_options(parser):
             help="The command to use to start the debug server (e.g. OpenOCD)")
 
     xlen_group = parser.add_mutually_exclusive_group()
-    xlen_group.add_argument("--32", action="store_const", const=32, dest="xlen",
+    xlen_group.add_argument("--32", action="store_const", const=32, dest="xlen", default=0,
             help="Force the target to be 32-bit.")
-    xlen_group.add_argument("--64", action="store_const", const=64, dest="xlen",
+    xlen_group.add_argument("--64", action="store_const", const=64, dest="xlen", default=0,
             help="Force the target to be 64-bit.")
 
     parser.add_argument("--isolate", action="store_true",
@@ -180,10 +180,11 @@ def target(parsed):
 
     t = found[0](parsed.target, parsed)
     assert t.harts, "%s doesn't have any harts defined!" % t.name
-    for h in t.harts :
-        if (h.xlen == 0):
-            h.xlen = parsed.xlen
-        elif (h.xlen != parsed.xlen):
-            raise Exception("The target has an XLEN of %d, but the command line specified an XLEN of %d. They must match." % (h.xlen, parsed.xlen))
+    if (parsed.xlen > 0):
+        for h in t.harts :
+            if (h.xlen == 0):
+                h.xlen = parsed.xlen
+            elif (h.xlen != parsed.xlen):
+                raise Exception("The target hart specified an XLEN of %d, but the command line specified an XLEN of %d. They must match." % (h.xlen, parsed.xlen))
 
     return t