]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/rpxsuper/flash.c
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / board / rpxsuper / flash.c
index 0c298ba858fa2d534cace9e3c9a160c5a5182e01..70ae1d2ff93f8f897f1dcab5527db1903150ac98 100644 (file)
@@ -33,7 +33,7 @@
 #include <mpc8xx.h>
 #include <asm/io.h>
 
-flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
+flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
 
 #define RD_SWP32(x) in_le32((volatile u32*)x)
 
@@ -47,41 +47,39 @@ static int write_word (flash_info_t *info, ulong dest, ulong data);
 /*-----------------------------------------------------------------------
  */
 
-unsigned long flash_init (void)
+unsigned long flash_init(void)
 {
-    unsigned long size;
-    int i;
-
-    /* Init: no FLASHes known */
-    for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
-       flash_info[i].flash_id = FLASH_UNKNOWN;
-    }
+       int i;
 
-    /* for now, only support the 4 MB Flash SIMM */
-    size = flash_get_size((vu_long *)CFG_FLASH0_BASE, &flash_info[0]);
+       /* Init: no FLASHes known */
+       for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i)
+               flash_info[i].flash_id = FLASH_UNKNOWN;
 
-    /*
-     * protect monitor and environment sectors
-     */
+       /* for now, only support the 4 MB Flash SIMM */
+       (void)flash_get_size((vu_long *) CONFIG_SYS_FLASH0_BASE,
+                             &flash_info[0]);
 
-#if CFG_MONITOR_BASE >= CFG_FLASH0_BASE
-    flash_protect(FLAG_PROTECT_SET,
-                 CFG_MONITOR_BASE,
-                 CFG_MONITOR_BASE+CFG_MONITOR_LEN-1,
-                 &flash_info[0]);
+       /*
+        * protect monitor and environment sectors
+        */
+
+#if CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH0_BASE
+       flash_protect(FLAG_PROTECT_SET,
+                     CONFIG_SYS_MONITOR_BASE,
+                     CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
+                     &flash_info[0]);
 #endif
 
-#if (CFG_ENV_IS_IN_FLASH == 1) && defined(CFG_ENV_ADDR)
-# ifndef  CFG_ENV_SIZE
-#  define CFG_ENV_SIZE CFG_ENV_SECT_SIZE
-# endif
-    flash_protect(FLAG_PROTECT_SET,
-                 CFG_ENV_ADDR,
-                 CFG_ENV_ADDR + CFG_ENV_SIZE - 1,
-                 &flash_info[0]);
+#if defined(CONFIG_ENV_IS_IN_FLASH) && defined(CONFIG_ENV_ADDR)
+#ifndef CONFIG_ENV_SIZE
+#define CONFIG_ENV_SIZE        CONFIG_ENV_SECT_SIZE
+#endif
+       flash_protect(FLAG_PROTECT_SET,
+                     CONFIG_ENV_ADDR,
+                     CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1, &flash_info[0]);
 #endif
 
-    return /*size*/ (CFG_FLASH0_SIZE * 1024 * 1024);
+       return CONFIG_SYS_FLASH0_SIZE * 1024 * 1024;
 }
 
 /*-----------------------------------------------------------------------
@@ -172,7 +170,7 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info)
        * Bank 2 (48 Sectors): 23-70=64kbyte
        */
        info->flash_id     = (AMD_MANUFACT & FLASH_VENDMASK) |
-                             (AMD_ID_DL323B & FLASH_TYPEMASK);
+                            (AMD_ID_DL323B & FLASH_TYPEMASK);
        info->sector_count = 71;
        info->size         = 4 * (8 * 8 + 63 * 64) * 1024;
     }
@@ -183,24 +181,24 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info)
 
     /* set up sector start address table */
     for (i = 0; i < 8; i++) {
-        info->start[i] = base + (i * 0x8000);
+       info->start[i] = base + (i * 0x8000);
     }
     for (i = 8; i < info->sector_count; i++) {
-        info->start[i] = base + (i * 0x40000) + 8 * 0x8000 - 8 * 0x40000;
+       info->start[i] = base + (i * 0x40000) + 8 * 0x8000 - 8 * 0x40000;
     }
 
     /* check for protected sectors */
     for (i = 0; i < info->sector_count; i++) {
-        /* read sector protection at sector address */
+       /* read sector protection at sector address */
        addr = (volatile unsigned long *)(info->start[i]);
-        addr[2 * 0x0555] = 0xAAAAAAAA;
+       addr[2 * 0x0555] = 0xAAAAAAAA;
        addr[2 * 0x02AA] = 0x55555555;
        addr[2 * 0x0555] = 0x90909090;
        addr[2 * 0x0555 + 1] = 0xAAAAAAAA;
        addr[2 * 0x02AA + 1] = 0x55555555;
        addr[2 * 0x0555 + 1] = 0x90909090;
        udelay (1000);
-       base = RD_SWP32(&addr[4]);
+       base = RD_SWP32(&addr[4]);
        base |= RD_SWP32(&addr[5]);
        info->protect[i] = base & 0x00010001 ? 1 : 0;
     }
@@ -292,7 +290,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     addr = (vu_long*)(info->start[l_sect]);
     while (    (addr[0] & 0x80808080) != 0x80808080 ||
                (addr[1] & 0x80808080) != 0x80808080) {
-       if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
+       if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
            printf ("Timeout\n");
            return 1;
        }
@@ -404,14 +402,14 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     flag = disable_interrupts();
 
     if ((dest & 0x00000004) == 0) {
-        addr[2 * 0x0555] = 0xAAAAAAAA;
+       addr[2 * 0x0555] = 0xAAAAAAAA;
        addr[2 * 0x02AA] = 0x55555555;
-        addr[2 * 0x0555] = 0xA0A0A0A0;
+       addr[2 * 0x0555] = 0xA0A0A0A0;
     }
     else {
-        addr[2 * 0x0555 + 1] = 0xAAAAAAAA;
+       addr[2 * 0x0555 + 1] = 0xAAAAAAAA;
        addr[2 * 0x02AA + 1] = 0x55555555;
-        addr[2 * 0x0555 + 1] = 0xA0A0A0A0;
+       addr[2 * 0x0555 + 1] = 0xA0A0A0A0;
     }
 
     *((vu_long *)dest) = data;
@@ -423,7 +421,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     /* data polling for D7 */
     start = get_timer (0);
     while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-       if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
+       if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
            return (1);
        }
     }