Matt DeVillier has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
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 --- M Makefile.inc M src/drivers/vpd/Kconfig M util/cbfstool/default-x86.fmd 3 files changed, 25 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/49/49049/1
diff --git a/Makefile.inc b/Makefile.inc index bacddf2..ae61c2e 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -983,6 +983,15 @@ FMAP_SPD_CACHE_ENTRY := 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 # @@ -1060,6 +1069,7 @@ -e "s,##MRC_CACHE_ENTRY##,$(FMAP_MRC_CACHE_ENTRY)," \ -e "s,##SMMSTORE_ENTRY##,$(FMAP_SMMSTORE_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_SIZE##,$(FMAP_CBFS_SIZE)," \ $(DEFAULT_FLASHMAP) > $@.tmp diff --git a/src/drivers/vpd/Kconfig b/src/drivers/vpd/Kconfig index eda9130..0b16058 100644 --- a/src/drivers/vpd/Kconfig +++ b/src/drivers/vpd/Kconfig @@ -5,3 +5,17 @@ default n help 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. diff --git a/util/cbfstool/default-x86.fmd b/util/cbfstool/default-x86.fmd index 25c5096..41be782 100644 --- a/util/cbfstool/default-x86.fmd +++ b/util/cbfstool/default-x86.fmd @@ -13,6 +13,7 @@ ##MRC_CACHE_ENTRY## ##SMMSTORE_ENTRY## ##SPD_CACHE_ENTRY## + ##VPD_ENTRY## FMAP@##FMAP_BASE## ##FMAP_SIZE## COREBOOT(CBFS)@##CBFS_BASE## ##CBFS_SIZE## }
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
Patch Set 1: Code-Review+1
(1 comment)
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig File src/drivers/vpd/Kconfig:
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig@12 PS1, Line 12: default "RO_VPD" is it always read-only? iow would writable vpd make any sense? if not, why make the name configurable?
Matt DeVillier has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
Patch Set 1:
(1 comment)
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig File src/drivers/vpd/Kconfig:
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig@12 PS1, Line 12: default "RO_VPD"
is it always read-only? iow would writable vpd make any sense? if not, why make the name configurabl […]
there are RO_VPD and RW_VPD regions typically, but depends on usage if both are needed. The device/board serials are always in the RO region, and that's the use case I've built this around
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
Patch Set 1: Code-Review+2
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
Patch Set 1: Code-Review+2
(1 comment)
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig File src/drivers/vpd/Kconfig:
https://review.coreboot.org/c/coreboot/+/49049/1/src/drivers/vpd/Kconfig@12 PS1, Line 12: default "RO_VPD"
there are RO_VPD and RW_VPD regions typically, but depends on usage if both are needed. […]
ack
Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
Patch Set 1: Code-Review+2
Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/49049 )
Change subject: drivers/vpd: Add VPD region to default FMAP when selected ......................................................................
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 --- M Makefile.inc M src/drivers/vpd/Kconfig M util/cbfstool/default-x86.fmd 3 files changed, 25 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved Angel Pons: Looks good to me, approved Michael Niewöhner: Looks good to me, approved
diff --git a/Makefile.inc b/Makefile.inc index bacddf2..ae61c2e 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -983,6 +983,15 @@ FMAP_SPD_CACHE_ENTRY := 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 # @@ -1060,6 +1069,7 @@ -e "s,##MRC_CACHE_ENTRY##,$(FMAP_MRC_CACHE_ENTRY)," \ -e "s,##SMMSTORE_ENTRY##,$(FMAP_SMMSTORE_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_SIZE##,$(FMAP_CBFS_SIZE)," \ $(DEFAULT_FLASHMAP) > $@.tmp diff --git a/src/drivers/vpd/Kconfig b/src/drivers/vpd/Kconfig index eda9130..0b16058 100644 --- a/src/drivers/vpd/Kconfig +++ b/src/drivers/vpd/Kconfig @@ -5,3 +5,17 @@ default n help 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. diff --git a/util/cbfstool/default-x86.fmd b/util/cbfstool/default-x86.fmd index 25c5096..41be782 100644 --- a/util/cbfstool/default-x86.fmd +++ b/util/cbfstool/default-x86.fmd @@ -13,6 +13,7 @@ ##MRC_CACHE_ENTRY## ##SMMSTORE_ENTRY## ##SPD_CACHE_ENTRY## + ##VPD_ENTRY## FMAP@##FMAP_BASE## ##FMAP_SIZE## COREBOOT(CBFS)@##CBFS_BASE## ##CBFS_SIZE## }