drivers/mtd/mx25rxx.c: add support for 512B sectors

- Fix for mx25rxx driver as it does not work properly
- Add mx25rxx memory chip & smartfs support in b-l475e-iot01a/nsh config
- Update smartfs smart_scan() function
This commit is contained in:
Simon Piriou
2019-07-26 09:17:56 -06:00
committed by Gregory Nutt
parent 08460ba5b1
commit 780d4d41e8
7 changed files with 382 additions and 34 deletions
+1 -1
View File
@@ -1182,7 +1182,7 @@ if STM32L4_QSPI
config STM32L4_QSPI_FLASH_SIZE
int "Size of attached serial flash, bytes"
default 16777216
range 1 2147483648
range 1 2147483647
---help---
The STM32L4 QSPI peripheral requires the size of the Flash be specified
+1 -1
View File
@@ -6,7 +6,7 @@
if ARCH_BOARD_B_L475E_IOT01A
config B_L475E_IOT01A_MTD_FLASH
bool "MTD driver for external 64Mbytes flash memory"
bool "MTD driver for external 64Mbits flash memory"
default n
select STM32L4_DMA1
select STM32L4_QSPI
+7
View File
@@ -16,6 +16,9 @@ CONFIG_ARCH_CHIP_STM32L4=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARD_LOOPSPERMSEC=8025
CONFIG_BUILTIN=y
CONFIG_B_L475E_IOT01A_MTD_FLASH=y
CONFIG_B_L475E_IOT01A_MTD_PART=y
CONFIG_B_L475E_IOT01A_MTD_PART_LIST="16,64,128,128"
CONFIG_FS_PROCFS=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
@@ -23,10 +26,13 @@ CONFIG_INTELHEX_BINARY=y
CONFIG_MAX_TASKS=16
CONFIG_MAX_WDOGPARMS=2
CONFIG_MM_REGIONS=2
CONFIG_MTD_SMART_SECTOR_SIZE=512
CONFIG_MX25RXX_SECTOR512=y
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_LOSMART=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_READLINE=y
@@ -42,6 +48,7 @@ CONFIG_SDCLONE_DISABLE=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_STM32L4_QSPI_FLASH_SIZE=8388608
CONFIG_STM32L4_USART1=y
CONFIG_SYSTEM_NSH=y
CONFIG_USART1_SERIAL_CONSOLE=y
+10 -3
View File
@@ -1,7 +1,7 @@
/****************************************************************************
* config/b-l475e-iot01a/src/stm32_bringup.c
*
* Copyright (C) 2017-2018 Gregory Nutt. All rights reserved.
* Copyright (C) 2017-2019 Gregory Nutt. All rights reserved.
* Author: Simon Piriou <spiriou31@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -182,8 +182,15 @@ int stm32l4_bringup(void)
}
mtd_part = mtd_partition(g_mtd_fs, partoffset,
partszbytes / erasesize);
partoffset += partszbytes / erasesize;
partszbytes / geo.blocksize);
partoffset += partszbytes / geo.blocksize;
if (!mtd_part)
{
syslog(LOG_ERR, "Failed to create part %d, size=%d\n",
partno, partsize);
goto process_next_part;
}
#if defined(CONFIG_MTD_SMART) && defined(CONFIG_FS_SMARTFS)
/* Now initialize a SMART Flash block device and bind it to the MTD
+4
View File
@@ -641,6 +641,10 @@ config MX25RXX_QSPI_READ_FREQUENCY
Clock frequency for read data command.
Only Quad read is supported in this driver.
config MX25RXX_SECTOR512
bool "Simulate 512 byte Erase Blocks"
default n
endif # MTD_MX25RXX
config MTD_SMART
+358 -28
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1879,7 +1879,7 @@ static int smart_scan(FAR struct smart_struct_s *dev)
{
/* Read the next sector from the device */
ret = MTD_READ(dev->mtd, 0, sizeof(struct smart_sect_header_s),
ret = MTD_READ(dev->mtd, readaddress, sizeof(struct smart_sect_header_s),
(FAR uint8_t *) &header);
if (ret != sizeof(struct smart_sect_header_s))
{