diff options
author | Michal Simek <michal.simek@xilinx.com> | 2015-06-22 10:46:40 +0200 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2015-07-28 11:56:29 +0200 |
commit | 711e5e26b41457e658155e7c225c9ccfed0182ef (patch) | |
tree | 7666295c1c80f0fc53b6bc904c4940d60cba0c30 /common | |
parent | 80fd9792f5c227d0b8ed3b0d662328c81eb6bda9 (diff) | |
download | u-boot-711e5e26b41457e658155e7c225c9ccfed0182ef.tar.gz |
cmd_mp: Add support for showing all CPU status by one command
Use one command for showing overall CPU status than several without
knowing how many cpus is available in the system.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_mp.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/common/cmd_mp.c b/common/cmd_mp.c index 328b338068..a80c642157 100644 --- a/common/cmd_mp.c +++ b/common/cmd_mp.c @@ -7,11 +7,32 @@ #include <common.h> #include <command.h> +static int cpu_status_all(void) +{ + unsigned long cpuid; + + for (cpuid = 0; ; cpuid++) { + if (!is_core_valid(cpuid)) { + if (cpuid == 0) { + printf("Core num: %lu is not valid\n", cpuid); + return 1; + } + break; + } + cpu_status(cpuid); + } + + return 0; +} + static int cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { unsigned long cpuid; + if (argc == 2 && strncmp(argv[1], "status", 6) == 0) + return cpu_status_all(); + if (argc < 3) return CMD_RET_USAGE; @@ -48,6 +69,7 @@ cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #ifdef CONFIG_SYS_LONGHELP static char cpu_help_text[] = "<num> reset - Reset cpu <num>\n" + "cpu status - Status of all cpus\n" "cpu <num> status - Status of cpu <num>\n" "cpu <num> disable - Disable cpu <num>\n" "cpu <num> release <addr> [args] - Release cpu <num> at <addr> with [args]" |