[PATCH v4 01/14] flash: prefix error codes with FL_

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Jun 19 09:29:25 CEST 2024


On Mon, 17 Jun 2024 at 18:33, Jerome Forissier
<jerome.forissier at linaro.org> wrote:
>
> Prefix the flash status codes (ERR_*) with FL_ in order to avoid clashes
> with third-party libraries. Case in point: including the lwIP library
> header file <lwip/err.h> which defines err_enum_t as an enum with values
> being ERR_*.
>
> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> ---
>  board/cobra5272/flash.c           | 26 +++++++++---------
>  board/freescale/m5253demo/flash.c |  6 ++---
>  common/flash.c                    | 44 +++++++++++++++----------------
>  drivers/mtd/cfi_flash.c           | 36 ++++++++++++-------------
>  include/flash.h                   | 20 +++++++-------
>  5 files changed, 66 insertions(+), 66 deletions(-)
>
> diff --git a/board/cobra5272/flash.c b/board/cobra5272/flash.c
> index 8416af163ad..6464975f184 100644
> --- a/board/cobra5272/flash.c
> +++ b/board/cobra5272/flash.c
> @@ -134,22 +134,22 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
>  {
>         ulong result;
>         int iflag, cflag, prot, sect;
> -       int rc = ERR_OK;
> +       int rc = FL_ERR_OK;
>         int chip1;
>         ulong start;
>
>         /* first look for protection bits */
>
>         if (info->flash_id == FLASH_UNKNOWN)
> -               return ERR_UNKNOWN_FLASH_TYPE;
> +               return FL_ERR_UNKNOWN_FLASH_TYPE;
>
>         if ((s_first < 0) || (s_first > s_last)) {
> -               return ERR_INVAL;
> +               return FL_ERR_INVAL;
>         }
>
>         if ((info->flash_id & FLASH_VENDMASK) !=
>             (AMD_MANUFACT & FLASH_VENDMASK)) {
> -               return ERR_UNKNOWN_FLASH_VENDOR;
> +               return FL_ERR_UNKNOWN_FLASH_VENDOR;
>         }
>
>         prot = 0;
> @@ -159,7 +159,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
>                 }
>         }
>         if (prot)
> -               return ERR_PROTECTED;
> +               return FL_ERR_PROTECTED;
>
>         /*
>          * Disable interrupts which might cause a timeout
> @@ -216,11 +216,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
>                         MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
>
>                         if (chip1 == ERR) {
> -                               rc = ERR_PROG_ERROR;
> +                               rc = FL_ERR_PROG_ERROR;
>                                 goto outahere;
>                         }
>                         if (chip1 == TMO) {
> -                               rc = ERR_TIMEOUT;
> +                               rc = FL_ERR_TIMEOUT;
>                                 goto outahere;
>                         }
>
> @@ -251,7 +251,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
>  {
>         volatile u16 *addr = (volatile u16 *) dest;
>         ulong result;
> -       int rc = ERR_OK;
> +       int rc = FL_ERR_OK;
>         int cflag, iflag;
>         int chip1;
>         ulong start;
> @@ -261,7 +261,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
>          */
>         result = *addr;
>         if ((result & data) != data)
> -               return ERR_NOT_ERASED;
> +               return FL_ERR_NOT_ERASED;
>
>
>         /*
> @@ -302,7 +302,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
>         *addr = CMD_READ_ARRAY;
>
>         if (chip1 == ERR || *addr != data)
> -               rc = ERR_PROG_ERROR;
> +               rc = FL_ERR_PROG_ERROR;
>
>         if (iflag)
>                 enable_interrupts();
> @@ -321,13 +321,13 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
>
>         if (addr & 1) {
>                 printf ("unaligned destination not supported\n");
> -               return ERR_ALIGN;
> +               return FL_ERR_ALIGN;
>         }
>
>  #if 0
>         if (cnt & 1) {
>                 printf ("odd transfer sizes not supported\n");
> -               return ERR_ALIGN;
> +               return FL_ERR_ALIGN;
>         }
>  #endif
>
> @@ -365,5 +365,5 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
>                 cnt -= 1;
>         }
>
> -       return ERR_OK;
> +       return FL_ERR_OK;
>  }
> diff --git a/board/freescale/m5253demo/flash.c b/board/freescale/m5253demo/flash.c
> index eeb9cfd3125..b6b7df88761 100644
> --- a/board/freescale/m5253demo/flash.c
> +++ b/board/freescale/m5253demo/flash.c
> @@ -71,7 +71,7 @@ int flash_get_offsets(ulong base, flash_info_t * info)
>                 }
>         }
>
> -       return ERR_OK;
> +       return FL_ERR_OK;
>  }
>
>  void flash_print_info(flash_info_t * info)
> @@ -368,9 +368,9 @@ int write_buff(flash_info_t * info, uchar * src, ulong addr, ulong cnt)
>         }
>
>         if (cnt == 0)
> -               return ERR_OK;
> +               return FL_ERR_OK;
>
> -       return ERR_OK;
> +       return FL_ERR_OK;
>  }
>
>  /*-----------------------------------------------------------------------
> diff --git a/common/flash.c b/common/flash.c
> index 848f44e59df..99fd84e2aef 100644
> --- a/common/flash.c
> +++ b/common/flash.c
> @@ -110,13 +110,13 @@ addr2info(ulong addr)
>   * Make sure all target addresses are within Flash bounds,
>   * and no protected sectors are hit.
>   * Returns:
> - * ERR_OK          0 - OK
> - * ERR_TIMEOUT     1 - write timeout
> - * ERR_NOT_ERASED  2 - Flash not erased
> - * ERR_PROTECTED   4 - target range includes protected sectors
> - * ERR_INVAL       8 - target address not in Flash memory
> - * ERR_ALIGN       16 - target address not aligned on boundary
> - *                     (only some targets require alignment)
> + * FL_ERR_OK          0 - OK
> + * FL_ERR_TIMEOUT     1 - write timeout
> + * FL_ERR_NOT_ERASED  2 - Flash not erased
> + * FL_ERR_PROTECTED   4 - target range includes protected sectors
> + * FL_ERR_INVAL       8 - target address not in Flash memory
> + * FL_ERR_ALIGN       16 - target address not aligned on boundary
> + *                        (only some targets require alignment)
>   */
>  int
>  flash_write(char *src, ulong addr, ulong cnt)
> @@ -131,11 +131,11 @@ flash_write(char *src, ulong addr, ulong cnt)
>         __maybe_unused ulong cnt_orig = cnt;
>
>         if (cnt == 0) {
> -               return (ERR_OK);
> +               return (FL_ERR_OK);
>         }
>
>         if (!info_first || !info_last) {
> -               return (ERR_INVAL);
> +               return (FL_ERR_INVAL);
>         }
>
>         for (info = info_first; info <= info_last; ++info) {
> @@ -146,7 +146,7 @@ flash_write(char *src, ulong addr, ulong cnt)
>
>                         if ((end >= info->start[i]) && (addr < e_addr) &&
>                             (info->protect[i] != 0) ) {
> -                               return (ERR_PROTECTED);
> +                               return (FL_ERR_PROTECTED);
>                         }
>                 }
>         }
> @@ -169,11 +169,11 @@ flash_write(char *src, ulong addr, ulong cnt)
>  #if defined(CONFIG_FLASH_VERIFY)
>         if (memcmp(src_orig, addr_orig, cnt_orig)) {
>                 printf("\nVerify failed!\n");
> -               return ERR_PROG_ERROR;
> +               return FL_ERR_PROG_ERROR;
>         }
>  #endif /* CONFIG_SYS_FLASH_VERIFY_AFTER_WRITE */
>
> -       return (ERR_OK);
> +       return (FL_ERR_OK);
>  }
>
>  /*-----------------------------------------------------------------------
> @@ -182,33 +182,33 @@ flash_write(char *src, ulong addr, ulong cnt)
>  void flash_perror(int err)
>  {
>         switch (err) {
> -       case ERR_OK:
> +       case FL_ERR_OK:
>                 break;
> -       case ERR_TIMEOUT:
> +       case FL_ERR_TIMEOUT:
>                 puts ("Timeout writing to Flash\n");
>                 break;
> -       case ERR_NOT_ERASED:
> +       case FL_ERR_NOT_ERASED:
>                 puts ("Flash not Erased\n");
>                 break;
> -       case ERR_PROTECTED:
> +       case FL_ERR_PROTECTED:
>                 puts ("Can't write to protected Flash sectors\n");
>                 break;
> -       case ERR_INVAL:
> +       case FL_ERR_INVAL:
>                 puts ("Outside available Flash\n");
>                 break;
> -       case ERR_ALIGN:
> +       case FL_ERR_ALIGN:
>                 puts ("Start and/or end address not on sector boundary\n");
>                 break;
> -       case ERR_UNKNOWN_FLASH_VENDOR:
> +       case FL_ERR_UNKNOWN_FLASH_VENDOR:
>                 puts ("Unknown Vendor of Flash\n");
>                 break;
> -       case ERR_UNKNOWN_FLASH_TYPE:
> +       case FL_ERR_UNKNOWN_FLASH_TYPE:
>                 puts ("Unknown Type of Flash\n");
>                 break;
> -       case ERR_PROG_ERROR:
> +       case FL_ERR_PROG_ERROR:
>                 puts ("General Flash Programming Error\n");
>                 break;
> -       case ERR_ABORTED:
> +       case FL_ERR_ABORTED:
>                 puts("Flash Programming Aborted\n");
>                 break;
>         default:
> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index 8ade7949a68..6369c7127c6 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -592,11 +592,11 @@ static int flash_status_check(flash_info_t *info, flash_sect_t sector,
>                                flash_read_long(info, sector, 0));
>                         flash_write_cmd(info, sector, 0, info->cmd_reset);
>                         udelay(1);
> -                       return ERR_TIMEOUT;
> +                       return FL_ERR_TIMEOUT;
>                 }
>                 udelay(1);              /* also triggers watchdog */
>         }
> -       return ERR_OK;
> +       return FL_ERR_OK;
>  }
>
>  /*-----------------------------------------------------------------------
> @@ -615,9 +615,9 @@ static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
>         case CFI_CMDSET_INTEL_PROG_REGIONS:
>         case CFI_CMDSET_INTEL_EXTENDED:
>         case CFI_CMDSET_INTEL_STANDARD:
> -               if (retcode == ERR_OK &&
> +               if (retcode == FL_ERR_OK &&
>                     !flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
> -                       retcode = ERR_INVAL;
> +                       retcode = FL_ERR_INVAL;
>                         printf("Flash %s error at address %lx\n", prompt,
>                                info->start[sector]);
>                         if (flash_isset(info, sector, 0, FLASH_STATUS_ECLBS |
> @@ -626,14 +626,14 @@ static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
>                         } else if (flash_isset(info, sector, 0,
>                                                 FLASH_STATUS_ECLBS)) {
>                                 puts("Block Erase Error.\n");
> -                               retcode = ERR_NOT_ERASED;
> +                               retcode = FL_ERR_NOT_ERASED;
>                         } else if (flash_isset(info, sector, 0,
>                                                 FLASH_STATUS_PSLBS)) {
>                                 puts("Locking Error\n");
>                         }
>                         if (flash_isset(info, sector, 0, FLASH_STATUS_DPS)) {
>                                 puts("Block locked.\n");
> -                               retcode = ERR_PROTECTED;
> +                               retcode = FL_ERR_PROTECTED;
>                         }
>                         if (flash_isset(info, sector, 0, FLASH_STATUS_VPENS))
>                                 puts("Vpp Low Error.\n");
> @@ -701,12 +701,12 @@ static int flash_status_poll(flash_info_t *info, void *src, void *dst,
>                 if (get_timer(start) > tout) {
>                         printf("Flash %s timeout at address %lx data %lx\n",
>                                prompt, (ulong)dst, (ulong)flash_read8(dst));
> -                       return ERR_TIMEOUT;
> +                       return FL_ERR_TIMEOUT;
>                 }
>                 udelay(1);              /* also triggers watchdog */
>         }
>  #endif /* CONFIG_SYS_CFI_FLASH_STATUS_POLL */
> -       return ERR_OK;
> +       return FL_ERR_OK;
>  }
>
>  /*-----------------------------------------------------------------------
> @@ -809,7 +809,7 @@ static int flash_write_cfiword(flash_info_t *info, ulong dest, cfiword_t cword)
>                 break;
>         }
>         if (!flag)
> -               return ERR_NOT_ERASED;
> +               return FL_ERR_NOT_ERASED;
>
>         /* Disable interrupts which might cause a timeout here */
>         flag = disable_interrupts();
> @@ -898,7 +898,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>                 shift = 3;
>                 break;
>         default:
> -               retcode = ERR_INVAL;
> +               retcode = FL_ERR_INVAL;
>                 goto out_unmap;
>         }
>
> @@ -929,7 +929,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>                 }
>         }
>         if (!flag) {
> -               retcode = ERR_NOT_ERASED;
> +               retcode = FL_ERR_NOT_ERASED;
>                 goto out_unmap;
>         }
>
> @@ -949,7 +949,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>                 retcode = flash_status_check(info, sector,
>                                              info->buffer_write_tout,
>                                              "write to buffer");
> -               if (retcode == ERR_OK) {
> +               if (retcode == FL_ERR_OK) {
>                         /* reduce the number of loops by the width of
>                          * the port
>                          */
> @@ -974,7 +974,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>                                         src += 8, dst += 8;
>                                         break;
>                                 default:
> -                                       retcode = ERR_INVAL;
> +                                       retcode = FL_ERR_INVAL;
>                                         goto out_unmap;
>                                 }
>                         }
> @@ -1024,7 +1024,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>                         }
>                         break;
>                 default:
> -                       retcode = ERR_INVAL;
> +                       retcode = FL_ERR_INVAL;
>                         goto out_unmap;
>                 }
>
> @@ -1042,7 +1042,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
>
>         default:
>                 debug("Unknown Command Set\n");
> -               retcode = ERR_INVAL;
> +               retcode = FL_ERR_INVAL;
>                 break;
>         }
>
> @@ -1388,7 +1388,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
>                 if (i > cnt)
>                         i = cnt;
>                 rc = flash_write_cfibuffer(info, wp, src, i);
> -               if (rc != ERR_OK)
> +               if (rc != FL_ERR_OK)
>                         return rc;
>                 i -= i & (info->portwidth - 1);
>                 wp += i;
> @@ -1397,7 +1397,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
>                 FLASH_SHOW_PROGRESS(scale, dots, digit, i);
>                 /* Only check every once in a while */
>                 if ((cnt & 0xFFFF) < buffered_size && ctrlc())
> -                       return ERR_ABORTED;
> +                       return FL_ERR_ABORTED;
>         }
>  #else
>         while (cnt >= info->portwidth) {
> @@ -1412,7 +1412,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
>                 FLASH_SHOW_PROGRESS(scale, dots, digit, info->portwidth);
>                 /* Only check every once in a while */
>                 if ((cnt & 0xFFFF) < info->portwidth && ctrlc())
> -                       return ERR_ABORTED;
> +                       return FL_ERR_ABORTED;
>         }
>  #endif /* CONFIG_SYS_FLASH_USE_BUFFER_WRITE */
>
> diff --git a/include/flash.h b/include/flash.h
> index 3710a2731b7..77bee42f76b 100644
> --- a/include/flash.h
> +++ b/include/flash.h
> @@ -125,16 +125,16 @@ void flash_perror(int err);
>  /*-----------------------------------------------------------------------
>   * return codes from flash_write():
>   */
> -#define ERR_OK                         0
> -#define ERR_TIMEOUT                    1
> -#define ERR_NOT_ERASED                 2
> -#define ERR_PROTECTED                  4
> -#define ERR_INVAL                      8
> -#define ERR_ALIGN                      16
> -#define ERR_UNKNOWN_FLASH_VENDOR       32
> -#define ERR_UNKNOWN_FLASH_TYPE         64
> -#define ERR_PROG_ERROR                 128
> -#define ERR_ABORTED                    256
> +#define FL_ERR_OK                      0
> +#define FL_ERR_TIMEOUT                 1
> +#define FL_ERR_NOT_ERASED              2
> +#define FL_ERR_PROTECTED               4
> +#define FL_ERR_INVAL                   8
> +#define FL_ERR_ALIGN                   16
> +#define FL_ERR_UNKNOWN_FLASH_VENDOR    32
> +#define FL_ERR_UNKNOWN_FLASH_TYPE      64
> +#define FL_ERR_PROG_ERROR              128
> +#define FL_ERR_ABORTED                 256
>
>  /*-----------------------------------------------------------------------
>   * Protection Flags for flash_protect():
> --
> 2.40.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list