X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_mp.c;h=328b338068b812f613bbe3c8998ef221e8e90897;hb=c0a5b0816f545938bd8dccc1e775d0ea6e49b286;hp=d96e6a302d49d7bbb3b9f030728f0b796a0b74f9;hpb=ec2b74ffd36f02c6123725e7c2533dd2deaf4b64;p=u-boot diff --git a/common/cmd_mp.c b/common/cmd_mp.c index d96e6a302d..328b338068 100644 --- a/common/cmd_mp.c +++ b/common/cmd_mp.c @@ -1,96 +1,73 @@ /* - * Copyright 2008 Freescale Semiconductor, Inc. + * Copyright 2008-2009 Freescale Semiconductor, Inc. * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ #include #include -int -cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +static int +cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - unsigned long cpuid, val = 0; + unsigned long cpuid; - if (argc < 3) { - printf ("Usage:\n%s\n", cmdtp->usage); - return 1; - } + if (argc < 3) + return CMD_RET_USAGE; cpuid = simple_strtoul(argv[1], NULL, 10); - if (cpuid >= CONFIG_NR_CPUS) { - printf ("Core num: %d is out of range[0..%d]\n", - cpuid, CONFIG_NR_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 { - printf ("Usage:\n%s\n", cmdtp->usage); - 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) { - printf ("Usage:\n%s\n", cmdtp->usage); - return 1; - } + if (strncmp(argv[2], "release", 7) != 0) + return CMD_RET_USAGE; - val = simple_strtoul(argv[3], NULL, 16); - - if (cpu_release(cpuid, val, argc - 4, argv + 4)) { - printf ("Usage:\n%s\n", cmdtp->usage); - return 1; - } + if (cpu_release(cpuid, argc - 3, argv + 3)) + return CMD_RET_USAGE; return 0; } +#ifdef CONFIG_SYS_LONGHELP +static char cpu_help_text[] = + " reset - Reset cpu \n" + "cpu status - Status of cpu \n" + "cpu disable - Disable cpu \n" + "cpu release [args] - Release cpu at with [args]" #ifdef CONFIG_PPC -#define CPU_ARCH_HELP \ - " [args] : \n" \ + "\n" + " [args] : \n" \ " pir - processor id (if writeable)\n" \ " r3 - value for gpr 3\n" \ - " r4 - value for gpr 4\n" \ " r6 - value for gpr 6\n" \ - " r7 - value for gpr 7\n" \ "\n" \ " Use '-' for any arg if you want the default value.\n" \ - " Default for r3, r4, r7 is 0, r6 is 0x65504150\n" \ + " Default for r3 is and r6 is 0\n" \ "\n" \ - " When cpu is released r5 = 0 per the ePAPR spec.\n" + " When cpu is released r4 and r5 = 0.\n" \ + " r7 will contain the size of the initial mapped area" +#endif + ""; #endif U_BOOT_CMD( - cpu, CFG_MAXARGS, 1, cpu_cmd, - "cpu - Multiprocessor CPU boot manipulation and release\n", - " reset - Reset cpu \n" - "cpu status - Status of cpu \n" - "cpu release [args] - Release cpu at with [args]\n" -#ifdef CPU_ARCH_HELP - CPU_ARCH_HELP -#endif - ); + cpu, CONFIG_SYS_MAXARGS, 1, cpu_cmd, + "Multiprocessor CPU boot manipulation and release", cpu_help_text +);