[coreboot-gerrit] Change in coreboot[master]: southbridge/intel: Add support for generating IFDs

Denis 'GNUtoo' Carikli (Code Review) gerrit at coreboot.org
Fri Oct 20 22:39:03 CEST 2017


Denis 'GNUtoo' Carikli has uploaded this change for review. ( https://review.coreboot.org/22128


Change subject: southbridge/intel: Add support for generating IFDs
......................................................................

southbridge/intel: Add support for generating IFDs

The Kconfig help text has been inspired by the microcode
update help text.

Change-Id: I9fc5bd7bbbfa8825aff9c627d81d84fa3003cf4f
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
---
M src/mainboard/lenovo/x200/Kconfig
R src/mainboard/lenovo/x200/ifd.set
R src/mainboard/lenovo/x200/ifd.spec
M src/southbridge/intel/common/firmware/Kconfig
M src/southbridge/intel/common/firmware/Makefile.inc
5 files changed, 30 insertions(+), 5 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/28/22128/1

diff --git a/src/mainboard/lenovo/x200/Kconfig b/src/mainboard/lenovo/x200/Kconfig
index d2fcec4..df5a457 100644
--- a/src/mainboard/lenovo/x200/Kconfig
+++ b/src/mainboard/lenovo/x200/Kconfig
@@ -21,6 +21,8 @@
 	select INTEL_INT15
 	select SUPERIO_NSC_PC87382
 	select DRIVERS_LENOVO_WACOM
+	select HAVE_NATIVE_IFD_GENERATION
+	select HAVE_IFD_BIN
 
 config MAINBOARD_DIR
 	string
diff --git a/util/blobtool/ifd-x200.set b/src/mainboard/lenovo/x200/ifd.set
similarity index 100%
rename from util/blobtool/ifd-x200.set
rename to src/mainboard/lenovo/x200/ifd.set
diff --git a/util/blobtool/ifd-x200.spec b/src/mainboard/lenovo/x200/ifd.spec
similarity index 100%
rename from util/blobtool/ifd-x200.spec
rename to src/mainboard/lenovo/x200/ifd.spec
diff --git a/src/southbridge/intel/common/firmware/Kconfig b/src/southbridge/intel/common/firmware/Kconfig
index d97d0df..d99a22c 100644
--- a/src/southbridge/intel/common/firmware/Kconfig
+++ b/src/southbridge/intel/common/firmware/Kconfig
@@ -26,13 +26,23 @@
 
 choice
 	prompt "Intel Flash Descriptor (IFD)"
-	default INCLUDE_IFD_BIN if HAVE_IFD_BIN
+	default NATIVE_IFD_GENERATION if HAVE_NATIVE_IFD_GENERATION
+	default INCLUDE_IFD_BIN if !(HAVE_NATIVE_IFD_GENERATION) && HAVE_IFD_BIN
 
 config INCLUDE_IFD_BIN
 	bool "Add Intel descriptor.bin file"
 	depends on HAVE_IFD_BIN
 	help
 	  The descriptor binary
+
+config NATIVE_IFD_GENERATION
+	bool "Generate an Intel Flash Descriptor (IFD) binary"
+	depends on HAVE_NATIVE_IFD_GENERATION
+	help
+	  Select this option if you want the Intel Flash Descriptor to be
+	  generated when building coreboot and included in the final image file.
+
+	  If unsure, select this option.
 
 config FAKE_IFD_GENERATION
 	bool "Build with a fake Intel Flash Descriptor (IFD) binary"
@@ -52,6 +62,15 @@
 
 endchoice
 
+##### Generated IFD #####
+config HAVE_NATIVE_IFD_GENERATION
+	bool
+	default n
+	help
+	  This variable specifies whether a given board has a ifd.spec
+	  file containing Intel Flash Descriptor (IFD) bit definitions.
+	  It defaults to 'n' but can be selected in mainboard/*/Kconfig.
+
 ##### Provided IFD #####
 
 config HAVE_IFD_BIN
diff --git a/src/southbridge/intel/common/firmware/Makefile.inc b/src/southbridge/intel/common/firmware/Makefile.inc
index 58a7e23..e0b4170 100644
--- a/src/southbridge/intel/common/firmware/Makefile.inc
+++ b/src/southbridge/intel/common/firmware/Makefile.inc
@@ -22,9 +22,10 @@
 
 ifeq ($(CONFIG_INCLUDE_IFD_BIN),y)
 INTERMEDIATE+=add_intel_firmware
-endif
-
-ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
+else ifeq ($(CONFIG_NATIVE_IFD_GENERATION),y)
+INTERMEDIATE+=add_intel_firmware
+IFD_BIN_PATH := $(objgenerated)/descriptor.bin
+else ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
 INTERMEDIATE+=add_intel_firmware
 IFD_BIN_PATH := $(objgenerated)/ifdfake.bin
 IFD_SECTIONS := $(addprefix -b ,$(CONFIG_IFD_BIOS_SECTION:"%"=%)) \
@@ -38,7 +39,7 @@
 endif
 endif
 
-add_intel_firmware: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE)
+add_intel_firmware: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE) $(BLOBTOOL)
 ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
 	printf "\n** WARNING **\n"
 	printf "coreboot will be built with a fake Intel Firmware Descriptor (IFD).\n"
@@ -46,6 +47,9 @@
 	printf "flash ROM! Make sure that you only write valid flash regions.\n\n"
 	printf "    IFDFAKE    Building a fake Intel Firmware Descriptor\n"
 	$(IFDFAKE) $(IFD_SECTIONS) $(IFD_BIN_PATH)
+else ifeq ($(CONFIG_NATIVE_IFD_GENERATION), y)
+	$(BLOBTOOL) $(src)/mainboard/$(MAINBOARDDIR)/ifd.spec \
+	$(src)/mainboard/$(MAINBOARDDIR)/ifd.set $(IFD_BIN_PATH)
 endif
 	printf "    DD         Adding Intel Firmware Descriptor\n"
 	dd if=$(IFD_BIN_PATH) \

-- 
To view, visit https://review.coreboot.org/22128
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9fc5bd7bbbfa8825aff9c627d81d84fa3003cf4f
Gerrit-Change-Number: 22128
Gerrit-PatchSet: 1
Gerrit-Owner: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20171020/f24fcd24/attachment-0001.html>


More information about the coreboot-gerrit mailing list