You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2021/11/26 17:55:41 UTC
[incubator-nuttx] 02/04: arch/arm/src/samv7: add flash progmem erasestate ioctl support
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
commit 0d9425676dac5413860208a3f7e2591ce49d54cd
Author: Petro Karashchenko <pe...@gmail.com>
AuthorDate: Wed Nov 24 14:28:59 2021 +0200
arch/arm/src/samv7: add flash progmem erasestate ioctl support
Signed-off-by: Petro Karashchenko <pe...@gmail.com>
---
arch/arm/src/samv7/Kconfig | 7 +++++++
arch/arm/src/samv7/sam_progmem.c | 21 ++++++++++++++++++---
arch/arm/src/stm32h7/Kconfig | 4 ++--
include/nuttx/progmem.h | 2 +-
4 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig
index 78dab74..bbac6b3 100644
--- a/arch/arm/src/samv7/Kconfig
+++ b/arch/arm/src/samv7/Kconfig
@@ -816,6 +816,13 @@ 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 0f64a70..5d0d818 100644
--- a/arch/arm/src/samv7/sam_progmem.c
+++ b/arch/arm/src/samv7/sam_progmem.c
@@ -137,6 +137,8 @@
#define SAMV7_PROGMEM_ENDSEC (SAMV7_TOTAL_NSECTORS)
#define SAMV7_PROGMEM_STARTSEC (SAMV7_PROGMEM_ENDSEC - CONFIG_SAMV7_PROGMEM_NSECTORS)
+#define SAMV7_PROGMEM_ERASEDVAL (0xff)
+
/* Misc stuff */
#ifndef MIN
@@ -445,13 +447,13 @@ ssize_t up_progmem_ispageerased(size_t cluster)
address = (cluster << SAMV7_CLUSTER_SHIFT) + SAMV7_PROGMEM_START;
up_flush_dcache(address, address + SAMV7_CLUSTER_SIZE);
- /* Verify that the cluster is erased (i.e., all 0xff) */
+ /* Verify that the cluster is erased (i.e., all SAMV7_PROGMEM_ERASEDVAL) */
for (nleft = SAMV7_CLUSTER_SIZE, nwritten = 0;
nleft > 0;
nleft--, address++)
{
- if (getreg8(address) != 0xff)
+ if (getreg8(address) != SAMV7_PROGMEM_ERASEDVAL)
{
nwritten++;
}
@@ -469,7 +471,7 @@ ssize_t up_progmem_ispageerased(size_t cluster)
* Input Parameters:
* address - Address with or without flash offset
* buffer - Pointer to buffer
- * buflen - Number of bytes to write
+ * buflen - Number of bytes to write
*
* Returned Value:
* Bytes written or negative value on error. The following errors are
@@ -608,3 +610,16 @@ ssize_t up_progmem_write(size_t address, const void *buffer, size_t buflen)
page_buffer_unlock();
return written;
}
+
+/****************************************************************************
+ * Name: up_progmem_erasestate
+ *
+ * Description:
+ * Return a byte that represents flash erased value state
+ *
+ ****************************************************************************/
+
+ssize_t up_progmem_erasestate(void)
+{
+ return SAMV7_PROGMEM_ERASEDVAL;
+}
diff --git a/arch/arm/src/stm32h7/Kconfig b/arch/arm/src/stm32h7/Kconfig
index 51a9e77..610ff41 100644
--- a/arch/arm/src/stm32h7/Kconfig
+++ b/arch/arm/src/stm32h7/Kconfig
@@ -334,12 +334,12 @@ config STM32H7_PROGMEM
obtain an uniform flash memory mapping.
config STM32H7_PROGMEM_ERASESTATE
- bool "Flash progmem erasestate ictl support"
+ bool "Flash progmem erasestate ioctl support"
depends on STM32H7_PROGMEM
default y
select ARCH_HAVE_PROGMEM_ERASESTATE
---help---
- Add progmem erasestate ictl command.
+ Add progmem erasestate ioctl command.
menu "STM32H7 Peripheral Selection"
diff --git a/include/nuttx/progmem.h b/include/nuttx/progmem.h
index e671a9a..933d303 100644
--- a/include/nuttx/progmem.h
+++ b/include/nuttx/progmem.h
@@ -238,7 +238,7 @@ ssize_t up_progmem_read(size_t addr, FAR void *buf, size_t count);
* Name: up_progmem_erasestate
*
* Description:
- * Return value of erease state.
+ * Return value of erase state.
*
****************************************************************************/