diff --git a/cmd/iotrace.c b/cmd/iotrace.c index e496787..601b8c8 100644 --- a/cmd/iotrace.c +++ b/cmd/iotrace.c @@ -15,6 +15,9 @@ static void do_print_stats(void) iotrace_get_buffer(&start, &size, &offset, &count); printf("Start: %08lx\n", start); printf("Size: %08lx\n", size); + iotrace_get_region(&start, &size); + printf("Region: %08lx\n", start); + printf("Size: %08lx\n", size); printf("Offset: %08lx\n", offset); printf("Output: %08lx\n", start + offset); printf("Count: %08lx\n", count); @@ -37,6 +40,22 @@ static int do_set_buffer(int argc, char * const argv[]) return 0; } +static int do_set_region(int argc, char * const argv[]) +{ + ulong addr = 0, size = 0; + + if (argc == 2) { + addr = simple_strtoul(*argv++, NULL, 16); + size = simple_strtoul(*argv++, NULL, 16); + } else if (argc != 0) { + return CMD_RET_USAGE; + } + + iotrace_set_region(addr, size); + + return 0; +} + int do_iotrace(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { const char *cmd = argc < 2 ? NULL : argv[1]; @@ -46,6 +65,8 @@ int do_iotrace(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) switch (*cmd) { case 'b': return do_set_buffer(argc - 2, argv + 2); + case 'l': + return do_set_region(argc - 2, argv + 2); case 'p': iotrace_set_enabled(0); break; @@ -67,6 +88,7 @@ U_BOOT_CMD( "iotrace utility commands", "stats - display iotrace stats\n" "iotrace buffer
- set iotrace buffer\n" + "iotrace limit
- set iotrace region limit\n" "iotrace pause - pause tracing\n" "iotrace resume - resume tracing" );