parent
e831ad54aa
commit
5dfa25f25b
@ -0,0 +1,328 @@ |
|||||||
|
/*
|
||||||
|
* (C) Copyright 2000 |
||||||
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||||
|
* |
||||||
|
* 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 |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Command Processor Table |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <common.h> |
||||||
|
#include <command.h> |
||||||
|
#include <cmd_cache.h> |
||||||
|
#include <cmd_mem.h> |
||||||
|
#include <cmd_boot.h> |
||||||
|
#include <cmd_flash.h> |
||||||
|
#include <cmd_bootm.h> |
||||||
|
#include <cmd_net.h> |
||||||
|
#include <cmd_nvedit.h> |
||||||
|
#include <cmd_misc.h> |
||||||
|
#include <cmd_kgdb.h> |
||||||
|
#include <cmd_ide.h> |
||||||
|
#include <cmd_disk.h> |
||||||
|
#include <cmd_console.h> |
||||||
|
#include <cmd_reginfo.h> |
||||||
|
#include <cmd_pcmcia.h> |
||||||
|
#include <cmd_autoscript.h> |
||||||
|
#include <cmd_diag.h> |
||||||
|
|
||||||
|
#include <cmd_eeprom.h> |
||||||
|
#include <cmd_i2c.h> |
||||||
|
#include <cmd_immap.h> |
||||||
|
#include <cmd_rtc.h> |
||||||
|
|
||||||
|
#include <cmd_elf.h> |
||||||
|
#include <cmd_fdc.h> /* Floppy support */ |
||||||
|
#include <cmd_usb.h> /* USB support */ |
||||||
|
#include <cmd_scsi.h> |
||||||
|
#include <cmd_pci.h> |
||||||
|
#include <cmd_mii.h> |
||||||
|
#include <cmd_dcr.h> /* 4xx DCR register access */ |
||||||
|
#include <cmd_doc.h> |
||||||
|
#include <cmd_jffs2.h> |
||||||
|
#include <cmd_fpga.h> |
||||||
|
|
||||||
|
#include <cmd_bsp.h> /* board special functions */ |
||||||
|
|
||||||
|
#include <cmd_bedbug.h> |
||||||
|
#include <cmd_elf.h> |
||||||
|
|
||||||
|
#include <cmd_dtt.h> |
||||||
|
|
||||||
|
#include <cmd_vfd.h> /* load a bitmap to the VFDs on TRAB */ |
||||||
|
|
||||||
|
/*
|
||||||
|
* HELP command |
||||||
|
*/ |
||||||
|
#define CMD_TBL_HELP MK_CMD_TBL_ENTRY( \ |
||||||
|
"help", 1, CFG_MAXARGS, 1, do_help, \
|
||||||
|
"help - print online help\n", \
|
||||||
|
"[command ...]\n" \
|
||||||
|
" - show help information (for 'command')\n" \
|
||||||
|
"'help' prints online help for the monitor commands.\n\n" \
|
||||||
|
"Without arguments, it prints a short usage message for all commands.\n\n" \
|
||||||
|
"To get detailed help information for specific commands you can type\n" \
|
||||||
|
"'help' with one or more command names as arguments.\n" \
|
||||||
|
), |
||||||
|
|
||||||
|
#define CMD_TBL_QUES MK_CMD_TBL_ENTRY( \ |
||||||
|
"?", 1, CFG_MAXARGS, 1, do_help, \
|
||||||
|
"? - alias for 'help'\n", \
|
||||||
|
NULL \
|
||||||
|
), |
||||||
|
|
||||||
|
#define CMD_TBL_VERS MK_CMD_TBL_ENTRY( \ |
||||||
|
"version", 4, 1, 1, do_version, \
|
||||||
|
"version - print monitor version\n", \
|
||||||
|
NULL \
|
||||||
|
), |
||||||
|
|
||||||
|
#define CMD_TBL_ECHO MK_CMD_TBL_ENTRY( \ |
||||||
|
"echo", 4, CFG_MAXARGS, 1, do_echo, \
|
||||||
|
"echo - echo args to console\n", \
|
||||||
|
"[args..]\n" \
|
||||||
|
" - echo args to console; \\c suppresses newline\n" \
|
||||||
|
), |
||||||
|
|
||||||
|
int |
||||||
|
do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
||||||
|
{ |
||||||
|
extern char version_string[]; |
||||||
|
printf ("\n%s\n", version_string); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
int |
||||||
|
do_echo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
||||||
|
{ |
||||||
|
int i, putnl = 1; |
||||||
|
|
||||||
|
for (i = 1; i < argc; i++) { |
||||||
|
char *p = argv[i], c; |
||||||
|
|
||||||
|
if (i > 1) |
||||||
|
putc(' '); |
||||||
|
while ((c = *p++) != '\0') |
||||||
|
if (c == '\\' && *p == 'c') { |
||||||
|
putnl = 0; |
||||||
|
p++; |
||||||
|
} |
||||||
|
else |
||||||
|
putc(c); |
||||||
|
} |
||||||
|
|
||||||
|
if (putnl) |
||||||
|
putc('\n'); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* Use puts() instead of printf() to avoid printf buffer overflow |
||||||
|
* for long help messages |
||||||
|
*/ |
||||||
|
int |
||||||
|
do_help (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
||||||
|
{ |
||||||
|
int i; |
||||||
|
int rcode = 0; |
||||||
|
|
||||||
|
if (argc == 1) { /* print short help (usage) */ |
||||||
|
|
||||||
|
for (cmdtp=&cmd_tbl[0]; cmdtp->name; cmdtp++) { |
||||||
|
/* allow user abort */ |
||||||
|
if (ctrlc()) |
||||||
|
return 1; |
||||||
|
|
||||||
|
if (cmdtp->usage == NULL) |
||||||
|
continue; |
||||||
|
puts (cmdtp->usage); |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* command help (long version) |
||||||
|
*/ |
||||||
|
for (i=1; i<argc; ++i) { |
||||||
|
if ((cmdtp = find_cmd(argv[i])) != NULL) { |
||||||
|
#ifdef CFG_LONGHELP |
||||||
|
/* found - print (long) help info */ |
||||||
|
puts (cmdtp->name); |
||||||
|
putc (' '); |
||||||
|
if (cmdtp->help) { |
||||||
|
puts (cmdtp->help); |
||||||
|
} else { |
||||||
|
puts ("- No help available.\n"); |
||||||
|
rcode = 1; |
||||||
|
} |
||||||
|
putc ('\n'); |
||||||
|
#else /* no long help available */ |
||||||
|
if (cmdtp->usage) |
||||||
|
puts (cmdtp->usage); |
||||||
|
#endif /* CFG_LONGHELP */ |
||||||
|
} |
||||||
|
else { |
||||||
|
printf ("Unknown command '%s' - try 'help'" |
||||||
|
" without arguments for list of all" |
||||||
|
" known commands\n\n", |
||||||
|
argv[i] |
||||||
|
); |
||||||
|
rcode = 1; |
||||||
|
} |
||||||
|
} |
||||||
|
return rcode; |
||||||
|
} |
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* find command table entry for a command |
||||||
|
*/ |
||||||
|
cmd_tbl_t *find_cmd(const char *cmd) |
||||||
|
{ |
||||||
|
cmd_tbl_t *cmdtp; |
||||||
|
|
||||||
|
/* Search command table - Use linear search - it's a small table */ |
||||||
|
for (cmdtp = &cmd_tbl[0]; cmdtp->name; cmdtp++) { |
||||||
|
if (strncmp (cmd, cmdtp->name, cmdtp->lmin) == 0) |
||||||
|
return cmdtp; |
||||||
|
} |
||||||
|
return NULL; /* not found */ |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* The commands in this table are sorted alphabetically by the |
||||||
|
* command name and in descending order by the command name string |
||||||
|
* length. This is to prevent conflicts in command name parsing. |
||||||
|
* Please ensure that new commands are added according to that rule. |
||||||
|
* Please use $(TOPDIR)/doc/README.commands as a reference AND make |
||||||
|
* sure it gets updated. |
||||||
|
*/ |
||||||
|
|
||||||
|
cmd_tbl_t cmd_tbl[] = { |
||||||
|
CMD_TBL_ASKENV |
||||||
|
CMD_TBL_ASM |
||||||
|
CMD_TBL_AUTOSCRIPT |
||||||
|
CMD_TBL_BASE |
||||||
|
CMD_TBL_BDINFO |
||||||
|
CMD_TBL_BOOTELF |
||||||
|
CMD_TBL_BOOTM |
||||||
|
CMD_TBL_BOOTP |
||||||
|
CMD_TBL_BOOTVX |
||||||
|
CMD_TBL_BOOTD |
||||||
|
CMD_TBL_BREAK |
||||||
|
CMD_TBL_BRGINFO |
||||||
|
CMD_TBL_CARINFO |
||||||
|
CMD_TBL_JFFS2_CHPART |
||||||
|
CMD_TBL_CMP |
||||||
|
CMD_TBL_CONINFO |
||||||
|
CMD_TBL_CONTINUE |
||||||
|
CMD_TBL_CP |
||||||
|
CMD_TBL_CRC |
||||||
|
CMD_TBL_DATE |
||||||
|
CMD_TBL_DCACHE |
||||||
|
CMD_TBL_DHCP |
||||||
|
CMD_TBL_DIAG |
||||||
|
CMD_TBL_DISK |
||||||
|
CMD_TBL_DMAINFO |
||||||
|
CMD_TBL_DIS |
||||||
|
CMD_TBL_DOCBOOT |
||||||
|
CMD_TBL_DOC |
||||||
|
CMD_TBL_DTT |
||||||
|
CMD_TBL_ECHO |
||||||
|
CMD_TBL_EEPROM |
||||||
|
CMD_TBL_FCCINFO |
||||||
|
CMD_TBL_FLERASE |
||||||
|
CMD_TBL_FDC |
||||||
|
CMD_TBL_FLINFO |
||||||
|
CMD_TBL_FPGA |
||||||
|
CMD_TBL_JFFS2_FSINFO |
||||||
|
CMD_TBL_JFFS2_FSLOAD |
||||||
|
CMD_TBL_GETDCR |
||||||
|
CMD_TBL_GO |
||||||
|
CMD_TBL_HELP |
||||||
|
CMD_TBL_HWFLOW |
||||||
|
CMD_TBL_I2CINFO |
||||||
|
CMD_TBL_ICACHE |
||||||
|
#ifdef CONFIG_8260 |
||||||
|
CMD_TBL_ICINFO |
||||||
|
#endif |
||||||
|
CMD_TBL_IMD |
||||||
|
CMD_TBL_IMM |
||||||
|
CMD_TBL_INM |
||||||
|
CMD_TBL_IMW |
||||||
|
CMD_TBL_ICRC |
||||||
|
CMD_TBL_IPROBE |
||||||
|
CMD_TBL_ILOOP |
||||||
|
CMD_TBL_ISDRAM |
||||||
|
CMD_TBL_IDE |
||||||
|
CMD_TBL_IMINFO |
||||||
|
CMD_TBL_IOPINFO |
||||||
|
CMD_TBL_IOPSET |
||||||
|
CMD_TBL_IRQINFO |
||||||
|
CMD_TBL_KGDB |
||||||
|
CMD_TBL_LOADB |
||||||
|
CMD_TBL_LOADS |
||||||
|
CMD_TBL_LOOP |
||||||
|
CMD_TBL_JFFS2_LS |
||||||
|
CMD_TBL_MCCINFO |
||||||
|
CMD_TBL_MD |
||||||
|
CMD_TBL_MEMCINFO |
||||||
|
CMD_TBL_MII |
||||||
|
CMD_TBL_MM |
||||||
|
CMD_TBL_MTEST |
||||||
|
CMD_TBL_MUXINFO |
||||||
|
CMD_TBL_MW |
||||||
|
CMD_TBL_NEXT |
||||||
|
CMD_TBL_NM |
||||||
|
CMD_TBL_PCI |
||||||
|
CMD_TBL_PRINTENV |
||||||
|
CMD_TBL_PROTECT |
||||||
|
CMD_TBL_RARPB |
||||||
|
CMD_TBL_RDUMP |
||||||
|
CMD_TBL_PINIT |
||||||
|
CMD_TBL_REGINFO |
||||||
|
CMD_TBL_RESET |
||||||
|
CMD_TBL_RUN |
||||||
|
CMD_TBL_SAVEENV |
||||||
|
CMD_TBL_SAVES |
||||||
|
CMD_TBL_SCCINFO |
||||||
|
CMD_TBL_SCSIBOOT |
||||||
|
CMD_TBL_SCSI |
||||||
|
CMD_TBL_SETDCR |
||||||
|
CMD_TBL_SETENV |
||||||
|
CMD_TBL_SIINFO |
||||||
|
CMD_TBL_SITINFO |
||||||
|
CMD_TBL_SIUINFO |
||||||
|
CMD_TBL_MISC /* sleep */ |
||||||
|
CMD_TBL_SMCINFO |
||||||
|
CMD_TBL_SPIINFO |
||||||
|
CMD_TBL_STACK |
||||||
|
CMD_TBL_STEP |
||||||
|
CMD_TBL_TFTPB |
||||||
|
CMD_TBL_USBBOOT |
||||||
|
CMD_TBL_USB |
||||||
|
CMD_TBL_VERS |
||||||
|
CMD_TBL_BSP |
||||||
|
CMD_TBL_VFD |
||||||
|
CMD_TBL_QUES /* keep this ("help") the last entry */ |
||||||
|
/* the following entry terminates this table */ |
||||||
|
MK_CMD_TBL_ENTRY( NULL, 0, 0, 0, NULL, NULL, NULL ) |
||||||
|
}; |
@ -0,0 +1,44 @@ |
|||||||
|
/*
|
||||||
|
* (C) Copyright 2000 |
||||||
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
||||||
|
* |
||||||
|
* 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 |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Miscellanious commands |
||||||
|
*/ |
||||||
|
#ifndef _CMD_VFD_H |
||||||
|
#define _CMD_VFD_H |
||||||
|
|
||||||
|
#if (CONFIG_COMMANDS & CFG_CMD_VFD) |
||||||
|
#define CMD_TBL_VFD MK_CMD_TBL_ENTRY( \ |
||||||
|
"vfd", 3, 2, 0, do_vfd, \
|
||||||
|
"vfd - load a bitmap to the VFDs on TRAB\n", \
|
||||||
|
"N\n" \
|
||||||
|
" - load bitmap N to the VFDs (N is _decimal_ !!!)\n"\
|
||||||
|
), |
||||||
|
|
||||||
|
/* Implemented in common/cmd_misc.c */ |
||||||
|
int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); |
||||||
|
#else |
||||||
|
#define CMD_TBL_VFD |
||||||
|
#endif /* CFG_CMD_VFD */ |
||||||
|
|
||||||
|
#endif /* _CMD_VFD_H */ |
Loading…
Reference in new issue