diff --git a/meta-arm/recipes-bsp/scp-firmware/files/0001-smt-Make-status-and-length-volatile-for-mod_smt_memo.patch b/meta-arm/recipes-bsp/scp-firmware/files/0001-smt-Make-status-and-length-volatile-for-mod_smt_memo.patch
deleted file mode 100644
index a4b08ed8..00000000
--- a/meta-arm/recipes-bsp/scp-firmware/files/0001-smt-Make-status-and-length-volatile-for-mod_smt_memo.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From d13b4f81287ef957365c3fe68c3d8e17427cb364 Mon Sep 17 00:00:00 2001
-From: Nicola Mazzucato <nicola.mazzucato@arm.com>
-Date: Wed, 12 May 2021 15:20:58 +0100
-Subject: [PATCH] smt: Make status and length volatile for mod_smt_memory
-
-There is an intermittent error on TF-A side when reading the mailbox.
-The error is due to the mailbox message length not matching the expectation:
-    ASSERT: drivers/arm/css/scmi/scmi_pwr_dmn_proto.c:48
-
-This is due to a race between SCP writing the data and TF-A reading them.
-
-Effectively, the compiler seems to perform some minor optimisations with the
-local mod_smt_memory resulting in the expected writing sequence to be altered.
-This is seen in smt_respond().
-
-To remove such optimisations, force the length and status to be volatile.
-With this patch the sequence of writing into smt is restored and the error
-in TF-A disappears.
-
-Change-Id: I0127b9aa3cd1b54643ffdb2ca5ddce9fc9569bea
-Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
-Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
-Upstream-Status: Backport
----
- module/smt/include/internal/smt.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/module/smt/include/internal/smt.h b/module/smt/include/internal/smt.h
-index 1a615a36..d9f3f423 100644
---- a/module/smt/include/internal/smt.h
-+++ b/module/smt/include/internal/smt.h
-@@ -12,10 +12,10 @@
- 
- struct mod_smt_memory {
-     uint32_t reserved0;
--    uint32_t status;
-+    volatile uint32_t status;
-     uint64_t reserved1;
-     uint32_t flags;
--    uint32_t length; /* message_header + payload */
-+    volatile uint32_t length; /* message_header + payload */
-     uint32_t message_header;
-     uint32_t payload[];
- };
--- 
-2.17.1
-
diff --git a/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.8.0.bb b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.9.0.bb
similarity index 90%
rename from meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.8.0.bb
rename to meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.9.0.bb
index 40648aa4..89d4a34f 100644
--- a/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.8.0.bb
+++ b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.9.0.bb
@@ -6,11 +6,9 @@ LICENSE = "BSD-3-Clause & Apache-2.0"
 LIC_FILES_CHKSUM = "file://license.md;beginline=5;md5=9db9e3d2fb8d9300a6c3d15101b19731 \
                     file://contrib/cmsis/git/LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e"
 
-SRC_URI = "\
-    gitsm://github.com/ARM-software/SCP-firmware.git;protocol=https;branch=master \
-    file://0001-smt-Make-status-and-length-volatile-for-mod_smt_memo.patch \
-"
-SRCREV  = "043de77f220a0b4b0ec3aa367bd515a9e9df2a29"
+SRC_URI = "gitsm://github.com/ARM-software/SCP-firmware.git;protocol=https;branch=master"
+
+SRCREV  = "77ffab90a9f6071850475087cc5d40610c621126"
 
 PROVIDES += "virtual/control-processor-firmware"
 
