env: Kconfig: cosmetics: update comment for SYS_RELOC_GD_ENV_ADDR
[oweals/u-boot.git] / include / flash.h
index 2a5e13a13d380b9c131a74c97900e4663d11e7b0..3bf6b22399ec920809a2d510174c9e997d9291ee 100644 (file)
@@ -1,8 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * (C) Copyright 2000-2005
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef _FLASH_H_
@@ -42,11 +41,16 @@ typedef struct {
        ushort  cfi_offset;             /* offset for cfi query                 */
        ulong   addr_unlock1;           /* unlock address 1 for AMD flash roms  */
        ulong   addr_unlock2;           /* unlock address 2 for AMD flash roms  */
+       uchar   sr_supported;           /* status register supported            */
        const char *name;               /* human-readable name                  */
 #endif
-#ifdef CONFIG_MTD
+#ifdef CONFIG_DM_MTD
        struct mtd_info *mtd;
 #endif
+#ifdef CONFIG_CFI_FLASH                        /* DM-specific parts */
+       struct udevice *dev;
+       phys_addr_t base;
+#endif
 } flash_info_t;
 
 extern flash_info_t flash_info[]; /* info for FLASH chips      */
@@ -67,8 +71,6 @@ typedef unsigned long flash_sect_t;
 #define FLASH_CFI_BY16         0x02
 #define FLASH_CFI_BY32         0x04
 #define FLASH_CFI_BY64         0x08
-/* convert between bit value and numeric value */
-#define CFI_FLASH_SHIFT_WIDTH  3
 /*
  * Values for the flash device interface
  */
@@ -82,21 +84,20 @@ typedef unsigned long flash_sect_t;
 
 /* 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);
-extern int flash_sect_protect (int flag, ulong addr_first, ulong addr_last);
-extern int flash_sect_roundb (ulong *addr);
-extern unsigned long flash_sector_size(flash_info_t *info, flash_sect_t sect);
-extern void flash_set_verbose(uint);
+unsigned long flash_init(void);
+void flash_print_info(flash_info_t *info);
+int flash_erase(flash_info_t *info, int s_first, int s_last);
+int flash_sect_erase(ulong addr_first, ulong addr_last);
+int flash_sect_protect(int flag, ulong addr_first, ulong addr_last);
+int flash_sect_roundb(ulong *addr);
+unsigned long flash_sector_size(flash_info_t *info, flash_sect_t sect);
+void flash_set_verbose(uint v);
 
 /* common/flash.c */
-extern void flash_protect (int flag, ulong from, ulong to, flash_info_t *info);
-extern int flash_write (char *, ulong, ulong);
-extern flash_info_t *addr2info (ulong);
-extern int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt);
+void flash_protect(int flag, ulong from, ulong to, flash_info_t *info);
+int flash_write(char *src, ulong addr, ulong cnt);
+flash_info_t *addr2info(ulong addr);
+int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt);
 
 /* drivers/mtd/cfi_mtd.c */
 #ifdef CONFIG_FLASH_CFI_MTD
@@ -116,15 +117,18 @@ 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
+/**
+ * flash_perror() - Print a flash error
+ *
+ * @err: Error number of message to print (ERR_... as below)
+ */
+void flash_perror(int err);
 
 /*-----------------------------------------------------------------------
  * return codes from flash_write():
  */
 #define ERR_OK                         0
-#define ERR_TIMOUT                     1
+#define ERR_TIMEOUT                    1
 #define ERR_NOT_ERASED                 2
 #define ERR_PROTECTED                  4
 #define ERR_INVAL                      8
@@ -469,7 +473,6 @@ extern flash_info_t *flash_get_info(ulong base);
 #define FLASH_S29GL128N 0x00F1         /* Spansion S29GL128N                   */
 
 #define FLASH_STM32    0x00F2          /* STM32 Embedded Flash */
-#define FLASH_STM32F1  0x00F3          /* STM32F1 Embedded Flash */
 
 #define FLASH_UNKNOWN  0xFFFF          /* unknown flash type                   */