<p>Denis 'GNUtoo' Carikli has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/22128">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">southbridge/intel: Add support for generating IFDs<br><br>The Kconfig help text has been inspired by the microcode<br>update help text.<br><br>Change-Id: I9fc5bd7bbbfa8825aff9c627d81d84fa3003cf4f<br>Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org><br>---<br>M src/mainboard/lenovo/x200/Kconfig<br>R src/mainboard/lenovo/x200/ifd.set<br>R src/mainboard/lenovo/x200/ifd.spec<br>M src/southbridge/intel/common/firmware/Kconfig<br>M src/southbridge/intel/common/firmware/Makefile.inc<br>5 files changed, 30 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/28/22128/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/mainboard/lenovo/x200/Kconfig b/src/mainboard/lenovo/x200/Kconfig<br>index d2fcec4..df5a457 100644<br>--- a/src/mainboard/lenovo/x200/Kconfig<br>+++ b/src/mainboard/lenovo/x200/Kconfig<br>@@ -21,6 +21,8 @@<br>         select INTEL_INT15<br>    select SUPERIO_NSC_PC87382<br>    select DRIVERS_LENOVO_WACOM<br>+  select HAVE_NATIVE_IFD_GENERATION<br>+    select HAVE_IFD_BIN<br> <br> config MAINBOARD_DIR<br>         string<br>diff --git a/util/blobtool/ifd-x200.set b/src/mainboard/lenovo/x200/ifd.set<br>similarity index 100%<br>rename from util/blobtool/ifd-x200.set<br>rename to src/mainboard/lenovo/x200/ifd.set<br>diff --git a/util/blobtool/ifd-x200.spec b/src/mainboard/lenovo/x200/ifd.spec<br>similarity index 100%<br>rename from util/blobtool/ifd-x200.spec<br>rename to src/mainboard/lenovo/x200/ifd.spec<br>diff --git a/src/southbridge/intel/common/firmware/Kconfig b/src/southbridge/intel/common/firmware/Kconfig<br>index d97d0df..d99a22c 100644<br>--- a/src/southbridge/intel/common/firmware/Kconfig<br>+++ b/src/southbridge/intel/common/firmware/Kconfig<br>@@ -26,13 +26,23 @@<br> <br> choice<br>    prompt "Intel Flash Descriptor (IFD)"<br>-      default INCLUDE_IFD_BIN if HAVE_IFD_BIN<br>+      default NATIVE_IFD_GENERATION if HAVE_NATIVE_IFD_GENERATION<br>+  default INCLUDE_IFD_BIN if !(HAVE_NATIVE_IFD_GENERATION) && HAVE_IFD_BIN<br> <br> config INCLUDE_IFD_BIN<br>  bool "Add Intel descriptor.bin file"<br>        depends on HAVE_IFD_BIN<br>       help<br>    The descriptor binary<br>+<br>+config NATIVE_IFD_GENERATION<br>+    bool "Generate an Intel Flash Descriptor (IFD) binary"<br>+     depends on HAVE_NATIVE_IFD_GENERATION<br>+        help<br>+   Select this option if you want the Intel Flash Descriptor to be<br>+      generated when building coreboot and included in the final image file.<br>+<br>+    If unsure, select this option.<br> <br> config FAKE_IFD_GENERATION<br>      bool "Build with a fake Intel Flash Descriptor (IFD) binary"<br>@@ -52,6 +62,15 @@<br> <br> endchoice<br> <br>+##### Generated IFD #####<br>+config HAVE_NATIVE_IFD_GENERATION<br>+ bool<br>+ default n<br>+    help<br>+   This variable specifies whether a given board has a ifd.spec<br>+         file containing Intel Flash Descriptor (IFD) bit definitions.<br>+        It defaults to 'n' but can be selected in mainboard/*/Kconfig.<br>+<br> ##### Provided IFD #####<br> <br> config HAVE_IFD_BIN<br>diff --git a/src/southbridge/intel/common/firmware/Makefile.inc b/src/southbridge/intel/common/firmware/Makefile.inc<br>index 58a7e23..e0b4170 100644<br>--- a/src/southbridge/intel/common/firmware/Makefile.inc<br>+++ b/src/southbridge/intel/common/firmware/Makefile.inc<br>@@ -22,9 +22,10 @@<br> <br> ifeq ($(CONFIG_INCLUDE_IFD_BIN),y)<br> INTERMEDIATE+=add_intel_firmware<br>-endif<br>-<br>-ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)<br>+else ifeq ($(CONFIG_NATIVE_IFD_GENERATION),y)<br>+INTERMEDIATE+=add_intel_firmware<br>+IFD_BIN_PATH := $(objgenerated)/descriptor.bin<br>+else ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)<br> INTERMEDIATE+=add_intel_firmware<br> IFD_BIN_PATH := $(objgenerated)/ifdfake.bin<br> IFD_SECTIONS := $(addprefix -b ,$(CONFIG_IFD_BIOS_SECTION:"%"=%)) \<br>@@ -38,7 +39,7 @@<br> endif<br> endif<br> <br>-add_intel_firmware: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE)<br>+add_intel_firmware: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE) $(BLOBTOOL)<br> ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)<br>     printf "\n** WARNING **\n"<br>  printf "coreboot will be built with a fake Intel Firmware Descriptor (IFD).\n"<br>@@ -46,6 +47,9 @@<br>   printf "flash ROM! Make sure that you only write valid flash regions.\n\n"<br>  printf "    IFDFAKE    Building a fake Intel Firmware Descriptor\n"<br>         $(IFDFAKE) $(IFD_SECTIONS) $(IFD_BIN_PATH)<br>+else ifeq ($(CONFIG_NATIVE_IFD_GENERATION), y)<br>+  $(BLOBTOOL) $(src)/mainboard/$(MAINBOARDDIR)/ifd.spec \<br>+      $(src)/mainboard/$(MAINBOARDDIR)/ifd.set $(IFD_BIN_PATH)<br> endif<br>      printf "    DD         Adding Intel Firmware Descriptor\n"<br>  dd if=$(IFD_BIN_PATH) \<br></pre><p>To view, visit <a href="https://review.coreboot.org/22128">change 22128</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/22128"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I9fc5bd7bbbfa8825aff9c627d81d84fa3003cf4f </div>
<div style="display:none"> Gerrit-Change-Number: 22128 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> </div>