]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/jedec_flash.c
Nand driver for Nomadik SoC
[u-boot] / drivers / mtd / jedec_flash.c
index b958d1723a2a5acc690d12627670bdffd8a21daa..e48aceceae66adb309068b629604420eb9b30d17 100644 (file)
 
 #define P_ID_AMD_STD CFI_CMDSET_AMD_LEGACY
 
-/* Manufacturers */
-#define MANUFACTURER_AMD       0x0001
-#define MANUFACTURER_SST       0x00BF
-
 /* AMD */
-#define AM29DL800BB    0x22C8
+#define AM29DL800BB    0x22CB
 #define AM29DL800BT    0x224A
 
 #define AM29F800BB     0x2258
@@ -170,9 +166,9 @@ struct amd_flash_info {
 #define SIZE_8MiB   23
 
 static const struct amd_flash_info jedec_table[] = {
-#ifdef CFG_FLASH_LEGACY_256Kx8
+#ifdef CONFIG_SYS_FLASH_LEGACY_256Kx8
        {
-               .mfr_id         = MANUFACTURER_SST,
+               .mfr_id         = (u16)SST_MANUFACT,
                .dev_id         = SST39LF020,
                .name           = "SST 39LF020",
                .uaddr          = {
@@ -186,9 +182,9 @@ static const struct amd_flash_info jedec_table[] = {
                }
        },
 #endif
-#ifdef CFG_FLASH_LEGACY_512Kx8
+#ifdef CONFIG_SYS_FLASH_LEGACY_512Kx8
        {
-               .mfr_id         = MANUFACTURER_AMD,
+               .mfr_id         = (u16)AMD_MANUFACT,
                .dev_id         = AM29LV040B,
                .name           = "AMD AM29LV040B",
                .uaddr          = {
@@ -202,7 +198,7 @@ static const struct amd_flash_info jedec_table[] = {
                }
        },
        {
-               .mfr_id         = MANUFACTURER_SST,
+               .mfr_id         = (u16)SST_MANUFACT,
                .dev_id         = SST39LF040,
                .name           = "SST 39LF040",
                .uaddr          = {
@@ -215,10 +211,24 @@ static const struct amd_flash_info jedec_table[] = {
                        ERASEINFO(0x01000,128),
                }
        },
+       {
+               .mfr_id         = (u16)STM_MANUFACT,
+               .dev_id         = STM_ID_M29W040B,
+               .name           = "ST Micro M29W040B",
+               .uaddr          = {
+                       [0] = MTD_UADDR_0x0555_0x02AA /* x8 */
+               },
+               .DevSize        = SIZE_512KiB,
+               .CmdSet         = P_ID_AMD_STD,
+               .NumEraseRegions= 1,
+               .regions        = {
+                       ERASEINFO(0x10000,8),
+               }
+       },
 #endif
-#ifdef CFG_FLASH_LEGACY_512Kx16
+#ifdef CONFIG_SYS_FLASH_LEGACY_512Kx16
        {
-               .mfr_id         = MANUFACTURER_AMD,
+               .mfr_id         = (u16)AMD_MANUFACT,
                .dev_id         = AM29LV400BB,
                .name           = "AMD AM29LV400BB",
                .uaddr          = {
@@ -234,6 +244,23 @@ static const struct amd_flash_info jedec_table[] = {
                        ERASEINFO(0x10000,7),
                }
        },
+       {
+               .mfr_id         = (u16)AMD_MANUFACT,
+               .dev_id         = AM29LV800BB,
+               .name           = "AMD AM29LV800BB",
+               .uaddr          = {
+                       [1] = MTD_UADDR_0x0555_0x02AA /* x16 */
+               },
+               .DevSize        = SIZE_1MiB,
+               .CmdSet         = CFI_CMDSET_AMD_LEGACY,
+               .NumEraseRegions= 4,
+               .regions        = {
+                       ERASEINFO(0x04000, 1),
+                       ERASEINFO(0x02000, 2),
+                       ERASEINFO(0x08000, 1),
+                       ERASEINFO(0x10000, 15),
+               }
+       },
 #endif
 };
 
@@ -290,7 +317,7 @@ static inline void fill_info(flash_info_t *info, const struct amd_flash_info *je
                debug ("erase_region_count = %d erase_region_size = %d\n",
                       erase_region_count, erase_region_size);
                for (j = 0; j < erase_region_count; j++) {
-                       if (sect_cnt >= CFG_MAX_FLASH_SECT) {
+                       if (sect_cnt >= CONFIG_SYS_MAX_FLASH_SECT) {
                                printf("ERROR: too many flash sectors\n");
                                break;
                        }