]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - tools/updater/cmd_flash.c
vexpress: use correct timer address on extended memory map systems
[karo-tx-uboot.git] / tools / updater / cmd_flash.c
index ef8d5443efcd0db65dcfa94c963fa02f255acc5d..3a604d00d5d62f9ae338db8005eaee5e02bdb76a 100644 (file)
@@ -2,23 +2,7 @@
  * (C) Copyright 2000
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
@@ -28,7 +12,7 @@
 #include <command.h>
 #include <flash.h>
 
-#if (CONFIG_COMMANDS & CFG_CMD_FLASH) || defined(CONFIG_CMD_FLASH)
+#if defined(CONFIG_CMD_FLASH)
 
 extern flash_info_t flash_info[];      /* info for FLASH chips */
 
@@ -64,7 +48,7 @@ abbrev_spec(char *str, flash_info_t **pinfo, int *psf, int *psl)
 
     bank = simple_strtoul(str, &ep, 10);
     if (ep == str || *ep != '\0' ||
-      bank < 1 || bank > CFG_MAX_FLASH_BANKS ||
+      bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS ||
       (fp = &flash_info[bank - 1])->flash_id == FLASH_UNKNOWN)
        return -1;
 
@@ -96,7 +80,7 @@ int do_flinfo (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        ulong bank;
 
        if (argc == 1) {        /* print info for all FLASH banks */
-               for (bank=0; bank <CFG_MAX_FLASH_BANKS; ++bank) {
+               for (bank=0; bank <CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
                        printf ("\nBank # %ld: ", bank+1);
 
                        flash_print_info (&flash_info[bank]);
@@ -105,9 +89,9 @@ int do_flinfo (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        }
 
        bank = simple_strtoul(argv[1], NULL, 16);
-       if ((bank < 1) || (bank > CFG_MAX_FLASH_BANKS)) {
+       if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
                printf ("Only FLASH Banks # 1 ... # %d supported\n",
-                       CFG_MAX_FLASH_BANKS);
+                       CONFIG_SYS_MAX_FLASH_BANKS);
                return 1;
        }
        printf ("\nBank # %ld: ", bank);
@@ -121,13 +105,11 @@ int do_flerase(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        int n, sect_first, sect_last;
        int rcode = 0;
 
-       if (argc < 2) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       if (argc < 2)
+               return cmd_usage(cmdtp);
 
        if (strcmp(argv[1], "all") == 0) {
-               for (bank=1; bank<=CFG_MAX_FLASH_BANKS; ++bank) {
+               for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
                        printf ("Erase Flash Bank # %ld ", bank);
                        info = &flash_info[bank-1];
                        rcode = flash_erase (info, 0, info->sector_count-1);
@@ -146,16 +128,14 @@ int do_flerase(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                return rcode;
        }
 
-       if (argc != 3) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       if (argc != 3)
+               return cmd_usage(cmdtp);
 
        if (strcmp(argv[1], "bank") == 0) {
                bank = simple_strtoul(argv[2], NULL, 16);
-               if ((bank < 1) || (bank > CFG_MAX_FLASH_BANKS)) {
+               if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
                        printf ("Only FLASH Banks # 1 ... # %d supported\n",
-                               CFG_MAX_FLASH_BANKS);
+                               CONFIG_SYS_MAX_FLASH_BANKS);
                        return 1;
                }
                printf ("Erase Flash Bank # %ld ", bank);
@@ -167,10 +147,8 @@ int do_flerase(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        addr_first = simple_strtoul(argv[1], NULL, 16);
        addr_last  = simple_strtoul(argv[2], NULL, 16);
 
-       if (addr_first >= addr_last) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       if (addr_first >= addr_last)
+               return cmd_usage(cmdtp);
 
        printf ("Erase Flash from 0x%08lx to 0x%08lx ", addr_first, addr_last);
        rcode = flash_sect_erase(addr_first, addr_last);
@@ -187,7 +165,7 @@ int flash_sect_erase (ulong addr_first, ulong addr_last)
 
        erased = 0;
 
-       for (bank=0,info=&flash_info[0]; bank < CFG_MAX_FLASH_BANKS; ++bank, ++info) {
+       for (bank=0,info = &flash_info[0]; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
                ulong b_end;
                int sect;
 
@@ -243,22 +221,18 @@ int do_protect(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        int i, p, n, sect_first, sect_last;
        int rcode = 0;
 
-       if (argc < 3) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       if (argc < 3)
+               return cmd_usage(cmdtp);
 
        if (strcmp(argv[1], "off") == 0)
                p = 0;
        else if (strcmp(argv[1], "on") == 0)
                p = 1;
-       else {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       else
+               return cmd_usage(cmdtp);
 
        if (strcmp(argv[2], "all") == 0) {
-               for (bank=1; bank<=CFG_MAX_FLASH_BANKS; ++bank) {
+               for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
                        info = &flash_info[bank-1];
                        if (info->flash_id == FLASH_UNKNOWN) {
                                continue;
@@ -267,19 +241,19 @@ int do_protect(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                        /*      p ? "" : "Un-", bank); */
 
                        for (i=0; i<info->sector_count; ++i) {
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                                if (flash_real_protect(info, i, p))
                                        rcode = 1;
                                putc ('.');
 #else
                                info->protect[i] = p;
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
                        }
                }
 
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                if (!rcode) puts (" done\n");
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
 
                return rcode;
        }
@@ -293,32 +267,30 @@ int do_protect(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                /*      p ? "" : "Un-", sect_first, sect_last, */
                /*      (info-flash_info)+1); */
                for (i = sect_first; i <= sect_last; i++) {
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                        if (flash_real_protect(info, i, p))
                                rcode =  1;
                        putc ('.');
 #else
                        info->protect[i] = p;
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
                }
 
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                if (!rcode) puts (" done\n");
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
 
                return rcode;
        }
 
-       if (argc != 4) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
+       if (argc != 4)
+               return cmd_usage(cmdtp);
 
        if (strcmp(argv[2], "bank") == 0) {
                bank = simple_strtoul(argv[3], NULL, 16);
-               if ((bank < 1) || (bank > CFG_MAX_FLASH_BANKS)) {
+               if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
                        printf ("Only FLASH Banks # 1 ... # %d supported\n",
-                               CFG_MAX_FLASH_BANKS);
+                               CONFIG_SYS_MAX_FLASH_BANKS);
                        return 1;
                }
                printf ("%sProtect Flash Bank # %ld\n",
@@ -330,18 +302,19 @@ int do_protect(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                        return 1;
                }
                for (i=0; i<info->sector_count; ++i) {
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                        if (flash_real_protect(info, i, p))
                                rcode =  1;
                        putc ('.');
 #else
                        info->protect[i] = p;
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
                }
 
-#if defined(CFG_FLASH_PROTECTION)
-               if (!rcode) puts (" done\n");
-#endif /* CFG_FLASH_PROTECTION */
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
+               if (!rcode)
+                       puts(" done\n");
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
 
                return rcode;
        }
@@ -349,12 +322,10 @@ int do_protect(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
        addr_first = simple_strtoul(argv[2], NULL, 16);
        addr_last  = simple_strtoul(argv[3], NULL, 16);
 
-       if (addr_first >= addr_last) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
-               return 1;
-       }
-       rcode = flash_sect_protect (p, addr_first, addr_last);
-       return rcode;
+       if (addr_first >= addr_last)
+               return cmd_usage(cmdtp);
+
+       return flash_sect_protect (p, addr_first, addr_last);
 }
 int flash_sect_protect (int p, ulong addr_first, ulong addr_last)
 {
@@ -366,7 +337,7 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last)
 
        protected = 0;
 
-       for (bank=0,info=&flash_info[0]; bank < CFG_MAX_FLASH_BANKS; ++bank, ++info) {
+       for (bank=0,info = &flash_info[0]; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
                ulong b_end;
                int sect;
 
@@ -402,18 +373,18 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last)
                if (s_first>=0 && s_first<=s_last) {
                        protected += s_last - s_first + 1;
                        for (i=s_first; i<=s_last; ++i) {
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                                if (flash_real_protect(info, i, p))
                                        rcode = 1;
                                putc ('.');
 #else
                                info->protect[i] = p;
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
                        }
                }
-#if defined(CFG_FLASH_PROTECTION)
+#if defined(CONFIG_SYS_FLASH_PROTECTION)
                if (!rcode) putc ('\n');
-#endif /* CFG_FLASH_PROTECTION */
+#endif /* CONFIG_SYS_FLASH_PROTECTION */
 
        }
        if (protected) {
@@ -427,4 +398,4 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last)
        return rcode;
 }
 
-#endif /* CFG_CMD_FLASH */
+#endif