aboutsummaryrefslogtreecommitdiff
path: root/libflash
diff options
context:
space:
mode:
authorAdriana Kobylak <anoo@linux.vnet.ibm.com>2017-12-12 13:37:03 -0600
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-12-13 22:05:06 -0600
commit0bd6a8c9a4bcefe3c687c5aabfa5cae7234c376c (patch)
treeff8d77434563f225cd56c94a18409760bc754374 /libflash
parent45a961515be6ef5c58985ac7f2e66b1e8c26016a (diff)
downloadskiboot-0bd6a8c9a4bcefe3c687c5aabfa5cae7234c376c.zip
skiboot-0bd6a8c9a4bcefe3c687c5aabfa5cae7234c376c.tar.gz
skiboot-0bd6a8c9a4bcefe3c687c5aabfa5cae7234c376c.tar.bz2
pflash: Support for clean_on_ecc_error flag
Add the misc flag clear_on_ecc_error to libflash/pflash. This was the only missing flag. The generator of the virtual pnor image relies on libflash/pflash to provide the partition information, so all flags are needed to build an accurate virtual pnor partition table. Signed-off-by: Adriana Kobylak <anoo@linux.vnet.ibm.com> Reviewed-by: Cyril Bur <cyril.bur@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libflash')
-rw-r--r--libflash/ffs.h1
-rw-r--r--libflash/libffs.c3
-rw-r--r--libflash/libffs.h1
3 files changed, 3 insertions, 2 deletions
diff --git a/libflash/ffs.h b/libflash/ffs.h
index 26cb9d8..433ecac 100644
--- a/libflash/ffs.h
+++ b/libflash/ffs.h
@@ -77,6 +77,7 @@ enum ffs_type {
#define FFS_MISCFLAGS_BACKUP 0x20
#define FFS_MISCFLAGS_REPROVISION 0x10
#define FFS_MISCFLAGS_VOLATILE 0x08
+#define FFS_MISCFLAGS_CLEARECC 0x04
/**
* struct __ffs_entry_user - On flash user data entries
diff --git a/libflash/libffs.c b/libflash/libffs.c
index 87c5197..57dca49 100644
--- a/libflash/libffs.c
+++ b/libflash/libffs.c
@@ -724,8 +724,7 @@ int ffs_entry_user_set(struct ffs_entry *ent, struct ffs_entry_user *user)
return -1;
if (user->miscflags & ~(FFS_MISCFLAGS_PRESERVED | FFS_MISCFLAGS_BACKUP |
FFS_MISCFLAGS_READONLY | FFS_MISCFLAGS_REPROVISION |
- FFS_MISCFLAGS_VOLATILE
-))
+ FFS_MISCFLAGS_VOLATILE | FFS_MISCFLAGS_CLEARECC))
return -1;
memcpy(&ent->user, user, sizeof(*user));
diff --git a/libflash/libffs.h b/libflash/libffs.h
index 0610399..47a3808 100644
--- a/libflash/libffs.h
+++ b/libflash/libffs.h
@@ -89,6 +89,7 @@ struct ffs_entry_user {
#define FFS_MISCFLAGS_BACKUP 0x20
#define FFS_MISCFLAGS_REPROVISION 0x10
#define FFS_MISCFLAGS_VOLATILE 0x08
+#define FFS_MISCFLAGS_CLEARECC 0x04
bool has_ecc(struct ffs_entry *ent);