summaryrefslogtreecommitdiff
path: root/common/main.c
Commit message (Collapse)AuthorAgeLines
* Make sure that argv[] argument pointers are not modified.Wolfgang Denk2010-07-04-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hush shell dynamically allocates (and re-allocates) memory for the argument strings in the "char *argv[]" argument vector passed to commands. Any code that modifies these pointers will cause serious corruption of the malloc data structures and crash U-Boot, so make sure the compiler can check that no such modifications are being done by changing the code into "char * const argv[]". This modification is the result of debugging a strange crash caused after adding a new command, which used the following argument processing code which has been working perfectly fine in all Unix systems since version 6 - but not so in U-Boot: int main (int argc, char **argv) { while (--argc > 0 && **++argv == '-') { /* ====> */ while (*++*argv) { switch (**argv) { case 'd': debug++; break; ... default: usage (); } } } ... } The line marked "====>" will corrupt the malloc data structures and usually cause U-Boot to crash when the next command gets executed by the shell. With the modification, the compiler will prevent this with an error: increment of read-only location '*argv' N.B.: The code above can be trivially rewritten like this: while (--argc > 0 && **++argv == '-') { char *arg = *argv; while (*++arg) { switch (*arg) { ... Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* Remove AmigaOneG3SE boardWolfgang Denk2010-06-23-8/+1
| | | | | | | | | | The AmigaOneG3SE board has been orphaned or a very long time, and broken for more than 12 releases resp. more than 3 years. As nobody seems to be interested any more in this stuff we may as well ged rid of it, especially as it clutters many areas of the code so it is a continuous pain for all kinds of ongoing work. Signed-off-by: Wolfgang Denk <wd@denx.de>
* FIX: watchdog timeout, while waiting for inputJens Scharsig2010-04-10-0/+3
| | | | | | | | * add WATCHDOG_RESET to !tstc() loops * prevents watchdog timeout, while waiting for input, if CONFIG_BOOT_RETRY_TIME or CONFIG_SHOW_ACTIVITY defined Signed-off-by: Jens Scharsig <js_at_ng@scharsoft.de>
* cmd history: Match history buffer size to console bufferJohn Schmoller2010-03-21-1/+1
| | | | | | | | Match history buffer size to console buffer size. History buffer size was hard coded to 256, artificially limiting the command buffer size. The history buffer now tracks CONFIG_SYS_CBSIZE. Signed-off-by: John Schmoller <jschmoller@xes-inc.com>
* console: Fix console buffer overrunJohn Schmoller2010-03-21-2/+2
| | | | | | | | | When CONFIG_SYS_CBSIZE equals MAX_CMDBUF_SIZE, a command string of maximum length will overwrite part of the history buffer, causing the board to die. Expand the console_buffer and hist_lines buffer by one character each to hold the missing NULL char. Signed-off-by: John Schmoller <jschmoller@xes-inc.com>
* Move CONFIG_UPDATE_TFTP code after CONFIG_PREBOOTWolfgang Denk2010-03-11-4/+4
| | | | | | | | | | | | The auto-update feature (CONFIG_UPDATE_TFTP) requires that the env variable serverip be set for the TFTP access. If DHCP is to be used to get the serverip env variable, this doesn't work as DHCP happens after the auto-update attempt has run. A solution is to run DHCP in PREBOOT, but even this is too late. To solve this, we move update_tftp() below the PREBOOT stuff. Signed-off-by: Wolfgang Denk <wd@denx.de>
* readline(): Add ability to modify a string bufferPeter Tyser2009-10-27-0/+10
| | | | | | | | | | | | If the 'buf' parameter is a non-0-length string, its contents will be edited. Previously, the initial contents of 'buf' were ignored and the user entered its contents from scratch. This change is necessary to support the upcoming "editenv" command but could also be used for future commands which require a user to modify an existing string. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* cread_line(): Remove unused variablesPeter Tyser2009-10-27-4/+1
| | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Check for NULL prompt in readline_into_buffer()Peter Tyser2009-10-27-1/+2
| | | | | | | | | | | | | Previously, passing readline() or readline_into_buffer() a NULL 'prompt' parameter would result in puts() printing garbage when CONFIG_CMDLINE_EDITING was enabled. Note that no board currently triggers this bug. Enabling CONFIG_CMDLINE_EDITING on some boards (eg bab7xx) would result in the bug appearing. This change is only intended to prevent someone from running into this issue in the future. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Remove inline qualifier from show_boot_progress()Emil Medve2009-05-15-1/+1
| | | | | | | | | | | The 'inline' is conflicting with the semantic of 'weak' attribute and with the way the show_boot_progress() function is used. Also gcc 4.4 is complaining about it: main.c:51: error: inline function 'show_boot_progress' cannot be declared weak Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
* Standardize command usage messages with cmd_usage()Peter Tyser2009-01-28-2/+2
| | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYEDPeter Korsgaard2009-01-24-13/+14
| | | | | | | | | | | Support bootdelay=0 in abortboot for the CONFIG_AUTOBOOT_KEYED case similar to the CONFIG_ZERO_BOOTDELAY_CHECK support for the !CONFIG_AUTOBOOT_KEYED case. Do this by reversing the loop so we do at least one iteration before checking for timeout. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD2008-10-18-22/+22
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* hush: add showvar command for hush shell.Heiko Schocher2008-10-18-0/+4
| | | | | | | | | | | | | | | | | | | | This new command shows the local variables defined in the hush shell: => help showvar showvar - print values of all hushshell variables showvar name ... - print value of hushshell variable 'name' Also make the set_local_var() and unset_local_var () no longer static, so it is possible to define local hush shell variables at boot time. If CONFIG_HUSH_INIT_VAR is defined, u-boot calls hush_init_var (), where boardspecific code can define local hush shell variables at boottime. Signed-off-by: Heiko Schocher <hs@denx.de>
* Automatic software update from TFTP serverBartlomiej Sieka2008-10-18-0/+7
| | | | | | | | | | | The auto-update feature allows to automatically download software updates from a TFTP server and store them in Flash memory during boot. Updates are contained in a FIT file and protected with SHA-1 checksum. More detailed description can be found in doc/README.update. Signed-off-by: Rafal Czubak <rcz@semihalf.com> Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
* Fix merge problemsStefan Roese2008-08-06-2/+2
| | | | Signed-off-by: Stefan Roese <sr@denx.de>
* Fix printf errors.Andrew Klossner2008-07-09-1/+1
| | | | | | | | | | | | The compiler will help find mismatches between printf formats and arguments if you let it. This patch adds the necessary attributes to declarations in include/common.h, then begins to correct the resulting compiler warnings. Some of these were bugs, e.g., "$d" instead of "%d" and incorrect arguments. Others were just annoying, like int-long mismatches on a system where both are 32 bits. It's worth fixing the annoying errors to catch the real ones. Signed-off-by: Andrew Klossner <andrew@cesa.opbu.xerox.com>
* Additional fix to readline_into_buffer() with CONFIG_CMDLINE_EDITING before ↵Peter Tyser2008-06-03-6/+0
| | | | | | | | | | | relocating Removed unneeded command line history initialization. Also, the original code would access the 'initted' variable before relocation to SDRAM which resulted in erratic behavior since the bss is not initialized when executing from flash. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Fix readline_into_buffer() with CONFIG_CMDLINE_EDITING before relocatingJames Yang2008-05-09-10/+23
| | | | | | | | | | | When CONFIG_CMDLINE_EDITING is enabled, readline_into_buffer() doesn't work before relocating to RAM because command history is written into a global array that is not writable before relocation. This patch defers to the no-editing and no-history code in readline_into_buffer() if it is called before relocation. Signed-off-by: James Yang <James.Yang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* The patch introduces the CRITICAL feature of POST tests. If the test marked ↵Yuri Tikhonov2008-03-18-1/+7
| | | | | | | as POST_CRITICAL fails then the alternative, post_critical, boot-command is used. If this command is not defined then U-Boot enters into interactive mode. Signed-off-by: Dmitry Rakhchev <rda@emcraft.com> Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
* Make bootretry work when command line editing is enabledAndreas Engel2008-01-12-0/+7
| | | | | | | Currently, when CONFIG_CMDLINE_EDITING is set, bootretry doesn't work. This patch fixes the problem. Signed-off-by: Andreas Engel <andreas.engel@ericsson.com>
* Fix compiler warningKumar Gala2008-01-11-1/+1
| | | | | | | main.c: In function 'readline_into_buffer': main.c:927: warning: unused variable 'p_buf' Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* Expose parse_line() globally.James Yang2008-01-09-10/+15
| | | | | | | | | | | Add new function readline_into_buffer() that allows the output of readline to be put into a pointer to char buffer. This refactoring allows other functions besides the main command loop to also use the same input mechanism. Signed-off-by: James Yang <James.Yang@freescale.com> Acked-by: Jon Loeliger <jdl@freescale.com>
* Allow CONFIG_AUTO_COMPLETE and command history CONFIG_CMDLINE_EDITING at the ↵Jean-Christophe PLAGNIOL-VILLARD2008-01-09-2/+24
| | | | | | | sametime Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Merge with /home/wd/git/u-boot/custodian/u-boot-testingWolfgang Denk2007-08-06-4/+4
|\
| * common/: Remove lingering references to CFG_CMD_* symbols.Jon Loeliger2007-07-10-2/+2
| | | | | | | | | | | | | | | | Fixed some broken instances of "#ifdef CMD_CFG_IDE" too. Those always evaluated TRUE, and thus were always compiled even when IDE really wasn't defined/wanted. Signed-off-by: Jon Loeliger <jdl@freescale.com>
| * common/* non-cmd*: Remove obsolete references to CONFIG_COMMANDSJon Loeliger2007-07-08-2/+2
| | | | | | | | Signed-off-by: Jon Loeliger <jdl@freescale.com>
| * common/ non-cmd: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).Jon Loeliger2007-07-04-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a compatibility step that allows both the older form and the new form to co-exist for a while until the older can be removed entirely. All transformations are of the form: Before: #if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) After: #if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT) Signed-off-by: Jon Loeliger <jdl@freescale.com>
* | make show_boot_progress () weak.Heiko Schocher2007-07-13-0/+6
|/ | | | Signed-off-by: Heiko Schocher <hs@denx.de>
* Merge with /home/wd/git/u-boot/custodian/u-boot-testingWolfgang Denk2007-07-03-5/+5
|\
| * Merge with /home/git/u-bootWolfgang Denk2007-05-05-1/+1
| |\
| * | [PATCH] simplify silent consoleLadislav Michl2007-04-25-39/+11
| | | | | | | | | | | | | | | Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Acked-by: Stefan Roese <sr@denx.de>
* | | Coding stylke cleanup; rebuild CHANGELOGWolfgang Denk2007-06-22-1/+1
| | |
* | | Fix 'run' not to continue after interrupted commandDetlev Zundel2007-06-12-1/+1
| | | | | | | | | | | | Signed-off-by: Detlev Zundel <dzu@denx.de>
* | | Merge with /home/tur/git/u-boot#motionproWolfgang Denk2007-05-28-0/+2
|\ \ \ | |_|/ |/| |
| * | Fix: Add missing NULL termination in strings expanded by macros parser.Bartlomiej Sieka2007-05-27-0/+2
| |/ | | | | | | | | Signed-off-by: Piotr Kruszynski <ppk@semihalf.com> Acked-by: Bartlomiej Sieka <tur@semihalf.com>
* | [PATCH] simplify silent consoleLadislav Michl2007-05-05-33/+5
|/ | | | | Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Acked-by: Stefan Roese <sr@denx.de>
* Minor code cleanup.Wolfgang Denk2006-10-28-94/+80
|
* Fix control-c handing in CONFIG_CMDLINE_EDITINGStefan Roese2006-08-07-2/+3
| | | | | Properly pass break code back from readline. Patch by Roger Blofeld, 31 Jul 2006
* Fix CONFIG_CMDLINE_EDITING implementationStefan Roese2006-07-27-2/+9
| | | | Patch by Stefan Roese, 27 Jul 2006
* Minor code cleanup.Wolfgang Denk2006-07-21-3/+3
|
* Add readline cmdline-editing extensionWolfgang Denk2006-07-21-0/+417
| | | | Patch by JinHua Luo, 01 Sep 2005
* GCC-4.x fixes: clean up global data pointer initialization for all boards.Wolfgang Denk2006-03-31-38/+26
|
* Avoid dereferencing NULL in find_cmd() if no valid commands were foundWolfgang Denk2006-03-12-3/+6
| | | | Patch by Andrew Dyer, 13 Jun 2005
* Cleanup for GCC-4.xWolfgang Denk2005-10-13-1/+1
|
* Fix compiler warningWolfgang Denk2005-09-30-0/+3
|
* Remove unneeded #include <malloc.h>Wolfgang Denk2005-09-25-1/+0
| | | | Patch by Ladislav Michl, 22 Feb 2005
* * Patch by Sam Song, 11 October 2004:wdenk2005-01-09-1/+1
| | | | | | | | | - Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board - Adjust CPU:BUS frequency ratio 1:1 when core frequency less than 50MHz * Patch by Sam Song, 10 Oct 2004: Fix a parameter error in run_command() in main.c
* * Modify KUP4X board configuration to use SL811 driver for USB memorywdenk2004-04-23-4/+4
| | | | | | | | | | | | | | | sticks (including FAT / VFAT filesystem support) * Add SL811 Host Controller Interface driver for USB * Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README * Patch by Pantelis Antoniou, 19 Apr 2004: Allow to use shell style syntax (i. e. ${var} ) with standard parser. Minor patches for Intracom boards. * Patch by Christian Pell, 19 Apr 2004: cleanup support for CF/IDE on PCMCIA for PXA25X
* * Patches by Pantelis Antoniou, 30 Mar 2004:wdenk2004-04-15-0/+12
| | | | | | | | | | - add auto-complete support to the U-Boot CLI - add support for NETTA and NETPHONE boards; fix NETVIA board * Patch by Yuli Barcohen, 28 Mar 2004: - Add support for MPC8272 family including MPC8247/8248/8271/8272 - Add support for MPC8272ADS evaluation board (another flavour of MPC8260ADS) - Change configuration method for MPC8260ADS family