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>
This commit is contained in:
Hung-Te Lin 2019-03-01 10:45:13 +08:00 committed by Patrick Georgi
parent 6c36642c07
commit 4708612061
4 changed files with 4 additions and 0 deletions

View File

@ -48,6 +48,7 @@ enum fmap_flags {
FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_STATIC = 1 << 0,
FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_COMPRESSED = 1 << 1,
FMAP_AREA_RO = 1 << 2, FMAP_AREA_RO = 1 << 2,
FMAP_AREA_PRESERVE = 1 << 3,
}; };
/* Mapping of volatile and static regions in firmware binary */ /* Mapping of volatile and static regions in firmware binary */

View File

@ -48,6 +48,7 @@ enum fmap_flags {
FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_STATIC = 1 << 0,
FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_COMPRESSED = 1 << 1,
FMAP_AREA_RO = 1 << 2, FMAP_AREA_RO = 1 << 2,
FMAP_AREA_PRESERVE = 1 << 3,
}; };
/* Mapping of volatile and static regions in firmware binary */ /* Mapping of volatile and static regions in firmware binary */

View File

@ -59,6 +59,7 @@ const struct valstr flag_lut[] = {
{ FMAP_AREA_STATIC, "static" }, { FMAP_AREA_STATIC, "static" },
{ FMAP_AREA_COMPRESSED, "compressed" }, { FMAP_AREA_COMPRESSED, "compressed" },
{ FMAP_AREA_RO, "ro" }, { FMAP_AREA_RO, "ro" },
{ FMAP_AREA_PRESERVE, "preserve" },
}; };
/* returns size of fmap data structure if successful, <0 to indicate error */ /* returns size of fmap data structure if successful, <0 to indicate error */

View File

@ -49,6 +49,7 @@ enum fmap_flags {
FMAP_AREA_STATIC = 1 << 0, FMAP_AREA_STATIC = 1 << 0,
FMAP_AREA_COMPRESSED = 1 << 1, FMAP_AREA_COMPRESSED = 1 << 1,
FMAP_AREA_RO = 1 << 2, FMAP_AREA_RO = 1 << 2,
FMAP_AREA_PRESERVE = 1 << 3,
}; };
/* Mapping of volatile and static regions in firmware binary */ /* Mapping of volatile and static regions in firmware binary */