]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/mtd/jedec_flash.c
Merge branch 'patman' of git://git.denx.de/u-boot-x86
[karo-tx-uboot.git] / drivers / mtd / jedec_flash.c
index da8c9b15b73879f92bab0091ecaf52bc48e09733..2350f361f1bdf2d080ac1384947b043ec0bcd3ad 100644 (file)
@@ -69,6 +69,9 @@
 #define SST39SF010A    0x00B5
 #define SST39SF020A    0x00B6
 
+/* STM */
+#define STM29F400BB    0x00D6
+
 /* MXIC */
 #define MX29LV040      0x004F
 
@@ -346,6 +349,23 @@ static const struct amd_flash_info jedec_table[] = {
                        ERASEINFO(0x10000, 15),
                }
        },
+       {
+               .mfr_id         = (u16)STM_MANUFACT,
+               .dev_id         = STM29F400BB,
+               .name           = "ST Micro M29F400BB",
+               .uaddr          = {
+                       [1] = MTD_UADDR_0x0555_0x02AA /* x16 */
+               },
+               .DevSize                = SIZE_512KiB,
+               .CmdSet                 = CFI_CMDSET_AMD_LEGACY,
+               .NumEraseRegions        = 4,
+               .regions                = {
+                       ERASEINFO(0x04000, 1),
+                       ERASEINFO(0x02000, 2),
+                       ERASEINFO(0x08000, 1),
+                       ERASEINFO(0x10000, 7),
+               }
+       },
 #endif
 };
 
@@ -390,7 +410,8 @@ static inline void fill_info(flash_info_t *info, const struct amd_flash_info *je
        debug("unlock address index %d\n", uaddr_idx);
        info->addr_unlock1 = unlock_addrs[uaddr_idx].addr1;
        info->addr_unlock2 = unlock_addrs[uaddr_idx].addr2;
-       debug("unlock addresses are 0x%x/0x%x\n", info->addr_unlock1, info->addr_unlock2);
+       debug("unlock addresses are 0x%lx/0x%lx\n",
+               info->addr_unlock1, info->addr_unlock2);
 
        sect_cnt = 0;
        total_size = 0;
@@ -399,7 +420,7 @@ static inline void fill_info(flash_info_t *info, const struct amd_flash_info *je
                ulong erase_region_count = (jedec_entry->regions[i] & 0xff) + 1;
 
                total_size += erase_region_size * erase_region_count;
-               debug ("erase_region_count = %d erase_region_size = %d\n",
+               debug("erase_region_count = %ld erase_region_size = %ld\n",
                       erase_region_count, erase_region_size);
                for (j = 0; j < erase_region_count; j++) {
                        if (sect_cnt >= CONFIG_SYS_MAX_FLASH_SECT) {