Thanks for doing this On Tue, 22 Apr 2025 at 22:36, Tom Rini <tr...@konsulko.com> wrote: > > This adds the vexpress_fvp and vexpress_fvp_bloblist platforms to the > list of platforms we test via emulator in CI. In order to do this we > need to first have our container runtime have TF-A builds for the > vexpress_fvp platform, both with and without transfer list support as > well as installing "telnet" so that we can access console. In the CI > files we check for the existence of /opt/tf-a/${TEST_PY_BD} and if > found, copy bl1.bin and fip.bin to /tmp and set the variables so that we > can later run FVP to run. > > Note that we currently disable the hostfs (semihosting) tests as they > trigger a bug in FVP. This has been reported upstream, and can be > enabled when fixed. > > Signed-off-by: Tom Rini <tr...@konsulko.com> > --- > Cc: Harrison Mutai <harrison.mu...@arm.com> > Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> > Cc: nd <n...@arm.com> > Cc: Manish Pandey <manish.pand...@arm.com> > --- > .azure-pipelines.yml | 13 +++++++++++++ > .gitlab-ci.yml | 23 +++++++++++++++++++++++ > tools/docker/Dockerfile | 17 +++++++++++++---- > 3 files changed, 49 insertions(+), 4 deletions(-) > > diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml > index cb787d32f142..0a9f7b508ddd 100644 > --- a/.azure-pipelines.yml > +++ b/.azure-pipelines.yml > @@ -307,6 +307,13 @@ stages: > /opt/coreboot/cbfstool \${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom > remove -n fallback/payload; > /opt/coreboot/cbfstool \${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom > add-flat-binary -f \${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload > -c LZMA -l 0x1110000 -e 0x1110000; > fi > + # If we have TF-A binaries, we need to use them. > + if [[ -d /opt/tf-a/"\${TEST_PY_BD}" ]]; then > + cp /opt/tf-a/"\${TEST_PY_BD}"/fip.bin > /opt/tf-a/"\${TEST_PY_BD}"/bl1.bin /tmp; > + export fip=/tmp/fip.bin; > + export bl1=/tmp/bl1.bin; > + export > PATH=/opt/Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3:\${PATH}; > + fi > export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:\${PATH} > export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci > # "\${var:+"-k \$var"}" expands to "" if \$var is empty, "-k > \$var" if not > @@ -428,6 +435,12 @@ stages: > TEST_PY_BD: "vexpress_ca9x4" > TEST_PY_ID: "--id qemu" > TEST_PY_TEST_SPEC: "not sleep" > + vexpress_fvp: > + TEST_PY_BD: "vexpress_fvp" > + TEST_PY_TEST_SPEC: "not sleep and not hostfs" > + vexpress_fvp_bloblist: > + TEST_PY_BD: "vexpress_fvp_bloblist" > + TEST_PY_TEST_SPEC: "not sleep and not hostfs" > integratorcp_cm926ejs: > TEST_PY_BD: "integratorcp_cm926ejs" > TEST_PY_ID: "--id qemu" > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 5f3418e482fe..0268938fea99 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -96,6 +96,13 @@ stages: > /opt/coreboot/cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom remove > -n fallback/payload; > /opt/coreboot/cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom > add-flat-binary -f ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload > -c LZMA -l 0x1110000 -e 0x1110000; > fi > + # If we have TF-A binaries, we need to use them. > + - if [[ -d /opt/tf-a/"${TEST_PY_BD}" ]]; then > + cp /opt/tf-a/"${TEST_PY_BD}"/fip.bin > /opt/tf-a/"${TEST_PY_BD}"/bl1.bin /tmp/; > + export fip=/tmp/fip.bin; > + export bl1=/tmp/bl1.bin; > + export PATH=/opt/Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3:${PATH}; > + fi > # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not > - export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; > export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; > @@ -504,6 +511,22 @@ sifive_unleashed_spi-nor test.py: > TEST_PY_ID: "--id spi-nor_qemu" > <<: *buildman_and_testpy_dfn > > +vexpress_fvp test.py: > + variables: > + TEST_PY_BD: "vexpress_fvp" > + TEST_PY_TEST_SPEC: "not sleep and not hostfs" > + tags: > + - ${DEFAULT_AMD64_TAG} > + <<: *buildman_and_testpy_dfn > + > +vexpress_fvp_bloblist test.py: > + variables: > + TEST_PY_BD: "vexpress_fvp_bloblist" > + TEST_PY_TEST_SPEC: "not sleep and not hostfs" > + tags: > + - ${DEFAULT_AMD64_TAG} > + <<: *buildman_and_testpy_dfn > + > xilinx_zynq_virt test.py: > variables: > TEST_PY_BD: "xilinx_zynq_virt" > diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile > index be46135d6a52..37076de01011 100644 > --- a/tools/docker/Dockerfile > +++ b/tools/docker/Dockerfile > @@ -90,6 +90,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked > \ > help2man \ > iasl \ > imagemagick \ > + inetutils-telnet \ > iputils-ping \ > libconfuse-dev \ > libgit2-dev \ > @@ -233,10 +234,18 @@ RUN git clone https://gitlab.com/qemu-project/qemu.git > /tmp/qemu && \ > RUN git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git > /tmp/tf-a && \ > cd /tmp/tf-a/ && \ > git checkout v2.12.0 && \ > - cd tools/fiptool && \ > - make -j$(nproc) && \ > - mkdir -p /usr/local/bin && \ > - cp fiptool /usr/local/bin && \ > + make > CROSS_COMPILE=/opt/gcc-${TCVER}-nolibc/aarch64-linux/bin/aarch64-linux- \ > + PLAT=fvp BL33=/dev/null -j$(nproc) all fip && \ > + mkdir -p /usr/local/bin /opt/tf-a/vexpress_fvp && \ > + cp tools/fiptool/fiptool /usr/local/bin && \ > + cp build/fvp/release/fip.bin build/fvp/release/bl1.bin \ > + /opt/tf-a/vexpress_fvp/ && \ > + rm -rf build/fvp && \ > + make > CROSS_COMPILE=/opt/gcc-${TCVER}-nolibc/aarch64-linux/bin/aarch64-linux- \ > + PLAT=fvp BL33=/dev/null TRANSFER_LIST=1 -j$(nproc) all fip && > \ > + mkdir -p /opt/tf-a/vexpress_fvp_bloblist && \ > + cp build/fvp/release/fip.bin build/fvp/release/bl1.bin \ > + /opt/tf-a/vexpress_fvp_bloblist/ && \ > rm -rf /tmp/tf-a > > # Download the Arm Architecture FVP platform. This file is double compressed. > -- > 2.43.0 >
Acked-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>