diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2019-04-15 09:55:27 +0200 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2019-04-18 15:51:51 +0200 |
commit | aa679c5c3086c4435d2cb13d844e061c609c25d0 (patch) | |
tree | 950786125eb854db340534a76d5db9514a04f663 | |
parent | 68213bb07d96867e6734a16ccc63f4723c2167c6 (diff) | |
download | ptxdist-aa679c5c3086c4435d2cb13d844e061c609c25d0.tar.gz ptxdist-aa679c5c3086c4435d2cb13d844e061c609c25d0.tar.xz |
u-boot: Allow generation of boot script
U-Boot can be configured via the environment to look for a boot script
in the rootfs. The boot script can then be used to customize the booting
process further.
Cc: Denis OSTERLAND <denis.osterland@diehl.com>
Co-authored-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r-- | platforms/u-boot.in | 18 | ||||
-rw-r--r-- | rules/u-boot.make | 35 |
2 files changed, 53 insertions, 0 deletions
diff --git a/platforms/u-boot.in b/platforms/u-boot.in index 5d04a3cbd..8af0c8271 100644 --- a/platforms/u-boot.in +++ b/platforms/u-boot.in @@ -71,6 +71,24 @@ config U_BOOT_CONFIG endif +config U_BOOT_BOOT_SCRIPT + prompt "Compile U-Boot boot script" + bool + help + Use U-Boot's mkimage to compile a U-Boot boot script and install it + into the rootfs + +if U_BOOT_BOOT_SCRIPT + +config U_BOOT_BOOT_SCRIPT_ROOTFS_PATH + string + default "/boot/boot.scr.uimg" + prompt "Installation path" + help + Target rootfs path where the U-Boot script should be located + +endif + comment "target install" config U_BOOT_INSTALL_SREC diff --git a/rules/u-boot.make b/rules/u-boot.make index 55d18b97d..c03153e58 100644 --- a/rules/u-boot.make +++ b/rules/u-boot.make @@ -2,6 +2,7 @@ # # Copyright (C) 2007 by Sascha Hauer # 2009, 2010 by Marc Kleine-Budde <mkl@pengutronix.de> +# 2018 by Ahmad Fatoum <a.fatoum@pengutronix.de> # # See CREDITS for details about who has contributed to this project. # @@ -34,6 +35,13 @@ endif # Prepare # ---------------------------------------------------------------------------- +ifdef PTXCONF_U_BOOT_BOOT_SCRIPT +U_BOOT_BOOT_SCRIPT_TXT := $(call ptx/in-platformconfigdir, uboot.scr) +U_BOOT_BOOT_SCRIPT_BIN := $(call remove_quotes, \ + $(PTXCONF_U_BOOT_BOOT_SCRIPT_ROOTFS_PATH)) +$(STATEDIR)/u-boot.compile: $(U_BOOT_BOOT_SCRIPT_TXT) +endif + U_BOOT_WRAPPER_BLACKLIST := \ TARGET_HARDEN_STACKCLASH \ TARGET_HARDEN_RELRO \ @@ -82,6 +90,20 @@ $(STATEDIR)/u-boot.prepare: endif # ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/u-boot.compile: + @$(call targetinfo) + @$(call world/compile, U_BOOT) +ifdef PTXCONF_U_BOOT_BOOT_SCRIPT + @$(U_BOOT_DIR)/tools/mkimage -T script -C none \ + -d $(U_BOOT_BOOT_SCRIPT_TXT) \ + $(U_BOOT_DIR)/boot.scr.uimg +endif + @$(call touch) + +# ---------------------------------------------------------------------------- # Install # ---------------------------------------------------------------------------- @@ -122,6 +144,19 @@ ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_WITH_SPL_PBL @install -v -D -m644 $(U_BOOT_DIR)/u-boot-with-spl-pbl.bin \ $(IMAGEDIR)/u-boot-with-spl-pbl.bin endif + +ifdef PTXCONF_U_BOOT_BOOT_SCRIPT + @$(call install_init, u-boot) + @$(call install_fixup, u-boot, PRIORITY, optional) + @$(call install_fixup, u-boot, SECTION, base) + @$(call install_fixup, u-boot, AUTHOR, "Ahmad Fatoum <afa@pengutronix.de>") + @$(call install_fixup, u-boot, DESCRIPTION, "U-Boot boot script") + + @$(call install_copy, u-boot, 0, 0, 0644, \ + $(U_BOOT_DIR)/boot.scr.uimg, $(U_BOOT_BOOT_SCRIPT_BIN)) + + @$(call install_finish, u-boot) +endif @$(call touch) # ---------------------------------------------------------------------------- |