@@ -1,6 +1,6 @@
-From 1023728e7925443032fc7f7733c12ed37142523d Mon Sep 17 00:00:00 2001
+From b18a3c183d20812933d192d4b0d622b11ef2bf29 Mon Sep 17 00:00:00 2001
From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Tue, 23 Apr 2024 09:10:04 +0100
+Date: Wed, 1 May 2024 09:16:32 +0100
Subject: [PATCH 1/2] arm: Move sev() and wfe() definitions to common Arm
header file
@@ -13,8 +13,9 @@ wfe may theoretically trigger a context switch if an interrupt occurs
so add a memory barrier to this call.
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
+Reviewed-by: Andre Przywara<andre.przywara@arm.com>
-Upstream-Status: Submitted [https://lore.kernel.org/u-boot/20240423081005.23218-1-peter.hoyes@arm.com/]
+Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
arch/arm/include/asm/system.h | 9 +++++++++
@@ -82,9 +83,9 @@ index 5d0bebac57..0aed4c3e2b 100644
2.34.1
-From d96e7f07f6863e24d360924aea4eb0460d706e89 Mon Sep 17 00:00:00 2001
+From ebc84d7b60c1ed3398e9f600fe3dc8406500bd35 Mon Sep 17 00:00:00 2001
From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Tue, 23 Apr 2024 09:10:05 +0100
+Date: Wed, 1 May 2024 09:16:33 +0100
Subject: [PATCH 2/2] armv8: generic_timer: Use event stream for udelay
Polling cntpct_el0 in a tight loop for delays is inefficient.
@@ -99,13 +100,11 @@ trade-off between efficiency and the fact that Arm FVPs do not
typically simulate real time.
This is only implemented for Armv8 boards, where an architectural
-timer exists.
-
-Some mach-socfpga AArch64 boards already override __udelay to make
-it always inline, so guard the functionality with a new
-ARMV8_UDELAY_EVENT_STREAM Kconfig, enabled by default.
+timer exists, and only enabled by default for the ARCH_VEXPRESS64
+board family.
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
+Reviewed-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm/cpu/armv8/Kconfig | 8 ++++++++
arch/arm/cpu/armv8/generic_timer.c | 27 +++++++++++++++++++++++++++
@@ -113,7 +112,7 @@ Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
3 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
-index 9f0fb369f7..544c5e2d74 100644
+index 9f0fb369f7..199335cd60 100644
--- a/arch/arm/cpu/armv8/Kconfig
+++ b/arch/arm/cpu/armv8/Kconfig
@@ -191,6 +191,14 @@ config ARMV8_EA_EL3_FIRST
@@ -122,7 +121,7 @@ index 9f0fb369f7..544c5e2d74 100644
+config ARMV8_UDELAY_EVENT_STREAM
+ bool "Use the event stream for udelay"
-+ default y if !ARCH_SOCFPGA
++ default y if ARCH_VEXPRESS64
+ help
+ Use the event stream provided by the AArch64 architectural timer for
+ delays. This is more efficient than the default polling
@@ -132,10 +131,10 @@ index 9f0fb369f7..544c5e2d74 100644
bool "ARM64 Accelerated Cryptographic Algorithms"
diff --git a/arch/arm/cpu/armv8/generic_timer.c b/arch/arm/cpu/armv8/generic_timer.c
-index 8f83372cbc..e18b5c8187 100644
+index e4aa5a4745..1de7ec596f 100644
--- a/arch/arm/cpu/armv8/generic_timer.c
+++ b/arch/arm/cpu/armv8/generic_timer.c
-@@ -115,3 +115,30 @@ ulong timer_get_boot_us(void)
+@@ -114,3 +114,30 @@ ulong timer_get_boot_us(void)
return val / get_tbclk();
}
These patches have been merged, so refresh the patches. Signed-off-by: Ross Burton <ross.burton@arm.com> --- .../recipes-bsp/u-boot/u-boot/tick.patch | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-)