summaryrefslogtreecommitdiffstats
path: root/src/lib/coreboot_table.c
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2019-09-26 23:51:46 -0700
committerShelley Chen <shchen@google.com>2019-09-27 21:59:44 +0000
commitb33a2b05afe2b309da5a608f3d17ffcf112c120a (patch)
tree5aee110f6f3b1c5e250cccd0e84f67714672021c /src/lib/coreboot_table.c
parent55ef0d25d32ecabfec7dcd425793f972cbca890d (diff)
downloadcoreboot-b33a2b05afe2b309da5a608f3d17ffcf112c120a.tar.gz
coreboot-b33a2b05afe2b309da5a608f3d17ffcf112c120a.tar.bz2
coreboot-b33a2b05afe2b309da5a608f3d17ffcf112c120a.zip
fmap: Add get_fmap_flash_offset()
CB:35377 changed the behavior of find_fmap_directory() to return pointer to CBMEM_ID_FMAP if fmap is cached in cbmem. lb_boot_media_params() calls find_fmap_directory to add offset of fmap in flash to coreboot table. However, because of the change in behavior of find_fmap_directory(), it ended up adding 0 as the offset. This change adds a new function get_fmap_flash_offset() which returns the offset of fmap in flash. Ideally, all payloads should move to using the FMAP from CBMEM. However, in order to maintain compatibility with payloads which are not updated, ensure that fmap_offset is updated correctly. Since find_fmap_directory() is no longer used outside fmap.c, this change also removes it from fmap.h and limits scope to fmap.c. In a follow up patch, we need to push a change to libpayload to expose the fmap cache pointer to lib_sysinfo. BUG=b:141723751 Change-Id: I7ff6e8199143d1a992a83d7de1e3b44813b733f4 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/35639 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Shelley Chen <shchen@google.com>
Diffstat (limited to 'src/lib/coreboot_table.c')
-rw-r--r--src/lib/coreboot_table.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index 9c5942fa9d8e..d3576e6a3200 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -256,7 +256,6 @@ static void lb_boot_media_params(struct lb_header *header)
struct lb_boot_media_params *bmp;
struct cbfs_props props;
const struct region_device *boot_dev;
- struct region_device fmrd;
boot_device_init();
@@ -275,9 +274,7 @@ static void lb_boot_media_params(struct lb_header *header)
bmp->cbfs_size = props.size;
bmp->boot_media_size = region_device_sz(boot_dev);
- bmp->fmap_offset = ~(uint64_t)0;
- if (find_fmap_directory(&fmrd) == 0)
- bmp->fmap_offset = region_device_offset(&fmrd);
+ bmp->fmap_offset = get_fmap_flash_offset();
}
static void lb_ram_code(struct lb_header *header)