X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_mp.c;h=4b27be495672201b35031ef4a3f5b335c8728341;hb=57210c7cc363cf2a2a28010658c7ea67388f8d21;hp=a0839c2fbb43f78d538dcebc92b6d3165093ccd5;hpb=ee924e00300bd1136589b2d5f8ad1f008df01bd4;p=u-boot diff --git a/common/cmd_mp.c b/common/cmd_mp.c index a0839c2fbb..4b27be4956 100644 --- a/common/cmd_mp.c +++ b/common/cmd_mp.c @@ -1,5 +1,5 @@ /* - * Copyright 2008 Freescale Semiconductor, Inc. + * Copyright 2008-2009 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project. @@ -24,45 +24,39 @@ #include int -cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { unsigned long cpuid; - if (argc < 3) { - cmd_usage(cmdtp); - return 1; - } + if (argc < 3) + return CMD_RET_USAGE; cpuid = simple_strtoul(argv[1], NULL, 10); - if (cpuid >= CONFIG_NUM_CPUS) { - printf ("Core num: %lu is out of range[0..%d]\n", - cpuid, CONFIG_NUM_CPUS - 1); + if (!is_core_valid(cpuid)) { + printf ("Core num: %lu is not valid\n", cpuid); return 1; } if (argc == 3) { - if (strncmp(argv[2], "reset", 5) == 0) { + if (strncmp(argv[2], "reset", 5) == 0) cpu_reset(cpuid); - } else if (strncmp(argv[2], "status", 6) == 0) { + else if (strncmp(argv[2], "status", 6) == 0) cpu_status(cpuid); - } else { - cmd_usage(cmdtp); - return 1; - } + else if (strncmp(argv[2], "disable", 7) == 0) + return cpu_disable(cpuid); + else + return CMD_RET_USAGE; + return 0; } /* 4 or greater, make sure its release */ - if (strncmp(argv[2], "release", 7) != 0) { - cmd_usage(cmdtp); - return 1; - } + if (strncmp(argv[2], "release", 7) != 0) + return CMD_RET_USAGE; - if (cpu_release(cpuid, argc - 3, argv + 3)) { - cmd_usage(cmdtp); - return 1; - } + if (cpu_release(cpuid, argc - 3, argv + 3)) + return CMD_RET_USAGE; return 0; } @@ -78,7 +72,7 @@ cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) " Default for r3 is and r6 is 0\n" \ "\n" \ " When cpu is released r4 and r5 = 0.\n" \ - " r7 will contain the size of the initial mapped area\n" + " r7 will contain the size of the initial mapped area" #endif U_BOOT_CMD( @@ -86,8 +80,10 @@ U_BOOT_CMD( "Multiprocessor CPU boot manipulation and release", " reset - Reset cpu \n" "cpu status - Status of cpu \n" - "cpu release [args] - Release cpu at with [args]\n" + "cpu disable - Disable cpu \n" + "cpu release [args] - Release cpu at with [args]" #ifdef CPU_ARCH_HELP + "\n" CPU_ARCH_HELP #endif - ); +);