@@ -21,14 +21,18 @@ ARG SPARSE_VERSION=9212270048c3bd23f56c20a83d4f89b870b2b26e
2121ENV SPARSE_VERSION=$SPARSE_VERSION
2222ARG PROTOC_VERSION=21.7
2323ENV PROTOC_VERSION=$PROTOC_VERSION
24- ARG FVP_BASE_REVC_VERSION=11.24_11
24+ ARG FVP_BASE_REVC_VERSION=11.27_19
2525ENV FVP_BASE_REVC_VERSION=$FVP_BASE_REVC_VERSION
26- ARG FVP_BASE_AEMV8R_VERSION=11.24_11
26+ ARG FVP_BASE_AEMV8R_VERSION=11.27_19
2727ENV FVP_BASE_AEMV8R_VERSION=$FVP_BASE_AEMV8R_VERSION
28- ARG FVP_CORSTONE300_VERSION=11.24_13
28+ ARG FVP_CORSTONE300_VERSION=11.27_42
2929ENV FVP_CORSTONE300_VERSION=$FVP_CORSTONE300_VERSION
30- ARG FVP_CORSTONE310_VERSION=11.24_13
30+ ARG FVP_CORSTONE310_VERSION=11.27_42
3131ENV FVP_CORSTONE310_VERSION=$FVP_CORSTONE310_VERSION
32+ ARG FVP_CORSTONE315_VERSION=11.27_42
33+ ENV FVP_CORSTONE315_VERSION=$FVP_CORSTONE315_VERSION
34+ ARG FVP_CORSTONE320_VERSION=11.27_25
35+ ENV FVP_CORSTONE320_VERSION=$FVP_CORSTONE320_VERSION
3236ARG WGET_ARGS="-q --show-progress --progress=bar:force:noscroll"
3337
3438# Install Kitware ninja
@@ -135,23 +139,37 @@ RUN mkdir -p /opt/toolchains && \
135139# Install FVP
136140#
137141# Ecosystem FVP License permits redistribution (refer to the relevant license available in the container).
138- RUN if [ "${HOSTTYPE}" = "x86_64" ]; then \
142+ RUN set -o pipefail && \
139143 mkdir -p /opt/fvps && \
140144 cd /opt/fvps && \
141- wget ${WGET_ARGS} -O- https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_REVC_VERSION}_Linux64.tgz | tar xz && \
142- wget ${WGET_ARGS} -O- https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_AEMv8R_${FVP_BASE_AEMV8R_VERSION}_Linux64.tgz | tar xz && \
143- wget ${WGET_ARGS} -O- https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-300/FVP_Corstone_SSE-300_${FVP_CORSTONE300_VERSION}_Linux64.tgz | tar xz && \
144- wget ${WGET_ARGS} -O- https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-310/FVP_Corstone_SSE-310_${FVP_CORSTONE310_VERSION}_Linux64.tgz | tar xz && \
145- ./FVP_Corstone_SSE-300.sh --no-interactive --i-agree-to-the-contained-eula && \
146- ./FVP_Corstone_SSE-310.sh --no-interactive --i-agree-to-the-contained-eula && \
147- ln -s /opt/fvps/Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3/FVP_Base_RevC-2xAEMvA /usr/local/bin && \
148- ln -s /opt/fvps/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R /usr/local/bin && \
149- ln -s /usr/local/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/FVP_Corstone_SSE-300_Ethos-U55 /usr/local/bin && \
150- ln -s /usr/local/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/FVP_Corstone_SSE-300_Ethos-U65 /usr/local/bin && \
151- ln -s /usr/local/FVP_Corstone_SSE-310/models/Linux64_GCC-9.3/FVP_Corstone_SSE-310 /usr/local/bin && \
152- ln -s /usr/local/FVP_Corstone_SSE-310/models/Linux64_GCC-9.3/FVP_Corstone_SSE-310_Ethos-U65 /usr/local/bin && \
153- rm FVP_Corstone_SSE-300.sh FVP_Corstone_SSE-310.sh \
154- ; fi
145+ if [ "${HOSTTYPE}" = "x86_64" ]; then SUFFIX=""; else SUFFIX="_armv8l"; fi && \
146+ \
147+ declare -A FVP_INSTALLABLE=( \
148+ ["300"]="${FVP_CORSTONE300_VERSION}" \
149+ ["310"]="${FVP_CORSTONE310_VERSION}" \
150+ ["315"]="${FVP_CORSTONE315_VERSION}" \
151+ ["320"]="${FVP_CORSTONE320_VERSION}" \
152+ ) ; \
153+ for corstone in ${!FVP_INSTALLABLE[@]} ; \
154+ do version_build="${FVP_INSTALLABLE[$corstone]}" \
155+ && echo "Downloading Corstone-${corstone} ${version_build}" \
156+ && wget ${WGET_ARGS} -O- https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Corstone-IoT/Corstone-${corstone}/FVP_Corstone_SSE-${corstone}_${version_build}_Linux64${SUFFIX}.tgz | tar xz \
157+ && ./FVP_Corstone_SSE-${corstone}.sh --no-interactive --i-agree-to-the-contained-eula -d /opt/fvps/Corstone-${corstone} \
158+ && rm FVP_Corstone_SSE-${corstone}.sh \
159+ && ln -s /opt/fvps/Corstone-${corstone}/models/*/FVP_* /usr/local/bin ; \
160+ done && \
161+ \
162+ declare -A FVP_EXTRACTABLE=( \
163+ ["RevC-2xAEMvA"]="${FVP_BASE_REVC_VERSION}" \
164+ ["AEMv8R"]="${FVP_BASE_AEMV8R_VERSION}" \
165+ ) && \
166+ for base in ${!FVP_EXTRACTABLE[@]} ; \
167+ do version_build="${FVP_EXTRACTABLE[$base]}" \
168+ && echo "Downloading Base-${base} ${FVP_EXTRACTABLE[$base]}" \
169+ && IFS="_" read version build <<< "${version_build}" \
170+ && wget ${WGET_ARGS} -O- https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Architecture/FM-${version}/FVP_Base_${base}_${version_build}_Linux64${SUFFIX}.tgz | tar xz \
171+ ; done && \
172+ ln -s /opt/fvps/*_pkg/models/*/FVP_* /usr/local/bin
155173
156174# Clean up stale packages
157175RUN apt-get clean -y && \
0 commit comments