diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Makefile.inc | 7 | ||||
-rw-r--r-- | src/lib/cbfs.c | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index 3352a3027f..4c6a395efc 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -179,6 +179,13 @@ $(call src-to-obj,smm,$(dir)/version.c) : $(obj)/build.h $(call src-to-obj,verstage,$(dir)/version.c) : $(obj)/build.h $(call src-to-obj,postcar,$(dir)/version.c) : $(obj)/build.h +$(call src-to-obj,bootblock,$(dir)/cbfs.c) : $(obj)/fmap_config.h +$(call src-to-obj,romstage,$(dir)/cbfs.c) : $(obj)/fmap_config.h +$(call src-to-obj,ramstage,$(dir)/cbfs.c) : $(obj)/fmap_config.h +$(call src-to-obj,smm,$(dir)/cbfs.c) : $(obj)/fmap_config.h +$(call src-to-obj,verstage,$(dir)/cbfs.c) : $(obj)/fmap_config.h +$(call src-to-obj,postcar,$(dir)/cbfs.c) : $(obj)/fmap_config.h + romstage-y += bootmode.c ramstage-y += bootmode.c verstage-y += bootmode.c diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index e1626d79fd..764a6f70d8 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -25,6 +25,8 @@ #include <symbols.h> #include <timestamp.h> +#include "fmap_config.h" + #define ERROR(x...) printk(BIOS_ERR, "CBFS: " x) #define LOG(x...) printk(BIOS_INFO, "CBFS: " x) #if IS_ENABLED(CONFIG_DEBUG_CBFS) @@ -215,6 +217,7 @@ out: return 0; } +/* This only supports the "COREBOOT" fmap region. */ static int cbfs_master_header_props(struct cbfs_props *props) { struct cbfs_header header; @@ -227,13 +230,15 @@ static int cbfs_master_header_props(struct cbfs_props *props) if (bdev == NULL) return -1; + size_t fmap_top = ___FMAP__COREBOOT_BASE + ___FMAP__COREBOOT_SIZE; + /* Find location of header using signed 32-bit offset from * end of CBFS region. */ - offset = CONFIG_CBFS_SIZE - sizeof(int32_t); + offset = fmap_top - sizeof(int32_t); if (rdev_readat(bdev, &rel_offset, offset, sizeof(int32_t)) < 0) return -1; - offset = CONFIG_CBFS_SIZE + rel_offset; + offset = fmap_top + rel_offset; if (rdev_readat(bdev, &header, offset, sizeof(header)) < 0) return -1; |