@@ -3,6 +3,6 @@
SRC_URI:append = " \
file://virtio-boot.cfg \
file://0001-vexpress64-Set-the-DM_RNG-property.patch \
- file://0002-vexpress64-Select-PSCI-RESET-by-default.patch \
+ file://0002-arm-vexpress64-Enable-SYSRESET-and-SYSRESET_PSCI.patch \
file://0003-vexpress64-Imply-CONFIG_ARM64_CRC32-by-default.patch \
"
@@ -1,28 +1,31 @@
-From 6813b56a11f423f3faa0e960bb044534e11d0104 Mon Sep 17 00:00:00 2001
-From: Debbie Martin <Debbie.Martin@arm.com>
-Date: Fri, 25 Aug 2023 15:09:33 +0100
+From 364d81afbf4fdc1b3d35c137f02ffa6f1ddd929d Mon Sep 17 00:00:00 2001
+From: Debbie Horsfall <debbie.horsfall@arm.com>
+Date: Wed, 17 Sep 2025 17:22:21 +0100
Subject: [PATCH] vexpress64: Set the DM_RNG property
-Enable the DM_RNG virtio random number generator driver in
-in order to consume entropy within u-boot. This is necessary
-in the case that the kernel is not configured to enable the
-virtio rng driver itself.
+Enable the DM_RNG virtio random number generator driver in order to
+consume entropy within U-Boot. This allows U-Boot to inject entropy to the
+kernel via UEFI, so the kernel can use that early, for instance for
+address layout randomisation, or when the kernel does not provide an
+entropy driver itself.
-Upstream-Status: Pending
-Signed-off-by: Debbie Martin <Debbie.Martin@arm.com>
+Signed-off-by: Debbie Horsfall <debbie.horsfall@arm.com>
+Reviewed-by: Andre Przywara <andre.przywara@arm.com>
+Upstream-Status: Backport [2767386806c254820ea22a812bb02e5405495a29]
---
- board/armltd/vexpress64/Kconfig | 1 +
- 1 file changed, 1 insertion(+)
+ board/armltd/vexpress64/Kconfig | 2 ++
+ 1 file changed, 2 insertions(+)
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
-index 7e8709444fe3..f413c51ac43b 100644
+index 7e8709444fe3..610ab0ac37dc 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
-@@ -21,6 +21,7 @@ config VEXPRESS64_BASE_MODEL
+@@ -21,6 +21,8 @@ config VEXPRESS64_BASE_MODEL
imply EFI_SET_TIME if DM_RTC
select LINUX_KERNEL_IMAGE_HEADER
select POSITION_INDEPENDENT
+ imply DM_RNG
++ imply RNG_ARM_RNDR
choice
prompt "VExpress64 board variant"
new file mode 100644
@@ -0,0 +1,71 @@
+From bec13f424612ba01dace86fe4a4ab49eedaca4b2 Mon Sep 17 00:00:00 2001
+From: Debbie Horsfall <debbie.horsfall@arm.com>
+Date: Wed, 17 Sep 2025 17:22:22 +0100
+Subject: [PATCH] arm: vexpress64: Enable SYSRESET and SYSRESET_PSCI
+
+Select SYSRESET on Vexpress64 to enable system reset to support other
+features, such as capsule-on-disk. Select SYSRESET_PSCI if PSCI is
+inferred from the firmware (via ARM_PSCI_FW).
+Select ARM_SMCCC for Vexpress64 boards which in turn selects
+ARM_PSCI_FW.
+
+The sysreset uclass unconditionally implements a reset_cpu() function.
+Remove the empty reset_cpu() in vexpress64 board code.
+
+Signed-off-by: Debbie Horsfall <debbie.horsfall@arm.com>
+Upstream-Status: Backport [1f3f1e090a2695e0b17cbf9dc50ccb59d100458f]
+---
+ arch/arm/Kconfig | 2 ++
+ board/armltd/vexpress64/Kconfig | 2 ++
+ board/armltd/vexpress64/vexpress64.c | 5 -----
+ 3 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 625d2e995d2f..68f37f633fdf 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1418,6 +1418,8 @@ config ARCH_VEXPRESS64
+ select MTD_NOR_FLASH if MTD
+ select FLASH_CFI_DRIVER if MTD
+ select ENV_IS_IN_FLASH if MTD
++ select SYSRESET
++ select SYSRESET_PSCI if ARM_PSCI_FW
+ imply DISTRO_DEFAULTS
+
+ config TARGET_CORSTONE1000
+diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
+index 610ab0ac37dc..9ef3fa1b379f 100644
+--- a/board/armltd/vexpress64/Kconfig
++++ b/board/armltd/vexpress64/Kconfig
+@@ -23,6 +23,7 @@ config VEXPRESS64_BASE_MODEL
+ select POSITION_INDEPENDENT
+ imply DM_RNG
+ imply RNG_ARM_RNDR
++ select ARM_SMCCC
+
+ choice
+ prompt "VExpress64 board variant"
+@@ -48,6 +49,7 @@ config TARGET_VEXPRESS64_JUNO
+ select USB_EHCI_GENERIC if USB
+ select USB_OHCI_HCD if USB
+ select USB_OHCI_GENERIC if USB
++ select ARM_SMCCC
+ imply OF_HAS_PRIOR_STAGE
+
+ endchoice
+diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
+index 0b75c1358f0b..e8f1c2fe9fe2 100644
+--- a/board/armltd/vexpress64/vexpress64.c
++++ b/board/armltd/vexpress64/vexpress64.c
+@@ -206,11 +206,6 @@ int board_fdt_blob_setup(void **fdtp)
+ #endif
+ #endif
+
+-/* Actual reset is done via PSCI. */
+-void reset_cpu(void)
+-{
+-}
+-
+ /*
+ * Board specific ethernet initialization routine.
+ */
deleted file mode 100644
@@ -1,46 +0,0 @@
-From ca70595913d7584605be1ea37362da25254fb829 Mon Sep 17 00:00:00 2001
-From: Diego Sueiro <diego.sueiro@arm.com>
-Date: Wed, 4 Oct 2023 06:31:50 +0100
-Subject: [PATCH] vexpress64: Select PSCI RESET by default
-
-Set SYSRESET and SYSRESET_PSCI config for vexpress64 by
-by default. This means that the reset_cpu function in
-vexpress64.c is no longer needed because it is called in
-sysreset-uclass.c instead.
-
-Upstream-Status: Pending
-Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
----
- board/armltd/vexpress64/Kconfig | 2 ++
- board/armltd/vexpress64/vexpress64.c | 5 -----
- 2 files changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
-index f413c51ac43b..d0733ba62432 100644
---- a/board/armltd/vexpress64/Kconfig
-+++ b/board/armltd/vexpress64/Kconfig
-@@ -30,6 +30,8 @@ config TARGET_VEXPRESS64_BASE_FVP
- bool "Support Versatile Express ARMv8a FVP BASE model"
- select VEXPRESS64_BASE_MODEL
- imply OF_HAS_PRIOR_STAGE if !BLOBLIST
-+ select SYSRESET
-+ select SYSRESET_PSCI
-
- config TARGET_VEXPRESS64_BASER_FVP
- bool "Support Versatile Express ARMv8r64 FVP BASE model"
-diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
-index 0b75c1358f0b..e8f1c2fe9fe2 100644
---- a/board/armltd/vexpress64/vexpress64.c
-+++ b/board/armltd/vexpress64/vexpress64.c
-@@ -206,11 +206,6 @@ int board_fdt_blob_setup(void **fdtp)
- #endif
- #endif
-
--/* Actual reset is done via PSCI. */
--void reset_cpu(void)
--{
--}
--
- /*
- * Board specific ethernet initialization routine.
- */
@@ -1,4 +1,4 @@
-From 9c98333d7c5f4c2611c76d60f5e7cb96bfdaca26 Mon Sep 17 00:00:00 2001
+From 67b2bcd428a13d14d4311bd1122e664f391af4d4 Mon Sep 17 00:00:00 2001
From: Diego Sueiro <diego.sueiro@arm.com>
Date: Wed, 4 Oct 2023 06:29:12 +0100
Subject: [PATCH] vexpress64: Imply CONFIG_ARM64_CRC32 by default
@@ -10,18 +10,52 @@ feature of ARMv8.1 and newer.
Upstream-Status: Pending
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
---
- board/armltd/vexpress64/Kconfig | 1 +
- 1 file changed, 1 insertion(+)
+ board/armltd/vexpress64/Kconfig | 1 +
+ include/configs/vexpress_aemv8.h | 13 +++++++------
+ 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
-index d0733ba62432..543cbdb5631b 100644
+index 9ef3fa1b379f..1a0e0a5018d8 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
-@@ -22,6 +22,7 @@ config VEXPRESS64_BASE_MODEL
- select LINUX_KERNEL_IMAGE_HEADER
- select POSITION_INDEPENDENT
+@@ -24,6 +24,7 @@ config VEXPRESS64_BASE_MODEL
imply DM_RNG
+ imply RNG_ARM_RNDR
+ select ARM_SMCCC
+ imply ARM64_CRC32
choice
prompt "VExpress64 board variant"
+diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h
+index 5eee13b3fc01..5c271d239501 100644
+--- a/include/configs/vexpress_aemv8.h
++++ b/include/configs/vexpress_aemv8.h
+@@ -172,7 +172,7 @@
+ */
+ #define BOOTENV_DEV_SMH(devtypeu, devtypel, instance) \
+ "bootcmd_smh= " \
+- "if load hostfs - ${boot_addr_r} ${boot_name}; then" \
++ "if load hostfs - ${boot_addr_r} ${boot_name}; then" \
+ " setenv bootargs;" \
+ " abootimg addr ${boot_addr_r};" \
+ " abootimg get dtb --index=0 fdt_addr_r;" \
+@@ -181,13 +181,14 @@
+ " if load hostfs - ${kernel_addr_r} ${kernel_name}; then" \
+ " setenv fdt_high 0xffffffffffffffff;" \
+ " setenv initrd_high 0xffffffffffffffff;" \
+- " if test -n load hostfs - ${fdt_addr_r} ${fdtfile}; then" \
+- " fdt move $fdtcontroladdr $fdt_addr_r;" \
+- " fi;" \
+- " load hostfs - ${ramdisk_addr_r} ${ramdisk_name};" \
++ " load hostfs - ${fdt_addr_r} ${fdtfile};" \
++ " if test $? -eq 1; then " \
++ " fdt move $fdtcontroladdr $fdt_addr_r;" \
++ " fi;" \
++ " load hostfs - ${ramdisk_addr_r} ${ramdisk_name};" \
+ " fdt addr ${fdt_addr_r};" \
+ " fdt resize;" \
+- " fdt chosen ${ramdisk_addr_r} ${filesize};" \
++ " fdt chosen ${ramdisk_addr_r} ${filesize};" \
+ " booti $kernel_addr_r - ${fdt_addr_r};" \
+ " fi;" \
+ "fi\0"
u-boot has accepted some of the fvp-base patches. Take the upstream versions and rebase the third patch to apply. Signed-off-by: Jon Mason <jon.mason@arm.com> --- .../recipes-bsp/u-boot/u-boot-fvp-base.inc | 2 +- ...1-vexpress64-Set-the-DM_RNG-property.patch | 29 ++++---- ...64-Enable-SYSRESET-and-SYSRESET_PSCI.patch | 71 +++++++++++++++++++ ...press64-Select-PSCI-RESET-by-default.patch | 46 ------------ ...-Imply-CONFIG_ARM64_CRC32-by-default.patch | 48 +++++++++++-- 5 files changed, 129 insertions(+), 67 deletions(-) create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-base/0002-arm-vexpress64-Enable-SYSRESET-and-SYSRESET_PSCI.patch delete mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-base/0002-vexpress64-Select-PSCI-RESET-by-default.patch