mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 0/3] u-boot: Extend for using external firmware
@ 2024-05-06 13:12 Alexander Dahl
  2024-05-06 13:12 ` [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env Alexander Dahl
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Alexander Dahl @ 2024-05-06 13:12 UTC (permalink / raw)
  To: ptxdist

Hello everyone,

for quite some new boards external firmware blobs are required to build
a working bootloader image.  This series is the follow-up to the
reworked ptxdist inject mechanism and allows to build U-Boot for modern
boards with i.MX8 or i.MX9 SoCs (and probably more).

Greets
Alex

Alexander Dahl (3):
  u-boot: Add option to pass additional make env
  u-boot: Allow other packages to inject dependencies
  u-boot: Add integration of firmware blobs

 platforms/u-boot.firmware.in |  7 +++++++
 platforms/u-boot.in          | 22 ++++++++++++++++++++++
 rules/u-boot.make            | 24 +++++++++++++++++++-----
 3 files changed, 48 insertions(+), 5 deletions(-)
 create mode 100644 platforms/u-boot.firmware.in


base-commit: 5a720c419cd1fabde04e8de8d1d1367c76a2666b
-- 
2.39.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env
  2024-05-06 13:12 [ptxdist] [PATCH 0/3] u-boot: Extend for using external firmware Alexander Dahl
@ 2024-05-06 13:12 ` Alexander Dahl
  2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich
  2024-05-06 13:12 ` [ptxdist] [PATCH 2/3] u-boot: Allow other packages to inject dependencies Alexander Dahl
  2024-05-06 13:12 ` [ptxdist] [PATCH 3/3] u-boot: Add integration of firmware blobs Alexander Dahl
  2 siblings, 1 reply; 7+ messages in thread
From: Alexander Dahl @ 2024-05-06 13:12 UTC (permalink / raw)
  To: ptxdist

Some things need to be set in environment instead of passing them as
additional make opts.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 platforms/u-boot.in | 9 +++++++++
 rules/u-boot.make   | 4 +++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/platforms/u-boot.in b/platforms/u-boot.in
index 000ca491a..53db146e1 100644
--- a/platforms/u-boot.in
+++ b/platforms/u-boot.in
@@ -85,6 +85,15 @@ config U_BOOT_CONFIG
 
 endif
 
+config U_BOOT_CUSTOM_MAKE_ENV
+	prompt "Custom (additional) make environment"
+	string
+	help
+	  List of additional env variables set for make at build time.
+	  Can be used for example to set BINMAN_INDIRS= to a path
+	  containing firmware files (preferably somewhere in
+	  sysroot-target).
+
 config U_BOOT_CUSTOM_MAKE_OPTS
 	prompt "Custom make options"
 	string
diff --git a/rules/u-boot.make b/rules/u-boot.make
index 4bc7f3f78..e4c963d0c 100644
--- a/rules/u-boot.make
+++ b/rules/u-boot.make
@@ -63,7 +63,9 @@ U_BOOT_CONF_OPT		:= \
 
 U_BOOT_MAKE_ENV		:= \
 	CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) \
-	HOSTCC=$(HOSTCC)
+	HOSTCC=$(HOSTCC) \
+	$(call remove_quotes,$(PTXCONF_U_BOOT_CUSTOM_MAKE_ENV))
+
 U_BOOT_MAKE_OPT		:= $(U_BOOT_CONF_OPT)
 
 U_BOOT_TAGS_OPT		:= ctags cscope etags
-- 
2.39.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ptxdist] [PATCH 2/3] u-boot: Allow other packages to inject dependencies
  2024-05-06 13:12 [ptxdist] [PATCH 0/3] u-boot: Extend for using external firmware Alexander Dahl
  2024-05-06 13:12 ` [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env Alexander Dahl
@ 2024-05-06 13:12 ` Alexander Dahl
  2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich
  2024-05-06 13:12 ` [ptxdist] [PATCH 3/3] u-boot: Add integration of firmware blobs Alexander Dahl
  2 siblings, 1 reply; 7+ messages in thread
From: Alexander Dahl @ 2024-05-06 13:12 UTC (permalink / raw)
  To: ptxdist

Same approach as in barebox packages.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 platforms/u-boot.in | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/platforms/u-boot.in b/platforms/u-boot.in
index 53db146e1..9163a8378 100644
--- a/platforms/u-boot.in
+++ b/platforms/u-boot.in
@@ -1,6 +1,11 @@
 ## SECTION=bootloader
 
+config U_BOOT_DEPENDENCIES
+	tristate
+	select VIRTUAL
+
 menuconfig U_BOOT
+	select U_BOOT_DEPENDENCIES
 	select BOOTLOADER
 	select HOST_SYSTEM_PYTHON3
 	select HOST_OPENSSL		if U_BOOT_NEEDS_HOST_OPENSSL
-- 
2.39.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ptxdist] [PATCH 3/3] u-boot: Add integration of firmware blobs
  2024-05-06 13:12 [ptxdist] [PATCH 0/3] u-boot: Extend for using external firmware Alexander Dahl
  2024-05-06 13:12 ` [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env Alexander Dahl
  2024-05-06 13:12 ` [ptxdist] [PATCH 2/3] u-boot: Allow other packages to inject dependencies Alexander Dahl
@ 2024-05-06 13:12 ` Alexander Dahl
  2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich
  2 siblings, 1 reply; 7+ messages in thread
From: Alexander Dahl @ 2024-05-06 13:12 UTC (permalink / raw)
  To: ptxdist

Almost same approach as done for barebox with commit
6684c552fbd7 ("barebox: add integration of firmware blobs") already.

For some boards it is required to inject files to build dir.  This is
cleaner and not cluttering your source dir.  In U-Boot it seems to work
in both ways, injecting to source or build dir, so we opt for build dir.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 platforms/u-boot.firmware.in |  7 +++++++
 platforms/u-boot.in          |  8 ++++++++
 rules/u-boot.make            | 20 ++++++++++++++++----
 3 files changed, 31 insertions(+), 4 deletions(-)
 create mode 100644 platforms/u-boot.firmware.in

diff --git a/platforms/u-boot.firmware.in b/platforms/u-boot.firmware.in
new file mode 100644
index 000000000..da7f8128f
--- /dev/null
+++ b/platforms/u-boot.firmware.in
@@ -0,0 +1,7 @@
+## SECTION=u_boot_firmware
+
+#
+# This file does only exist to create a defined entry in the "u_boot_firmware"
+# section, so that the toplevel Kconfig can include generated/u_boot_firmware.in
+# even if no package is in that category.
+#
diff --git a/platforms/u-boot.in b/platforms/u-boot.in
index 9163a8378..5ce7387e4 100644
--- a/platforms/u-boot.in
+++ b/platforms/u-boot.in
@@ -90,6 +90,14 @@ config U_BOOT_CONFIG
 
 endif
 
+menuconfig U_BOOT_FIRMWARE
+	bool
+	prompt "integrate firmware blobs      "
+
+if U_BOOT_FIRMWARE
+source "generated/u_boot_firmware.in"
+endif
+
 config U_BOOT_CUSTOM_MAKE_ENV
 	prompt "Custom (additional) make environment"
 	string
diff --git a/rules/u-boot.make b/rules/u-boot.make
index e4c963d0c..2a8059170 100644
--- a/rules/u-boot.make
+++ b/rules/u-boot.make
@@ -36,6 +36,9 @@ endif
 # Prepare
 # ----------------------------------------------------------------------------
 
+U_BOOT_INJECT_PATH	:= ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware
+U_BOOT_INJECT_OOT	:= $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,YES,NO)
+
 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, \
@@ -93,14 +96,23 @@ $(U_BOOT_CONFIG):
 	@exit 1
 endif
 
-
-ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
 $(STATEDIR)/u-boot.prepare:
 	@$(call targetinfo)
-	$(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT)
-	@$(call touch)
+
+ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
+	@$(call world/prepare, U_BOOT)
 endif
 
+ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
+	$(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT)
+endif
+
+ifdef PTXCONF_U_BOOT_FIRMWARE
+	@$(call world/inject, U_BOOT)
+endif
+
+	@$(call touch)
+
 # ----------------------------------------------------------------------------
 # Compile
 # ----------------------------------------------------------------------------
-- 
2.39.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [ptxdist] [APPLIED] u-boot: Add option to pass additional make env
  2024-05-06 13:12 ` [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env Alexander Dahl
@ 2024-05-12 13:16   ` Michael Olbrich
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Olbrich @ 2024-05-12 13:16 UTC (permalink / raw)
  To: ptxdist; +Cc: Alexander Dahl

Thanks, applied as 32707042153ff15d17e4cf7810f84b1e558e8369.

Michael

[sent from post-receive hook]

On Sun, 12 May 2024 15:16:44 +0200, Alexander Dahl <ada@thorsis.com> wrote:
> Some things need to be set in environment instead of passing them as
> additional make opts.
> 
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> Message-Id: <20240506131244.401909-2-ada@thorsis.com>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/platforms/u-boot.in b/platforms/u-boot.in
> index 000ca491a1c2..53db146e18ad 100644
> --- a/platforms/u-boot.in
> +++ b/platforms/u-boot.in
> @@ -85,6 +85,15 @@ config U_BOOT_CONFIG
>  
>  endif
>  
> +config U_BOOT_CUSTOM_MAKE_ENV
> +	prompt "Custom (additional) make environment"
> +	string
> +	help
> +	  List of additional env variables set for make at build time.
> +	  Can be used for example to set BINMAN_INDIRS= to a path
> +	  containing firmware files (preferably somewhere in
> +	  sysroot-target).
> +
>  config U_BOOT_CUSTOM_MAKE_OPTS
>  	prompt "Custom make options"
>  	string
> diff --git a/rules/u-boot.make b/rules/u-boot.make
> index 4bc7f3f781fc..e4c963d0c5a3 100644
> --- a/rules/u-boot.make
> +++ b/rules/u-boot.make
> @@ -63,7 +63,9 @@ U_BOOT_CONF_OPT		:= \
>  
>  U_BOOT_MAKE_ENV		:= \
>  	CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) \
> -	HOSTCC=$(HOSTCC)
> +	HOSTCC=$(HOSTCC) \
> +	$(call remove_quotes,$(PTXCONF_U_BOOT_CUSTOM_MAKE_ENV))
> +
>  U_BOOT_MAKE_OPT		:= $(U_BOOT_CONF_OPT)
>  
>  U_BOOT_TAGS_OPT		:= ctags cscope etags



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [ptxdist] [APPLIED] u-boot: Allow other packages to inject dependencies
  2024-05-06 13:12 ` [ptxdist] [PATCH 2/3] u-boot: Allow other packages to inject dependencies Alexander Dahl
@ 2024-05-12 13:16   ` Michael Olbrich
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Olbrich @ 2024-05-12 13:16 UTC (permalink / raw)
  To: ptxdist; +Cc: Alexander Dahl

Thanks, applied as 3d8f856576f96e24869f24dd58f90eee2496a2e4.

Michael

[sent from post-receive hook]

On Sun, 12 May 2024 15:16:45 +0200, Alexander Dahl <ada@thorsis.com> wrote:
> Same approach as in barebox packages.
> 
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> Message-Id: <20240506131244.401909-3-ada@thorsis.com>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/platforms/u-boot.in b/platforms/u-boot.in
> index 53db146e18ad..9163a837827a 100644
> --- a/platforms/u-boot.in
> +++ b/platforms/u-boot.in
> @@ -1,6 +1,11 @@
>  ## SECTION=bootloader
>  
> +config U_BOOT_DEPENDENCIES
> +	tristate
> +	select VIRTUAL
> +
>  menuconfig U_BOOT
> +	select U_BOOT_DEPENDENCIES
>  	select BOOTLOADER
>  	select HOST_SYSTEM_PYTHON3
>  	select HOST_OPENSSL		if U_BOOT_NEEDS_HOST_OPENSSL



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [ptxdist] [APPLIED] u-boot: Add integration of firmware blobs
  2024-05-06 13:12 ` [ptxdist] [PATCH 3/3] u-boot: Add integration of firmware blobs Alexander Dahl
@ 2024-05-12 13:16   ` Michael Olbrich
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Olbrich @ 2024-05-12 13:16 UTC (permalink / raw)
  To: ptxdist; +Cc: Alexander Dahl

Thanks, applied as a5e90b02053a4173471a6dba5ab0f31a2aefeea2.

Michael

[sent from post-receive hook]

On Sun, 12 May 2024 15:16:46 +0200, Alexander Dahl <ada@thorsis.com> wrote:
> Almost same approach as done for barebox with commit
> 6684c552fbd7 ("barebox: add integration of firmware blobs") already.
> 
> For some boards it is required to inject files to build dir.  This is
> cleaner and not cluttering your source dir.  In U-Boot it seems to work
> in both ways, injecting to source or build dir, so we opt for build dir.
> 
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> Message-Id: <20240506131244.401909-4-ada@thorsis.com>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/platforms/u-boot.firmware.in b/platforms/u-boot.firmware.in
> new file mode 100644
> index 000000000000..da7f8128f14d
> --- /dev/null
> +++ b/platforms/u-boot.firmware.in
> @@ -0,0 +1,7 @@
> +## SECTION=u_boot_firmware
> +
> +#
> +# This file does only exist to create a defined entry in the "u_boot_firmware"
> +# section, so that the toplevel Kconfig can include generated/u_boot_firmware.in
> +# even if no package is in that category.
> +#
> diff --git a/platforms/u-boot.in b/platforms/u-boot.in
> index 9163a837827a..5ce7387e495d 100644
> --- a/platforms/u-boot.in
> +++ b/platforms/u-boot.in
> @@ -90,6 +90,14 @@ config U_BOOT_CONFIG
>  
>  endif
>  
> +menuconfig U_BOOT_FIRMWARE
> +	bool
> +	prompt "integrate firmware blobs      "
> +
> +if U_BOOT_FIRMWARE
> +source "generated/u_boot_firmware.in"
> +endif
> +
>  config U_BOOT_CUSTOM_MAKE_ENV
>  	prompt "Custom (additional) make environment"
>  	string
> diff --git a/rules/u-boot.make b/rules/u-boot.make
> index e4c963d0c5a3..2a8059170ad5 100644
> --- a/rules/u-boot.make
> +++ b/rules/u-boot.make
> @@ -36,6 +36,9 @@ endif
>  # Prepare
>  # ----------------------------------------------------------------------------
>  
> +U_BOOT_INJECT_PATH	:= ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware
> +U_BOOT_INJECT_OOT	:= $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,YES,NO)
> +
>  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, \
> @@ -93,14 +96,23 @@ $(U_BOOT_CONFIG):
>  	@exit 1
>  endif
>  
> -
> -ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
>  $(STATEDIR)/u-boot.prepare:
>  	@$(call targetinfo)
> +
> +ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
> +	@$(call world/prepare, U_BOOT)
> +endif
> +
> +ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY
>  	$(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT)
> -	@$(call touch)
>  endif
>  
> +ifdef PTXCONF_U_BOOT_FIRMWARE
> +	@$(call world/inject, U_BOOT)
> +endif
> +
> +	@$(call touch)
> +
>  # ----------------------------------------------------------------------------
>  # Compile
>  # ----------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-05-12 13:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-06 13:12 [ptxdist] [PATCH 0/3] u-boot: Extend for using external firmware Alexander Dahl
2024-05-06 13:12 ` [ptxdist] [PATCH 1/3] u-boot: Add option to pass additional make env Alexander Dahl
2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich
2024-05-06 13:12 ` [ptxdist] [PATCH 2/3] u-boot: Allow other packages to inject dependencies Alexander Dahl
2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich
2024-05-06 13:12 ` [ptxdist] [PATCH 3/3] u-boot: Add integration of firmware blobs Alexander Dahl
2024-05-12 13:16   ` [ptxdist] [APPLIED] " Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox