diff --git a/scripts/runfvp b/scripts/runfvp index 4ef0bfc6..47612701 100755 --- a/scripts/runfvp +++ b/scripts/runfvp @@ -46,9 +46,18 @@ def runfvp(args): group.add_argument("-c", "--console", action="store_true", help="Attach the first uart to stdin/stdout") parser.add_argument("-C", "--parameter", action="append", default=[], help="Extra configuration parameters for FVP") parser.add_argument("--verbose", action="store_true", help="Output verbose logging") + parser.usage = f"{parser.format_usage().strip()} -- [ arguments passed to FVP ]" # TODO option for telnet vs netcat - args = parser.parse_args() + try: + i = sys.argv.index("--") + arguments = sys.argv[1:i] + fvp_args = sys.argv[i+1:] + except ValueError: + arguments = sys.argv[1:] + fvp_args = [] + + args = parser.parse_args(args=arguments) logging.basicConfig(level=args.verbose and logging.DEBUG or logging.WARNING) logger.debug(f"Parsed arguments are {vars(args)}") @@ -120,10 +129,13 @@ def runfvp(args): cli.extend(config["args"]) - # Finally add the user's extra arguments + # Add any explicit --parameter calls for param in args.parameter: cli.extend(["--parameter", param]) + # Finally add the user's extra arguments + cli.extend(fvp_args) + logger.debug(f"Constructed FVP call: {cli}") if args.console: expected_terminal = config["console"]