]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - drivers/mtd/dataflash.c
OneNAND: Remove unused parameters to onenand_verify_page
[karo-tx-uboot.git] / drivers / mtd / dataflash.c
index d8f78f20a8a192df41d3ab3b7eb3592f6bff3bfa..049da69fec3cc2bb2604b90cc7354b0713315045 100644 (file)
 #include <asm/hardware.h>
 #include <dataflash.h>
 
-AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
 static AT91S_DataFlash DataFlashInst;
 
-struct dataflash_addr {
-       unsigned long addr;
-       int cs;
-};
-
-#if defined(CONFIG_AT91SAM9260EK)
-struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
-       {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},      /* Logical adress, CS */
-       {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
-};
-#elif defined(CONFIG_AT91SAM9263EK) || defined(CONFIG_AT91CAP9ADK)
-struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
-       {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},      /* Logical adress, CS */
-};
-#else
-struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
-       {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},      /* Logical adress, CS */
-       {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
-};
-#endif
-
-/*define the area offsets*/
-dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
-       {0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
-       {0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
-       {0x00008400, 0x0003DDFF, FLAG_PROTECT_SET,   0, "U-Boot"},
-       {0x0003DE00, 0x0023DE3F, FLAG_PROTECT_CLEAR, 0, "Kernel"},
-       {0x0023DE40, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0, "FS"},
-};
-
 extern void AT91F_SpiInit (void);
 extern int AT91F_DataflashProbe (int i, AT91PS_DataflashDesc pDesc);
 extern int AT91F_DataFlashRead (AT91PS_DataFlash pDataFlash,
@@ -85,6 +54,30 @@ int AT91F_DataflashInit (void)
                                &dataflash_info[i].Desc);
 
                switch (dfcode) {
+               case AT45DB021:
+                       dataflash_info[i].Device.pages_number = 1024;
+                       dataflash_info[i].Device.pages_size = 264;
+                       dataflash_info[i].Device.page_offset = 9;
+                       dataflash_info[i].Device.byte_mask = 0x300;
+                       dataflash_info[i].Device.cs = cs[i].cs;
+                       dataflash_info[i].Desc.DataFlash_state = IDLE;
+                       dataflash_info[i].logical_address = cs[i].addr;
+                       dataflash_info[i].id = dfcode;
+                       found[i] += dfcode;;
+                       break;
+
+               case AT45DB081:
+                       dataflash_info[i].Device.pages_number = 4096;
+                       dataflash_info[i].Device.pages_size = 264;
+                       dataflash_info[i].Device.page_offset = 9;
+                       dataflash_info[i].Device.byte_mask = 0x300;
+                       dataflash_info[i].Device.cs = cs[i].cs;
+                       dataflash_info[i].Desc.DataFlash_state = IDLE;
+                       dataflash_info[i].logical_address = cs[i].addr;
+                       dataflash_info[i].id = dfcode;
+                       found[i] += dfcode;;
+                       break;
+
                case AT45DB161:
                        dataflash_info[i].Device.pages_number = 4096;
                        dataflash_info[i].Device.pages_size = 528;
@@ -178,8 +171,7 @@ int AT91F_DataflashInit (void)
        return found[0];
 }
 
-#ifdef CONFIG_NEW_DF_PARTITION
-int AT91F_DataflashSetEnv (void)
+void AT91F_DataflashSetEnv (void)
 {
        int i, j;
        int part;
@@ -194,14 +186,13 @@ int AT91F_DataflashSetEnv (void)
                        if((env & FLAG_SETENV) == FLAG_SETENV) {
                                start =
                                dataflash_info[i].Device.area_list[j].start;
-                               sprintf(s,"%X",start);
-                               setenv(area_list[part].label,s);
+                               sprintf((char*) s,"%lX",start);
+                               setenv((char*) area_list[part].label,(char*) s);
                        }
                        part++;
                }
        }
 }
-#endif
 
 void dataflash_print_info (void)
 {
@@ -211,6 +202,9 @@ void dataflash_print_info (void)
                if (dataflash_info[i].id != 0) {
                        printf("DataFlash:");
                        switch (dataflash_info[i].id) {
+                       case AT45DB021:
+                               printf("AT45DB021\n");
+                               break;
                        case AT45DB161:
                                printf("AT45DB161\n");
                                break;
@@ -244,16 +238,10 @@ void dataflash_print_info (void)
                                                dataflash_info[i].Device.area_list[j].start,
                                                dataflash_info[i].Device.area_list[j].end,
                                                (dataflash_info[i].Device.area_list[j].protected==FLAG_PROTECT_SET) ? "(RO)" : "    ");
-#ifdef CONFIG_NEW_DF_PARTITION
                                                printf(" %s\n", dataflash_info[i].Device.area_list[j].label);
-#else
-                                               printf("\n");
-#endif
                                        break;
-#ifdef CONFIG_NEW_DF_PARTITION
                                case    FLAG_PROTECT_INVALID:
                                        break;
-#endif
                                }
                        }
                }