blob: 0701fc8f7247b23e1b4d8b88d80d4a0089a30fd4 [file] [log] [blame] [edit]
# syntax=docker/dockerfile:1.4
# Copyright 2024 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
######################################################################
FROM ubuntu:jammy as downloader
WORKDIR /
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y \
--no-install-recommends \
wget \
ca-certificates \
xz-utils
######################################################################
FROM downloader as zephyrfetch
ARG ZEPHYR_VERSION=0.16.8
RUN wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_VERSION}/zephyr-sdk-${ZEPHYR_VERSION}_linux-x86_64.tar.xz
RUN tar xvf zephyr-sdk-${ZEPHYR_VERSION}_linux-x86_64.tar.xz
#######################################################################
FROM downloader as ccsfetch
ARG CCS_VERSION=12.8.1
ARG CCS_REVISION=00005
RUN apt-get update \
&& apt-get install -y \
--no-install-recommends \
udev \
libc6-i386
RUN wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-J1VdearkvK/${CCS_VERSION}/CCS${CCS_VERSION}.${CCS_REVISION}_linux-x64.tar.gz
RUN tar xvf CCS${CCS_VERSION}.${CCS_REVISION}_linux-x64.tar.gz
ENV CCS_BASE=/ti
WORKDIR /CCS${CCS_VERSION}.${CCS_REVISION}_linux-x64
RUN mkdir -p /etc/udev/rules.d/
RUN ./ccs_setup_${CCS_VERSION}.${CCS_REVISION}.run --mode unattended --prefix /ti
######################################################################
FROM downloader as dolos-firmware-builder
ARG CCS_VERSION=12.8.1
ARG ZEPHYR_VERSION=0.16.8
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y \
--no-install-recommends \
ccache \
cmake \
device-tree-compiler \
dfu-util \
file \
g++-multilib \
gcc \
gcc-multilib \
git \
gperf \
libmagic1 \
libsdl2-dev \
make \
ninja-build \
python3-dev \
python3-pip \
python3-setuptools \
python3-tk \
python3-wheel
RUN pip install west
RUN west init -m https://github.com/msp-ti/zephyr.git --mr mspm0_dev /zephyrproject
WORKDIR /zephyrproject/zephyr
COPY dockerfiles/zephyr_yaml_edit.py .
RUN python3 zephyr_yaml_edit.py
RUN west update
ENV ZEPHYR_BASE=/zephyrproject/zephyr/
RUN west zephyr-export
COPY dockerfiles/requirements.compiled .
RUN pip install --require-hashes -r requirements.compiled
WORKDIR /usr/local/zephyr-sdk-${ZEPHYR_VERSION}
COPY --link --from=zephyrfetch /zephyr-sdk-${ZEPHYR_VERSION}/ .
RUN ./setup.sh -h -t all
WORKDIR /ti
COPY --link --from=ccsfetch /ti/ .
#######################################################################
FROM dolos-firmware-builder as build
ENV CCS_BASE=/ti
WORKDIR /dolos/.git
COPY .git/ .
WORKDIR /dolos/sb-config
COPY sb-config/ .
WORKDIR /dolos/firmware-zephyr
COPY firmware-zephyr/ .
WORKDIR /dolos/firmware-zephyr/src
RUN bash build.sh
#######################################################################
FROM scratch as copytohost
COPY --link --from=build /dolos/firmware-zephyr/build/zephyr/zephyr.txt /