]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/flash.h
ide: Add printf format string for CONFIG_SYS_64BIT_LBA option
[karo-tx-uboot.git] / include / flash.h
index 6e2981c5aefe0b207e5c1cf559680c5684e8ccb5..6d70bdd81d8318c9a44110a58a8a819c55da9b65 100644 (file)
@@ -33,7 +33,7 @@ typedef struct {
        ulong   size;                   /* total bank size in bytes             */
        ushort  sector_count;           /* number of erase units                */
        ulong   flash_id;               /* combined device & manufacturer code  */
-       ulong   start[CONFIG_SYS_MAX_FLASH_SECT];   /* physical sector start addresses */
+       ulong   start[CONFIG_SYS_MAX_FLASH_SECT];   /* virtual sector start address */
        uchar   protect[CONFIG_SYS_MAX_FLASH_SECT]; /* sector protection status */
 #ifdef CONFIG_SYS_FLASH_CFI
        uchar   portwidth;              /* the width of the port                */
@@ -46,7 +46,7 @@ typedef struct {
        ushort  cmd_reset;              /* vendor specific reset command        */
        ushort  interface;              /* used for x8/x16 adjustments          */
        ushort  legacy_unlock;          /* support Intel legacy (un)locking     */
-       uchar   manufacturer_id;        /* manufacturer id                      */
+       ushort  manufacturer_id;        /* manufacturer id                      */
        ushort  device_id;              /* device id                            */
        ushort  device_id2;             /* extended device id                   */
        ushort  ext_addr;               /* extended query table address         */
@@ -58,6 +58,8 @@ typedef struct {
 #endif
 } flash_info_t;
 
+extern flash_info_t flash_info[]; /* info for FLASH chips      */
+
 typedef unsigned long flash_sect_t;
 
 /*
@@ -87,11 +89,10 @@ typedef unsigned long flash_sect_t;
 /* convert between bit value and numeric value */
 #define CFI_FLASH_SHIFT_WIDTH  3
 
-/* cfi-mtd device name */
-#define        CFI_MTD_DEV_NAME        "cfi-mtd"
 /* Prototypes */
 
 extern unsigned long flash_init (void);
+extern void flash_protect_default(void);
 extern void flash_print_info (flash_info_t *);
 extern int flash_erase (flash_info_t *, int, int);
 extern int flash_sect_erase (ulong addr_first, ulong addr_last);
@@ -124,6 +125,9 @@ extern int jedec_flash_match(flash_info_t *info, ulong base);
 #define CFI_CMDSET_AMD_LEGACY          0xFFF0
 #endif
 
+#if defined(CONFIG_SYS_FLASH_CFI)
+extern flash_info_t *flash_get_info(ulong base);
+#endif
 
 /*-----------------------------------------------------------------------
  * return codes from flash_write():
@@ -137,6 +141,7 @@ extern int jedec_flash_match(flash_info_t *info, ulong base);
 #define ERR_UNKNOWN_FLASH_VENDOR       32
 #define ERR_UNKNOWN_FLASH_TYPE         64
 #define ERR_PROG_ERROR                 128
+#define ERR_ABORTED                    256
 
 /*-----------------------------------------------------------------------
  * Protection Flags for flash_protect():
@@ -153,6 +158,7 @@ extern int jedec_flash_match(flash_info_t *info, ulong base);
  * Device IDs
  */
 
+/* Manufacturers inside bank 0 have ids like 0x00xx00xx */
 #define AMD_MANUFACT   0x00010001      /* AMD     manuf. ID in D23..D16, D7..D0 */
 #define FUJ_MANUFACT   0x00040004      /* FUJITSU manuf. ID in D23..D16, D7..D0 */
 #define ATM_MANUFACT   0x001F001F      /* ATMEL */
@@ -165,6 +171,13 @@ extern int jedec_flash_match(flash_info_t *info, ulong base);
 #define TOSH_MANUFACT  0x00980098      /* TOSHIBA manuf. ID in D23..D16, D7..D0 */
 #define MT2_MANUFACT   0x002C002C      /* alternate MICRON manufacturer ID*/
 #define EXCEL_MANUFACT 0x004A004A      /* Excel Semiconductor                  */
+#define AMIC_MANUFACT  0x00370037      /* AMIC    manuf. ID in D23..D16, D7..D0 */
+#define WINB_MANUFACT  0x00DA00DA      /* Winbond manuf. ID in D23..D16, D7..D0 */
+
+/* Manufacturers inside bank 1 have ids like 0x01xx01xx */
+#define EON_MANUFACT   0x011C011C      /* EON     manuf. ID in D23..D16, D7..D0 */
+
+/* Manufacturers inside bank 2 have ids like 0x02xx02xx */
 
                                        /* Micron Technologies (INTEL compat.)  */
 #define MT_ID_28F400_T 0x44704470      /* 28F400B3 ID ( 4 M, top boot sector)  */
@@ -336,6 +349,7 @@ extern int jedec_flash_match(flash_info_t *info, ulong base);
 #define TOSH_ID_FVT160 0xC2            /* TC58FVT160 ID (16 M, top )           */
 #define TOSH_ID_FVB160 0x43            /* TC58FVT160 ID (16 M, bottom )        */
 #define PHILIPS_LPC2292 0x0401FF13  /* LPC2292 internal FLASH                  */
+#define NUMONYX_256MBIT        0x8922          /* Numonyx P33/30 256MBit 65nm  */
 
 /*-----------------------------------------------------------------------
  * Internal FLASH identification codes