subtree updates
- Remove systemd patches for object-manager due to upstream fix.
meta-arm: 3b7347cd67..d5f132b199:
Abdellatif El Khlifi (2):
kas: corstone1000: set branches to langdale
arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the user guide
Anton Antonov (1):
arm-bsp/fvp-base: Enable virtio-rng support and unset preferred 5.15 kernel
Emekcan (2):
arm-bsp/trusted-services: add checks for null attributes in smm gateway
arm-bsp/trusted-services: Fix GetNextVariable max_name_len in smm gateway
Jon Mason (3):
arm/sbsa-acs: update to the latest version
arm/hafnium: cleanup the patches
arm/gn: update to the latest SHA
Luca Fancellu (1):
arm,arm-bsp/recipes-kernel: don't use PN in arm-ffa-transport.inc
Peter Hoyes (5):
arm/fvp: Join cli arguments in verbose logging
arm/lib: Factor out asyncio in FVPRunner
arm/lib: Decouple console parsing from the FVPRunner
arm/oeqa: Log the FVP output in OEFVPSSHTarget
runfvp: Fix verbose output when using --console
Ross Burton (1):
arm/linux-arm64-ack: fix buildpaths in the perf Python module
Rui Miguel Silva (3):
arm/trusted-services: check before applying patches
arm-bsp/trusted-services: psa test setup corstone1000
arm-bsp/trusted-firmware-m: adjust ps assets for corstone1000
Vishnu Banavath (2):
arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the release notes
arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the change log
meta-raspberrypi: a305f4804b..93dadf336c:
Andrei Gherzan (2):
ci: Bump actions/checkout to v3
ci: Fix dco-check job with newer git versions
Martin Jansa (1):
raspberrypi4-64: drop DEFAULTTUNE assignment
poky: 482c493cf6..44bb88cc86:
Alex Kiernan (1):
rust: update 1.64.0 -> 1.65.0
Alexander Kanavin (74):
man-pages: upgrade 5.13 -> 6.01
piglit: upgrade to latest revision
lsof: upgrade 4.96.3 -> 4.96.4
ffmpeg: upgrade 5.1.1 -> 5.1.2
ccache: upgrade 4.6.3 -> 4.7.2
python3-pip: upgrade 22.2.2 -> 22.3
ltp: upgrade 20220527 -> 20220930
alsa-utils: upgrade 1.2.7 -> 1.2.8
alsa-ucm-conf: upgrade 1.2.7.2 -> 1.2.8
libbsd: upgrade 0.11.6 -> 0.11.7
libunistring: upgrade 1.0 -> 1.1
puzzles: upgrade to latest revision
libsoup: upgrade 3.2.0 -> 3.2.1
linux-firmware: upgrade 20220913 -> 20221012
python3-git: upgrade 3.1.28 -> 3.1.29
xwayland: upgrade 22.1.3 -> 22.1.4
strace: upgrade 5.19 -> 6.0
python3-dtschema: upgrade 2022.8.3 -> 2022.9
fontconfig: upgrade 2.14.0 -> 2.14.1
python3-setuptools: upgrade 65.0.2 -> 65.5.0
taglib: upgrade 1.12 -> 1.13
nghttp2: upgrade 1.49.0 -> 1.50.0
python3-wheel: upgrade 0.37.1 -> 0.38.0
libffi: upgrade 3.4.2 -> 3.4.4
libical: upgrade 3.0.15 -> 3.0.16
mtd-utils: upgrade 2.1.4 -> 2.1.5
repo: upgrade 2.29.3 -> 2.29.5
libidn2: upgrade 2.3.3 -> 2.3.4
makedepend: upgrade 1.0.6 -> 1.0.7
diffoscope: upgrade 221 -> 224
mmc-utils: upgrade to latest revision
libsoup-2.4: upgrade 2.74.2 -> 2.74.3
gdk-pixbuf: upgrade 2.42.9 -> 2.42.10
harfbuzz: upgrade 5.3.0 -> 5.3.1
netbase: upgrade 6.3 -> 6.4
mpg123: upgrade 1.30.2 -> 1.31.1
sudo: upgrade 1.9.11p3 -> 1.9.12
alsa-lib: upgrade 1.2.7.2 -> 1.2.8
pango: upgrade 1.50.10 -> 1.50.11
pixman: upgrade 0.40.0 -> 0.42.2
vulkan: upgrade 1.3.224.1 -> 1.3.231.1
gstreamer1.0: upgrade 1.20.3 -> 1.20.4
shaderc: upgrade 2022.2 -> 2022.3
selftest: add a copy of previous mtd-utils version to meta-selftest
python3: correctly adjust include paths in sysconfigdata
vala: install vapigen-wrapper into /usr/bin/crosscripts and stage only that
sanity.bbclass: do not check for presence of distutils
pango: replace a recipe fix with an upstream submitted patch
libpciaccess: update 0.16 -> 0.17
libxinerama: update 1.1.4 -> 1.1.5
libxkbfile: update 1.1.0 -> 1.1.1
libxmu: update 1.1.3 -> 1.1.4
libxrender: update 0.9.10 -> 0.9.11
libxshmfence: update 1.3 -> 1.3.1
libxtst: update 1.2.3 -> 1.2.4
libxxf86vm: update 1.1.4 -> 1.1.5
xcb-util: update to latest revisions
xf86-input-vmmouse: update 13.1.0 -> 13.2.0
gnomebase.bbclass: return the whole version for tarball directory if it is a number
adwaita-icon-theme: update 42.0 -> 43
libepoxy: convert to git
libepoxy: update 1.5.9 -> 1.5.10
rgb: update 1.0.6 -> 1.1.0
meson: update 0.63.3 -> 0.64.0
systemd: update 251.4 -> 251.8
libxext: update 1.3.4 -> 1.3.5
gettext: update 0.21 -> 0.21.1
glib-2.0: update 2.72.3 -> 2.74.1
glib-networking: update 2.72.2 -> 2.74.0
readline: update 8.1.2 -> 8.2
llvm: update 15.0.1 -> 15.0.4
make: update 4.3 -> 4.4
bash: update 5.1.16 -> 5.2.9
mesa: do not rely on native llvm-config in target sysroot
Atanas Bunchev (1):
qemu.rst: audio: reference to Command-Line options
Benjamin Szőke (1):
image_types: Add 7-Zip support in conversion types and commands
Changhyeok Bae (1):
repo: upgrade 2.29.5 -> 2.29.9
Chase Qi (1):
libc-test: add libc testsuite for musl
Christoph Lauer (1):
populate_sdk_base: add zip options
David Bagonyi (1):
gpgme: Allow setuptools3-base to be excluded from the inherit list
Diego Sueiro (1):
kernel.bbclass: Include randstruct seed assets in STAGING_KERNEL_BUILDDIR
Etienne Cordonnier (1):
mirrors.bbclass: use shallow tarball for nativesdk-binutils
Jordan Crouse (2):
spirv-tools: Correctly set the prefix in exported cmake packages
vulkan-loader: Allow headless targets to build the loader
Jose Quaresma (3):
sstatesig: skip the rm_work task signature
rm_work: exclude the SSTATETASKS from the rm_work tasks sinature
sstate: Allow optimisation of do_deploy_archives task dependencies
Joshua Watt (2):
classes: create-spdx: Move to version specific class
scripts: convert-overrides: Allow command-line customizations
Kai Kang (1):
libuv: fixup SRC_URI
Konrad Weihmann (1):
create-spdx: default share_src for shared sources
Lee Chee Yang (1):
migration guides: add release notes for 4.0.5
Leon Anavi (2):
get_module_deps3.py: Check attribute '__file__'
python3-manifest.json: Fix re in core
Mark Asselstine (2):
bitbake: data: drop unused __expand_var_regexp__ and __expand_python_regexp__
bitbake: data_smart: allow python snippets to include a dictionary
Markus Volk (4):
webkitgtk: use libsoup-3.0 by default
epiphany: use libsoup-3.0 by default
gstreamer1.0-plugins-good: use libsoup-3.0 by default
libinput: upgrade 1.19.4 -> 1.21.0
Martin Jansa (1):
cargo.bbclass: avoid calling which ${RUSTC} with undefined ${RUSTC}
Michael Opdenacker (10):
ref-manual: terms.rst: add SBOM and SPDX terms
ref-manual: variables.rst: document spdx-create class variables
dev-manual: common-tasks.rst: add section about SPDX / SBOM generation
ref-manual: classes.rst: expand documentation of create-spdx class
ref-manual: terms.rst: add reference to new SBOM/SPDX section in dev manual
manuals: document "mime-xdg" class and MIME_XDG_PACKAGES
manuals: add shortcut for Wikipedia links
ref-manual/variables.rst: expand BB_NUMBER_THREADS description
ref-manual/variables.rst: expand PARALLEL_MAKE description
release-notes: use oe_git and yocto_git macros
Nathan Rossi (4):
oeqa/selftest/lic_checksum: Cleanup changes to emptytest include
oeqa/selftest/minidebuginfo: Create selftest for minidebuginfo
glibc-locale: Do not INHIBIT_DEFAULT_DEPS
package: Fix handling of minidebuginfo with newer binutils
Niko Mauno (1):
systemd: Consider PACKAGECONFIG in RRECOMMENDS
Paulo Neves (1):
manuals: remove xterm requirements
Pavel Zhukov (1):
bitbake: gitsm: Fix regression in gitsm submodule path parsing
Peter Kjellerstedt (1):
pango: Make it build with ptest disabled
Peter Marko (2):
systemd: add group render to udev package
meta-selftest/staticids: add render group for systemd
Quentin Schulz (3):
docs: ref-manual: classes: fix section name for github-releases
docs: ref-manual: classes: add missing closing parenthesis
docs: poky.yaml.in: remove pylint3 from Ubuntu/Debian host dependencies
Richard Purdie (7):
bitbake.conf: Drop export of SOURCE_DATE_EPOCH_FALLBACK
gcc-shared-source: Fix source date epoch handling
gcc-source: Fix gengtypes race
gcc-source: Drop gengtype manipulation
gcc-source: Ensure deploy_source_date_epoch sstate hash doesn't change
sanity: Drop data finalize call
bitbake: data/data_smart/build: Clean up datastore finalize/update_data references
Robert Yang (1):
bitbake: gitsm.py: process_submodules(): Set nobranch=1 for url
Ross Burton (19):
insane: add codeload.github.com to src-uri-bad check
populate_sdk_ext: use ConfigParser instead of SafeConfigParser
stress-ng: improve makefile use
linux-firmware: don't put the firmware into the sysroot
oeqa/qemurunner: update exception class for QMP API changes
oeqa/core/decorator: add decorators to skip based on HOST_ARCH
oeqa/selftest/buildoptions: skip test_read_only_image on qemuarm64
oeqa/selftest/efibootpartition: improve test
oeqa/selftest/imagefeatures: remove hardcoded MACHINE in test_image_gen_debugfs
oeqa/selftest/imagefeatures: don't use wic images in test_hypervisor_fmts
oeqa/selftest/imagefeatures: set a .wks in test_fs_types
oeqa/selftest/overlayfs: overlayfs: skip x86-specific tests
oeqa/selftest/package: generalise test_gdb_hardlink_debug()
oeqa/selftest/package: improve test_preserve_ownership
oeqa/selftest/runqemu: don't hardcode qemux86-64
oeqa/selftest/runtime_test: only run the virgl tests on qemux86-64
oeqa/selftest/wic: skip more tests on aarch64
oeqa/selftest/wic: use skipIfNotArch instead of custom decorator
classes/testexport: move to classes-recipe
Sergei Zhmylev (1):
wic: make ext2/3/4 images reproducible
Tim Orling (4):
python3-typing-extensions: upgrade 4.3.0 -> 4.4.0
bitbake: toaster: fixtures/README: django 1.8 -> 3.2
bitbake: toaster: fixtures/gen_fixtures.py: update branches
bitbake: toaster: Add refreshed oe-core and poky fixtures
Ulrich Ölmann (1):
dev-manual: common-tasks.rst: fix typos
Wang Mingyu (33):
bind: upgrade 9.18.7 -> 9.18.8
libedit: upgrade 20210910-3.1 -> 20221030-3.1
mtools: upgrade 4.0.41 -> 4.0.42
diffstat: upgrade 1.64 -> 1.65
inetutils: upgrade 2.3 -> 2.4
orc: upgrade 0.4.32 -> 0.4.33
socat: upgrade 1.7.4.3 -> 1.7.4.4
libxcrypt: upgrade 4.4.28 -> 4.4.30
python3-babel: upgrade 2.10.3 -> 2.11.0
python3-hatch-fancy-pypi-readme: upgrade 22.7.0 -> 22.8.0
python3-hatchling upgrade: 1.11.0 -> 1.11.1
gi-docgen: upgrade 2022.1 -> 2022.2
libdrm: upgrade 2.4.113 -> 2.4.114
mmc-utils: upgrade to latest revision
mobile-broadband-provider-info: upgrade 20220725 -> 20221107
libsdl2: upgrade 2.24.1 -> 2.24.2
mesa: upgrade 22.2.2 -> 22.2.3
python3-dtschema: upgrade 2022.9 -> 2022.11
python3-flit-core: upgrade 3.7.1 -> 3.8.0
python3-pip: update 22.3 -> 22.3.1
python3-psutil: upgrade 5.9.3 -> 5.9.4
python3-setuptools: upgrade 65.5.0 -> 65.5.1
python3-sphinx-rtd-theme: upgrade 1.1.0 -> 1.1.1
python3-subunit: upgrade 1.4.0 -> 1.4.1
python3-wheel: upgrade 0.38.0 -> 0.38.4
sed: update 4.8 -> 4.9
sudo: upgrade 1.9.12 -> 1.9.12p1
sysstat: upgrade 12.6.0 -> 12.6.1
babeltrace: upgrade 1.5.8 -> 1.5.11
iso-codes: upgrade 4.11.0 -> 4.12.0
libsoup: upgrade 3.2.1 -> 3.2.2
wayland-protocols: upgrade 1.27 -> 1.28
xwayland: upgrade 22.1.4 -> 22.1.5
zhengruoqin (5):
python3-jsonschema: upgrade 4.16.0 -> 4.17.0
python3-pyrsistent: upgrade 0.18.1 -> 0.19.2
python3-numpy: upgrade 1.23.3 -> 1.23.4
python3-sphinx-rtd-theme: upgrade 1.0.0 -> 1.1.0
python3-pbr: upgrade 5.10.0 -> 5.11.0
meta-openembedded: 6ebff843cc..d04444509a:
Armin Kuster (1):
meta-oe][PATCH] gst-editing-services: fix typo in LICENSE field.
Chen Pei (1):
python3-brotli: Add new recipe for 1.0.9
Kory Maincent (1):
openocd: fix build error
Leon Anavi (6):
python3-automat: Upgrade 20.2.0 -> 22.10.0
python3-asttokens: Upgrade 2.0.8 -> 2.1.0
python3-zeroconf: Upgrade 0.39.2 -> 0.39.4
python3-imageio: Upgrade 2.22.2 -> 2.22.3
python3-httplib: Upgrade 0.20.4 -> 0.21.0
python3-twisted: Upgrade 22.8.0 -> 22.10.0
Markus Volk (6):
pugixml: upgrade 1.12 -> 1.13
geary: update 40.0 -> 43.0
rest: upgrade 0.8.1 -> 0.9.0
gnome-online-accounts: update 3.44.0 -> 3.46.0
yelp: use libsoup-3.0 by default
surf: use libsoup-3.0 by default
Martin Jansa (1):
monkey: use git fetcher
Randy MacLeod (1):
nftables: use automake ptest output format
Sakib Sajal (1):
minio: add recipe for minio client
Tim Orling (5):
libcompress-raw-bzip2-perl: upgrade 2.096 -> 2.201
libcompress-raw-lzma-perl: upgrade 2.096 -> 2.201
libcompress-raw-zlib-perl: upgrade 2.096 -> 2.202
libio-compress-lzma-perl: upgrade 2.096 -> 2.201
libio-compress-perl: upgrade 2.096 -> 2.201
Wang Mingyu (43):
python3-lazy-object-proxy: upgrade 1.7.1 -> 1.8.0
python3-luma-oled: upgrade 3.8.1 -> 3.9.0
python3-nmap: upgrade 1.5.4 -> 1.6.0
python3-pint: upgrade 0.20 -> 0.20.1
python3-protobuf: upgrade 4.21.8 -> 4.21.9
python3-pytest-benchmark: upgrade 3.4.1 -> 4.0.0
python3-pytest-html: upgrade 3.1.1 -> 3.2.0
python3-pytest-xdist: upgrade 2.5.0 -> 3.0.2
python3-requests-toolbelt: upgrade 0.10.0 -> 0.10.1
python3-websockets: upgrade 10.3 -> 10.4
fetchmail: Fix buildpaths warning.
libxpresent: upgrade 1.0.0 -> 1.0.1
xkbprint: upgrade 1.0.5 -> 1.0.6
xmlsec1: upgrade 1.2.34 -> 1.2.36
openwsman: Change download branch from master to main.
hwdata: upgrade 0.363 -> 0.364
lcms: upgrade 2.13.1 -> 2.14
libdbd-sqlite-perl: upgrade 1.70 -> 1.72
mosh: upgrade 1.3.2 -> 1.4.0
xfstests: upgrade 2022.10.09 -> 2022.10.30
ulogd2: upgrade 2.0.7 -> 2.0.8
cli11: upgrade 2.3.0 -> 2.3.1
ctags: upgrade 5.9.20221023.0 -> 5.9.20221106.0
valijson: upgrade 0.7 -> 1.0
openvpn: upgrade 2.5.7 -> 2.5.8
poco: upgrade 1.12.3 -> 1.12.4
poppler: upgrade 22.10.0 -> 22.11.0
satyr: upgrade 0.39 -> 0.40
ser1net: upgrade 4.3.8 -> 4.3.9
stunnel: upgrade 5.66 -> 5.67
wolfssl: upgrade 5.5.2 -> 5.5.3
tio: upgrade 2.2 -> 2.3
uhubctl: upgrade 2.4.0 -> 2.5.0
zabbix: upgrade 6.2.3 -> 6.2.4
python3-spidev: upgrade 3.5 -> 3.6
python3-gevent: upgrade 22.10.1 -> 22.10.2
python3-google-auth: upgrade 2.13.0 -> 2.14.0
python3-greenlet: upgrade 1.1.3.post0 -> 2.0.0
python3-robotframework: upgrade 6.0 -> 6.0.1
python3-regex: upgrade 2022.9.13 -> 2022.10.31
python3-pillow: upgrade 9.2.0 -> 9.3.0
python3-paramiko: upgrade 2.11.0 -> 2.12.0
python3-jsonref: upgrade 0.3.0 -> 1.0.1
leimaohui (1):
samba: Fix install conflict with multilib enabled.
zhengrq.fnst@fujitsu.com (5):
python3-sqlalchemy: upgrade 1.4.42 -> 1.4.43
python3-websocket-client: upgrade 1.4.1 -> 1.4.2
python3-termcolor: upgrade 2.0.1 -> 2.1.0
python3-zopeinterface: upgrade 5.5.0 -> 5.5.1
python3-tqdm: upgrade 4.64.0 -> 4.64.1
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I0a8f95b57a7b9433fe59a9055a4dae58694c1759
diff --git a/meta-arm/meta-arm/lib/fvp/runner.py b/meta-arm/meta-arm/lib/fvp/runner.py
index 28351a3..f55c579 100644
--- a/meta-arm/meta-arm/lib/fvp/runner.py
+++ b/meta-arm/meta-arm/lib/fvp/runner.py
@@ -1,7 +1,7 @@
-import asyncio
import re
import subprocess
import os
+import shlex
import shutil
import sys
@@ -44,19 +44,40 @@
if not bool(shutil.which("telnet")):
raise RuntimeError("Cannot find telnet, this is needed to connect to the FVP.")
+
+class ConsolePortParser:
+ def __init__(self, lines):
+ self._lines = lines
+ self._console_ports = {}
+
+ def parse_port(self, console):
+ if console in self._console_ports:
+ return self._console_ports[console]
+
+ while True:
+ try:
+ line = next(self._lines).strip().decode(errors='ignore')
+ m = re.match(r"^(\S+): Listening for serial connection on port (\d+)$", line)
+ if m:
+ matched_console = m.group(1)
+ matched_port = int(m.group(2))
+ if matched_console == console:
+ return matched_port
+ else:
+ self._console_ports[matched_console] = matched_port
+ except StopIteration:
+ # self._lines might be a growing log file
+ pass
+
+
class FVPRunner:
def __init__(self, logger):
- self._terminal_ports = {}
- self._line_callbacks = []
self._logger = logger
self._fvp_process = None
self._telnets = []
self._pexpects = []
- def add_line_callback(self, callback):
- self._line_callbacks.append(callback)
-
- async def start(self, config, extra_args=[], terminal_choice="none"):
+ def start(self, config, extra_args=[], terminal_choice="none", stdout=subprocess.PIPE):
cli = cli_from_config(config, terminal_choice)
cli += extra_args
@@ -67,27 +88,19 @@
if name in os.environ:
env[name] = os.environ[name]
- self._logger.debug(f"Constructed FVP call: {cli}")
- self._fvp_process = await asyncio.create_subprocess_exec(
- *cli,
- stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ self._logger.debug(f"Constructed FVP call: {shlex.join(cli)}")
+ self._fvp_process = subprocess.Popen(
+ cli,
+ stdin=subprocess.DEVNULL, stdout=stdout, stderr=subprocess.STDOUT,
env=env)
- def detect_terminals(line):
- m = re.match(r"^(\S+): Listening for serial connection on port (\d+)$", line)
- if m:
- terminal = m.group(1)
- port = int(m.group(2))
- self._terminal_ports[terminal] = port
- self.add_line_callback(detect_terminals)
-
- async def stop(self):
+ def stop(self):
if self._fvp_process:
self._logger.debug(f"Terminating FVP PID {self._fvp_process.pid}")
try:
self._fvp_process.terminate()
- await asyncio.wait_for(self._fvp_process.wait(), 10.0)
- except asyncio.TimeoutError:
+ self._fvp_process.wait(10.0)
+ except subprocess.TimeoutExpired:
self._logger.debug(f"Killing FVP PID {self._fvp_process.pid}")
self._fvp_process.kill()
except ProcessLookupError:
@@ -96,8 +109,8 @@
for telnet in self._telnets:
try:
telnet.terminate()
- await asyncio.wait_for(telnet.wait(), 10.0)
- except asyncio.TimeoutError:
+ telnet.wait(10.0)
+ except subprocess.TimeoutExpired:
telnet.kill()
except ProcessLookupError:
pass
@@ -117,34 +130,21 @@
else:
return 0
- async def run(self, until=None):
- if until and until():
- return
+ def wait(self, timeout):
+ self._fvp_process.wait(timeout)
- async for line in self._fvp_process.stdout:
- line = line.strip().decode("utf-8", errors="replace")
- for callback in self._line_callbacks:
- callback(line)
- if until and until():
- return
+ @property
+ def stdout(self):
+ return self._fvp_process.stdout
- async def _get_terminal_port(self, terminal, timeout):
- def terminal_exists():
- return terminal in self._terminal_ports
- await asyncio.wait_for(self.run(terminal_exists), timeout)
- return self._terminal_ports[terminal]
-
- async def create_telnet(self, terminal, timeout=15.0):
+ def create_telnet(self, port):
check_telnet()
- port = await self._get_terminal_port(terminal, timeout)
- telnet = await asyncio.create_subprocess_exec("telnet", "localhost", str(port), stdin=sys.stdin, stdout=sys.stdout)
+ telnet = subprocess.Popen(["telnet", "localhost", str(port)], stdin=sys.stdin, stdout=sys.stdout)
self._telnets.append(telnet)
return telnet
- async def create_pexpect(self, terminal, timeout=15.0, **kwargs):
- check_telnet()
+ def create_pexpect(self, port, **kwargs):
import pexpect
- port = await self._get_terminal_port(terminal, timeout)
instance = pexpect.spawn(f"telnet localhost {port}", **kwargs)
self._pexpects.append(instance)
return instance
diff --git a/meta-arm/meta-arm/lib/oeqa/controllers/fvp.py b/meta-arm/meta-arm/lib/oeqa/controllers/fvp.py
index c8dcf29..e8a094f 100644
--- a/meta-arm/meta-arm/lib/oeqa/controllers/fvp.py
+++ b/meta-arm/meta-arm/lib/oeqa/controllers/fvp.py
@@ -1,4 +1,3 @@
-import asyncio
import pathlib
import pexpect
import os
@@ -13,7 +12,7 @@
Contains common logic to start and stop an FVP.
"""
def __init__(self, logger, target_ip, server_ip, timeout=300, user='root',
- port=None, dir_image=None, rootfs=None, **kwargs):
+ port=None, dir_image=None, rootfs=None, bootlog=None, **kwargs):
super().__init__(logger, target_ip, server_ip, timeout, user, port)
image_dir = pathlib.Path(dir_image)
# rootfs may have multiple extensions so we need to strip *all* suffixes
@@ -21,36 +20,40 @@
basename = basename.name.replace("".join(basename.suffixes), "")
self.fvpconf = image_dir / (basename + ".fvpconf")
self.config = conffile.load(self.fvpconf)
+ self.bootlog = bootlog
if not self.fvpconf.exists():
raise FileNotFoundError(f"Cannot find {self.fvpconf}")
- async def boot_fvp(self):
- self.fvp = runner.FVPRunner(self.logger)
- await self.fvp.start(self.config)
- self.logger.debug(f"Started FVP PID {self.fvp.pid()}")
- await self._after_start()
-
- async def _after_start(self):
+ def _after_start(self):
pass
- async def _after_stop(self):
- pass
-
- async def stop_fvp(self):
- returncode = await self.fvp.stop()
- await self._after_stop()
-
- self.logger.debug(f"Stopped FVP with return code {returncode}")
-
def start(self, **kwargs):
- # When we can assume Py3.7+, this can simply be asyncio.run()
- loop = asyncio.get_event_loop()
- loop.run_until_complete(asyncio.gather(self.boot_fvp()))
+ self.fvp_log = self._create_logfile("fvp")
+ self.fvp = runner.FVPRunner(self.logger)
+ self.fvp.start(self.config, stdout=self.fvp_log)
+ self.logger.debug(f"Started FVP PID {self.fvp.pid()}")
+ self._after_start()
def stop(self, **kwargs):
- loop = asyncio.get_event_loop()
- loop.run_until_complete(asyncio.gather(self.stop_fvp()))
+ returncode = self.fvp.stop()
+ self.logger.debug(f"Stopped FVP with return code {returncode}")
+
+ def _create_logfile(self, name):
+ if not self.bootlog:
+ return None
+
+ test_log_path = pathlib.Path(self.bootlog).parent
+ test_log_suffix = pathlib.Path(self.bootlog).suffix
+ fvp_log_file = f"{name}_log{test_log_suffix}"
+ fvp_log_path = pathlib.Path(test_log_path, fvp_log_file)
+ fvp_log_symlink = pathlib.Path(test_log_path, f"{name}_log")
+ try:
+ os.remove(fvp_log_symlink)
+ except:
+ pass
+ os.symlink(fvp_log_file, fvp_log_symlink)
+ return open(fvp_log_path, 'wb')
class OEFVPTarget(OEFVPSSHTarget):
@@ -59,31 +62,34 @@
waits for a Linux shell before returning to ensure that SSH commands work
with the default test dependencies.
"""
- def __init__(self, logger, target_ip, server_ip, bootlog=None, **kwargs):
+ def __init__(self, logger, target_ip, server_ip, **kwargs):
super().__init__(logger, target_ip, server_ip, **kwargs)
- self.logfile = bootlog and open(bootlog, "wb") or None
+ self.logfile = self.bootlog and open(self.bootlog, "wb") or None
# FVPs boot slowly, so allow ten minutes
self.boot_timeout = 10 * 60
- async def _after_start(self):
- self.logger.debug(f"Awaiting console on terminal {self.config['consoles']['default']}")
- console = await self.fvp.create_pexpect(self.config['consoles']['default'])
- try:
- console.expect("login\\:", timeout=self.boot_timeout)
- self.logger.debug("Found login prompt")
- except pexpect.TIMEOUT:
- self.logger.info("Timed out waiting for login prompt.")
- self.logger.info("Boot log follows:")
- self.logger.info(b"\n".join(console.before.splitlines()[-200:]).decode("utf-8", errors="replace"))
- raise RuntimeError("Failed to start FVP.")
+ def _after_start(self):
+ with open(self.fvp_log.name, 'rb') as logfile:
+ parser = runner.ConsolePortParser(logfile)
+ self.logger.debug(f"Awaiting console on terminal {self.config['consoles']['default']}")
+ port = parser.parse_port(self.config['consoles']['default'])
+ console = self.fvp.create_pexpect(port)
+ try:
+ console.expect("login\\:", timeout=self.boot_timeout)
+ self.logger.debug("Found login prompt")
+ except pexpect.TIMEOUT:
+ self.logger.info("Timed out waiting for login prompt.")
+ self.logger.info("Boot log follows:")
+ self.logger.info(b"\n".join(console.before.splitlines()[-200:]).decode("utf-8", errors="replace"))
+ raise RuntimeError("Failed to start FVP.")
class OEFVPSerialTarget(OEFVPSSHTarget):
"""
This target is intended for interaction with the target over one or more
telnet consoles using pexpect.
-
+
This still depends on OEFVPSSHTarget so SSH commands can still be run on
the target, but note that this class does not inherently guarantee that
the SSH server is running prior to running test cases. Test cases that use
@@ -92,40 +98,25 @@
"""
DEFAULT_CONSOLE = "default"
- def __init__(self, logger, target_ip, server_ip, bootlog=None, **kwargs):
+ def __init__(self, logger, target_ip, server_ip, **kwargs):
super().__init__(logger, target_ip, server_ip, **kwargs)
self.terminals = {}
- self.test_log_path = pathlib.Path(bootlog).parent
- self.test_log_suffix = pathlib.Path(bootlog).suffix
- self.bootlog = bootlog
+ def _after_start(self):
+ with open(self.fvp_log.name, 'rb') as logfile:
+ parser = runner.ConsolePortParser(logfile)
+ for name, console in self.config["consoles"].items():
+ logfile = self._create_logfile(name)
+ self.logger.info(f'Creating terminal {name} on {console}')
+ port = parser.parse_port(console)
+ self.terminals[name] = \
+ self.fvp.create_pexpect(port, logfile=logfile)
- async def _add_terminal(self, name, fvp_name):
- logfile = self._create_logfile(name)
- self.logger.info(f'Creating terminal {name} on {fvp_name}')
- self.terminals[name] = \
- await self.fvp.create_pexpect(fvp_name, logfile=logfile)
-
- def _create_logfile(self, name):
- fvp_log_file = f"{name}_log{self.test_log_suffix}"
- fvp_log_path = pathlib.Path(self.test_log_path, fvp_log_file)
- fvp_log_symlink = pathlib.Path(self.test_log_path, f"{name}_log")
- try:
- os.remove(fvp_log_symlink)
- except:
- pass
- os.symlink(fvp_log_file, fvp_log_symlink)
- return open(fvp_log_path, 'wb')
-
- async def _after_start(self):
- for name, console in self.config["consoles"].items():
- await self._add_terminal(name, console)
-
- # testimage.bbclass expects to see a log file at `bootlog`,
- # so make a symlink to the 'default' log file
- if name == 'default':
- default_test_file = f"{name}_log{self.test_log_suffix}"
- os.symlink(default_test_file, self.bootlog)
+ # testimage.bbclass expects to see a log file at `bootlog`,
+ # so make a symlink to the 'default' log file
+ if name == 'default':
+ default_test_file = f"{name}_log{self.test_log_suffix}"
+ os.symlink(default_test_file, self.bootlog)
def _get_terminal(self, name):
return self.terminals[name]
diff --git a/meta-arm/meta-arm/lib/oeqa/selftest/cases/runfvp.py b/meta-arm/meta-arm/lib/oeqa/selftest/cases/runfvp.py
index cf8a3c5..5cc8660 100644
--- a/meta-arm/meta-arm/lib/oeqa/selftest/cases/runfvp.py
+++ b/meta-arm/meta-arm/lib/oeqa/selftest/cases/runfvp.py
@@ -81,13 +81,13 @@
class RunnerTests(OESelftestTestCase):
def create_mock(self):
- return unittest.mock.patch("asyncio.create_subprocess_exec")
+ return unittest.mock.patch("subprocess.Popen")
def test_start(self):
from fvp import runner
with self.create_mock() as m:
fvp = runner.FVPRunner(self.logger)
- asyncio.run(fvp.start({
+ fvp.start({
"fvp-bindir": "/usr/bin",
"exe": "FVP_Binary",
"parameters": {'foo': 'bar'},
@@ -96,13 +96,13 @@
"terminals": {},
"args": ['--extra-arg'],
"env": {"FOO": "BAR"}
- }))
+ })
- m.assert_called_once_with('/usr/bin/FVP_Binary',
+ m.assert_called_once_with(['/usr/bin/FVP_Binary',
'--parameter', 'foo=bar',
'--data', 'data1',
'--application', 'a1=file',
- '--extra-arg',
+ '--extra-arg'],
stdin=unittest.mock.ANY,
stdout=unittest.mock.ANY,
stderr=unittest.mock.ANY,
@@ -113,7 +113,7 @@
from fvp import runner
with self.create_mock() as m:
fvp = runner.FVPRunner(self.logger)
- asyncio.run(fvp.start({
+ fvp.start({
"fvp-bindir": "/usr/bin",
"exe": "FVP_Binary",
"parameters": {},
@@ -122,9 +122,9 @@
"terminals": {},
"args": [],
"env": {"FOO": "BAR"}
- }))
+ })
- m.assert_called_once_with('/usr/bin/FVP_Binary',
+ m.assert_called_once_with(['/usr/bin/FVP_Binary'],
stdin=unittest.mock.ANY,
stdout=unittest.mock.ANY,
stderr=unittest.mock.ANY,
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-Use-pkg-config-native-to-find-the-libssl-headers.patch
similarity index 92%
rename from meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
rename to meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-Use-pkg-config-native-to-find-the-libssl-headers.patch
index 40129ac..a9a487f 100644
--- a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
+++ b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-Use-pkg-config-native-to-find-the-libssl-headers.patch
@@ -1,4 +1,4 @@
-From b0405e0e25740ca0ea8b75d9b3b4f35b39d82e0e Mon Sep 17 00:00:00 2001
+From 60b8c4e852cbe76c383d5c495ecc8aeb84b407b6 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Sat, 17 Jul 2021 14:38:02 -0500
Subject: [PATCH] Use pkg-config-native to find the libssl headers.
@@ -24,6 +24,3 @@
hostprogs-always-$(CONFIG_BUILD_BIN2C) += bin2c
hostprogs-always-$(CONFIG_KALLSYMS) += kallsyms
---
-2.30.2
-
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
index 7c6a8b2..8353fc1 100644
--- a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
+++ b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
@@ -1,4 +1,4 @@
-From a433727e0fe8424db984f3afa2bda898dd517e9d Mon Sep 17 00:00:00 2001
+From 3da6c62e6f56facf9c6a8d7d46fa9509e76f482e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 19 Apr 2022 22:32:56 -0700
Subject: [PATCH] define _Noreturn if needed
@@ -18,7 +18,7 @@
1 file changed, 4 insertions(+)
diff --git a/inc/hf/panic.h b/inc/hf/panic.h
-index ec864e4..588f119 100644
+index ec864e4f..588f1193 100644
--- a/inc/hf/panic.h
+++ b/inc/hf/panic.h
@@ -10,4 +10,8 @@
@@ -30,3 +30,4 @@
+#endif
+
noreturn void panic(const char *fmt, ...);
+
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-work-around-visibility-issue.patch b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-work-around-visibility-issue.patch
new file mode 100644
index 0000000..62c5ec1
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-work-around-visibility-issue.patch
@@ -0,0 +1,29 @@
+From 4f1ab5944c1042a141a2ce16ec8bf1d12749e41a Mon Sep 17 00:00:00 2001
+From: Jon Mason <jon.mason@arm.com>
+Date: Thu, 27 Oct 2022 20:10:09 +0000
+Subject: [PATCH] work around visibility issue
+
+gn commit 46b572ce4ceedfe57f4f84051bd7da624c98bf01 "fixed" the
+visibility field not applying to public configs. This caused dtc to
+have issues due to libfdt and others not being specified. Due to the
+number, it was cleaner to remove the visibility field (which defaults to
+everything being visible).
+
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+---
+ BUILD.gn | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/BUILD.gn b/BUILD.gn
+index f55560c..d60c3e3 100644
+--- a/BUILD.gn
++++ b/BUILD.gn
+@@ -5,7 +5,6 @@
+ # https://opensource.org/licenses/BSD-3-Clause.
+
+ config("libfdt_config") {
+- visibility = [ ":gtest" ]
+ include_dirs = [
+ "libfdt",
+ "hafnium_inc",
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/host-ld.patch b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0002-arm-hafnium-fix-kernel-tool-linking.patch
similarity index 90%
rename from meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/host-ld.patch
rename to meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0002-arm-hafnium-fix-kernel-tool-linking.patch
index 2a34239..5c69b78 100644
--- a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/host-ld.patch
+++ b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0002-arm-hafnium-fix-kernel-tool-linking.patch
@@ -1,4 +1,4 @@
-From 9b1b93184c365a07b340c9404a6a0581e971bd54 Mon Sep 17 00:00:00 2001
+From b54c7b4d325b7effbebe5bdd86d0cfceedb66b9d Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Tue, 9 Nov 2021 23:31:22 +0000
Subject: [PATCH] arm/hafnium: fix kernel tool linking
@@ -17,7 +17,7 @@
1 file changed, 1 insertion(+)
diff --git a/build/linux/linux.gni b/build/linux/linux.gni
-index 45860fa..b010254 100644
+index 45860fab..b0102544 100644
--- a/build/linux/linux.gni
+++ b/build/linux/linux.gni
@@ -60,6 +60,7 @@ template("linux_kernel") {
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-Fix-build-with-clang-15.patch b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0003-Fix-build-with-clang-15.patch
similarity index 100%
rename from meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0001-Fix-build-with-clang-15.patch
rename to meta-arm/meta-arm/recipes-bsp/hafnium/hafnium/0003-Fix-build-with-clang-15.patch
diff --git a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium_2.7.bb b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium_2.7.bb
index 0c4e294..564c203 100644
--- a/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium_2.7.bb
+++ b/meta-arm/meta-arm/recipes-bsp/hafnium/hafnium_2.7.bb
@@ -15,9 +15,10 @@
SRC_URI = "gitsm://git.trustedfirmware.org/hafnium/hafnium.git;protocol=https;branch=master \
file://0001-define-_Noreturn-if-needed.patch \
- file://host-ld.patch \
- file://pkg-config-native.patch;patchdir=third_party/linux \
- file://0001-Fix-build-with-clang-15.patch \
+ file://0002-arm-hafnium-fix-kernel-tool-linking.patch \
+ file://0003-Fix-build-with-clang-15.patch \
+ file://0001-Use-pkg-config-native-to-find-the-libssl-headers.patch;patchdir=third_party/linux \
+ file://0001-work-around-visibility-issue.patch;patchdir=third_party/dtc \
"
SRCREV = "79e9522d26fc2a88a44af149034acc27312b73a1"
S = "${WORKDIR}/git"
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Revert-peripheral-test-3-updated-for-multiple-uarts.patch b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Revert-peripheral-test-3-updated-for-multiple-uarts.patch
new file mode 100644
index 0000000..13faefb
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Revert-peripheral-test-3-updated-for-multiple-uarts.patch
@@ -0,0 +1,204 @@
+Revert "peripheral test 3 updated for multiple uarts"
+
+This reverts commit 037be14cc1f149cdb25e754358de7b9066581d1c.
+
+Working around issue in the latest GCC of:
+ShellPkg/Application/sbsa-acs/test_pool/peripherals/test_d003.c:172:18: error: storing the address of local variable 'exception_taken' in 'branch_to_test' [-Werror=dangling-pointer=]
+
+Upstream-Status: Inappropriate [Problem reported, https://github.com/ARM-software/sbsa-acs/issues/245]
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+
+diff --git a/test_pool/peripherals/test_d003.c b/test_pool/peripherals/test_d003.c
+index 68902ad..4858049 100755
+--- a/test_pool/peripherals/test_d003.c
++++ b/test_pool/peripherals/test_d003.c
+@@ -17,7 +17,6 @@
+
+ #include "val/include/sbsa_avs_val.h"
+ #include "val/include/val_interface.h"
+-#include "val/include/sbsa_avs_pe.h"
+
+ #include "val/include/sbsa_avs_peripherals.h"
+ #include "val/include/sbsa_avs_gic.h"
+@@ -25,26 +24,11 @@
+ #define TEST_NUM (AVS_PER_TEST_NUM_BASE + 3)
+ /*one space character is removed from TEST_DESC, to nullify a space written as part of the test */
+ #define TEST_DESC "Check SBSA UART register offsets "
+-#define TEST_NUM1 (AVS_PER_TEST_NUM_BASE + 4)
++#define TEST_NUM2 (AVS_PER_TEST_NUM_BASE + 4)
+ #define TEST_DESC1 "Check Generic UART Interrupt "
+
+-static uint64_t l_uart_base;
++uint64_t l_uart_base;
+ static uint32_t int_id;
+-static void *branch_to_test;
+-static uint32_t test_fail;
+-
+-static
+-void
+-esr(uint64_t interrupt_type, void *context)
+-{
+- uint32_t index = val_pe_get_index_mpid(val_pe_get_mpid());
+-
+- /* Update the ELR to point to next instrcution */
+- val_pe_update_elr(context, (uint64_t)branch_to_test);
+-
+- val_print(AVS_PRINT_ERR, "\n Error : Received Sync Exception ", 0);
+- val_set_status(index, RESULT_FAIL(g_sbsa_level, TEST_NUM, 01));
+-}
+
+ uint32_t
+ uart_reg_read(uint32_t offset, uint32_t width_mask)
+@@ -115,7 +99,7 @@ isr()
+ uint32_t index = val_pe_get_index_mpid(val_pe_get_mpid());
+ uart_disable_txintr();
+ val_print(AVS_PRINT_DEBUG, "\n Received interrupt ", 0);
+- val_set_status(index, RESULT_PASS(g_sbsa_level, TEST_NUM1, 01));
++ val_set_status(index, RESULT_PASS(g_sbsa_level, TEST_NUM, 0x01));
+ val_gic_end_of_interrupt(int_id);
+ }
+
+@@ -166,14 +150,9 @@ payload()
+ uint32_t index = val_pe_get_index_mpid(val_pe_get_mpid());
+ uint32_t data1, data2;
+
+- val_pe_install_esr(EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS, esr);
+- val_pe_install_esr(EXCEPT_AARCH64_SERROR, esr);
+-
+- branch_to_test = &&exception_taken;
+-
+ if (count == 0) {
+ val_print(AVS_PRINT_WARN, "\n No UART defined by Platform ", 0);
+- val_set_status(index, RESULT_FAIL(g_sbsa_level, TEST_NUM, 01));
++ val_set_status(index, RESULT_SKIP(g_sbsa_level, TEST_NUM, 01));
+ return;
+ }
+
+@@ -213,7 +192,6 @@ payload()
+
+ count--;
+ }
+-exception_taken:
+ return;
+ }
+
+@@ -223,49 +201,40 @@ payload1()
+ {
+ uint32_t count = val_peripheral_get_info(NUM_UART, 0);
+ uint32_t index = val_pe_get_index_mpid(val_pe_get_mpid());
+- uint32_t timeout;
++ uint32_t timeout = TIMEOUT_MEDIUM;
+
+ if (count == 0) {
+- val_set_status(index, RESULT_SKIP(g_sbsa_level, TEST_NUM1, 01));
++ val_set_status(index, RESULT_SKIP(g_sbsa_level, TEST_NUM2, 01));
+ return;
+ }
+
+ while (count != 0) {
+- timeout = TIMEOUT_MEDIUM;
++
+ int_id = val_peripheral_get_info(UART_GSIV, count - 1);
+- l_uart_base = val_peripheral_get_info(UART_BASE0, count - 1);
+
+ /* If Interrupt ID is available, check for interrupt generation */
+ if (int_id != 0x0) {
+ /* PASS will be set from ISR */
+- val_set_status(index, RESULT_PENDING(g_sbsa_level, TEST_NUM1));
+- if (val_gic_install_isr(int_id, isr)) {
+- val_print(AVS_PRINT_ERR, "\n GIC Install Handler Fail", 0);
+- val_set_status(index, RESULT_FAIL(g_sbsa_level, TEST_NUM1, 01));
+- return;
+- }
++ val_set_status(index, RESULT_PENDING(g_sbsa_level, TEST_NUM2));
++ val_gic_install_isr(int_id, isr);
+ uart_enable_txintr();
+- val_print_raw(l_uart_base, g_print_level,
+- "\n Test Message ", 0);
++ val_print_raw(g_print_level, "\n Test Message ", 0);
+
+- while ((--timeout > 0) && (IS_RESULT_PENDING(val_get_status(index)))){
+- };
++ while ((--timeout > 0) && (IS_RESULT_PENDING(val_get_status(index))));
+
+ if (timeout == 0) {
+ val_print(AVS_PRINT_ERR,
+- "\n Did not receive UART interrupt %d ", int_id);
+- test_fail++;
++ "\n Did not receive UART interrupt on %d ", int_id);
++ val_set_status(index, RESULT_FAIL(g_sbsa_level, TEST_NUM2, 02));
++ return;
+ }
+ } else {
+- val_set_status(index, RESULT_SKIP(g_sbsa_level, TEST_NUM1, 02));
++ val_set_status(index, RESULT_SKIP(g_sbsa_level, TEST_NUM2, 01));
+ }
+
+ count--;
+ }
+- if (test_fail)
+- val_set_status(index, RESULT_FAIL(g_sbsa_level, TEST_NUM1, 02));
+- else
+- val_set_status(index, RESULT_PASS(g_sbsa_level, TEST_NUM1, 02));
++ return;
+ }
+
+
+@@ -290,13 +259,13 @@ d003_entry(uint32_t num_pe)
+ val_report_status(0, SBSA_AVS_END(g_sbsa_level, TEST_NUM));
+
+ if (!status) {
+- status = val_initialize_test(TEST_NUM1, TEST_DESC1, val_pe_get_num(), g_sbsa_level);
++ status = val_initialize_test(TEST_NUM2, TEST_DESC1, val_pe_get_num(), g_sbsa_level);
+ if (status != AVS_STATUS_SKIP)
+- val_run_test_payload(TEST_NUM1, num_pe, payload1, 0);
++ val_run_test_payload(TEST_NUM2, num_pe, payload1, 0);
+
+ /* get the result from all PE and check for failure */
+- status = val_check_for_error(TEST_NUM1, num_pe);
+- val_report_status(0, SBSA_AVS_END(g_sbsa_level, TEST_NUM1));
++ status = val_check_for_error(TEST_NUM2, num_pe);
++ val_report_status(0, SBSA_AVS_END(g_sbsa_level, TEST_NUM2));
+ }
+
+
+diff --git a/val/include/val_interface.h b/val/include/val_interface.h
+index c03edb7..0997c64 100644
+--- a/val/include/val_interface.h
++++ b/val/include/val_interface.h
+@@ -44,8 +44,7 @@
+ void val_allocate_shared_mem(void);
+ void val_free_shared_mem(void);
+ void val_print(uint32_t level, char8_t *string, uint64_t data);
+-void val_print_raw(uint64_t uart_address, uint32_t level, char8_t *string,
+- uint64_t data);
++void val_print_raw(uint32_t level, char8_t *string, uint64_t data);
+ void val_print_test_end(uint32_t status, char8_t *string);
+ void val_set_test_data(uint32_t index, uint64_t addr, uint64_t test_data);
+ void val_get_test_data(uint32_t index, uint64_t *data0, uint64_t *data1);
+diff --git a/val/src/avs_test_infra.c b/val/src/avs_test_infra.c
+index 4d4e80b..a39e85b 100644
+--- a/val/src/avs_test_infra.c
++++ b/val/src/avs_test_infra.c
+@@ -65,7 +65,6 @@ val_print_test_end(uint32_t status, char8_t *string)
+ 1. Caller - Application layer
+ 2. Prerequisite - None.
+
+- @param uart_address address of uart to be used
+ @param level the print verbosity (1 to 5)
+ @param string formatted ASCII string
+ @param data 64-bit data. set to 0 if no data is to sent to console.
+@@ -73,11 +72,11 @@ val_print_test_end(uint32_t status, char8_t *string)
+ @return None
+ **/
+ void
+-val_print_raw(uint64_t uart_address, uint32_t level, char8_t *string,
+- uint64_t data)
++val_print_raw(uint32_t level, char8_t *string, uint64_t data)
+ {
+
+ if (level >= g_print_level){
++ uint64_t uart_address = val_peripheral_get_info(UART_BASE0, 0);
+ pal_print_raw(uart_address, string, data);
+ }
+
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch
index 2f56547..95b3bfa 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch
@@ -4,15 +4,26 @@
Signed-off-by: Ross Burton <ross.burton@arm.com>
diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
-index c42bc9464a..ea21f07a31 100644
+index 38fde3dc71..7240a6b5f7 100644
--- a/ShellPkg/ShellPkg.dsc
+++ b/ShellPkg/ShellPkg.dsc
-@@ -24,2 +24,4 @@
+@@ -22,6 +22,8 @@
+ !include MdePkg/MdeLibs.dsc.inc
+
[LibraryClasses.common]
+ SbsaValLib|ShellPkg/Application/sbsa-acs/val/SbsaValLib.inf
+ SbsaPalLib|ShellPkg/Application/sbsa-acs/platform/pal_uefi/SbsaPalLib.inf
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
-@@ -88,2 +90,3 @@
+ UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+ UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+@@ -87,6 +89,7 @@
+ # Build all the libraries when building this package.
+ # This helps developers test changes and how they affect the package.
#
+ ShellPkg/Application/sbsa-acs/uefi_app/SbsaAvs.inf
ShellPkg/Library/UefiShellLib/UefiShellLib.inf
+ ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
+ ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
+--
+2.30.2
+
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch
index 04c50ac..9c8ce5d 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch
@@ -9,9 +9,16 @@
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ BaseTools/Conf/tools_def.template | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
+index 5ed19810b7..e08e6b4ff4 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
-@@ -1926,7 +1926,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mn
+@@ -1856,7 +1856,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18
DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
@@ -20,3 +27,6 @@
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 -Wl,--pic-veneer
+--
+2.30.2
+
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_3.1.bb b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_1.0.bb
similarity index 82%
rename from meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_3.1.bb
rename to meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_1.0.bb
index 217760c..95096e6 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_3.1.bb
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_1.0.bb
@@ -8,10 +8,11 @@
git://github.com/tianocore/edk2-libc;destsuffix=edk2/edk2-libc;protocol=https;branch=master;name=libc \
file://shell.patch \
file://use_bfd_linker.patch \
+ file://0001-Revert-peripheral-test-3-updated-for-multiple-uarts.patch;patchdir=ShellPkg/Application/sbsa-acs \
"
-SRCREV_acs = "ec02a7736ae5714326507c60595f4d5299e3dec8"
-SRCREV_libc = "61687168fe02ac4d933a36c9145fdd242ac424d1"
+SRCREV_acs = "28ecef569303af18b571ff3d66bbdcb6135eaed8"
+SRCREV_libc = "c32222fed9927420fc46da503dea1ebb874698b6"
# GCC12 trips on it
#see https://src.fedoraproject.org/rpms/edk2/blob/rawhide/f/0032-Basetools-turn-off-gcc12-warning.patch
diff --git a/meta-arm/meta-arm/recipes-devtools/gn/gn_git.bb b/meta-arm/meta-arm/recipes-devtools/gn/gn_git.bb
index 9b3906c..8d1efb6 100644
--- a/meta-arm/meta-arm/recipes-devtools/gn/gn_git.bb
+++ b/meta-arm/meta-arm/recipes-devtools/gn/gn_git.bb
@@ -5,17 +5,12 @@
LIC_FILES_CHKSUM = "file://LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d"
SRC_URI = "git://gn.googlesource.com/gn;protocol=https;branch=main"
-SRCREV = "69ec4fca1fa69ddadae13f9e6b7507efa0675263"
+SRCREV = "bf4e17dc67b2a2007475415e3f9e1d1cf32f6e35"
PV = "0+git${SRCPV}"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
-# Currently fails to build with clang, eg:
-# https://errors.yoctoproject.org/Errors/Details/610602/
-# https://errors.yoctoproject.org/Errors/Details/610486/
-TOOLCHAIN = "gcc"
-
# Map from our _OS strings to the GN's platform values.
def gn_platform(variable, d):
os = d.getVar(variable)
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc
index dec31dd..b3d377b 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc
+++ b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS:prepend := "${ARMFILESPATHS}"
# Enable ARM-FFA transport
SRC_URI:append = " \
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/arm-ffa-transport.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/arm-ffa-transport.cfg
similarity index 100%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/arm-ffa-transport.cfg
rename to meta-arm/meta-arm/recipes-kernel/linux/files/arm-ffa-transport.cfg
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/efi.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/efi.cfg
similarity index 100%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/efi.cfg
rename to meta-arm/meta-arm/recipes-kernel/linux/files/efi.cfg
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc b/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc
similarity index 100%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc
rename to meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/no-strict-devmem.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/no-strict-devmem.cfg
similarity index 100%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/no-strict-devmem.cfg
rename to meta-arm/meta-arm/recipes-kernel/linux/files/no-strict-devmem.cfg
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/tee.cfg
similarity index 100%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg
rename to meta-arm/meta-arm/recipes-kernel/linux/files/tee.cfg
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack/0001-perf-change-root-to-prefix-for-python-install.patch b/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack/0001-perf-change-root-to-prefix-for-python-install.patch
new file mode 100644
index 0000000..637d90a
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack/0001-perf-change-root-to-prefix-for-python-install.patch
@@ -0,0 +1,34 @@
+Take a patch from linux-yocto to fix buildpaths in perf's python module.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From b8cd0e429bf75b673c438a8277d4bc74327df992 Mon Sep 17 00:00:00 2001
+From: Tom Zanussi <tom.zanussi@intel.com>
+Date: Tue, 3 Jul 2012 13:07:23 -0500
+Subject: [PATCH] perf: change --root to --prefix for python install
+
+Otherwise we get the sysroot path appended to the build path, not what
+we want.
+
+Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
+---
+ tools/perf/Makefile.perf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
+index 8f738e11356d..ee945d8e3996 100644
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -1022,7 +1022,7 @@ install-bin: install-tools install-tests install-traceevent-plugins
+ install: install-bin try-install-man
+
+ install-python_ext:
+- $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
++ $(PYTHON_WORD) util/setup.py --quiet install --prefix='$(DESTDIR_SQ)/usr'
+
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+--
+2.34.1
+
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack_5.15.bb b/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack_5.15.bb
index c3c9b4d..804c068 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack_5.15.bb
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-arm64-ack_5.15.bb
@@ -8,6 +8,7 @@
git://android.googlesource.com/kernel/common.git;protocol=https;branch=android13-5.15-lts \
file://0001-lib-build_OID_registry-fix-reproducibility-issues.patch \
file://0002-vt-conmakehash-improve-reproducibility.patch \
+ file://0001-perf-change-root-to-prefix-for-python-install.patch \
"
# tag: ASB-2022-05-05_13-5.15-93-ge8b3f31d7a60
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
index 896add8..a641ec2 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -1,4 +1,4 @@
-ARMFILESPATHS := "${THISDIR}/${PN}:"
+ARMFILESPATHS := "${THISDIR}/files:"
COMPATIBLE_MACHINE:generic-arm64 = "generic-arm64"
FILESEXTRAPATHS:prepend:generic-arm64 = "${ARMFILESPATHS}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
index dfd4716..41cb0c0 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
@@ -18,11 +18,9 @@
-DPSA_ARCH_TESTS_SOURCE_DIR=${WORKDIR}/git/psatest \
"
-# TS ships patches that need to be applied to psa-arch-tests
+# TS check if there are patches to apply to psa-arch-tests, if so apply them
apply_ts_patch() {
- for p in ${S}/external/psa_arch_tests/*.patch; do
- patch -p1 -d ${WORKDIR}/git/psatest < ${p}
- done
+ find ${S}/external/psa_arch_tests -type f -name '*.patch' -exec patch -p1 -d ${WORKDIR}/git/psatest -i {} \;
}
do_patch[postfuncs] += "apply_ts_patch"