[PATCH 05/12] docker: add Analog Devices tools to docker image

Greg Malysa
2025-11-18T06:41:18Z

The boot ROM on Analog Devices ADSP-SC5xx SoCs requires code packaged
in the LDR format. Normally this is available as part of
our yocto-derived toolchain but, it is not a part of any other pre-made
toolchain anymore, so it is otherwise unavailable in the docker image
for CI. This patch adds a source build from the ADI maintained github
repository. In the future, a package available for install via apt will
be available, but currently there is no arm64 build upstream, so we must
build from source for the time being to support CI on both amd64 and
arm64 runners. The same ldr tool is used for arm and arm64 for all of
our boards with names adjusted to match the expected $(CROSS_COMPILE)
for these boards.

Signed-off-by: Greg Malysa <malysagreg@gmail.com>

---

Changes in v2:
- Clarifications in commit message
- Update to use meson rather than autotools due to changes in ldr

tools/docker/Dockerfile | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index d2384219c06..9b266547361 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -339,6 +339,22 @@ RUN wget -O - https://coreboot.org/releases/coreboot-25.03.tar.xz | tar -C /tmp
sudo cp build/coreboot.rom build/cbfstool /opt/coreboot/ && \
rm -rf /tmp/coreboot-25.03

+# Build ldr tool for Analog Devices boards and create prefixed symlinks to match
+# $(CROSS_COMPILE) as used by different supported platforms
+RUN git clone https://github.com/analogdevicesinc/lnxdsp-arm-poky-linux-gnueabi-ldr.git /opt/lnxdsp-arm-poky-linux-gnueabi-ldr && \
+ cd /opt/lnxdsp-arm-poky-linux-gnueabi-ldr && \
+ python3 -m venv venv && \
+ . venv/bin/activate && \
+ pip install meson && \
+ meson setup build && \
+ cd build && \
+ meson compile && \
+ cd .. && \
+ ln -s build/ldr arm-linux-gnueabi-ldr && \
+ ln -s build/ldr aarch64-linux-ldr && \
+ deactivate
+ENV PATH="${PATH}:/opt/lnxdsp-arm-poky-linux-gnueabi-ldr"
+
# Create our user/group
RUN echo uboot ALL=NOPASSWD: ALL > /etc/sudoers.d/uboot
RUN useradd -m -U uboot
--
2.49.1