@@ -8,6 +8,68 @@ ARG LABS344_IMAGE_VERSION=${LABS344_VERSION}
88ARG LABS344_BUILDER_IMAGE=${LABS344_IMAGE_NAME_FULL}:${LABS344_IMAGE_VERSION}-builder
99ARG LABS344_DEVEL_IMAGE=${LABS344_IMAGE_NAME_FULL}:${LABS344_IMAGE_VERSION}-devel
1010
11+ ARG LABS344_RISCV_GNU_TOOLCHAIN_VERSION=23863c2ca74e6c050f0c97e7af61f5f1776aadd1
12+
13+ FROM docker.io/library/debian:${LABS344_DEBIAN_VERSION} AS labs344-toolchain
14+ ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
15+
16+ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}/var/cache/apt \
17+ export DEBIAN_FRONTEND=noninteractive && \
18+ apt-get update -qq && \
19+ apt-get install -qy --no-install-recommends \
20+ autoconf \
21+ automake \
22+ autotools-dev \
23+ curl \
24+ python3 \
25+ python3-pip \
26+ python3-tomli \
27+ libmpc-dev \
28+ libmpfr-dev \
29+ libgmp-dev \
30+ gawk \
31+ build-essential \
32+ bison \
33+ flex \
34+ texinfo \
35+ gperf \
36+ libtool \
37+ patchutils \
38+ bc \
39+ zlib1g-dev \
40+ libexpat-dev \
41+ ninja-build \
42+ git \
43+ cmake \
44+ libglib2.0-dev \
45+ libslirp-dev \
46+ && \
47+ apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
48+
49+ ARG LABS344_RISCV_GNU_TOOLCHAIN_VERSION
50+ ENV LABS344_RISCV_GNU_TOOLCHAIN_VERSION=${LABS344_RISCV_GNU_TOOLCHAIN_VERSION}
51+ ENV LABS344_RISCV_DIR=/opt/riscv
52+
53+ RUN git clone https://github.com/riscv/riscv-gnu-toolchain /tmp/riscv-gnu-toolchain && \
54+ cd /tmp/riscv-gnu-toolchain && \
55+ ./configure --prefix=${LABS344_RISCV_DIR} --enable-multilib --with-multilib-generator="rv32e-ilp32e--;rv32i-ilp32--;rv32im-ilp32--;rv32iac-ilp32--;rv32imac-ilp32--;rv32imafc-ilp32f--;rv32imafdc-ilp32d--;rv64i-lp64--;rv64ic-lp64--;rv64iac-lp64--;rv64imac-lp64--;rv64imafdc-lp64d--;rv64im-lp64--;" && \
56+ make -j$(nproc) && \
57+ make install && \
58+ rm -rf /tmp/riscv-gnu-toolchain
59+
60+ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}/var/cache/apt \
61+ apt-get update && export DEBIAN_FRONTEND=noninteractive \
62+ && apt-get install -qqy --no-install-recommends \
63+ curl \
64+ wget \
65+ git \
66+ gnupg2 \
67+ ca-certificates \
68+ build-essential \
69+ make \
70+ cmake \
71+ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
72+
1173FROM docker.io/library/debian:${LABS344_DEBIAN_VERSION} AS labs344-builder
1274ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
1375
@@ -32,6 +94,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
3294 binutils-riscv64-unknown-elf \
3395 && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
3496
97+ FROM ${LABS344_BUILDER_IMAGE} AS labs344-devel
98+ ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
99+
35100RUN git clone https://github.com/openhwgroup/cvw && \
36101 cd cvw && \
37102 git checkout main && \
@@ -51,8 +116,6 @@ RUN git clone https://github.com/openhwgroup/cvw && \
51116 bash -c ". $WALLY/bin/installation/verilator-install.sh" && \
52117 cd .. && rm -rf cvw
53118
54- FROM ${LABS344_BUILDER_IMAGE} AS labs344-devel
55- ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
56119
57120# FROM docker.io/verilator/verilator:v5.028 AS labs344
58121# ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
0 commit comments