summaryrefslogtreecommitdiff
path: root/common/cmd_mp.c
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2015-06-22 10:46:40 +0200
committerMichal Simek <michal.simek@xilinx.com>2015-07-28 11:56:29 +0200
commit711e5e26b41457e658155e7c225c9ccfed0182ef (patch)
tree7666295c1c80f0fc53b6bc904c4940d60cba0c30 /common/cmd_mp.c
parent80fd9792f5c227d0b8ed3b0d662328c81eb6bda9 (diff)
downloadu-boot-imx-711e5e26b41457e658155e7c225c9ccfed0182ef.zip
u-boot-imx-711e5e26b41457e658155e7c225c9ccfed0182ef.tar.gz
u-boot-imx-711e5e26b41457e658155e7c225c9ccfed0182ef.tar.bz2
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/cmd_mp.c')
-rw-r--r--common/cmd_mp.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/common/cmd_mp.c b/common/cmd_mp.c
index 328b338..a80c642 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]"