[Skiboot] [PATCH V2 0/7] Improvements to flash reading code
Cyril Bur
cyril.bur at au1.ibm.com
Tue Jun 16 19:01:03 AEST 2015
>From V1 Coverletter:
Firstly apologies Stewart I should have had the patches I posted a few days
ago with this series. This series will be need to be applied after those.
https://patchwork.ozlabs.org/patch/480335/
These patches keep improving the blocklevel interface.
I've added the ability for ecc to be done at blocklevel, I've purposefully
left libflash _corrected() functions and their use within skiboot, as that
kind of change could wreck havoc. I'd like for skiboot to be the last that
migrates and I haven't done pflash yet.
I've also implemented smart_write() at blocklevel, in writing this I've
realised that smart can often be quite subjective, feedback requested here.
Rather than use a dodgy file accessing backend to libflash, use a file
backend at the blocklevel. This will make pflash and the gard tool much
nicer, and also make it easy for pflash to migrate to using /dev/mtd on
hosts to flash as well as being able to manipulate images on x86 machines.
I have a working gard tool with this code. Note: keen observers will
notice that the new file backend contains a fix to the MEMERASE MTD ioctl
when compared to what was in file_flash.c.
V2:
Patch 2/7 received a pretty substantial rewrite as adding test cases
highlighted some badly defined corner case behaviour in the region
protection logic.
Addressed Alistair's comments
Cyril Bur (7):
libflash/ecc: Simplify and cleanup ecc code.
libflash/blocklevel: Extend the block level to be able to do ecc
libflash/blocklevel: add blocklevel flags.
libflash/file: Add a file access backend to for the blocklevel
interface.
libflash: Delete file_file.[ch] files
libflash/blocklevel: add a smart write function which wraps up
eraseing and writing
libffs: init with ecc protection at blocklevel level
core/flash.c | 14 +-
external/gard/gard.c | 2 +-
external/pflash/pflash.c | 4 +-
libc/include/errno.h | 2 +
libflash/blocklevel.c | 223 +++++++++++++++++++++++++++++-
libflash/blocklevel.h | 20 +++
libflash/ecc.c | 51 ++++---
libflash/ecc.h | 44 +++---
libflash/file.c | 293 ++++++++++++++++++++++++++++++++++++++++
libflash/file.h | 45 ++++++
libflash/file_flash.c | 224 ------------------------------
libflash/file_flash.h | 11 --
libflash/libffs.c | 14 +-
libflash/libffs.h | 2 +-
libflash/libflash.c | 28 ++--
libflash/test/Makefile.check | 4 +-
libflash/test/test-blocklevel.c | 153 +++++++++++++++++++++
libflash/test/test-ecc.c | 16 +--
18 files changed, 834 insertions(+), 316 deletions(-)
create mode 100644 libflash/file.c
create mode 100644 libflash/file.h
delete mode 100644 libflash/file_flash.c
delete mode 100644 libflash/file_flash.h
create mode 100644 libflash/test/test-blocklevel.c
--
2.4.3
More information about the Skiboot
mailing list