diff options
Diffstat (limited to 'debug/targets.py')
-rw-r--r-- | debug/targets.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/debug/targets.py b/debug/targets.py index e92b593..1401f1d 100644 --- a/debug/targets.py +++ b/debug/targets.py @@ -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 |