]> git.sur5r.net Git - u-boot/blobdiff - common/cmd_load.c
Merge the new NAND code (testing-NAND brach); see doc/README.nand
[u-boot] / common / cmd_load.c
index 2cb2f33ab4a268974ab01ba75e9d3d2bf97ca073..749849711a007fcfc6817ddca3144e2e0c0dcfb2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000-2003
+ * (C) Copyright 2000-2004
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -28,7 +28,7 @@
 #include <command.h>
 #include <s_record.h>
 #include <net.h>
-#include <syscall.h>
+#include <exports.h>
 
 
 #if (CONFIG_COMMANDS & CFG_CMD_LOADS)
@@ -104,8 +104,8 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
         * box some time (100 * 1 ms)
         */
        for (i=0; i<100; ++i) {
-               if (serial_tstc()) {
-                       (void) serial_getc();
+               if (tstc()) {
+                       (void) getc();
                }
                udelay(1000);
        }
@@ -166,7 +166,7 @@ load_serial (ulong offset)
                    if (addr2info(store_addr)) {
                        int rc;
 
-                       rc = flash_write((uchar *)binbuf,store_addr,binlen);
+                       rc = flash_write((char *)binbuf,store_addr,binlen);
                        if (rc != 0) {
                                flash_perror (rc);
                                return (~0);
@@ -192,7 +192,7 @@ load_serial (ulong offset)
                            "## Total Size      = 0x%08lX = %ld Bytes\n",
                            start_addr, end_addr, size, size
                    );
-                   flush_cache (addr, size);
+                   flush_cache (start_addr, size);
                    sprintf(buf, "%lX", size);
                    setenv("filesize", buf);
                    return (addr);
@@ -213,15 +213,16 @@ load_serial (ulong offset)
 static int
 read_record (char *buf, ulong len)
 {
+       DECLARE_GLOBAL_DATA_PTR;
        char *p;
        char c;
 
        --len;  /* always leave room for terminating '\0' byte */
 
        for (p=buf; p < buf+len; ++p) {
-               c = serial_getc();              /* read character               */
+               c = getc();             /* read character               */
                if (do_echo)
-                       serial_putc (c);        /* ... and echo it              */
+                       putc (c);       /* ... and echo it              */
 
                switch (c) {
                case '\r':
@@ -236,13 +237,11 @@ read_record (char *buf, ulong len)
                }
 
            /* Check for the console hangup (if any different from serial) */
-#ifdef CONFIG_PPC      /* we don't have syscall_tbl anywhere else */
-           if (syscall_tbl[SYSCALL_GETC] != serial_getc) {
+           if (gd->jt[XF_getc] != getc) {
                if (ctrlc()) {
                    return (-1);
                }
            }
-#endif
        }
 
        /* line too long - truncate */
@@ -388,7 +387,7 @@ write_record (char *buf)
        char c;
 
        while((c = *buf++))
-               serial_putc(c);
+               putc(c);
 
        /* Check for the console hangup (if any different from serial) */
 
@@ -479,7 +478,7 @@ int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        printf ("## Ready for binary (kermit) download "
                "to 0x%08lX at %d bps...\n",
                offset,
-               current_baudrate);
+               load_baudrate);
        addr = load_serial_bin (offset);
 
        if (addr == ~0) {
@@ -532,8 +531,8 @@ static ulong load_serial_bin (ulong offset)
         * box some time (100 * 1 ms)
         */
        for (i=0; i<100; ++i) {
-               if (serial_tstc()) {
-                       (void) serial_getc();
+               if (tstc()) {
+                       (void) getc();
                }
                udelay(1000);
        }
@@ -552,7 +551,7 @@ void send_pad (void)
        int count = his_pad_count;
 
        while (count-- > 0)
-               serial_putc (his_pad_char);
+               putc (his_pad_char);
 }
 
 /* converts escaped kermit char to binary char */
@@ -580,7 +579,7 @@ void s1_sendpacket (char *packet)
 {
        send_pad ();
        while (*packet) {
-               serial_putc (*packet++);
+               putc (*packet++);
        }
 }
 
@@ -842,7 +841,7 @@ static int k_recv (void)
                /* get a packet */
                /* wait for the starting character or ^C */
                for (;;) {
-                       switch (serial_getc ()) {
+                       switch (getc ()) {
                        case START_CHAR:        /* start packet */
                                goto START;
                        case ETX_CHAR:          /* ^C waiting for packet */
@@ -854,13 +853,13 @@ static int k_recv (void)
 START:
                /* get length of packet */
                sum = 0;
-               new_char = serial_getc ();
+               new_char = getc ();
                if ((new_char & 0xE0) == 0)
                        goto packet_error;
                sum += new_char & 0xff;
                length = untochar (new_char);
                /* get sequence number */
-               new_char = serial_getc ();
+               new_char = getc ();
                if ((new_char & 0xE0) == 0)
                        goto packet_error;
                sum += new_char & 0xff;
@@ -887,7 +886,7 @@ START:
                /* END NEW CODE */
 
                /* get packet type */
-               new_char = serial_getc ();
+               new_char = getc ();
                if ((new_char & 0xE0) == 0)
                        goto packet_error;
                sum += new_char & 0xff;
@@ -897,19 +896,19 @@ START:
                if (length == -2) {
                        /* (length byte was 0, decremented twice) */
                        /* get the two length bytes */
-                       new_char = serial_getc ();
+                       new_char = getc ();
                        if ((new_char & 0xE0) == 0)
                                goto packet_error;
                        sum += new_char & 0xff;
                        len_hi = untochar (new_char);
-                       new_char = serial_getc ();
+                       new_char = getc ();
                        if ((new_char & 0xE0) == 0)
                                goto packet_error;
                        sum += new_char & 0xff;
                        len_lo = untochar (new_char);
                        length = len_hi * 95 + len_lo;
                        /* check header checksum */
-                       new_char = serial_getc ();
+                       new_char = getc ();
                        if ((new_char & 0xE0) == 0)
                                goto packet_error;
                        if (new_char != tochar ((sum + ((sum >> 6) & 0x03)) & 0x3f))
@@ -919,7 +918,7 @@ START:
                }
                /* bring in rest of packet */
                while (length > 1) {
-                       new_char = serial_getc ();
+                       new_char = getc ();
                        if ((new_char & 0xE0) == 0)
                                goto packet_error;
                        sum += new_char & 0xff;
@@ -936,13 +935,13 @@ START:
                        }
                }
                /* get and validate checksum character */
-               new_char = serial_getc ();
+               new_char = getc ();
                if ((new_char & 0xE0) == 0)
                        goto packet_error;
                if (new_char != tochar ((sum + ((sum >> 6) & 0x03)) & 0x3f))
                        goto packet_error;
                /* get END_CHAR */
-               new_char = serial_getc ();
+               new_char = getc ();
                if (new_char != END_CHAR) {
                  packet_error:
                        /* restore state machines */
@@ -1048,9 +1047,9 @@ int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 /* -------------------------------------------------------------------- */
 
 U_BOOT_CMD(
-       hwflow [on|off], 2, 0,  do_hwflow,
+       hwflow, 2, 0,   do_hwflow,
        "hwflow  - turn the harwdare flow control on/off\n",
-       "\n - change RTS/CTS hardware flow control over serial line\n"
+       "[on|off]\n - change RTS/CTS hardware flow control over serial line\n"
 );
 
 #endif /* CFG_CMD_HWFLOW */