The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.
This commit enables host-qemu in the build, to be used by the runtime
test infrastructure.
Since this commit switch to a more recent host-qemu, it also removes
firmware options to workaround old qemu bugs.
Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.
This commit updates ATF to 2.11, and enables host-qemu in the build,
to be used by the runtime test infrastructure.
Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.
This commit updates ATF to 2.11 and kernel to 6.6.58, and enables
host-qemu in the build, to be used by the runtime test infrastructure.
Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
The relevant qemu emulator is started with pexpect.spawn() with a
default environment (and PATH). This will always use the qemu available
on the host. When running in the reference Docker image, it is using an
old Qemu v5.2.0. This version is getting too old to run with more
recent components, like EDK2 or ATF.
The main reason to use a qemu version preinstalled in the Docker image
was to save some build time. Also, this behavior is opposite to the
"start-qemu.sh" helper script [1], which tries to execute the
Buildroot host-qemu first (and then fallback the the version on the
host system, if available). An option was added in [2] to let the user
have a better control on which version is used.
Also, updating the Buildroot reference Docker image has a larger
impact on the whole project (i.e. updating the image would bring
a newer qemu version, but might break many other things, at a time
which is not always convenient).
We now need some kind of control in runtime tests, to choose between a
"stock" qemu, and a more recent version with all the bells and
whistles.
This commit adds the Buildroot host build directory in the path. This
will make the runtime test infrastructure to use a host-qemu, if
selected by a runtime test configuration.
For now, most of the test can continue to use the qemu version provided
in the Docker image. Only the problematic tests relying on a recent
version will select BR2_PACKAGE_HOST_QEMU=y. The host-qemu package is
usually maintained to a recent version, so this should be sufficient.
[1] https://gitlab.com/buildroot.org/buildroot/-/blob/master/board/qemu/start-qemu.sh.in
[2] 5de78f181a
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
The SBSA Reference Platform was updated to neoverse-n1 (armv8.2a) in
Qemu v8.1 [1].
BR2_cortex_a57:
# cat /proc/cpuinfo
processor : 0
BogoMIPS : 2000.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd07
CPU revision : 0
[...]
BR2_neoverse_n1:
# cat /proc/cpuinfo
processor : 0
BogoMIPS : 2000.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0c
CPU revision : 1
[...]
Tests test_fwts.py test_edk2.py using
BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y are not updated to neoverse-n1 by
this commit. Those tests were disabled in a previous commit. Those
tests will be updated and fixed in followup commits.
Note: SBSA Reference Platform was recently updated again to neoverse-n2
(armv9.0a) in Qemu v9.1 [2]. But there is no armv9.0a support yet in
Buildroot.
[1] 1877272bad
[2] b1d592e7b0
Signed-off-by: Romain Naour <romain.naour@smile.fr>
[Julien: add a small comment in commit log about tests]
Signed-off-by: Julien Olivain <ju.o@free.fr>
Release notes:
https://github.com/tianocore/edk2/releases/tag/edk2-stable202405
We can't bump to edk2-stable202408 yet due to a runtime issue while
testing qemu_aarch64_sbsa_defconfig following the switch generic
ArmPsciResetSystemLib [1]
ERROR: sbsa_sip_smc_handler: unhandled SMC (0xc20000ca) (function id: 202)
Qemu 9.0/9.1 is using a slightly older edk2 firmware based on
edk2-stable202405 release [2] that contains a commit [3] fixing a
bootloader crash produced with qemu_aarch64_sbsa_defconfig [4] since
Qemu 9.0.
From [5]:
"The version of the sbsa-ref EDK2 firmware we used to use in this test
had a bug where it might make an unaligned access to the framebuffer,
which causes a guest crash on newer versions of QEMU where we enforce
the architectural requirement that unaligned accesses to Device memory
should take an exception."
This commit [5] is backported to edk2-stable202405.
For the same reason, we have to update edk2-platforms to a specific
version [6]:
"QemuSbsa: enable WriteCombine for the FrameBuffer
QEMU no longer permits misaligned access to device memory, which breaks
QemuVideoDxe on SbsaQemu.
c1d1910be6e04a8b1a73090cf2881fb698947a6e commit in EDK2 fixed it by
enabling WriteCombine for Framebuffer memory. This change enables that
fix."
As a side note, the edk2-non-osi package does not need to be updated, so
it is left untouched.
Finally, this EDK2 version requires a recent Qemu version. The version
included in the reference Docker image (5.2.0) is too old and will not
allow to start this EDK2 version. Therefore, this bump is known to be
incompatible with runtime tests which are using EDK2 on Aarch64
architecture. At the authoring time of this commit, broken tests are:
- tests.boot.test_edk2
- tests.boot.test_grub.TestGrubAArch64EFI
- tests.package.test_fwts
Note that the EDK2/Qemu incompatibility is only affecting Aarch64
tests. Other tests using EDK2 on i386 or x86_64 are not affected.
To prevent this commit introducing broken runtime tests, those have
been disabled in a previous commit.
[1] 2d0668d399
[2] 24a7cd6a7c
[3] c1d1910be6
[4] https://gitlab.com/buildroot.org/buildroot/-/jobs/7764483764
[5] 6c84daac58
[6] 3f08401365
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/7764483764
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Cc: Waldemar Brodkorb <wbx@openadk.org>
[Julien: add comments in commit log]
Signed-off-by: Julien Olivain <ju.o@free.fr>
EDK2 version edk2-stable202405 (not yet in Buildroot) has dependencies
on specific Qemu version.
Buildroot guidelines also recommend that "each patch must be complete".
See: [1]. This means, a patch in a series is not allowed to break
something knowingly, even in the same patch series. This rule is
mainly for using git bisect.
We also want to avoid bumping EDK2, update the runtime test infra,
and few tests in a big single commit, for readability. This would mix
too many changes in the same commit.
As a trade off, this commit disables the runtime tests which are known
to be broken by the upcoming edk2 update. Then, those tests will be
individually fixed and re-enabled in followup commits.
This EDK2/Qemu incompatibility only affects runtime tests using EDK2
on the Arm Aarch64 architecture. This commit disable the runtime
tests by adding a "skipTest()" call in:
- tests.boot.test_edk2
- tests.boot.test_grub.TestGrubAArch64EFI
- tests.package.test_fwts
[1] https://buildroot.org/downloads/manual/manual.html#submitting-patches
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
qemu_aarch64_sbsa_defconfig doesn't boot since the qemu version bump to
9.0 [1]. Sync the ATF version with the one (v2.11) used by Qemu tests
[2].
Since we use a released version of ATF, we switch to ATF custom version
to use the official ATF repository instead of the read-only mirror on
ARM-software's github.
This doesn't fix yet this defconfig due to a bug in edk2 as mentioned
in the qemu commit log [2].
With the edk2 version bump applied, this defconfig doesn't boot with
ATF v2.10-lts but boot successfully with ATF v2.11.
[1] 103a55028c
[2] 24a7cd6a7c
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Add -fPIC to cflags which is now required to build python-sdbus.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
Drop no longer required python-typing-extensions runtime dependency.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
For the change log since 0.6.2, see:
https://git.yoctoproject.org/opkg/tree/CHANGELOG.md?h=v0.7.0#n8
Since the toolchain-external-bootlin version bump to 2024.05-1 the
TestOpkg fail due to a "spurious error check" fixed in opkg 0.7.0 [1].
With toolchain-external-bootlin 2024.02-1 (gcc-12) and opkg 0.6.2:
opkg install example-snmpd-package_1.0_arm.ipk
Installing example-snmpd-package (1.0) on root.
Configuring example-snmpd-package.
Starting SNMP daemon: OK
echo $?
0
With toolchain-external-bootlin 2024.05-1 (gcc-13) and opkg 0.6.2:
opkg install example-snmpd-package_1.0_arm.ipk
echo $?
255
The new gcc-13 seems to be confused while compiling opkg 0.6.2
without the "spurious error check" fix [1]
With toolchain-external-bootlin 2024.05-1 (gcc-13) and opkg 0.7.0:
opkg install example-snmpd-package_1.0_arm.ipk
Installing example-snmpd-package (1.0) on root.
Configuring example-snmpd-package.
Starting SNMP daemon: OK
echo $?
0
Keep new ACL and XATTRS support introduced in opkg 0.6.3 disabled.
Update opkg to the new upstream url [2].
[1] https://git.yoctoproject.org/opkg/commit?id=b5cc53d56e381803d3f55019254ab7d608160ae1
[2] 6ff8b43e08
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8199992571
Signed-off-by: Romain Naour <romain.naour@smile.fr>
[Julien: add link to change log, reindent OPKG_CONF_OPTS]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This patch adds support for Xilinx Versal VEK280 Evaluation Kit.
VEK280 features can be found here:
https://www.xilinx.com/products/boards-and-kits/vek280.html
The VEK280 requires a patch for the memory node in the dts file because it is
not currently correct. This patch has been applied to the linux-xlnx repo and
will be included in the 2024.2 release.
Upstream: 3c7a97d99b
Signed-off-by: Neal Frager <neal.frager@amd.com>
Reviewed-by: Brandon Maier <brandon.maier@collins.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
[Julien: regenerated defconfig with savedefconfig for config ordering
and kept BR2_TARGET_XILINX_PREBUILT_VERSION]
Signed-off-by: Julien Olivain <ju.o@free.fr>
mender_x86_64_efi_defconfig started failing to build since 2024.08 in
our Gitlab-ci since the board/mender/x86_64/post-image-efi.sh is
calling support/scripts/genimage.sh with the host default shell.
There is no problem if the default shell is bash but our docker
image uses dash as default shell. Since support/scripts/genimage.sh
is actually a bash script it's not going to work if bashisms are used:
support/scripts/genimage.sh: 57: Syntax error: redirection unexpected
Indeed bashisms have been added recently in
support/scripts/genimage.sh by the commit introducing bmap image
support [1].
Remove "sh" before support/scripts/genimage.sh and rely on
"/usr/bin/env bash" to find the bash interpreter.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8233226891
[1] 6889056f1e
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This patch adds a basic support for the Bluefied3 board from
Mellanox/NVIDIA:
- https://www.nvidia.com/en-us/networking/products/data-processing-unit/
Brief summary of the board features:
- multicore ARM
- 16 Core ARM Processor
- DDR4: 16GB/32GB
- 2x embedded CX7
Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Julien Olivain <ju.o@free.fr>
[Julien:
- remove add-custom-hashes from the commit log
- add link for upstream kernel hashes
- check hash with pgp
- reflow the readme.txt
- regenerated defconfig with make savedefconfig]
Signed-off-by: Julien Olivain <ju.o@free.fr>