drivers/vpd: Add VPD region to default FMAP when selected
Currently, use of the VPD driver to read VPD tables from flash requires the use of a custom FMAP with one or more VPD regions. Extend this funtionality to boards using the default FMAP by creating a dedicated VPD region when the driver is selected. Test: build qemu target with CONFIG_VPD selected, verify entry added to build/fmap.fmd. Change-Id: Ie9e3c7cf11a6337a43223a6037632a4d9c84d988 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49049 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
committed by
Patrick Georgi
parent
21a9bf81d8
commit
1717231b74
10
Makefile.inc
10
Makefile.inc
@@ -983,6 +983,15 @@ else
|
|||||||
FMAP_SPD_CACHE_ENTRY :=
|
FMAP_SPD_CACHE_ENTRY :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_VPD),y)
|
||||||
|
FMAP_VPD_BASE := $(call int-align, $(FMAP_CURRENT_BASE), 0x4000)
|
||||||
|
FMAP_VPD_SIZE := $(CONFIG_VPD_FMAP_SIZE)
|
||||||
|
FMAP_VPD_ENTRY := $(CONFIG_VPD_FMAP_NAME)@$(FMAP_VPD_BASE) $(FMAP_VPD_SIZE)
|
||||||
|
FMAP_CURRENT_BASE := $(call int-add, $(FMAP_VPD_BASE) $(FMAP_VPD_SIZE))
|
||||||
|
else
|
||||||
|
FMAP_VPD_ENTRY :=
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# X86 FMAP region
|
# X86 FMAP region
|
||||||
#
|
#
|
||||||
@@ -1060,6 +1069,7 @@ $(obj)/fmap.fmd: $(top)/Makefile.inc $(DEFAULT_FLASHMAP) $(obj)/config.h
|
|||||||
-e "s,##MRC_CACHE_ENTRY##,$(FMAP_MRC_CACHE_ENTRY)," \
|
-e "s,##MRC_CACHE_ENTRY##,$(FMAP_MRC_CACHE_ENTRY)," \
|
||||||
-e "s,##SMMSTORE_ENTRY##,$(FMAP_SMMSTORE_ENTRY)," \
|
-e "s,##SMMSTORE_ENTRY##,$(FMAP_SMMSTORE_ENTRY)," \
|
||||||
-e "s,##SPD_CACHE_ENTRY##,$(FMAP_SPD_CACHE_ENTRY)," \
|
-e "s,##SPD_CACHE_ENTRY##,$(FMAP_SPD_CACHE_ENTRY)," \
|
||||||
|
-e "s,##VPD_ENTRY##,$(FMAP_VPD_ENTRY)," \
|
||||||
-e "s,##CBFS_BASE##,$(FMAP_CBFS_BASE)," \
|
-e "s,##CBFS_BASE##,$(FMAP_CBFS_BASE)," \
|
||||||
-e "s,##CBFS_SIZE##,$(FMAP_CBFS_SIZE)," \
|
-e "s,##CBFS_SIZE##,$(FMAP_CBFS_SIZE)," \
|
||||||
$(DEFAULT_FLASHMAP) > $@.tmp
|
$(DEFAULT_FLASHMAP) > $@.tmp
|
||||||
|
@@ -5,3 +5,17 @@ config VPD
|
|||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Enable support for flash based vital product data.
|
Enable support for flash based vital product data.
|
||||||
|
|
||||||
|
config VPD_FMAP_NAME
|
||||||
|
string
|
||||||
|
depends on VPD
|
||||||
|
default "RO_VPD"
|
||||||
|
help
|
||||||
|
Name of the FMAP region created in the default FMAP to store VPD tables.
|
||||||
|
|
||||||
|
config VPD_FMAP_SIZE
|
||||||
|
hex
|
||||||
|
depends on VPD
|
||||||
|
default 0x4000
|
||||||
|
help
|
||||||
|
Size in bytes of the FMAP region created to store VPD tables.
|
||||||
|
@@ -13,6 +13,7 @@ FLASH@##ROM_BASE## ##ROM_SIZE## {
|
|||||||
##MRC_CACHE_ENTRY##
|
##MRC_CACHE_ENTRY##
|
||||||
##SMMSTORE_ENTRY##
|
##SMMSTORE_ENTRY##
|
||||||
##SPD_CACHE_ENTRY##
|
##SPD_CACHE_ENTRY##
|
||||||
|
##VPD_ENTRY##
|
||||||
FMAP@##FMAP_BASE## ##FMAP_SIZE##
|
FMAP@##FMAP_BASE## ##FMAP_SIZE##
|
||||||
COREBOOT(CBFS)@##CBFS_BASE## ##CBFS_SIZE##
|
COREBOOT(CBFS)@##CBFS_BASE## ##CBFS_SIZE##
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user