diff options
author | Stefan Roese <sr@denx.de> | 2005-10-20 16:36:44 +0200 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2005-10-20 16:36:44 +0200 |
commit | c4c13df284cb06156c16ee6aef49b8d23be3fadd (patch) | |
tree | ac8391d4fb84e03b2c3dab4f147ef538cae13dac | |
parent | 1e25f957c845878bf3f71425f2f5d2baef897470 (diff) |
Fix problem with sleep in NetConsole (use get_timer())
Patch by Stefan Roese, 20 Oct 2005
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | common/cmd_misc.c | 17 |
2 files changed, 11 insertions, 9 deletions
diff --git a/CHANGELOG b/CHANGELOG index 2dd56169ba2..a063a01db9d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ Changes for U-Boot 1.1.4: ====================================================================== +* Fix problem with sleep in NetConsole (use get_timer()) + Patch by Stefan Roese, 20 Oct 2005 + * Add NetConsole Support for AMCC eval boards Patch by Stefan Roese, 20 Oct 2005 diff --git a/common/cmd_misc.c b/common/cmd_misc.c index 674eafca3f1..67ee9e8a83d 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -31,6 +31,7 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { + ulong start = get_timer(0); ulong delay; if (argc != 2) { @@ -38,20 +39,18 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return 1; } - delay = simple_strtoul(argv[1], NULL, 10); + delay = simple_strtoul(argv[1], NULL, 10) * CFG_HZ; - while (delay) { - int i; - for (i=0; i<1000; ++i) { - if (ctrlc ()) { - return (-1); - } - udelay (1000); + while (get_timer(start) < delay) { + if (ctrlc ()) { + return (-1); } - --delay; + udelay (100); } + return 0; } + /* Implemented in $(CPU)/interrupts.c */ #if (CONFIG_COMMANDS & CFG_CMD_IRQ) int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); |