summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2005-10-20 16:36:44 +0200
committerStefan Roese <sr@denx.de>2005-10-20 16:36:44 +0200
commitc4c13df284cb06156c16ee6aef49b8d23be3fadd (patch)
treeac8391d4fb84e03b2c3dab4f147ef538cae13dac
parent1e25f957c845878bf3f71425f2f5d2baef897470 (diff)
Fix problem with sleep in NetConsole (use get_timer())
Patch by Stefan Roese, 20 Oct 2005
-rw-r--r--CHANGELOG3
-rw-r--r--common/cmd_misc.c17
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[]);