[PATCH rtems6 - v2 00/16] Overwork flashdev

berndmoessner80 at gmail.com berndmoessner80 at gmail.com
Sun Jan 7 18:18:34 UTC 2024


From: Bernd Moessner <berndmoessner80 at gmail.com>

Hi,

here`s the revised patch set.

Patches 1-5 have not been disputed and are therefore untouched.
I only added the issue reference to the comment line.

I`ve choosen to not rename "min. write block size" and "region". In
addition to that I kept the "region" mechanics i.e. having only
set and unset. Calling set two times still updates the current region.
Nevertheless there is a lot of refactoring wrt. aligning
IOCTL and function names / making their names a bit more descriptive
by adding "GET/get" where appropriate.

Apart from that:

* Some bugfixes like the wrong address computation when returing
from read / write (happened only in case a region is set)

* As Kinsey recommended I`ve added the information on the erase block
size to the page info instead of creating a new IOCTL.

* The region create and update command now check if the region is
aligned to the erase block size.

* The write function checks if address / length are aligned to min.
write block size (if it is !=0)

We still need Aaron for review, but the API change is much smaller in
this patch set compared to the previous one. Therefore, I hope we can
resolve this issue soon.

Regards
Bernd


Bernd Moessner (16):
  flashdev.h: Add missing C++ include guards
  flashdev: Unify IOCTL macro names
  flashdev: Align IOCTL function and macro names
  flashdev: Align IOCTL and shell function names
  flashdev: Add missing default case
  flashdev.c: return error in case neither read nor write buffer was
    provided
  flashdev: fix wrong offset assignment
  flashdev: add function to deregister and update test case
  flashdev: Refactor RTEMS_FLASHDEV_IOCTL_GET_WRITE_BLOCK_SIZE
  flashdev testsuite: Allow testsuite to set the min. write block size
  flashdev testsuite: allow page size and count to be set from testcase
  flashdev: Add erase info to page info
  flashdev: erase function must take erase size and alignment into
    account
  flashdev: create region only if it is aligned to erase size
  flashdev: Refactor IOCTL defines into enum
  flashdev: disallow writes that do not match alignment / req. length

 cpukit/dev/flash/flashdev.c                   | 196 +++++++++----
 cpukit/include/dev/flash/flashdev.h           |  88 ++++--
 cpukit/libmisc/shell/main_flashdev.c          |  83 +++---
 testsuites/libtests/flashdev01/init.c         | 269 +++++++++++++-----
 .../libtests/flashdev01/test_flashdev.c       | 161 ++++++++---
 .../libtests/flashdev01/test_flashdev.h       |   9 +-
 6 files changed, 580 insertions(+), 226 deletions(-)

-- 
2.34.1



More information about the devel mailing list