Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams
@ 2025-08-18 14:22 Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Philip Molloy @ 2025-08-18 14:22 UTC (permalink / raw)
  To: buildroot; +Cc: Philip Molloy, Michael Hennerich, Philip Molloy

adsp-ldr is a command-line tool that generates boot streams for ADI ADSP
processors. It is required to boot U-Boot on ADSP processors. This series is
the first step in adding support for the SC598 EZ-KIT evaluation board, and
eventually other boards.

Successful pipeline for this series:

https://gitlab.com/pamolloy/buildroot/-/pipelines/1989414592

Branch containing this series:

https://github.com/analogdevicesinc/buildroot/commits/staging/philip/adsp-ldr/

The entire series adding support for the SC598 EZ-KIT evaluation board:

https://github.com/analogdevicesinc/buildroot/commits/staging/philip/support-sc5xx-eval-boards/

Philip Molloy (4):
  package/adsp-ldr: new package
  boot/uboot: depend on adsp-ldr if needed
  boot/uboot: add ADSP LDR binary format
  DEVELOPERS: add Philip Molloy for adsp-ldr

 DEVELOPERS                     |  3 +++
 boot/uboot/Config.in           | 12 ++++++++++++
 boot/uboot/uboot.mk            |  8 ++++++++
 package/Config.in              |  1 +
 package/adsp-ldr/Config.in     |  9 +++++++++
 package/adsp-ldr/adsp-ldr.hash |  3 +++
 package/adsp-ldr/adsp-ldr.mk   | 19 +++++++++++++++++++
 7 files changed, 55 insertions(+)
 create mode 100644 package/adsp-ldr/Config.in
 create mode 100644 package/adsp-ldr/adsp-ldr.hash
 create mode 100644 package/adsp-ldr/adsp-ldr.mk

-- 
2.50.1


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
  2025-08-18 14:22 [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams Philip Molloy
@ 2025-08-18 14:22 ` Philip Molloy
  2025-08-18 16:31   ` Thomas Petazzoni via buildroot
  2025-08-18 14:22 ` [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed Philip Molloy
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Philip Molloy @ 2025-08-18 14:22 UTC (permalink / raw)
  To: buildroot
  Cc: Philip Molloy, Michael Hennerich, Philip Molloy, Thomas Petazzoni

From: Philip Molloy <philip.molloy@analog.com>

Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Signed-off-by: Philip Molloy <philip@philipmolloy.com>
---
 package/Config.in              |  1 +
 package/adsp-ldr/Config.in     |  9 +++++++++
 package/adsp-ldr/adsp-ldr.hash |  3 +++
 package/adsp-ldr/adsp-ldr.mk   | 19 +++++++++++++++++++
 4 files changed, 32 insertions(+)
 create mode 100644 package/adsp-ldr/Config.in
 create mode 100644 package/adsp-ldr/adsp-ldr.hash
 create mode 100644 package/adsp-ldr/adsp-ldr.mk

diff --git a/package/Config.in b/package/Config.in
index 579b5ffc87..63aee051e9 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -470,6 +470,7 @@ endmenu
 	source "package/acpica/Config.in"
 	source "package/acpid/Config.in"
 	source "package/acpitool/Config.in"
+	source "package/adsp-ldr/Config.in"
 	source "package/aer-inject/Config.in"
 	source "package/altera-stapl/Config.in"
 	source "package/am335x-pru-package/Config.in"
diff --git a/package/adsp-ldr/Config.in b/package/adsp-ldr/Config.in
new file mode 100644
index 0000000000..a1806df576
--- /dev/null
+++ b/package/adsp-ldr/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_ADSP_LDR
+	bool "adsp-ldr"
+	depends on BR2_arm || BR2_aarch64
+	help
+	  adsp-ldr is a tool that generates boot streams to be
+	  loaded and executed by the boot ROM of Analog Devices
+	  ADSP-SCXXX SoCs
+
+	  https://github.com/analogdevicesinc/adsp-ldr
diff --git a/package/adsp-ldr/adsp-ldr.hash b/package/adsp-ldr/adsp-ldr.hash
new file mode 100644
index 0000000000..f437beb90e
--- /dev/null
+++ b/package/adsp-ldr/adsp-ldr.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  a1b1b5700b75e47bae7f656cd61f8c635f5d3c82a90e20dfe594e0a3315e4eef  LICENSE
+sha256  a08c28204bfcf18b5ff956b01893b5ea1beb6836f97c94dbfac8ef8f07c91a9c  adsp-ldr-1.0.0.tar.gz
diff --git a/package/adsp-ldr/adsp-ldr.mk b/package/adsp-ldr/adsp-ldr.mk
new file mode 100644
index 0000000000..9fdf3c3c4e
--- /dev/null
+++ b/package/adsp-ldr/adsp-ldr.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# adsp-ldr
+#
+################################################################################
+
+ADSP_LDR_VERSION = 1.0.0
+ADSP_LDR_SITE = $(call github,analogdevicesinc,adsp-ldr,v$(ADSP_LDR_VERSION))
+ADSP_LDR_LICENSE = GPL-3.0
+ADSP_LDR_LICENSE_FILES = LICENSE
+
+ADSP_LDR_SUBDIR = src/ldr
+
+define HOST_ADSP_LDR_INSTALL_CMDS
+	$(INSTALL) -m 755 -D $(@D)/src/ldr/ldr \
+		$(TARGET_CROSS)ldr
+endef
+
+$(eval $(host-autotools-package))
-- 
2.50.1


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed
  2025-08-18 14:22 [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
@ 2025-08-18 14:22 ` Philip Molloy
  2025-08-18 16:32   ` Thomas Petazzoni via buildroot
  2025-08-18 14:22 ` [Buildroot] [PATCH 3/4] boot/uboot: add ADSP LDR binary format Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 4/4] DEVELOPERS: add Philip Molloy for adsp-ldr Philip Molloy
  3 siblings, 1 reply; 11+ messages in thread
From: Philip Molloy @ 2025-08-18 14:22 UTC (permalink / raw)
  To: buildroot; +Cc: Philip Molloy, Michael Hennerich, Philip Molloy

From: Philip Molloy <philip.molloy@analog.com>

Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Signed-off-by: Philip Molloy <philip@philipmolloy.com>
---
 boot/uboot/Config.in | 8 ++++++++
 boot/uboot/uboot.mk  | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index a2301b7747..f29f2173fa 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -332,6 +332,14 @@ config BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN
 	  This option makes sure that the needed binary blobs are copied
 	  into the U-Boot source directory.
 
+config BR2_TARGET_UBOOT_NEEDS_ADSP_LDR
+	bool "U-Boot needs adsp-ldr"
+	depends on BR2_PACKAGE_ADSP_LDR
+	help
+	  For ADSP-SCXXX Analog Devices SoCs U-Boot binaries must be
+	  correctly formatted so that they can be loaded and executed by
+	  the boot ROM
+
 config BR2_TARGET_UBOOT_USE_BINMAN
 	bool "U-Boot use binman"
 	select BR2_TARGET_UBOOT_NEEDS_PYTHON3
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 2796b0a310..cc7714c324 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -257,6 +257,10 @@ UBOOT_MAKE_OPTS += TEE=$(BINARIES_DIR)/$(notdir $(ROCKCHIP_RKBIN_TEE_FILENAME))
 endif
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_ADSP_LDR),y)
+UBOOT_DEPENDENCIES += host-adsp-ldr
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
 UBOOT_DEPENDENCIES += host-dtc
 UBOOT_MAKE_OPTS += DTC=$(HOST_DIR)/bin/dtc
-- 
2.50.1


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 3/4] boot/uboot: add ADSP LDR binary format
  2025-08-18 14:22 [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed Philip Molloy
@ 2025-08-18 14:22 ` Philip Molloy
  2025-08-18 14:22 ` [Buildroot] [PATCH 4/4] DEVELOPERS: add Philip Molloy for adsp-ldr Philip Molloy
  3 siblings, 0 replies; 11+ messages in thread
From: Philip Molloy @ 2025-08-18 14:22 UTC (permalink / raw)
  To: buildroot; +Cc: Philip Molloy, Michael Hennerich, Philip Molloy

From: Philip Molloy <philip.molloy@analog.com>

Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Signed-off-by: Philip Molloy <philip@philipmolloy.com>
---
 boot/uboot/Config.in | 4 ++++
 boot/uboot/uboot.mk  | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index f29f2173fa..f388be5d64 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -487,6 +487,10 @@ config BR2_TARGET_UBOOT_FORMAT_QSPI_BIN
 	  file for flashing by combining the spl/boot.bin and
 	  u-boot.itb files into a unified binary.
 
+config BR2_TARGET_UBOOT_FORMAT_ADSP_LDR
+	bool "u-boot.ldr"
+	depends on BR2_arm || BR2_aarch64
+
 config BR2_TARGET_UBOOT_FORMAT_STM32
 	bool "u-boot.stm32"
 	depends on BR2_arm
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index cc7714c324..eea76edaf9 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -144,6 +144,10 @@ UBOOT_MAKE_TARGET += u-boot.stm32
 endif
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_FORMAT_ADSP_LDR),y)
+UBOOT_BINS += u-boot.ldr
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_INITIAL_ENV),y)
 UBOOT_MAKE_TARGET += u-boot-initial-env
 define UBOOT_INSTALL_UBOOT_INITIAL_ENV
-- 
2.50.1


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 4/4] DEVELOPERS: add Philip Molloy for adsp-ldr
  2025-08-18 14:22 [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams Philip Molloy
                   ` (2 preceding siblings ...)
  2025-08-18 14:22 ` [Buildroot] [PATCH 3/4] boot/uboot: add ADSP LDR binary format Philip Molloy
@ 2025-08-18 14:22 ` Philip Molloy
  3 siblings, 0 replies; 11+ messages in thread
From: Philip Molloy @ 2025-08-18 14:22 UTC (permalink / raw)
  To: buildroot; +Cc: Philip Molloy, Michael Hennerich, Philip Molloy

Signed-off-by: Philip Molloy <philip@philipmolloy.com>
---
 DEVELOPERS | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/DEVELOPERS b/DEVELOPERS
index a7bb3bd834..792f230e4c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2742,6 +2742,9 @@ F:	package/psplash/
 F:	package/sispmctl/
 F:	package/zsh/
 
+N:	Philip Molloy <philip@philipmolloy.com>
+F:	package/adsp-ldr/
+
 N:	Philipp Richter <richterphilipp.pops@gmail.com>
 F:	package/libtorrent-rasterbar/
 
-- 
2.50.1


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
  2025-08-18 14:22 ` [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
@ 2025-08-18 16:31   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-18 16:31 UTC (permalink / raw)
  To: Philip Molloy; +Cc: buildroot, Philip Molloy, Michael Hennerich

Hello Philip,

Thanks for this contribution! See below some feedback.

On Mon, 18 Aug 2025 14:22:30 +0000
Philip Molloy <philip@philipmolloy.com> wrote:

> From: Philip Molloy <philip.molloy@analog.com>
> 
> Signed-off-by: Philip Molloy <philip.molloy@analog.com>
> Signed-off-by: Philip Molloy <philip@philipmolloy.com>
> ---
>  package/Config.in              |  1 +
>  package/adsp-ldr/Config.in     |  9 +++++++++
>  package/adsp-ldr/adsp-ldr.hash |  3 +++
>  package/adsp-ldr/adsp-ldr.mk   | 19 +++++++++++++++++++
>  4 files changed, 32 insertions(+)

I see in PATCH 4/4 you add an entry in the DEVELOPERS file for this
package. You should squash PATCH 4/4 into this patch, so that the
addition in DEVELOPERS comes in the patch adding the package.


> diff --git a/package/Config.in b/package/Config.in
> index 579b5ffc87..63aee051e9 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -470,6 +470,7 @@ endmenu
>  	source "package/acpica/Config.in"
>  	source "package/acpid/Config.in"
>  	source "package/acpitool/Config.in"
> +	source "package/adsp-ldr/Config.in"

This will not be needed (see below).

> diff --git a/package/adsp-ldr/Config.in b/package/adsp-ldr/Config.in
> new file mode 100644
> index 0000000000..a1806df576
> --- /dev/null
> +++ b/package/adsp-ldr/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_ADSP_LDR
> +	bool "adsp-ldr"
> +	depends on BR2_arm || BR2_aarch64

This file is not relevant: your package is a host only package. In
fact, if you enable this option and try to build, you should get a
failure as your .mk file does not create a target variant of this
package (which is correct).

> diff --git a/package/adsp-ldr/adsp-ldr.mk b/package/adsp-ldr/adsp-ldr.mk
> new file mode 100644
> index 0000000000..9fdf3c3c4e
> --- /dev/null
> +++ b/package/adsp-ldr/adsp-ldr.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# adsp-ldr
> +#
> +################################################################################
> +
> +ADSP_LDR_VERSION = 1.0.0
> +ADSP_LDR_SITE = $(call github,analogdevicesinc,adsp-ldr,v$(ADSP_LDR_VERSION))
> +ADSP_LDR_LICENSE = GPL-3.0
> +ADSP_LDR_LICENSE_FILES = LICENSE

Are you sure that this license file is correct? Indeed, all source
files seem to have a BSD-3-Clause license, for example:
https://github.com/analogdevicesinc/adsp-ldr/blob/main/src/ldr/lfd.c.

> +ADSP_LDR_SUBDIR = src/ldr
> +
> +define HOST_ADSP_LDR_INSTALL_CMDS
> +	$(INSTALL) -m 755 -D $(@D)/src/ldr/ldr \
> +		$(TARGET_CROSS)ldr

Why do you install it with a $(TARGET_CROSS) prefix?

Also, you seem to be the author of this repo. Why is the ldr code
burried in src/ldr, with not much outside of this folder? It would make
a lot more sense to have the code directly at the project root, and
avoid having to pass ADSP_LDR_SUBDIR = src/ldr.

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed
  2025-08-18 14:22 ` [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed Philip Molloy
@ 2025-08-18 16:32   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-18 16:32 UTC (permalink / raw)
  To: Philip Molloy; +Cc: buildroot, Philip Molloy, Michael Hennerich

Hello Philip,

On Mon, 18 Aug 2025 14:22:39 +0000
Philip Molloy <philip@philipmolloy.com> wrote:

> From: Philip Molloy <philip.molloy@analog.com>
> 
> Signed-off-by: Philip Molloy <philip.molloy@analog.com>
> Signed-off-by: Philip Molloy <philip@philipmolloy.com>

Considering your PATCH 3/4, I don't think this patch is needed. Indeed,
PATCH 3/4 can simply add host-adsp-ldr in the dependencies of U-Boot
when BR2_TARGET_UBOOT_FORMAT_ADSP_LDR=y.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
@ 2025-08-19 11:53 Philip Molloy
  2025-08-19 12:39 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 11+ messages in thread
From: Philip Molloy @ 2025-08-19 11:53 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot, Philip Molloy, Michael Hennerich

Hi Thomas,

Thanks for the super quick review!

On Monday, August 18th, 2025 at 6:31 PM, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
>
> Hello Philip,
>
> Thanks for this contribution! See below some feedback.
>
> On Mon, 18 Aug 2025 14:22:30 +0000
> Philip Molloy philip@philipmolloy.com wrote:
>
> > From: Philip Molloy philip.molloy@analog.com
> >
> > Signed-off-by: Philip Molloy philip.molloy@analog.com
> > Signed-off-by: Philip Molloy philip@philipmolloy.com
> > ---
> > package/Config.in | 1 +
> > package/adsp-ldr/Config.in | 9 +++++++++
> > package/adsp-ldr/adsp-ldr.hash | 3 +++
> > package/adsp-ldr/adsp-ldr.mk | 19 +++++++++++++++++++
> > 4 files changed, 32 insertions(+)
>
>
> I see in PATCH 4/4 you add an entry in the DEVELOPERS file for this
> package. You should squash PATCH 4/4 into this patch, so that the
> addition in DEVELOPERS comes in the patch adding the package.
>
> > diff --git a/package/Config.in b/package/Config.in
> > index 579b5ffc87..63aee051e9 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -470,6 +470,7 @@ endmenu
> > source "package/acpica/Config.in"
> > source "package/acpid/Config.in"
> > source "package/acpitool/Config.in"
> > + source "package/adsp-ldr/Config.in"
>
>
> This will not be needed (see below).
>
> > diff --git a/package/adsp-ldr/Config.in b/package/adsp-ldr/Config.in
> > new file mode 100644
> > index 0000000000..a1806df576
> > --- /dev/null
> > +++ b/package/adsp-ldr/Config.in
> > @@ -0,0 +1,9 @@
> > +config BR2_PACKAGE_ADSP_LDR
> > + bool "adsp-ldr"
> > + depends on BR2_arm || BR2_aarch64
>
>
> This file is not relevant: your package is a host only package. In
> fact, if you enable this option and try to build, you should get a
> failure as your .mk file does not create a target variant of this
> package (which is correct).

Absolutely, renamed it to Config.in.host and updated accordingly. Pushed it, along
with all other changes to the branch linked to in the cover letter.

> > diff --git a/package/adsp-ldr/adsp-ldr.mk b/package/adsp-ldr/adsp-ldr.mk
> > new file mode 100644
> > index 0000000000..9fdf3c3c4e
> > --- /dev/null
> > +++ b/package/adsp-ldr/adsp-ldr.mk
> > @@ -0,0 +1,19 @@
> > +################################################################################
> > +#
> > +# adsp-ldr
> > +#
> > +################################################################################
> > +
> > +ADSP_LDR_VERSION = 1.0.0
> > +ADSP_LDR_SITE = $(call github,analogdevicesinc,adsp-ldr,v$(ADSP_LDR_VERSION))
> > +ADSP_LDR_LICENSE = GPL-3.0
> > +ADSP_LDR_LICENSE_FILES = LICENSE
>
>
> Are you sure that this license file is correct? Indeed, all source
> files seem to have a BSD-3-Clause license, for example:
> https://github.com/analogdevicesinc/adsp-ldr/blob/main/src/ldr/lfd.c.

Thanks for noticing this! I'll try to address it in a new release.

See https://github.com/analogdevicesinc/adsp-ldr/issues/6

> > +ADSP_LDR_SUBDIR = src/ldr
> > +
> > +define HOST_ADSP_LDR_INSTALL_CMDS
> > + $(INSTALL) -m 755 -D $(@D)/src/ldr/ldr \
> > + $(TARGET_CROSS)ldr
>
>
> Why do you install it with a $(TARGET_CROSS) prefix?

It is currently required by mainline U-Boot.[1] More context below.

[1]: https://elixir.bootlin.com/u-boot/v2025.07/source/Makefile#L405

> Also, you seem to be the author of this repo. Why is the ldr code
> burried in src/ldr, with not much outside of this folder? It would make
> a lot more sense to have the code directly at the project root, and
> avoid having to pass ADSP_LDR_SUBDIR = src/ldr.

This code is very very old. I was not even able to track down the full history internally at ADI.

The DSP line of processors were (and largely still are) used to run baremetal or FreeRTOS applications, which are developed using a IDE called CCES, which includes a custom toolchain (hence the prefix above). Some DSP processors do not even have ARM cores.

As they began to support Linux with larger ARM cores, the code necessary to generate boot streams was extracted from a CCES related mono repo and copied into the Github repository. That happened a few years ago and was never updated.

So far I've renamed the repo, switched from master to main, merged a "release" branch into main, and created a Github release. But there is still a lot that can be improved.

I have spent some time cleaning things up[2], but I need to refactor it a bit and rebase onto main since merging the release branch. As I'm sure you can imagine, this isn't a high priority. :-P

We are also focusing more on mainline U-Boot and Linux support, but it is naturally a slow process.

[2]: https://github.com/analogdevicesinc/adsp-ldr/pull/1

> Thanks a lot!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
  2025-08-19 11:53 [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
@ 2025-08-19 12:39 ` Thomas Petazzoni via buildroot
  2025-08-19 16:00   ` Philip Molloy
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-19 12:39 UTC (permalink / raw)
  To: Philip Molloy; +Cc: buildroot, Philip Molloy, Michael Hennerich

Hello Philip,

On Tue, 19 Aug 2025 11:53:00 +0000
Philip Molloy <philip@philipmolloy.com> wrote:

> Absolutely, renamed it to Config.in.host and updated accordingly. Pushed it, along
> with all other changes to the branch linked to in the cover letter.

You don't need a Config.in.host file. This tool is merely a build
dependency for U-Boot to do its job, so it's sufficient to have U-Boot
add host-adsp-ldr to UBOOT_DEPENDENCIES. No need for a Config.in.host.

> > Are you sure that this license file is correct? Indeed, all source
> > files seem to have a BSD-3-Clause license, for example:
> > https://github.com/analogdevicesinc/adsp-ldr/blob/main/src/ldr/lfd.c.  
> 
> Thanks for noticing this! I'll try to address it in a new release.

But in the mean time? You'll set ADSP_LDR_LICENSE to BSD-3-Clause and
use one of the source files as a license file?

> > Why do you install it with a $(TARGET_CROSS) prefix?  
> 
> It is currently required by mainline U-Boot.[1] More context below.
> 
> [1]: https://elixir.bootlin.com/u-boot/v2025.07/source/Makefile#L405

OK, understood. Then probably a comment in the .mk file makes sense.

> > Also, you seem to be the author of this repo. Why is the ldr code
> > burried in src/ldr, with not much outside of this folder? It would make
> > a lot more sense to have the code directly at the project root, and
> > avoid having to pass ADSP_LDR_SUBDIR = src/ldr.  
> 
> This code is very very old. I was not even able to track down the
> full history internally at ADI.
> 
> The DSP line of processors were (and largely still are) used to run
> baremetal or FreeRTOS applications, which are developed using a IDE
> called CCES, which includes a custom toolchain (hence the prefix
> above). Some DSP processors do not even have ARM cores.
> 
> As they began to support Linux with larger ARM cores, the code
> necessary to generate boot streams was extracted from a CCES related
> mono repo and copied into the Github repository. That happened a few
> years ago and was never updated.
> 
> So far I've renamed the repo, switched from master to main, merged a
> "release" branch into main, and created a Github release. But there
> is still a lot that can be improved.
> 
> I have spent some time cleaning things up[2], but I need to refactor
> it a bit and rebase onto main since merging the release branch. As
> I'm sure you can imagine, this isn't a high priority. :-P

I can understand all of that, but I don't quite understand why all this
history implies that the code should be buried in a sub-subdir of a
brand new Git repo that otherwise doesn't contain anything else?

Basically, just recreate your Git repo with the contents of src/ldr/,
but directly at the root of your repo, and work from there.

> We are also focusing more on mainline U-Boot and Linux support, but
> it is naturally a slow process.

Nice!

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
  2025-08-19 12:39 ` Thomas Petazzoni via buildroot
@ 2025-08-19 16:00   ` Philip Molloy
  2025-08-19 16:21     ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 11+ messages in thread
From: Philip Molloy @ 2025-08-19 16:00 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot, Philip Molloy, Michael Hennerich

On Tue, 2025-08-19 at 14:39 +0200, Thomas Petazzoni wrote:
> Hello Philip,
> 
> On Tue, 19 Aug 2025 11:53:00 +0000
> Philip Molloy <philip@philipmolloy.com> wrote:
> 
> > Absolutely, renamed it to Config.in.host and updated accordingly.
> > Pushed it, along
> > with all other changes to the branch linked to in the cover letter.
> 
> You don't need a Config.in.host file. This tool is merely a build
> dependency for U-Boot to do its job, so it's sufficient to have U-
> Boot
> add host-adsp-ldr to UBOOT_DEPENDENCIES. No need for a
> Config.in.host.

ldr basically just generates a header describing data to be loaded and
executed by the boot ROM. That data could be U-Boot SPL, U-Boot Proper,
ATF, Linux, FreeRTOS or a baremetal application, for the ARM Cortex or
ADI SHARC DSP cores.

I don't mind dropping it, but it is much more than just a U-Boot
dependency. Perhaps more context in the Config.in.host description
would help?

> > > Are you sure that this license file is correct? Indeed, all
> > > source
> > > files seem to have a BSD-3-Clause license, for example:
> > > https://github.com/analogdevicesinc/adsp-ldr/blob/main/src/ldr/lfd.c
> > > .
> > 
> > Thanks for noticing this! I'll try to address it in a new release.
> 
> But in the mean time? You'll set ADSP_LDR_LICENSE to BSD-3-Clause and
> use one of the source files as a license file?

src/ldr/COPYING originally contained GPL v2. It was then moved to
LICENSE in the project root. Then around 9/2022 LICENSE was updated to
GPL v3.

I'm checking internally, but I assume at this point we'll change
everything to GPL v2 in a new release. If so, then I'll just bump the
version and update the package mk file accordingly in v2 of this
series.

> > > Why do you install it with a $(TARGET_CROSS) prefix?
> > 
> > It is currently required by mainline U-Boot.[1] More context below.
> > 
> > [1]:
> > https://elixir.bootlin.com/u-boot/v2025.07/source/Makefile#L405
> 
> OK, understood. Then probably a comment in the .mk file makes sense.

Sounds good, I added a comment.

> > > Also, you seem to be the author of this repo. Why is the ldr code
> > > burried in src/ldr, with not much outside of this folder? It
> > > would make
> > > a lot more sense to have the code directly at the project root,
> > > and
> > > avoid having to pass ADSP_LDR_SUBDIR = src/ldr.
> > 
> > This code is very very old. I was not even able to track down the
> > full history internally at ADI.
> > 
> > The DSP line of processors were (and largely still are) used to run
> > baremetal or FreeRTOS applications, which are developed using a IDE
> > called CCES, which includes a custom toolchain (hence the prefix
> > above). Some DSP processors do not even have ARM cores.
> > 
> > As they began to support Linux with larger ARM cores, the code
> > necessary to generate boot streams was extracted from a CCES
> > related
> > mono repo and copied into the Github repository. That happened a
> > few
> > years ago and was never updated.
> > 
> > So far I've renamed the repo, switched from master to main, merged
> > a
> > "release" branch into main, and created a Github release. But there
> > is still a lot that can be improved.
> > 
> > I have spent some time cleaning things up[2], but I need to
> > refactor
> > it a bit and rebase onto main since merging the release branch. As
> > I'm sure you can imagine, this isn't a high priority. :-P
> 
> I can understand all of that, but I don't quite understand why all
> this
> history implies that the code should be buried in a sub-subdir of a
> brand new Git repo that otherwise doesn't contain anything else?
> 
> Basically, just recreate your Git repo with the contents of src/ldr/,
> but directly at the root of your repo, and work from there.
> > 
The git repo is at least 3 years old. The repo has been in use by the
ADI Yocto layer since at least May, 2022.[1] All of the commits
currently on main (which I recently merged without making any changes)
have been in use since October, 2022.[2]

[1]:
https://github.com/analogdevicesinc/lnxdsp-adi-meta/commit/5dc8760c306fcc25c4d60da64ee478a117878a7f
[2]: https://github.com/analogdevicesinc/lnxdsp-adi-
meta/commit/083171f142d230f5e726f89a86486373b0494b54
> > 

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/4] package/adsp-ldr: new package
  2025-08-19 16:00   ` Philip Molloy
@ 2025-08-19 16:21     ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-19 16:21 UTC (permalink / raw)
  To: Philip Molloy; +Cc: buildroot, Philip Molloy, Michael Hennerich

On Tue, 19 Aug 2025 16:00:43 +0000
Philip Molloy <philip@philipmolloy.com> wrote:

> ldr basically just generates a header describing data to be loaded and
> executed by the boot ROM. That data could be U-Boot SPL, U-Boot Proper,
> ATF, Linux, FreeRTOS or a baremetal application, for the ARM Cortex or
> ADI SHARC DSP cores.
> 
> I don't mind dropping it, but it is much more than just a U-Boot
> dependency. Perhaps more context in the Config.in.host description
> would help?

OK, fine for keeping a Config.in.host then. Thanks for the
clarifications.

> src/ldr/COPYING originally contained GPL v2. It was then moved to
> LICENSE in the project root. Then around 9/2022 LICENSE was updated to
> GPL v3.
> 
> I'm checking internally, but I assume at this point we'll change
> everything to GPL v2 in a new release. If so, then I'll just bump the
> version and update the package mk file accordingly in v2 of this
> series.

Sounds good.

> The git repo is at least 3 years old. The repo has been in use by the
> ADI Yocto layer since at least May, 2022.[1] All of the commits
> currently on main (which I recently merged without making any changes)
> have been in use since October, 2022.[2]

OK, so I guess we have to live with its odd organization. Fair enough :)

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2025-08-19 16:22 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-18 14:22 [Buildroot] [PATCH 0/4] Generate ADI ADSP boot streams Philip Molloy
2025-08-18 14:22 ` [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
2025-08-18 16:31   ` Thomas Petazzoni via buildroot
2025-08-18 14:22 ` [Buildroot] [PATCH 2/4] boot/uboot: depend on adsp-ldr if needed Philip Molloy
2025-08-18 16:32   ` Thomas Petazzoni via buildroot
2025-08-18 14:22 ` [Buildroot] [PATCH 3/4] boot/uboot: add ADSP LDR binary format Philip Molloy
2025-08-18 14:22 ` [Buildroot] [PATCH 4/4] DEVELOPERS: add Philip Molloy for adsp-ldr Philip Molloy
  -- strict thread matches above, loose matches on Subject: below --
2025-08-19 11:53 [Buildroot] [PATCH 1/4] package/adsp-ldr: new package Philip Molloy
2025-08-19 12:39 ` Thomas Petazzoni via buildroot
2025-08-19 16:00   ` Philip Molloy
2025-08-19 16:21     ` Thomas Petazzoni via buildroot

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