]> git.sur5r.net Git - u-boot/blobdiff - common/cmd_mem.c
mac: Fix the condition check for setting the MAC from the EEPROM
[u-boot] / common / cmd_mem.c
index 7a199f51b10fd6edf08644deda72e683e290ccf3..d44aa1d7339a711ba04db2031ba74866b50c273c 100644 (file)
@@ -33,6 +33,9 @@
 #include <dataflash.h>
 #endif
 #include <watchdog.h>
+#include <linux/compiler.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 static int mod_mem(cmd_tbl_t *, int, int, int, char * const []);
 
@@ -51,7 +54,7 @@ static        ulong   base_address = 0;
  *     md{.b, .w, .l} {addr} {len}
  */
 #define DISP_LINE_LEN  16
-int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_md(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        ulong   addr, length;
 #if defined(CONFIG_HAS_DATAFLASH)
@@ -147,16 +150,16 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        return (rc);
 }
 
-int do_mem_mm ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        return mod_mem (cmdtp, 1, flag, argc, argv);
 }
-int do_mem_nm ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_nm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        return mod_mem (cmdtp, 0, flag, argc, argv);
 }
 
-int do_mem_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        ulong   addr, writeval, count;
        int     size;
@@ -253,7 +256,7 @@ int do_mem_mwc ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 }
 #endif /* CONFIG_MX_CYCLIC */
 
-int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_cmp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        ulong   addr1, addr2, count, ngood;
        int     size;
@@ -291,9 +294,7 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        }
 #endif
 
-       ngood = 0;
-
-       while (count-- > 0) {
+       for (ngood = 0; ngood < count; ++ngood) {
                ulong word1, word2;
                if (size == 4) {
                        word1 = *(ulong *)addr1;
@@ -313,12 +314,11 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        break;
                }
 
-               ngood++;
                addr1 += size;
                addr2 += size;
 
                /* reset watchdog from time to time */
-               if ((count % (64 << 10)) == 0)
+               if ((ngood % (64 << 10)) == 0)
                        WATCHDOG_RESET();
        }
 
@@ -326,7 +326,7 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        return rcode;
 }
 
-int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_cp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        ulong   addr, dest, count;
        int     size;
@@ -436,7 +436,8 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        return 0;
 }
 
-int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_base(cmd_tbl_t *cmdtp, int flag, int argc,
+                      char * const argv[])
 {
        if (argc > 1) {
                /* Set new base address.
@@ -449,7 +450,8 @@ int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        return 0;
 }
 
-int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_loop(cmd_tbl_t *cmdtp, int flag, int argc,
+                      char * const argv[])
 {
        ulong   addr, length, i;
        int     size;
@@ -460,7 +462,8 @@ int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        if (argc < 3)
                return CMD_RET_USAGE;
 
-       /* Check for a size spefication.
+       /*
+        * Check for a size specification.
         * Defaults to long if no or incorrect specification.
         */
        if ((size = cmd_get_data_size(argv[0], 4)) < 0)
@@ -529,7 +532,8 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        if (argc < 4)
                return CMD_RET_USAGE;
 
-       /* Check for a size spefication.
+       /*
+        * Check for a size specification.
         * Defaults to long if no or incorrect specification.
         */
        if ((size = cmd_get_data_size(argv[0], 4)) < 0)
@@ -595,7 +599,8 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
  * configured using CONFIG_SYS_ALT_MEMTEST. The complete test loops until
  * interrupted by ctrl-c or by a failure of one of the sub-tests.
  */
-int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc,
+                       char * const argv[])
 {
        vu_long *addr, *start, *end;
        ulong   val;
@@ -615,7 +620,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #if defined(CONFIG_SYS_MEMTEST_SCRATCH)
        vu_long *dummy = (vu_long*)CONFIG_SYS_MEMTEST_SCRATCH;
 #else
-       vu_long *dummy = 0;     /* yes, this is address 0x0, not NULL */
+       vu_long *dummy = NULL;  /* yes, this is address 0x0, not NULL */
 #endif
        int     j;
 
@@ -680,7 +685,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                 * Data line test: write a pattern to the first
                 * location, write the 1's complement to a 'parking'
                 * address (changes the state of the data bus so a
-                * floating bus doen't give a false OK), and then
+                * floating bus doesn't give a false OK), and then
                 * read the value back. Note that we read it back
                 * into a variable because the next time we read it,
                 * it might be right (been there, tough to explain to
@@ -744,7 +749,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                 *              1's test on the relevant bits of the
                 *              address and checking for aliasing.
                 *              This test will find single-bit
-                *              address failures such as stuck -high,
+                *              address failures such as stuck-high,
                 *              stuck-low, and shorted pins. The base
                 *              address and size of the region are
                 *              selected by the caller.
@@ -1057,7 +1062,7 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[])
 
 #ifndef CONFIG_CRC32_VERIFY
 
-int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_crc(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        ulong addr, length;
        ulong crc;
@@ -1203,6 +1208,22 @@ U_BOOT_CMD(
 
 #endif
 
+#ifdef CONFIG_CMD_MEMINFO
+__weak void board_show_dram(ulong size)
+{
+       puts("DRAM:  ");
+       print_size(size, "\n");
+}
+
+static int do_mem_info(cmd_tbl_t *cmdtp, int flag, int argc,
+                      char * const argv[])
+{
+       board_show_dram(gd->ram_size);
+
+       return 0;
+}
+#endif
+
 U_BOOT_CMD(
        base,   2,      1,      do_mem_base,
        "print or set address offset",
@@ -1243,3 +1264,11 @@ U_BOOT_CMD(
        "[.b, .w, .l] address value delay(ms)"
 );
 #endif /* CONFIG_MX_CYCLIC */
+
+#ifdef CONFIG_CMD_MEMINFO
+U_BOOT_CMD(
+       meminfo,        3,      1,      do_mem_info,
+       "display memory information",
+       ""
+);
+#endif