loads: allow negative offsets
authorRicardo Ribalda Delgado <ricardo.ribalda@uam.es>
Wed, 30 Jul 2008 10:39:29 +0000 (12:39 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 5 Sep 2008 23:57:18 +0000 (01:57 +0200)
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
common/cmd_load.c

index f2b73bdc14b1eec623edca613bee5f400d2528e0..1351fe22cac02d47d330cba238b90dbd4a482645 100644 (file)
@@ -38,7 +38,7 @@ static ulong load_serial_ymodem (ulong offset);
 #endif
 
 #if defined(CONFIG_CMD_LOADS)
-static ulong load_serial (ulong offset);
+static ulong load_serial (long offset);
 static int read_record (char *buf, ulong len);
 # if defined(CONFIG_CMD_SAVES)
 static int save_serial (ulong offset, ulong size);
@@ -53,7 +53,7 @@ static int do_echo = 1;
 #if defined(CONFIG_CMD_LOADS)
 int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
-       ulong offset = 0;
+       long offset = 0;
        ulong addr;
        int i;
        char *env_echo;
@@ -72,7 +72,7 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 #ifdef CFG_LOADS_BAUD_CHANGE
        if (argc >= 2) {
-               offset = simple_strtoul(argv[1], NULL, 16);
+               offset = simple_strtol(argv[1], NULL, 16);
        }
        if (argc == 3) {
                load_baudrate = (int)simple_strtoul(argv[2], NULL, 10);
@@ -95,7 +95,7 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
 #else  /* ! CFG_LOADS_BAUD_CHANGE */
        if (argc == 2) {
-               offset = simple_strtoul(argv[1], NULL, 16);
+               offset = simple_strtol(argv[1], NULL, 16);
        }
 #endif /* CFG_LOADS_BAUD_CHANGE */
 
@@ -141,7 +141,7 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 }
 
 static ulong
-load_serial (ulong offset)
+load_serial (long offset)
 {
        char    record[SREC_MAXRECLEN + 1];     /* buffer for one S-Record      */
        char    binbuf[SREC_MAXBINLEN];         /* buffer for binary data       */