<p>Patrick Rudolph has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20782">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">payloads/external/iPXE: Add more Kconfig options<br><br>Add two now options:<br>* Disable the promt "Press Ctrl+B for the iPXE command line..."<br>Add a boolean that disable the initial 2 second timeout.<br><br>* Include a script that is executed instead of showing a shell<br>Allows to add a script that will be included into the iPXE ROM.<br><br>Tested on Lenovo T500.<br><br>Change-Id: Ie1083d8571d9d1f1c7c71659fb6ff0de2eecad0e<br>Signed-off-by: Patrick Rudolph <siro@das-labor.org><br>---<br>M payloads/external/Makefile.inc<br>M payloads/external/iPXE/Kconfig<br>M payloads/external/iPXE/Makefile<br>3 files changed, 58 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/82/20782/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc<br>index 6bc1651..d47256e 100644<br>--- a/payloads/external/Makefile.inc<br>+++ b/payloads/external/Makefile.inc<br>@@ -191,7 +191,9 @@<br> ifeq ($(CONFIG_BUILD_IPXE),y)<br> PXE_ROM_FILE:=payloads/external/iPXE/ipxe/ipxe.rom<br> endif<br>-<br>+ifeq ($(CONFIG_PXE_ADD_SCRIPT),y)<br>+PXE_CONFIG_SCRIPT:=$(abspath $(patsubst "%",%,$(CONFIG_PXE_SCRIPT)))<br>+endif<br> ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)<br> IPXE_UART=COM$(call int-add,$(CONFIG_UART_FOR_CONSOLE) 1)<br> endif<br>@@ -200,7 +202,7 @@<br> pci$(CONFIG_PXE_ROM_ID).rom-file := $(PXE_ROM_FILE)<br> pci$(CONFIG_PXE_ROM_ID).rom-type := raw<br> <br>-payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG)<br>+payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG) $(PXE_CONFIG_SCRIPT)<br>   $(MAKE) -C payloads/external/iPXE all \<br>       CROSS_COMPILE="$(CROSS_COMPILE_$(ARCH-ramstage-y))" \<br>       PXE_ROM_PCI_ID=$(PXE_ROM_PCI_ID) \<br>@@ -209,4 +211,7 @@<br>       CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO) \<br>        IPXE_UART=$(IPXE_UART) \<br>      CONFIG_TTYS0_BAUD=$(CONFIG_TTYS0_BAUD) \<br>+     CONFIG_SCRIPT=$(PXE_CONFIG_SCRIPT) \<br>+ CONFIG_HAS_SCRIPT=$(CONFIG_PXE_ADD_SCRIPT) \<br>+ CONFIG_PXE_NO_PROMT=$(CONFIG_PXE_NO_PROMT) \<br>  MFLAGS= MAKEFLAGS=<br>diff --git a/payloads/external/iPXE/Kconfig b/payloads/external/iPXE/Kconfig<br>index 8211410..e17e731 100644<br>--- a/payloads/external/iPXE/Kconfig<br>+++ b/payloads/external/iPXE/Kconfig<br>@@ -78,5 +78,32 @@<br> <br>      Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.<br> <br>+config PXE_NO_PROMT<br>+      bool "Do not show prompt to boot from PXE"<br>+ default n<br>+    depends on BUILD_IPXE<br>+        help<br>+   Dont wait for the user to press Ctrl-B.<br>+      The PXE still can be run as it shows up in SeaBIOS's payload list.<br>+<br>+config PXE_ADD_SCRIPT<br>+  bool "Embedded iPXE script for automated provisioning"<br>+     depends on BUILD_IPXE<br>+        default n<br>+    help<br>+   Enable to embed a script that is run instead of a iPXE shell.<br>+<br>+<br>+config PXE_SCRIPT<br>+    string "Embedded iPXE script for automated provisioning"<br>+   depends on PXE_ADD_SCRIPT<br>+    default ""<br>+ help<br>+   Path to a script that is embedded into the iPXE binary.<br>+      Example: startup.ipxe<br>+<br>+     Uses the ipxe script instead showing the promt:<br>+      "Press Ctrl-B to start iPXE..."<br>+<br> endmenu<br> endif<br>diff --git a/payloads/external/iPXE/Makefile b/payloads/external/iPXE/Makefile<br>index a8b1245..b4b7dbe 100644<br>--- a/payloads/external/iPXE/Makefile<br>+++ b/payloads/external/iPXE/Makefile<br>@@ -54,15 +54,38 @@<br>    sed 's|#define\s*COMCONSOLE.*|#define COMCONSOLE $(IPXE_UART)|' "$(project_dir)/src/config/serial.h" > "$(project_dir)/src/config/serial.h.tmp"<br>        sed 's|#define\s*COMSPEED.*|#define COMSPEED $(CONFIG_TTYS0_BAUD)|'  "$(project_dir)/src/config/serial.h.tmp" > "$(project_dir)/src/config/serial.h"<br> endif<br>+ifeq ($(CONFIG_HAS_SCRIPT),$(CONFIG_PXE_NO_PROMT),y)<br>+   cp "$(project_dir)/src/config/general.h" "$(project_dir)/src/config/general.h.cb"<br>+endif<br>+ifeq ($(CONFIG_HAS_SCRIPT),y)<br>+        sed 's|//#define\s*IMAGE_SCRIPT.*|#define IMAGE_SCRIPT|' "$(project_dir)/src/config/general.h" > "$(project_dir)/src/config/general.h.tmp"<br>+    mv "$(project_dir)/src/config/general.h.tmp" "$(project_dir)/src/config/general.h"<br>+endif<br>+ifeq ($(CONFIG_PXE_NO_PROMT),y)<br>+     sed 's|#define\s*BANNER_TIMEOUT.*|#define BANNER_TIMEOUT 0|' "$(project_dir)/src/config/general.h" > "$(project_dir)/src/config/general.h.tmp"<br>+        mv "$(project_dir)/src/config/general.h.tmp" "$(project_dir)/src/config/general.h"<br>+endif<br> <br>-build: config<br>+build: config $(CONFIG_SCRIPT)<br>+ifeq ($(CONFIG_HAS_SCRIPT),y)<br>+   echo "    MAKE       $(project_name) $(TAG-y) EMBED=$(CONFIG_SCRIPT)"<br>+      $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom EMBED=$(CONFIG_SCRIPT)<br>+else<br>         echo "    MAKE       $(project_name) $(TAG-y)"<br>      $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom<br>+endif<br>       cp $(project_dir)/src/bin/$(PXE_ROM_PCI_ID).rom $(project_dir)/ipxe.rom<br> ifeq ($(CONSOLE_SERIAL),yy)<br>         cp "$(project_dir)/src/config/console.h.cb" "$(project_dir)/src/config/console.h"<br>         cp "$(project_dir)/src/config/serial.h.cb" "$(project_dir)/src/config/serial.h"<br> endif<br>+ifeq ($(CONFIG_HAS_SCRIPT),y)<br>+  cp "$(project_dir)/src/config/general.h.cb" "$(project_dir)/src/config/general.h"<br>+endif<br>+ifeq ($(CONFIG_PXE_NO_PROMT),y)<br>+      cp "$(project_dir)/src/config/general.h.cb" "$(project_dir)/src/config/general.h"<br>+endif<br>+<br> <br> clean:<br>  test -d $(project_dir) && $(MAKE) -C $(project_dir)/src veryclean || exit 0<br></pre><p>To view, visit <a href="https://review.coreboot.org/20782">change 20782</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/20782"/><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: Ie1083d8571d9d1f1c7c71659fb6ff0de2eecad0e </div>
<div style="display:none"> Gerrit-Change-Number: 20782 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Rudolph <siro@das-labor.org> </div>