Commit Graph

10 Commits

Author SHA1 Message Date
Tomasz Moń
c011646081 drivers: flashdisk: check partition constraints
Fail with error if any of flashdisk partition assumptions are not met:
  * uniform page size through the whole partition
  * flashdisk starts at page boundary
  * flashdisk ends at page boundary

Read-only flashdisks are not subject to above conditions because the
cache buffer is not used for read-only flashdisks.

The checks can be disabled via Kconfig option to save code space.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-14 16:37:04 +01:00
Tomasz Moń
8981015335 drivers: flashdisk: support read-only flashdisks
Force cache-size to 0 and treat flashdisk as read-only when backing
partition has read-only flag set. This allows users to save RAM when the
application does not write to the flashdisk, e.g. when a predefined FAT
filesystem is used.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-14 16:37:04 +01:00
Tomasz Moń
3a71d88b82 drivers: flashdisk: make disk access thread-safe
Protect runtime flashdisk data with mutex to avoid race conditions.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-02 10:31:58 +01:00
Tomasz Moń
a4c59a335e drivers: flashdisk: implement basic write caching
Cache written data to avoid rewriting same flash page multiple times
when writing subsequent flash pages. The cache is used for reads to
account for reading not yet committed (i.e. dirty) page data. Speeding
up reads is not intention of this patch and therefore the read path
does not modify cache state.

Fixes: #30212

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-02 10:31:58 +01:00
Tomasz Moń
050e74e0a1 drivers: flashdisk: use instance specific buffers
Allocate cache buffer for every flashdisk instance instead of using one
globally shared buffer.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-10-28 12:45:58 +02:00
Tomasz Moń
fb30d8221d drivers: flashdisk: use devicetree to obtain flash partition info
Use devicetree to obtain information for all zephyr flash disks.

Co-authored-by: Johann Fischer <johann.fischer@nordicsemi.no>
Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-10-28 12:45:58 +02:00
Gerard Marull-Paretas
fb60aab245 drivers: migrate includes to <zephyr/...>
In order to bring consistency in-tree, migrate all drivers to the new
prefix <zephyr/...>. Note that the conversion has been scripted, refer
to #45388 for more details.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-06 19:58:21 +02:00
Andrzej Puzdrowski
1960a5d234 disk/disk_acces_flash: remove flash_write_protection_set() usage
This patch removes scenario which was testing deprecated
API behaviors. Needed as As flash_write_protection_set() was
deprecated and became no-operation.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2021-03-29 13:43:55 -04:00
Johann Fischer
45d468bfdb include: move disk driver interface to own header
Move disk driver interface to own header and
separate disk access interface and disk driver interface.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-03-23 12:16:01 +01:00
Johann Fischer
03101e75d8 disk: move disk and sdmmc controller drivers to drivers/disk
The files disk_access_usdhc.c, disk_access_spi_sdhc.c,
disk_access_stm32_sdmmc.c, disk_access_ram.c and
disk_access_flash.c are actually drivers for block devices and SD/MMC
controllers. This patch moves this drivers to drivers/disk and
reworks the configuration so that the drivers are selected when
the corresponding node is enabled.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-03-23 12:16:01 +01:00