[PATCH u-boot-test-hooks 2/2] travis-ci: add config file for testing firmware handoff on qemu_arm64
Tom Rini
trini at konsulko.com
Thu Sep 18 22:16:04 CEST 2025
On Thu, Sep 18, 2025 at 10:46:04AM -0400, Raymond Mao wrote:
> Hi Heinrich,
>
> On Thu, 18 Sept 2025 at 06:44, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
> >
> > Am 17. September 2025 17:45:03 MESZ schrieb Tom Rini <trini at konsulko.com>:
> > >On Wed, Sep 17, 2025 at 10:42:52AM -0400, Raymond Mao wrote:
> > >> Hi Tom,
> > >>
> > >> On Tue, 16 Sept 2025 at 14:27, Tom Rini <trini at konsulko.com> wrote:
> > >> >
> > >> > On Tue, Sep 16, 2025 at 09:12:25AM -0700, Raymond Mao wrote:
> > >> >
> > >> > > The existing 'conf.qemu_arm64_na' uses 'u-boot.bin' as bios, but for
> > >> > > the case of TF-A, 'u-boot.bin' is BL33 and the assembled 'flash.bin'
> > >> > > is the bios instead, which will be built and assembled at run-time
> > >> > > via a post-buildman script and copied to '/tmp'.
> > >> > >
> > >> > > Moreover, for running TF-A and OP-TEE on qemu, '-m 4G' and
> > >> > > 'virtualization=false,secure=on' are required, and '-semihosting'
> > >> > > should be replaced with its modern alias
> > >> > > '-semihosting-config enable=on,target=native'.
> > >> > >
> > >> > > Last, point to the new helper script 'swtpm-tfa'.
> > >> > >
> > >> > > Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> > >> >
> > >> > Lets fixup the current qemu_arm64 conf to have as much in common as
> > >> > possible (4G, modern semihosting flags, etc). Next:
> > >> >
> > >> > > ---
> > >> > > .../conf.qemu_arm64_fw_handoff_tfa_optee | 31 +++++++++++++++++++
> > >> > > 1 file changed, 31 insertions(+)
> > >> > > create mode 100644 bin/travis-ci/conf.qemu_arm64_fw_handoff_tfa_optee
> > >> > >
> > >> > > diff --git a/bin/travis-ci/conf.qemu_arm64_fw_handoff_tfa_optee b/bin/travis-ci/conf.qemu_arm64_fw_handoff_tfa_optee
> > >> > > new file mode 100644
> > >> > > index 0000000..9aa6d3b
> > >> > > --- /dev/null
> > >> > > +++ b/bin/travis-ci/conf.qemu_arm64_fw_handoff_tfa_optee
> > >> > > @@ -0,0 +1,31 @@
> > >> > > +# Copyright (c) 2025 Linaro Limited
> > >> > > +# Author: Raymond Mao <raymond.mao at linaro.org>
> > >> > > +# Based on conf.qemu_arm64 which is
> > >> > > +# Copyright (c) 2017 Tuomas Tynkkynen. All rights reserved.
> > >> > > +#
> > >> > > +# Permission is hereby granted, free of charge, to any person obtaining a
> > >> > > +# copy of this software and associated documentation files (the "Software"),
> > >> > > +# to deal in the Software without restriction, including without limitation
> > >> > > +# the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > >> > > +# and/or sell copies of the Software, and to permit persons to whom the
> > >> > > +# Software is furnished to do so, subject to the following conditions:
> > >> > > +#
> > >> > > +# The above copyright notice and this permission notice shall be included in
> > >> > > +# all copies or substantial portions of the Software.
> > >> > > +#
> > >> > > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > >> > > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > >> > > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> > >> > > +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > >> > > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > >> > > +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> > >> > > +# DEALINGS IN THE SOFTWARE.
> > >> > > +
> > >> > > +console_impl=qemu
> > >> > > +qemu_machine="virt,virtualization=false,secure=on"
> > >> > > +qemu_helper_script="swtpm-tfa"
> > >> > > +qemu_binary="qemu-system-aarch64"
> > >> > > +qemu_extra_args="-m 4G -cpu cortex-a57 -nographic -netdev user,id=net0,tftp=${UBOOT_TRAVIS_BUILD_DIR} -device e1000,netdev=net0 -device virtio-rng-pci -d unimp -semihosting-config enable=on,target=native -chardev socket,id=chrtpm,path=/tmp/tpm/swtpm-sock -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis-device,tpmdev=tpm0"
> > >> >
> > >> > Can we line break this? Then make some functional groupings? Thanks.
> > >> >
> > >> I am thinking about to merge this script into the common one
> > >> "conf.qemu_arm64_na", but do you mind to add
> > >> "virtualization=false,secure=on" as a common setting? even though It
> > >> is only needed when running with TF-A/OP-TEE.
> >
> > Main U-Boot is meant to be running in EL2. So why should we start in EL3 without TF-A?
> >
> > Why do you want to disable virtualization?
> >
> 1. That was my original motivation to make a separate config file for
> introducing "secure=on", since it might lead to unpredictable
> behaviours when without TF-A, even tests done normally.
> 2. You are right, virtualization=false can be removed.
>
> But then we need to make a decision from 2 options:
> 1. Use one set of config/helper scripts for all qemu_arm64 cases,
> ignoring the unpredictable behaviour caused by starting from EL3/EL2.
> 2. Keep the current patch - use separate sets of config/helper to keep
> the concept more clearer. (qemu_helper_script can be just one by using
> args, but does not make too much sense when we still have two config
> files).
>
> @Tom Rini @Heinrich Schuchardt What are your thoughts?
We should at least make them as common as possible, and more easily
human-readable. They're also just bash shell files so we could source
one and extend the variables in another (and comment on what we're doing
/ why in the file).
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250918/457437b7/attachment.sig>
More information about the U-Boot
mailing list