* [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