This is an automated email from the ASF dual-hosted git repository.

gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 757d01d  progmem: eliminate PROGMEM_ERASESTATE configuration option
757d01d is described below

commit 757d01d915c2c007353f79cf76b57c1b13a37083
Author: Petro Karashchenko <petro.karashche...@gmail.com>
AuthorDate: Mon Mar 21 22:31:31 2022 +0100

    progmem: eliminate PROGMEM_ERASESTATE configuration option
    
    Signed-off-by: Petro Karashchenko <petro.karashche...@gmail.com>
---
 arch/Kconfig                                 |  5 -----
 arch/arm/src/efm32/efm32_flash.c             | 11 ++++++++--
 arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.c | 15 ++++++++++++-
 arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.h |  4 ++++
 arch/arm/src/nrf52/nrf52_flash.c             | 17 +++++++++++++-
 arch/arm/src/s32k1xx/s32k1xx_progmem.c       | 33 +++++++++++++++++++---------
 arch/arm/src/s32k1xx/s32k1xx_progmem.h       |  4 +++-
 arch/arm/src/samd5e5/sam_progmem.c           | 17 +++++++++++++-
 arch/arm/src/samv7/Kconfig                   |  7 ------
 arch/arm/src/samv7/sam_progmem.c             |  4 ++--
 arch/arm/src/stm32/stm32f10xxf30xx_flash.c   |  7 +++++-
 arch/arm/src/stm32/stm32f20xxf40xx_flash.c   |  5 +++++
 arch/arm/src/stm32/stm32l15xx_flash.c        |  6 +++++
 arch/arm/src/stm32f7/stm32_flash.c           |  5 +++++
 arch/arm/src/stm32h7/Kconfig                 |  8 -------
 arch/arm/src/stm32h7/stm32_flash.c           |  8 +++----
 arch/arm/src/stm32l4/stm32l4_flash.c         |  8 ++++++-
 arch/arm/src/stm32l5/stm32l5_flash.c         | 10 +++++++--
 arch/arm/src/stm32u5/stm32_flash.c           | 18 +++++++++++++--
 boards/arm/samv7/common/Kconfig              |  2 --
 drivers/mtd/Kconfig                          |  7 ------
 drivers/mtd/mtd_progmem.c                    |  3 ---
 include/nuttx/progmem.h                      |  4 +---
 23 files changed, 145 insertions(+), 63 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 5bf143b..bd5d080 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -359,11 +359,6 @@ config ARCH_HAVE_PROGMEM_READ
        default n
        depends on ARCH_HAVE_PROGMEM
 
-config ARCH_HAVE_PROGMEM_ERASESTATE
-       bool
-       default n
-       depends on ARCH_HAVE_PROGMEM
-
 config ARCH_HAVE_RESET
        bool
        default n
diff --git a/arch/arm/src/efm32/efm32_flash.c b/arch/arm/src/efm32/efm32_flash.c
index e042ac3..6c68972 100644
--- a/arch/arm/src/efm32/efm32_flash.c
+++ b/arch/arm/src/efm32/efm32_flash.c
@@ -88,7 +88,7 @@
 
 /* Only for the EFM32 family for now */
 
-#if (defined(CONFIG_ARCH_CHIP_EFM32) && defined(CONFIG_EFM32_FLASHPROG))
+#if defined(CONFIG_ARCH_CHIP_EFM32) && defined(CONFIG_EFM32_FLASHPROG)
 
 /****************************************************************************
  * Pre-processor Definitions
@@ -114,6 +114,8 @@
 #   define EFM32_USERDATA_PAGESIZE (EFM32_USERDATA_SIZE/EFM32_USERDATA_NPAGES)
 #endif
 
+#define EFM32_FLASH_ERASEDVAL (0xffu)
+
 /* brief:
  *    The timeout used while waiting for the flash to become ready after
  *    a write. This number indicates the number of iterations to perform
@@ -749,7 +751,7 @@ ssize_t up_progmem_ispageerased(size_t page)
        count = up_progmem_pagesize(page);
        count; count--, addr++)
     {
-      if (getreg8(addr) != 0xff)
+      if (getreg8(addr) != EFM32_FLASH_ERASEDVAL)
         {
           bwritten++;
         }
@@ -880,4 +882,9 @@ ssize_t __ramfunc__ up_progmem_write(size_t addr,
   return word_count;
 }
 
+uint8_t up_progmem_erasestate(void)
+{
+  return EFM32_FLASH_ERASEDVAL;
+}
+
 #endif /* defined(CONFIG_ARCH_CHIP_EFM32)  */
diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.c 
b/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.c
index 7ad7930..e83a248 100644
--- a/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.c
+++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.c
@@ -382,7 +382,7 @@ ssize_t up_progmem_ispageerased(size_t page)
 
   for (i = 0; i < page_size; i++)
     {
-      if (p[i] != 0xffu)
+      if (p[i] != LPC17_40_FLASH_ERASEDVAL)
         {
           break;
         }
@@ -454,3 +454,16 @@ ssize_t up_progmem_write(size_t addr, FAR const void *buf, 
size_t count)
 
   return count;
 }
+
+/****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ *   Return value of erase state.
+ *
+ ****************************************************************************/
+
+uint8_t up_progmem_erasestate(void)
+{
+  return LPC17_40_FLASH_ERASEDVAL;
+}
diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.h 
b/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.h
index 18f766d..6f7b544 100644
--- a/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.h
+++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_progmem.h
@@ -53,6 +53,10 @@
 #define LPC17_40_FLASH_NUM_SECTORS \
   (LPC17_40_FLASH_NUM_4K_SECTORS + LPC17_40_FLASH_NUM_32K_SECTORS)
 
+/* Flash erased byte value */
+
+#define LPC17_40_FLASH_ERASEDVAL (0xffu)
+
 /* Size of a write page. */
 
 #define LPC17_40_WRITE_SIZE 256
diff --git a/arch/arm/src/nrf52/nrf52_flash.c b/arch/arm/src/nrf52/nrf52_flash.c
index eddcec0..e8f6ef3 100644
--- a/arch/arm/src/nrf52/nrf52_flash.c
+++ b/arch/arm/src/nrf52/nrf52_flash.c
@@ -63,6 +63,8 @@
 
 #define NRF52_FLASH_PAGE_SIZE  (4*1024)
 
+#define NRF52_FLASH_ERASEDVAL  (0xffu)
+
 /****************************************************************************
  * Public Functions
  ****************************************************************************/
@@ -269,7 +271,7 @@ ssize_t up_progmem_ispageerased(size_t page)
   for (addr = up_progmem_getaddress(page), count = up_progmem_pagesize(page);
        count; count--, addr++)
     {
-      if (getreg8(addr) != 0xff)
+      if (getreg8(addr) != NRF52_FLASH_ERASEDVAL)
         {
           bwritten++;
         }
@@ -342,3 +344,16 @@ ssize_t up_progmem_write(size_t addr, const void *buf, 
size_t count)
 
   return written;
 }
+
+/****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ *   Return value of erase state.
+ *
+ ****************************************************************************/
+
+uint8_t up_progmem_erasestate(void)
+{
+  return NRF52_FLASH_ERASEDVAL;
+}
diff --git a/arch/arm/src/s32k1xx/s32k1xx_progmem.c 
b/arch/arm/src/s32k1xx/s32k1xx_progmem.c
index ef90f11..239ad59 100644
--- a/arch/arm/src/s32k1xx/s32k1xx_progmem.c
+++ b/arch/arm/src/s32k1xx/s32k1xx_progmem.c
@@ -50,13 +50,13 @@
 
 union fccob_flash_addr
 {
-    uint32_t addr;
-    struct
+  uint32_t addr;
+  struct
     {
-        uint8_t fccob3;
-        uint8_t fccob2;
-        uint8_t fccob1;
-        uint8_t pad;
+      uint8_t fccob3;
+      uint8_t fccob2;
+      uint8_t fccob1;
+      uint8_t pad;
     } fccobs;
 };
 
@@ -64,7 +64,7 @@ union fccob_flash_addr
  * Private Functions
  ****************************************************************************/
 
-static inline void wait_ftfc_ready()
+static inline void wait_ftfc_ready(void)
 {
   while ((getreg8(S32K1XX_FTFC_FSTAT) & FTTC_FSTAT_CCIF) == 0)
     {
@@ -72,7 +72,7 @@ static inline void wait_ftfc_ready()
     }
 }
 
-static uint32_t execute_ftfc_command()
+static uint32_t execute_ftfc_command(void)
 {
   uint8_t regval;
   uint32_t retval;
@@ -288,7 +288,7 @@ ssize_t up_progmem_ispageerased(size_t page)
 
   for (i = 0; i < S32K1XX_PROGMEM_PAGE_SIZE; i++)
     {
-      if (p[i] != 0xff)
+      if (p[i] != S32K1XX_PROGMEM_ERASEDVAL)
         {
           break;
         }
@@ -387,7 +387,20 @@ ssize_t up_progmem_write(size_t addr, FAR const void *buf, 
size_t count)
   return count;
 }
 
-void s32k1xx_progmem_init()
+/****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ *   Return value of erase state.
+ *
+ ****************************************************************************/
+
+uint8_t up_progmem_erasestate(void)
+{
+  return S32K1XX_PROGMEM_ERASEDVAL;
+}
+
+void s32k1xx_progmem_init(void)
 {
   /* Disable D-Flash Cache */
 
diff --git a/arch/arm/src/s32k1xx/s32k1xx_progmem.h 
b/arch/arm/src/s32k1xx/s32k1xx_progmem.h
index 09bfe9d..3222cf1 100644
--- a/arch/arm/src/s32k1xx/s32k1xx_progmem.h
+++ b/arch/arm/src/s32k1xx/s32k1xx_progmem.h
@@ -71,10 +71,12 @@
 
 #define S32K1XX_PROGMEM_DFLASH_WRITE_UNIT_SIZE 8
 
+#define S32K1XX_PROGMEM_ERASEDVAL             (0xffu)
+
 /****************************************************************************
  * Public Function Prototypes
  ****************************************************************************/
 
-void s32k1xx_progmem_init();
+void s32k1xx_progmem_init(void);
 
 #endif /* __ARCH_ARM_SRC_S32K1XX_S32K1XX_PROGMEM_H */
diff --git a/arch/arm/src/samd5e5/sam_progmem.c 
b/arch/arm/src/samd5e5/sam_progmem.c
index 7a03c18..e3f612d 100644
--- a/arch/arm/src/samd5e5/sam_progmem.c
+++ b/arch/arm/src/samd5e5/sam_progmem.c
@@ -137,6 +137,8 @@
 #define SAMD5E5_PROGMEM_ENDSEC     (SAMD5E5_TOTAL_NSECTORS)
 #define SAMD5E5_PROGMEM_STARTSEC   (SAMD5E5_PROGMEM_ENDSEC - 
CONFIG_SAMD5E5_PROGMEM_NSECTORS)
 
+#define SAMD5E5_PROGMEM_ERASEDVAL  (0xffu)
+
 /* Misc stuff */
 
 #ifndef MIN
@@ -608,7 +610,7 @@ ssize_t up_progmem_ispageerased(size_t cluster)
        nleft > 0;
        nleft--, address++)
     {
-      if (getreg8(address) != 0xff)
+      if (getreg8(address) != SAMD5E5_PROGMEM_ERASEDVAL)
         {
           nwritten++;
         }
@@ -867,6 +869,19 @@ ssize_t up_progmem_write(size_t address, const void 
*buffer, size_t buflen)
 }
 
 /****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ *   Return value of erase state.
+ *
+ ****************************************************************************/
+
+uint8_t up_progmem_erasestate(void)
+{
+  return SAMD5E5_PROGMEM_ERASEDVAL;
+}
+
+/****************************************************************************
  *  The NVM User Row contains calibration data that are
  *  automatically read at device power on.
  *  The NVM User Row can be read at address 0x804000.
diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig
index 5e81a09..0b29d2c 100644
--- a/arch/arm/src/samv7/Kconfig
+++ b/arch/arm/src/samv7/Kconfig
@@ -1046,13 +1046,6 @@ config SAMV7_PROGMEM_NSECTORS
                flash memory that will be reserved for use with by the 
interfaces
                prototyped in include/nuttx/progmem.h
 
-config SAMV7_PROGMEM_ERASESTATE
-       bool "Flash progmem erasestate ioctl support"
-       default y
-       select ARCH_HAVE_PROGMEM_ERASESTATE
-       ---help---
-               Add progmem erasestate ioctl command.
-
 endif # SAMV7_PROGMEM
 
 menu "SDRAM Configuration"
diff --git a/arch/arm/src/samv7/sam_progmem.c b/arch/arm/src/samv7/sam_progmem.c
index 46df887..c8f52ed 100644
--- a/arch/arm/src/samv7/sam_progmem.c
+++ b/arch/arm/src/samv7/sam_progmem.c
@@ -136,7 +136,7 @@
 #define SAMV7_PROGMEM_ENDSEC     (SAMV7_TOTAL_NSECTORS)
 #define SAMV7_PROGMEM_STARTSEC   (SAMV7_PROGMEM_ENDSEC - 
CONFIG_SAMV7_PROGMEM_NSECTORS)
 
-#define SAMV7_PROGMEM_ERASEDVAL  (0xff)
+#define SAMV7_PROGMEM_ERASEDVAL  (0xffu)
 
 /* Misc stuff */
 
@@ -622,7 +622,7 @@ ssize_t up_progmem_write(size_t address, const void 
*buffer, size_t buflen)
  *
  ****************************************************************************/
 
-ssize_t up_progmem_erasestate(void)
+uint8_t up_progmem_erasestate(void)
 {
   return SAMV7_PROGMEM_ERASEDVAL;
 }
diff --git a/arch/arm/src/stm32/stm32f10xxf30xx_flash.c 
b/arch/arm/src/stm32/stm32f10xxf30xx_flash.c
index d2e3618..794ac7e 100644
--- a/arch/arm/src/stm32/stm32f10xxf30xx_flash.c
+++ b/arch/arm/src/stm32/stm32f10xxf30xx_flash.c
@@ -55,7 +55,7 @@
 #define FLASH_KEY2                 0xcdef89ab
 #define FLASH_OPTKEY1              0x08192a3b
 #define FLASH_OPTKEY2              0x4c5d6e7f
-#define FLASH_ERASEDVALUE          0xff
+#define FLASH_ERASEDVALUE          0xffu
 
 #if defined(STM32_FLASH_DUAL_BANK)
 /* Bank 0 is 512Kb; Bank 1 is up to 512Kb */
@@ -385,4 +385,9 @@ ssize_t up_progmem_write(size_t addr, const void *buf, 
size_t count)
   return written;
 }
 
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
+
 #endif /* defined(CONFIG_STM32_STM32F10XX) || defined(CONFIG_STM32_STM32F30XX) 
*/
diff --git a/arch/arm/src/stm32/stm32f20xxf40xx_flash.c 
b/arch/arm/src/stm32/stm32f20xxf40xx_flash.c
index fd1b0cd..fa781ff 100644
--- a/arch/arm/src/stm32/stm32f20xxf40xx_flash.c
+++ b/arch/arm/src/stm32/stm32f20xxf40xx_flash.c
@@ -452,4 +452,9 @@ ssize_t up_progmem_write(size_t addr, const void *buf, 
size_t count)
   return written;
 }
 
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
+
 #endif /* defined(CONFIG_STM32_STM32F20XX) || defined(CONFIG_STM32_STM32F4XXX) 
*/
diff --git a/arch/arm/src/stm32/stm32l15xx_flash.c 
b/arch/arm/src/stm32/stm32l15xx_flash.c
index cfb0ed6..269efb1 100644
--- a/arch/arm/src/stm32/stm32l15xx_flash.c
+++ b/arch/arm/src/stm32/stm32l15xx_flash.c
@@ -557,4 +557,10 @@ out:
   sem_unlock();
   return (ret == OK) ? written : ret;
 }
+
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
+
 #endif /* defined(CONFIG_STM32_STM32L15XX) */
diff --git a/arch/arm/src/stm32f7/stm32_flash.c 
b/arch/arm/src/stm32f7/stm32_flash.c
index efa8212..36886d9 100644
--- a/arch/arm/src/stm32f7/stm32_flash.c
+++ b/arch/arm/src/stm32f7/stm32_flash.c
@@ -455,3 +455,8 @@ ssize_t up_progmem_write(size_t addr, const void *buf, 
size_t count)
   sem_unlock();
   return written;
 }
+
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
diff --git a/arch/arm/src/stm32h7/Kconfig b/arch/arm/src/stm32h7/Kconfig
index 1dad0d0..4f60dd0 100644
--- a/arch/arm/src/stm32h7/Kconfig
+++ b/arch/arm/src/stm32h7/Kconfig
@@ -332,14 +332,6 @@ config STM32H7_PROGMEM
                Add progmem support, start block and end block options are 
provided to
                obtain an uniform flash memory mapping.
 
-config STM32H7_PROGMEM_ERASESTATE
-       bool "Flash progmem erasestate ioctl support"
-       depends on STM32H7_PROGMEM
-       default y
-       select ARCH_HAVE_PROGMEM_ERASESTATE
-       ---help---
-               Add progmem erasestate ioctl command.
-
 menu "STM32H7 Peripheral Selection"
 
 # These "hidden" settings determine whether a peripheral option is available
diff --git a/arch/arm/src/stm32h7/stm32_flash.c 
b/arch/arm/src/stm32h7/stm32_flash.c
index 28ea69f..7e174b5 100644
--- a/arch/arm/src/stm32h7/stm32_flash.c
+++ b/arch/arm/src/stm32h7/stm32_flash.c
@@ -150,10 +150,10 @@
 #define FLASH_KEY2           0xcdef89ab
 #define FLASH_OPTKEY1        0x08192a3b
 #define FLASH_OPTKEY2        0x4c5d6e7f
-#define FLASH_ERASEDVALUE    0xff
+#define FLASH_ERASEDVALUE    0xffu
 #define FLASH_ERASEDVALUE_DW 0xffffffff
-#define PROGMEM_NBLOCKS STM32_FLASH_NBLOCKS
-#define FLASH_NPAGES (STM32_FLASH_SIZE / FLASH_PAGE_SIZE)
+#define PROGMEM_NBLOCKS      STM32_FLASH_NBLOCKS
+#define FLASH_NPAGES         (STM32_FLASH_SIZE / FLASH_PAGE_SIZE)
 
 #define FLASH_TIMEOUT_VALUE 5000000  /* 5s */
 
@@ -987,7 +987,7 @@ exit_with_sem:
   return written;
 }
 
-ssize_t up_progmem_erasestate(void)
+uint8_t up_progmem_erasestate(void)
 {
   return FLASH_ERASEDVALUE;
 }
diff --git a/arch/arm/src/stm32l4/stm32l4_flash.c 
b/arch/arm/src/stm32l4/stm32l4_flash.c
index 555021d..cda4ea4 100644
--- a/arch/arm/src/stm32l4/stm32l4_flash.c
+++ b/arch/arm/src/stm32l4/stm32l4_flash.c
@@ -62,6 +62,7 @@
 
 #define FLASH_KEY1         0x45670123
 #define FLASH_KEY2         0xCDEF89AB
+#define FLASH_ERASEDVALUE  0xffu
 
 #define OPTBYTES_KEY1      0x08192A3B
 #define OPTBYTES_KEY2      0x4C5D6E7F
@@ -405,7 +406,7 @@ ssize_t up_progmem_ispageerased(size_t page)
   for (addr = up_progmem_getaddress(page), count = up_progmem_pagesize(page);
        count; count--, addr++)
     {
-      if (getreg8(addr) != 0xff)
+      if (getreg8(addr) != FLASH_ERASEDVALUE)
         {
           bwritten++;
         }
@@ -579,3 +580,8 @@ out:
   sem_unlock();
   return (ret == OK) ? written : ret;
 }
+
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
diff --git a/arch/arm/src/stm32l5/stm32l5_flash.c 
b/arch/arm/src/stm32l5/stm32l5_flash.c
index 9bdd1c7..bff483c 100644
--- a/arch/arm/src/stm32l5/stm32l5_flash.c
+++ b/arch/arm/src/stm32l5/stm32l5_flash.c
@@ -46,7 +46,7 @@
 #include "stm32l5_flash.h"
 #include "arm_internal.h"
 
-#if !(defined(CONFIG_STM32L5_STM32L562XX))
+#if !defined(CONFIG_STM32L5_STM32L562XX)
 #  error "Unrecognized STM32 chip"
 #endif
 
@@ -60,6 +60,7 @@
 
 #define FLASH_KEY1         0x45670123
 #define FLASH_KEY2         0xCDEF89AB
+#define FLASH_ERASEDVALUE  0xffu
 
 #define OPTBYTES_KEY1      0x08192A3B
 #define OPTBYTES_KEY2      0x4C5D6E7F
@@ -351,7 +352,7 @@ ssize_t up_progmem_ispageerased(size_t page)
   for (addr = up_progmem_getaddress(page), count = up_progmem_pagesize(page);
        count; count--, addr++)
     {
-      if (getreg8(addr) != 0xff)
+      if (getreg8(addr) != FLASH_ERASEDVALUE)
         {
           bwritten++;
         }
@@ -504,3 +505,8 @@ out:
   sem_unlock();
   return (ret == OK) ? written : ret;
 }
+
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
diff --git a/arch/arm/src/stm32u5/stm32_flash.c 
b/arch/arm/src/stm32u5/stm32_flash.c
index a202f21..f444176 100644
--- a/arch/arm/src/stm32u5/stm32_flash.c
+++ b/arch/arm/src/stm32u5/stm32_flash.c
@@ -46,7 +46,7 @@
 #include "stm32_flash.h"
 #include "arm_internal.h"
 
-#if !(defined(CONFIG_STM32U5_STM32U585XX))
+#if !defined(CONFIG_STM32U5_STM32U585XX)
 #  error "Unrecognized STM32 chip"
 #endif
 
@@ -60,6 +60,7 @@
 
 #define FLASH_KEY1         0x45670123
 #define FLASH_KEY2         0xCDEF89AB
+#define FLASH_ERASEDVALUE  0xffu
 
 #define OPTBYTES_KEY1      0x08192A3B
 #define OPTBYTES_KEY2      0x4C5D6E7F
@@ -351,7 +352,7 @@ ssize_t up_progmem_ispageerased(size_t page)
   for (addr = up_progmem_getaddress(page), count = up_progmem_pagesize(page);
        count; count--, addr++)
     {
-      if (getreg8(addr) != 0xff)
+      if (getreg8(addr) != FLASH_ERASEDVALUE)
         {
           bwritten++;
         }
@@ -504,3 +505,16 @@ out:
   sem_unlock();
   return (ret == OK) ? written : ret;
 }
+
+/****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ *   Return value of erase state.
+ *
+ ****************************************************************************/
+
+uint8_t up_progmem_erasestate(void)
+{
+  return FLASH_ERASEDVALUE;
+}
diff --git a/boards/arm/samv7/common/Kconfig b/boards/arm/samv7/common/Kconfig
index a0c7bb9..8fa68fc 100644
--- a/boards/arm/samv7/common/Kconfig
+++ b/boards/arm/samv7/common/Kconfig
@@ -62,9 +62,7 @@ config SAMV7_PROGMEM_OTA_PARTITION
        select MTD_BYTE_WRITE
        select MTD_PARTITION
        select MTD_PROGMEM
-       select MTD_PROGMEM_ERASESTATE
        select SAMV7_PROGMEM
-       select SAMV7_PROGMEM_ERASESTATE
 
 config SAMV7_MCUBOOT_HEADER_SIZE
        hex
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 3c3d79d..006215b 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -137,13 +137,6 @@ config MTD_PROGMEM
                interfaces must be exported by chip-specific logic.
 
 if MTD_PROGMEM
-
-config MTD_PROGMEM_ERASESTATE
-       bool "Enable FLASH MTD device erasestate"
-       depends on ARCH_HAVE_PROGMEM_ERASESTATE
-       ---help---
-               Enable the ioctl MTDIOCTL_PROGMEM_ERASESTATE command in the 
on-chip
-               FLASH interface.
                
 endif #MTD_PROGMEM
 
diff --git a/drivers/mtd/mtd_progmem.c b/drivers/mtd/mtd_progmem.c
index 3ecb920..48e18fd 100644
--- a/drivers/mtd/mtd_progmem.c
+++ b/drivers/mtd/mtd_progmem.c
@@ -367,7 +367,6 @@ static int progmem_ioctl(FAR struct mtd_dev_s *dev, int cmd,
         }
         break;
 
-#ifdef CONFIG_MTD_PROGMEM_ERASESTATE
       case MTDIOC_ERASESTATE:
         {
           FAR uint8_t *result = (FAR uint8_t *)arg;
@@ -377,8 +376,6 @@ static int progmem_ioctl(FAR struct mtd_dev_s *dev, int cmd,
         }
         break;
 
-#endif /* CONFIG_ARCH_PROGMEM_ERASESTATE */
-
       default:
         ret = -ENOTTY; /* Bad command */
         break;
diff --git a/include/nuttx/progmem.h b/include/nuttx/progmem.h
index 933d303..719b5d4 100644
--- a/include/nuttx/progmem.h
+++ b/include/nuttx/progmem.h
@@ -242,9 +242,7 @@ ssize_t up_progmem_read(size_t addr, FAR void *buf, size_t 
count);
  *
  ****************************************************************************/
 
-#ifdef CONFIG_ARCH_HAVE_PROGMEM_ERASESTATE
-ssize_t up_progmem_erasestate(void);
-#endif /* CONFIG_ARCH_HAVE_PROGMEM_ERASESTATE */
+uint8_t up_progmem_erasestate(void);
 
 #undef EXTERN
 #if defined(__cplusplus)

Reply via email to