diff options
author | Hung-Te Lin <hungte@chromium.org> | 2019-03-01 10:45:13 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-03-04 13:25:01 +0000 |
commit | 470861206100f8f1aab63fda5359c31b3583cd2b (patch) | |
tree | 70b491a07aec34aa6f7dadf10b35a464b74b66d7 | |
parent | 6c36642c0701daa3bc94aff3d8e1d66ee4cc21b1 (diff) |
fmap: Add FMAP_AREA_PRESERVE
When updating firmware, we may need to preserve some sections like VPD,
calibration data, ... etc. The logic can be hard-coded in updater as a
list of known names, but a better solution is to have that directly
declared inside FMAP area flags.
To do that, the first step is to apply the changes in flash map
(http://crosreview.com/1493767). A new FMAP_AREA_PRESERVE is now
defined and will be set in future with new syntax in FMD parser.
BUG=chromium:936768
TEST=make; boots an x86 image.
Change-Id: Idba5c8d4a4c5d272f22be85d2054c6c0ce020b1b
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://review.coreboot.org/c/31676
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r-- | payloads/libpayload/include/fmap_serialized.h | 1 | ||||
-rw-r--r-- | src/commonlib/include/commonlib/fmap_serialized.h | 1 | ||||
-rw-r--r-- | util/cbfstool/flashmap/fmap.c | 1 | ||||
-rw-r--r-- | util/cbfstool/flashmap/fmap.h | 1 |
4 files changed, 4 insertions, 0 deletions
diff --git a/payloads/libpayload/include/fmap_serialized.h b/payloads/libpayload/include/fmap_serialized.h index 1e83760442..53a09af7a8 100644 --- a/payloads/libpayload/include/fmap_serialized.h +++ b/payloads/libpayload/include/fmap_serialized.h @@ -48,6 +48,7 @@ enum fmap_flags { FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_RO = 1 << 2, + FMAP_AREA_PRESERVE = 1 << 3, }; /* Mapping of volatile and static regions in firmware binary */ diff --git a/src/commonlib/include/commonlib/fmap_serialized.h b/src/commonlib/include/commonlib/fmap_serialized.h index 1e83760442..53a09af7a8 100644 --- a/src/commonlib/include/commonlib/fmap_serialized.h +++ b/src/commonlib/include/commonlib/fmap_serialized.h @@ -48,6 +48,7 @@ enum fmap_flags { FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_RO = 1 << 2, + FMAP_AREA_PRESERVE = 1 << 3, }; /* Mapping of volatile and static regions in firmware binary */ diff --git a/util/cbfstool/flashmap/fmap.c b/util/cbfstool/flashmap/fmap.c index 733f468390..f1d2fb9e0c 100644 --- a/util/cbfstool/flashmap/fmap.c +++ b/util/cbfstool/flashmap/fmap.c @@ -59,6 +59,7 @@ const struct valstr flag_lut[] = { { FMAP_AREA_STATIC, "static" }, { FMAP_AREA_COMPRESSED, "compressed" }, { FMAP_AREA_RO, "ro" }, + { FMAP_AREA_PRESERVE, "preserve" }, }; /* returns size of fmap data structure if successful, <0 to indicate error */ diff --git a/util/cbfstool/flashmap/fmap.h b/util/cbfstool/flashmap/fmap.h index 6e2091fc4f..e360011328 100644 --- a/util/cbfstool/flashmap/fmap.h +++ b/util/cbfstool/flashmap/fmap.h @@ -49,6 +49,7 @@ enum fmap_flags { FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_RO = 1 << 2, + FMAP_AREA_PRESERVE = 1 << 3, }; /* Mapping of volatile and static regions in firmware binary */ |