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>

Reply via email to