From f206cda84daef3bcc696c4593f8815a92a7319d1 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Mon, 17 May 2021 12:12:39 +0200 Subject: option: Introduce `CMOS_LAYOUT_FILE` Kconfig symbol Mainboards with variants may not always use the same cmos.layout file. Turn the hardcoded path into a Kconfig symbol to allow changing it. Tested with BUILD_TIMELESS=1: Without including the config file in the coreboot.rom and with `USE_OPTION_TABLE` selected, building for the Asus P8H61-M PRO produces an identical coreboot image. Change-Id: I4cc622dcb70855c06cb8a816c34406f8421180df Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/c/coreboot/+/54366 Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) --- Makefile.inc | 4 ++-- src/Kconfig | 5 +++++ src/arch/x86/Makefile.inc | 10 ++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Makefile.inc b/Makefile.inc index da54e3b46e..eb505e553d 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -302,9 +302,9 @@ endef # arg1: source file # arg2: binary file name cbfs-files-processor-nvramtool= \ - $(eval $(2): $(1) $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout | $(objutil)/nvramtool/nvramtool ; \ + $(eval $(2): $(1) $(top)/$(call strip_quotes,$(CONFIG_CMOS_LAYOUT_FILE)) | $(objutil)/nvramtool/nvramtool ; \ printf " CREATE $(2) (from $(1))\n"; \ - $(objutil)/nvramtool/nvramtool -y $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout -D $(2).tmp -p $(1) && \ + $(objutil)/nvramtool/nvramtool -y $(top)/$(call strip_quotes,$(CONFIG_CMOS_LAYOUT_FILE)) -D $(2).tmp -p $(1) && \ mv $(2).tmp $(2)) ####################################################################### diff --git a/src/Kconfig b/src/Kconfig index fe325e8e5c..6d0ba0fedf 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -682,6 +682,11 @@ config HAVE_OPTION_TABLE file containing NVRAM/CMOS bit definitions. It defaults to 'n' but can be selected in mainboard/*/Kconfig. +config CMOS_LAYOUT_FILE + string + default "src/mainboard/\$(MAINBOARDDIR)/cmos.layout" + depends on HAVE_OPTION_TABLE + config PCI_IO_CFG_EXT bool default n diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index a7d91a4753..3949e3afa4 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -11,19 +11,21 @@ NVRAMTOOL:=$(objutil)/nvramtool/nvramtool OPTION_TABLE_H:= ifeq ($(CONFIG_HAVE_OPTION_TABLE),y) +CMOS_LAYOUT_FILE := $(top)/$(call strip_quotes,$(CONFIG_CMOS_LAYOUT_FILE)) + cbfs-files-y += cmos_layout.bin cmos_layout.bin-file = $(obj)/cmos_layout.bin cmos_layout.bin-type = cmos_layout -$(obj)/cmos_layout.bin: $(NVRAMTOOL) $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout +$(obj)/cmos_layout.bin: $(NVRAMTOOL) $(CMOS_LAYOUT_FILE) @printf " OPTION $(subst $(obj)/,,$(@))\n" - $(NVRAMTOOL) -y $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout -L $@ + $(NVRAMTOOL) -y $(CMOS_LAYOUT_FILE) -L $@ OPTION_TABLE_H:=$(obj)/option_table.h -$(OPTION_TABLE_H): $(NVRAMTOOL) $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout +$(OPTION_TABLE_H): $(NVRAMTOOL) $(CMOS_LAYOUT_FILE) @printf " OPTION $(subst $(obj)/,,$(@))\n" - $(NVRAMTOOL) -y $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout -H $@ + $(NVRAMTOOL) -y $(CMOS_LAYOUT_FILE) -H $@ endif # CONFIG_HAVE_OPTION_TABLE stripped_vgabios_id = $(call strip_quotes,$(CONFIG_VGA_BIOS_ID)) -- cgit v1.2.3