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"