[PATCH 11/13] arm-bsp/u-boot: corstone1000: Add rebased features patches

Harsimran Singh Tungal <[email protected]>
Newsgroups org.yoctoproject.lists.meta-arm
Message-ID <[email protected]>
From: Abdellatif El Khlifi <[email protected]>

Add rebased patches on U-Boot v2025.04

Signed-off-by: Abdellatif El Khlifi <[email protected]>
Signed-off-by: Harsimran Singh Tungal <[email protected]>
---
 .../u-boot/u-boot-corstone1000.inc            |  21 +++
 ...00-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch |  30 ++++
 ...0026-corstone1000-Enable-MMC-for-FVP.patch |  94 ++++++++++++
 ...stone1000-Enable-secure-boot-configs.patch |  38 +++++
 ...stone1000-Enable-EFI-set_time-config.patch |  35 +++++
 ...e1000-Enable-set-print-EFI-variables.patch |  37 +++++
 ...rstone1000-Enable-virtio-net-support.patch | 122 ++++++++++++++++
 ...000-Fix-unrecognized-filesystem-type.patch |  33 +++++
 ...one1000-dts-Add-external-system-node.patch |  34 +++++
 ...ts-Reserve-memory-for-RSS-comm-point.patch |  50 +++++++
 ...-to-remove-non-compliant-nodes-and-p.patch | 137 ++++++++++++++++++
 ...-Call-the-EVT_FT_FIXUP-event-handler.patch |  58 ++++++++
 ...e1000-Purge-U-Boot-specific-DT-nodes.patch |  41 ++++++
 ...rstone1000-purge-remoteproc-DTS-node.patch |  32 ++++
 14 files changed, 762 insertions(+)
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-Enable-MMC-for-FVP.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-Enable-secure-boot-configs.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-corstone1000-Enable-EFI-set_time-config.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-Enable-set-print-EFI-variables.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-Enable-virtio-net-support.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-arm-corstone1000-Fix-unrecognized-filesystem-type.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-corstone1000-dts-Add-external-system-node.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-arm-bsp-u-boot-dts-Reserve-memory-for-RSS-comm-point.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-Purge-U-Boot-specific-DT-nodes.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-remoteproc-DTS-node.patch

diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot-corstone1000.inc b/meta-arm-bsp/recipes-bsp/u-boot/u-boot-corstone1000.inc
index e19034f7..fa98dc10 100644
--- a/meta-arm-bsp/recipes-bsp/u-boot/u-boot-corstone1000.inc
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot-corstone1000.inc
@@ -42,6 +42,27 @@ SRC_URI:append = " \
     file://0023-fwu_arm_psa-corstone1000-Notify-SE-Proxy-SP-on-ExitB.patch \
     file://0024-fwu_arm_psa-corstone1000-Set-Boot0001-for-on-disk-FW.patch \
     "
+# Other features
+SRC_URI:append = " \
+    file://0025-corstone1000-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch \
+    file://0026-corstone1000-Enable-MMC-for-FVP.patch \
+    file://0027-corstone1000-Enable-secure-boot-configs.patch \
+    file://0028-corstone1000-Enable-EFI-set_time-config.patch \
+    file://0029-corstone1000-Enable-set-print-EFI-variables.patch \
+    file://0030-corstone1000-Enable-virtio-net-support.patch \
+    file://0031-arm-corstone1000-Fix-unrecognized-filesystem-type.patch \
+    file://0032-corstone1000-dts-Add-external-system-node.patch \
+    file://0033-arm-bsp-u-boot-dts-Reserve-memory-for-RSS-comm-point.patch \
+    "
+
+# Purging device tree nodes
+SRC_URI:append = " \
+    file://0034-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch \
+    file://0035-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch          \
+    file://0036-corstone1000-Purge-U-Boot-specific-DT-nodes.patch          \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'corstone1000-extsys', \
+                         '', 'file://0037-corstone1000-purge-remoteproc-DTS-node.patch' , d)} \
+    "
 
 do_configure:append() {
    openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=CRT/ -keyout ${B}/CRT.key -out ${B}/corstone1000_defconfig/CRT.crt -nodes -days 365
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch
new file mode 100644
index 00000000..09557204
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-set-CONFIG_FFA_SHARED_MM_BUF_ADDR.patch
@@ -0,0 +1,30 @@
+From 41b50de6e4727731db95531fcd779a24a16dcccf Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <[email protected]>
+Date: Thu, 20 Mar 2025 15:49:26 +0000
+Subject: [PATCH 25/36] corstone1000: set CONFIG_FFA_SHARED_MM_BUF_ADDR
+
+Set the MM communication buffer to a new address
+
+Signed-off-by: Emekcan Aras <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ configs/corstone1000_defconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index e02fb7cca67..59962f7145e 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -14,7 +14,7 @@ CONFIG_FWU_NUM_IMAGES_PER_BANK=4
+ CONFIG_EFI_MM_COMM_TEE=y
+ CONFIG_FFA_SHARED_MM_BUF_SIZE=4096
+ CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
+-CONFIG_FFA_SHARED_MM_BUF_ADDR=0x02000000
++CONFIG_FFA_SHARED_MM_BUF_ADDR=0x81FFF000
+ CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
+ CONFIG_EFI_CAPSULE_ON_DISK=y
+ CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-Enable-MMC-for-FVP.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-Enable-MMC-for-FVP.patch
new file mode 100644
index 00000000..fa169159
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-Enable-MMC-for-FVP.patch
@@ -0,0 +1,94 @@
+From 7a2620d318490c96204bbc493b028253dc8e8f8c Mon Sep 17 00:00:00 2001
+From: Vishnu Banavath <[email protected]>
+Date: Thu, 20 Mar 2025 15:56:14 +0000
+Subject: [PATCH 26/36] corstone1000: Enable MMC for FVP
+
+Enable support mmc/sdcard for the corstone1000 FVP
+
+Signed-off-by: Vishnu Banavath <[email protected]>
+Signed-off-by: Rui Miguel Silva <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ board/armltd/corstone1000/corstone1000.c | 16 ++++++++++++++++
+ configs/corstone1000_defconfig           |  5 ++++-
+ include/configs/corstone1000.h           |  4 +++-
+ 3 files changed, 23 insertions(+), 2 deletions(-)
+
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index 2532c5f10fa..9189640ef75 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -208,6 +208,22 @@ static struct mm_region corstone1000_mem_map[] = {
+ 		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ 			PTE_BLOCK_NON_SHARE |
+ 			PTE_BLOCK_PXN | PTE_BLOCK_UXN
++	}, {
++		/* MMC0 */
++		.virt = 0x40300000UL,
++		.phys = 0x40300000UL,
++		.size = 0x00100000UL,
++		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
++			PTE_BLOCK_NON_SHARE |
++			PTE_BLOCK_PXN | PTE_BLOCK_UXN
++	}, {
++		/* MMC1 */
++		.virt = 0x50000000UL,
++		.phys = 0x50000000UL,
++		.size = 0x00100000UL,
++		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
++			PTE_BLOCK_NON_SHARE |
++			PTE_BLOCK_PXN | PTE_BLOCK_UXN
+ 	}, {
+ 		/* OCVM */
+ 		.virt = 0x80000000UL,
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 59962f7145e..4c562536a89 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -6,6 +6,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
+ CONFIG_NR_DRAM_BANKS=1
+ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x83f00000
++CONFIG_DM_GPIO=y
+ CONFIG_DEFAULT_DEVICE_TREE="corstone1000-mps3"
+ CONFIG_SYS_BOOTM_LEN=0x800000
+ CONFIG_SYS_LOAD_ADDR=0x82100000
+@@ -39,6 +40,7 @@ CONFIG_CMD_BOOTZ=y
+ CONFIG_CMD_GPT=y
+ CONFIG_CMD_LOADM=y
+ # CONFIG_CMD_LOADS is not set
++CONFIG_CMD_MMC=y
+ CONFIG_CMD_USB=y
+ # CONFIG_CMD_SETEXPR is not set
+ CONFIG_CMD_CACHE=y
+@@ -50,9 +52,10 @@ CONFIG_OF_CONTROL=y
+ CONFIG_VERSION_VARIABLE=y
+ CONFIG_NET_RANDOM_ETHADDR=y
+ CONFIG_REGMAP=y
++CONFIG_CLK=y
+ CONFIG_ARM_FFA_TRANSPORT=y
+ CONFIG_MISC=y
+-# CONFIG_MMC is not set
++CONFIG_ARM_PL180_MMCI=y
+ CONFIG_MTD=y
+ CONFIG_NVMXIP_QSPI=y
+ CONFIG_PHYLIB=y
+diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
+index 3ada21cbba1..737b7c277fb 100644
+--- a/include/configs/corstone1000.h
++++ b/include/configs/corstone1000.h
+@@ -25,7 +25,9 @@
+ #define CFG_SYS_SDRAM_BASE	PHYS_SDRAM_1
+ 
+ #define BOOT_TARGET_DEVICES(func) \
+-	func(USB, usb, 0)
++	func(USB, usb, 0) \
++	func(MMC, mmc, 0) \
++	func(MMC, mmc, 1)
+ 
+ #include <config_distro_bootcmd.h>
+ 
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-Enable-secure-boot-configs.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-Enable-secure-boot-configs.patch
new file mode 100644
index 00000000..fa361cfb
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-Enable-secure-boot-configs.patch
@@ -0,0 +1,38 @@
+From 3104b2d8128efd9cf2e311d3e1eed7626f76039c Mon Sep 17 00:00:00 2001
+From: Harsimran Singh Tungal <[email protected]>
+Date: Thu, 20 Mar 2025 16:01:56 +0000
+Subject: [PATCH 27/36] corstone1000: Enable secure boot configs
+
+Enable secure boot and related configurations
+
+Signed-off-by: Harsimran Singh Tungal <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ configs/corstone1000_defconfig | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 4c562536a89..5297e2fa455 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -12,6 +12,7 @@ CONFIG_SYS_BOOTM_LEN=0x800000
+ CONFIG_SYS_LOAD_ADDR=0x82100000
+ CONFIG_IDENT_STRING=" corstone1000 aarch64 "
+ CONFIG_FWU_NUM_IMAGES_PER_BANK=4
++CONFIG_EFI_SECURE_BOOT=y
+ CONFIG_EFI_MM_COMM_TEE=y
+ CONFIG_FFA_SHARED_MM_BUF_SIZE=4096
+ CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
+@@ -22,6 +23,8 @@ CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
+ CONFIG_EFI_CAPSULE_AUTHENTICATE=y
+ CONFIG_EFI_CAPSULE_CRT_FILE="CRT.crt"
+ CONFIG_FIT=y
++CONFIG_FIT_SIGNATURE=y
++CONFIG_LEGACY_IMAGE_FORMAT=y
+ CONFIG_DISTRO_DEFAULTS=y
+ CONFIG_BOOTDELAY=3
+ CONFIG_USE_BOOTARGS=y
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-corstone1000-Enable-EFI-set_time-config.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-corstone1000-Enable-EFI-set_time-config.patch
new file mode 100644
index 00000000..73af703c
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-corstone1000-Enable-EFI-set_time-config.patch
@@ -0,0 +1,35 @@
+From 634ea749a2c590199ab1f284bed9843496ee2cde Mon Sep 17 00:00:00 2001
+From: Gowtham Suresh Kumar <[email protected]>
+Date: Thu, 20 Mar 2025 16:06:18 +0000
+Subject: [PATCH 28/36] corstone1000: Enable EFI set_time() config
+
+Enable EFI set_time() config
+
+SetTime_Conf and SetTime_Func tests in UEFI SCT test suite of ACS
+fail with unsupported return value. CONFIG_EFI_SET_TIME and
+CONFIG_EFI_GET_TIME config values are needed.
+This commit enables the set_time() config.
+get_time() config is enabled automatically.
+
+Signed-off-by: Gowtham Suresh Kumar <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ configs/corstone1000_defconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 5297e2fa455..a0a631f3f40 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -13,6 +13,7 @@ CONFIG_SYS_LOAD_ADDR=0x82100000
+ CONFIG_IDENT_STRING=" corstone1000 aarch64 "
+ CONFIG_FWU_NUM_IMAGES_PER_BANK=4
+ CONFIG_EFI_SECURE_BOOT=y
++CONFIG_EFI_SET_TIME=y
+ CONFIG_EFI_MM_COMM_TEE=y
+ CONFIG_FFA_SHARED_MM_BUF_SIZE=4096
+ CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-Enable-set-print-EFI-variables.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-Enable-set-print-EFI-variables.patch
new file mode 100644
index 00000000..cfc58ded
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-Enable-set-print-EFI-variables.patch
@@ -0,0 +1,37 @@
+From d63525b685e24efaa9553f3be1ce80a33602f66e Mon Sep 17 00:00:00 2001
+From: Harsimran Singh Tungal <[email protected]>
+Date: Thu, 20 Mar 2025 16:08:16 +0000
+Subject: [PATCH 29/36] corstone1000: Enable set/print EFI variables
+
+Enable set/print UEFI variables using "env" command
+
+Signed-off-by: Harsimran Singh Tungal <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ configs/corstone1000_defconfig | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index a0a631f3f40..190f48974df 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -41,6 +41,7 @@ CONFIG_SYS_PROMPT="corstone1000# "
+ CONFIG_CMD_FWU_METADATA=y
+ CONFIG_CMD_BOOTZ=y
+ # CONFIG_CMD_XIMG is not set
++CONFIG_CMD_NVEDIT_EFI=y
+ CONFIG_CMD_GPT=y
+ CONFIG_CMD_LOADM=y
+ # CONFIG_CMD_LOADS is not set
+@@ -78,6 +79,7 @@ CONFIG_USB=y
+ CONFIG_USB_ISP1760=y
+ # CONFIG_RANDOM_UUID is not set
+ CONFIG_ERRNO_STR=y
++# CONFIG_HEXDUMP is not set
+ CONFIG_FWU_MULTI_BANK_UPDATE=y
+ CONFIG_FWU_MDATA_V2=y
+ CONFIG_FWU_ARM_PSA=y
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-Enable-virtio-net-support.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-Enable-virtio-net-support.patch
new file mode 100644
index 00000000..f4d8341b
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-Enable-virtio-net-support.patch
@@ -0,0 +1,122 @@
+From 631ca237b413178c6149e8da33f4aa5bc0fff7ed Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <[email protected]>
+Date: Thu, 20 Mar 2025 16:22:44 +0000
+Subject: [PATCH 30/36] corstone1000: Enable virtio-net support
+
+Add virtio-net support in Corstone1000 FVP
+
+Signed-off-by: Emekcan Aras <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ arch/arm/dts/corstone1000-fvp.dts        |  6 ++++
+ board/armltd/corstone1000/corstone1000.c | 42 ++++++++++++++++++++----
+ configs/corstone1000_defconfig           |  3 ++
+ 3 files changed, 45 insertions(+), 6 deletions(-)
+
+diff --git a/arch/arm/dts/corstone1000-fvp.dts b/arch/arm/dts/corstone1000-fvp.dts
+index 3076fb9f344..cd8a132271e 100644
+--- a/arch/arm/dts/corstone1000-fvp.dts
++++ b/arch/arm/dts/corstone1000-fvp.dts
+@@ -21,6 +21,12 @@
+ 		reg-io-width = <2>;
+ 	};
+ 
++	virtio: virtio-net@40400000 {
++		compatible = "virtio,mmio";
++		reg = <0x40400000 0x10000>;
++		interrupts = <145>;
++	};
++
+ 	vmmc_v3_3d: fixed_v3_3d {
+ 		compatible = "regulator-fixed";
+ 		regulator-name = "vmmc_supply";
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index 9189640ef75..39fd10ed653 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -20,6 +20,7 @@
+ #include <dm/platform_data/serial_pl01x.h>
+ #include <asm/armv8/mmu.h>
+ #include <asm/global_data.h>
++#include <generated/dt.h>
+ #include <linux/bitfield.h>
+ 
+ #define CORSTONE1000_KERNEL_PARTS 2
+@@ -201,13 +202,21 @@ static struct mm_region corstone1000_mem_map[] = {
+ 			PTE_BLOCK_NON_SHARE |
+ 			PTE_BLOCK_PXN | PTE_BLOCK_UXN
+ 	}, {
+-		/* ethernet */
++		/* virtio-net */
++		.virt = 0x40400000UL,
++			.phys = 0x40400000UL,
++			.size = 0x00100000UL,
++			.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
++				PTE_BLOCK_NON_SHARE |
++				PTE_BLOCK_PXN | PTE_BLOCK_UXN
++	}, {
++		/* Ethernet */
+ 		.virt = 0x40100000UL,
+-		.phys = 0x40100000UL,
+-		.size = 0x00100000UL,
+-		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+-			PTE_BLOCK_NON_SHARE |
+-			PTE_BLOCK_PXN | PTE_BLOCK_UXN
++			.phys = 0x40100000UL,
++			.size = 0x00100000UL,
++			.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
++				PTE_BLOCK_NON_SHARE |
++				PTE_BLOCK_PXN | PTE_BLOCK_UXN
+ 	}, {
+ 		/* MMC0 */
+ 		.virt = 0x40300000UL,
+@@ -367,3 +376,24 @@ efi_status_t fwu_notify_exit_boot_services(void)
+ out:
+ 	return efi_ret;
+ }
++
++int board_late_init(void)
++{
++	struct udevice *virtio_bus = NULL, *virtio_child = NULL;
++	const char *cmp_dtb = DEVICE_TREE;
++	int ret;
++
++	if (!strcmp(cmp_dtb, "corstone1000-fvp")) {
++		ret = uclass_first_device_err(UCLASS_VIRTIO, &virtio_bus);
++		if (!virtio_bus) {
++			log_err("Cannot find virtio device, err (%d)\n", ret);
++			return ret;
++		}
++		while (virtio_bus) {
++			device_foreach_child_probe(virtio_child, virtio_bus);
++			uclass_next_device(&virtio_bus);
++		}
++	}
++
++	return 0;
++}
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 190f48974df..d1401550660 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -36,6 +36,7 @@ CONFIG_SYS_CBSIZE=512
+ CONFIG_LOGLEVEL=7
+ # CONFIG_DISPLAY_CPUINFO is not set
+ # CONFIG_DISPLAY_BOARDINFO is not set
++CONFIG_BOARD_LATE_INIT=y
+ CONFIG_SYS_PROMPT="corstone1000# "
+ # CONFIG_CMD_CONSOLE is not set
+ CONFIG_CMD_FWU_METADATA=y
+@@ -77,6 +78,8 @@ CONFIG_TEE=y
+ CONFIG_OPTEE=y
+ CONFIG_USB=y
+ CONFIG_USB_ISP1760=y
++CONFIG_VIRTIO_MMIO=y
++CONFIG_VIRTIO_NET=y
+ # CONFIG_RANDOM_UUID is not set
+ CONFIG_ERRNO_STR=y
+ # CONFIG_HEXDUMP is not set
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-arm-corstone1000-Fix-unrecognized-filesystem-type.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-arm-corstone1000-Fix-unrecognized-filesystem-type.patch
new file mode 100644
index 00000000..9cb30a51
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-arm-corstone1000-Fix-unrecognized-filesystem-type.patch
@@ -0,0 +1,33 @@
+From face25548766183af2a80ec7c60ba9f8f90ee387 Mon Sep 17 00:00:00 2001
+From: Rui Miguel Silva <[email protected]>
+Date: Fri, 4 Mar 2022 15:56:09 +0000
+Subject: [PATCH 31/36] arm: corstone1000: Fix unrecognized filesystem type
+
+Add a delay before checking USB sticks status
+
+Some USB sticks are not recognized by the USB bus, just add a
+delay before checking status.
+
+Signed-off-by: Rui Miguel Silva <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ common/usb_storage.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/common/usb_storage.c b/common/usb_storage.c
+index ac331f1c1b0..17f8a56e971 100644
+--- a/common/usb_storage.c
++++ b/common/usb_storage.c
+@@ -782,6 +782,9 @@ static int usb_stor_BBB_transport(struct scsi_cmd *srb, struct us_data *us)
+ st:
+ 	retry = 0;
+ again:
++	if (srb->cmd[0] == SCSI_TST_U_RDY)
++		mdelay(100);
++
+ 	debug("STATUS phase\n");
+ 	result = usb_bulk_msg(us->pusb_dev, pipein, csw, UMASS_BBB_CSW_SIZE,
+ 				&actlen, USB_CNTL_TIMEOUT*5);
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-corstone1000-dts-Add-external-system-node.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-corstone1000-dts-Add-external-system-node.patch
new file mode 100644
index 00000000..b145cede
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-corstone1000-dts-Add-external-system-node.patch
@@ -0,0 +1,34 @@
+From fa900c31f2fc1cf9c3333cd565d779bb06d59bec Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <[email protected]>
+Date: Mon, 18 Mar 2024 17:00:56 +0000
+Subject: [PATCH 32/36] corstone1000: dts: Add external system node
+
+Add the external system node
+
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ arch/arm/dts/corstone1000.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
+index 5d9d95b21cb..76bfc561df7 100644
+--- a/arch/arm/dts/corstone1000.dtsi
++++ b/arch/arm/dts/corstone1000.dtsi
+@@ -118,6 +118,13 @@
+ 		interrupt-parent = <&gic>;
+ 		ranges;
+ 
++		extsys0: remoteproc@1a010310 {
++			compatible = "arm,corstone1000-extsys";
++			reg = <0x1a010310 0x4>, <0x1a010314 0x4>;
++			reg-names = "reset-control", "reset-status";
++			firmware-name = "es_flashfw.elf";
++		};
++
+ 		timer@1a220000 {
+ 			compatible = "arm,armv7-timer-mem";
+ 			reg = <0x1a220000 0x1000>;
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-arm-bsp-u-boot-dts-Reserve-memory-for-RSS-comm-point.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-arm-bsp-u-boot-dts-Reserve-memory-for-RSS-comm-point.patch
new file mode 100644
index 00000000..54ddd047
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-arm-bsp-u-boot-dts-Reserve-memory-for-RSS-comm-point.patch
@@ -0,0 +1,50 @@
+From 548b7cc0126621af41eff92d504d79d67f85c648 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <[email protected]>
+Date: Mon, 10 Jul 2023 19:00:43 +0100
+Subject: [PATCH 33/36] arm-bsp/u-boot: dts: Reserve memory for RSS comm
+ pointer access protocol
+
+Add reserved-memory node for RSS comm pointer access protocol
+
+This memory was used by OpenAMP to establish communication between
+the Secure Enclave and Trusted Services. After transitioning from
+OpenAMP to RSE_COMMS, this shared memory is now configured for the
+pointer access protocol in RSE_COMMS.
+
+Since this memory may be still used by a user-space application
+in Linux as U-Boot is passing an EFI memory map starting from
+0x80000000, this memory range should be reserved as the
+pointer access protocol may be enabled on corstone1000 in the future.
+
+Signed-off-by: Emekcan Aras <[email protected]>
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ arch/arm/dts/corstone1000.dtsi | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
+index 76bfc561df7..74e95dcbc6b 100644
+--- a/arch/arm/dts/corstone1000.dtsi
++++ b/arch/arm/dts/corstone1000.dtsi
+@@ -45,6 +45,17 @@
+ 		lba = <65536>;
+ 	};
+ 
++	reserved-memory {
++		#address-cells = <2>;
++		#size-cells = <2>;
++		ranges;
++
++		smem_mem: smem_region@88000000 {
++			reg = <0x0 0x88000000 0x0 0x100000>;
++			no-map;
++		};
++	};
++
+ 	gic: interrupt-controller@1c000000 {
+ 		compatible = "arm,gic-400";
+ 		#interrupt-cells = <3>;
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch
new file mode 100644
index 00000000..17d3f23a
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch
@@ -0,0 +1,137 @@
+From 9965fa5c45f6babb3182886623f660cc725c5a62 Mon Sep 17 00:00:00 2001
+From: Sughosh Ganu <[email protected]>
+Date: Thu, 22 May 2025 17:57:14 +0100
+Subject: [PATCH 34/36] dt: Provide a way to remove non-compliant nodes and
+ properties
+
+Add a function which is registered to spy for a EVT_FT_FIXUP event,
+and removes the non upstreamed nodes and properties from the
+devicetree before it gets passed to the OS.
+
+This allows removing entire nodes, or specific properties under nodes
+from the devicetree. The required nodes and properties can be
+registered for removal through the DT_NON_COMPLIANT_PURGE and
+DT_NON_COMPLIANT_PURGE_LIST macros.
+
+Signed-off-by: Sughosh Ganu <[email protected]>
+Upstream-Status: Denied [RFC: https://lore.kernel.org/u-boot/[email protected]/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ include/dt-structs.h | 11 +++++++
+ lib/Makefile         |  1 +
+ lib/dt_purge.c       | 73 ++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 85 insertions(+)
+ create mode 100644 lib/dt_purge.c
+
+diff --git a/include/dt-structs.h b/include/dt-structs.h
+index fa1622cb1dc..f535c60471b 100644
+--- a/include/dt-structs.h
++++ b/include/dt-structs.h
+@@ -57,3 +57,14 @@ struct phandle_2_arg {
+ #endif
+ 
+ #endif
++
++struct dt_non_compliant_purge {
++	const char *node_path;
++	const char *prop;
++};
++
++#define DT_NON_COMPLIANT_PURGE(__name)	\
++	ll_entry_declare(struct dt_non_compliant_purge, __name, dt_purge)
++
++#define DT_NON_COMPLIANT_PURGE_LIST(__name)	\
++	ll_entry_declare_list(struct dt_non_compliant_purge, __name, dt_purge)
+diff --git a/lib/Makefile b/lib/Makefile
+index a7bc2f3134a..82b021562f1 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -70,6 +70,7 @@ endif
+ obj-$(CONFIG_$(PHASE_)CRC8) += crc8.o
+ obj-$(CONFIG_$(PHASE_)CRC16) += crc16.o
+ obj-$(CONFIG_$(PHASE_)CRC16) += crc16-ccitt.o
++obj-y += dt_purge.o
+ 
+ obj-y += crypto/
+ 
+diff --git a/lib/dt_purge.c b/lib/dt_purge.c
+new file mode 100644
+index 00000000000..abae7c04fc7
+--- /dev/null
++++ b/lib/dt_purge.c
+@@ -0,0 +1,73 @@
++// SPDX-License-Identifier: GPL-2.0-or-later
++/*
++ * Copyright (c) 2023, Linaro Limited
++ */
++
++#include <dt-structs.h>
++#include <event.h>
++#include <linker_lists.h>
++
++#include <linux/libfdt.h>
++
++/**
++ * dt_non_compliant_purge() -	Remove non-upstreamed nodes and properties
++ *				from the DT
++ * @ctx: Context for event
++ * @event: Event to process
++ *
++ * Iterate through an array of DT nodes and properties, and remove them
++ * from the device-tree before the DT gets handed over to the kernel.
++ * These are nodes and properties which do not have upstream bindings
++ * and need to be purged before being handed over to the kernel.
++ *
++ * If both the node and property are specified, delete the property. If
++ * only the node is specified, delete the entire node, including it's
++ * subnodes, if any.
++ *
++ * Return: 0 if OK, -ve on error
++ */
++static int dt_non_compliant_purge(void *ctx, struct event *event)
++{
++	int nodeoff = 0;
++	int err = 0;
++	void *fdt;
++	const struct event_ft_fixup *fixup = &event->data.ft_fixup;
++	struct dt_non_compliant_purge *purge_entry;
++	struct dt_non_compliant_purge *purge_start =
++		ll_entry_start(struct dt_non_compliant_purge, dt_purge);
++	int nentries = ll_entry_count(struct dt_non_compliant_purge, dt_purge);
++
++	if (fixup->images)
++		return 0;
++
++	fdt = fixup->tree.fdt;
++	for (purge_entry = purge_start; purge_entry != purge_start + nentries;
++	     purge_entry++) {
++		nodeoff = fdt_path_offset(fdt, purge_entry->node_path);
++		if (nodeoff < 0) {
++			log_debug("Error (%d) getting node offset for %s\n",
++				  nodeoff, purge_entry->node_path);
++			continue;
++		}
++
++		if (purge_entry->prop) {
++			err = fdt_delprop(fdt, nodeoff, purge_entry->prop);
++			if (err < 0 && err != -FDT_ERR_NOTFOUND) {
++				log_debug("Error (%d) deleting %s\n",
++					  err, purge_entry->prop);
++				goto out;
++			}
++		} else {
++			err = fdt_del_node(fdt, nodeoff);
++			if (err) {
++				log_debug("Error (%d) trying to delete node %s\n",
++					  err, purge_entry->node_path);
++				goto out;
++			}
++		}
++	}
++
++out:
++	return err;
++}
++EVENT_SPY_FULL(EVT_FT_FIXUP, dt_non_compliant_purge);
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch
new file mode 100644
index 00000000..d1a9b817
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch
@@ -0,0 +1,58 @@
+From 24cdb09130c32209485648e106da40f5c2732271 Mon Sep 17 00:00:00 2001
+From: Sughosh Ganu <[email protected]>
+Date: Thu, 22 May 2025 18:08:38 +0100
+Subject: [PATCH 35/36] bootefi: Call the EVT_FT_FIXUP event handler
+
+The bootefi command passes the devicetree to the kernel through the
+EFI config table. Call the event handlers for fixing the devicetree
+before jumping into the kernel. This removes any devicetree nodes
+and/or properties that are specific only to U-Boot, and are not to be
+passed to the OS.
+
+Signed-off-by: Sughosh Ganu <[email protected]>
+Upstream-Status: Denied [RFC: https://lore.kernel.org/u-boot/[email protected]/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ cmd/bootefi.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/cmd/bootefi.c b/cmd/bootefi.c
+index c1454ffb948..2599afadf9a 100644
+--- a/cmd/bootefi.c
++++ b/cmd/bootefi.c
+@@ -118,6 +118,24 @@ static int do_efi_selftest(void)
+ 	return ret != EFI_SUCCESS;
+ }
+ 
++/**
++ * event_notify_dt_fixup() - call ft_fixup event
++ *
++ * @fdt:	address of the device tree to be passed to the kernel
++ *		through the configuration table
++ * Return:	None
++ */
++static void event_notify_dt_fixup(void *fdt)
++{
++	int ret;
++	struct event_ft_fixup fixup = {0};
++
++	fixup.tree.fdt = fdt;
++	ret = event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup));
++	if (ret)
++		printf("Error: %d: FDT Fixup event failed\n", ret);
++}
++
+ /**
+  * do_bootefi() - execute `bootefi` command
+  *
+@@ -173,6 +191,8 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
+ 		if (ret != EFI_SUCCESS)
+ 			return CMD_RET_FAILURE;
+ 
++		event_notify_dt_fixup(fdt);
++
+ 		return do_efi_selftest();
+ 	}
+ 
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-Purge-U-Boot-specific-DT-nodes.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-Purge-U-Boot-specific-DT-nodes.patch
new file mode 100644
index 00000000..c52e1a97
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-Purge-U-Boot-specific-DT-nodes.patch
@@ -0,0 +1,41 @@
+From 6466a6cf1ea529180d41ef4e75b16f33a050673a Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <[email protected]>
+Date: Thu, 29 May 2025 14:42:42 +0100
+Subject: [PATCH 36/37] corstone1000: Purge U-Boot specific DT nodes
+
+Remove U-Boot specific DT nodes before passing the DT to Linux
+
+This is needed to pass SystemReady IR 2.0 dt-schema tests
+
+Signed-off-by: Abdellatif El Khlifi <[email protected]>
+Upstream-Status: Denied [RFC: https://lore.kernel.org/u-boot/[email protected]/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ board/armltd/corstone1000/corstone1000.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index 39fd10ed653..c8fcbf976e0 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -23,6 +23,18 @@
+ #include <generated/dt.h>
+ #include <linux/bitfield.h>
+ 
++/* remove the DT nodes not needed in Linux */
++DT_NON_COMPLIANT_PURGE_LIST(foo) = {
++	{ .node_path = "/fwu-mdata" },
++	{ .node_path = "/nvmxip-qspi@08000000" },
++	{ .node_path = "/soc/mailbox@1b820000" },
++	{ .node_path = "/soc/mailbox@1b830000" },
++	{ .node_path = "/soc/mhu@1b000000" },
++	{ .node_path = "/soc/mhu@1b010000" },
++	{ .node_path = "/soc/mhu@1b020000" },
++	{ .node_path = "/soc/mhu@1b030000" },
++};
++
+ #define CORSTONE1000_KERNEL_PARTS 2
+ #define CORSTONE1000_KERNEL_PRIMARY "kernel_primary"
+ #define CORSTONE1000_KERNEL_SECONDARY "kernel_secondary"
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-remoteproc-DTS-node.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-remoteproc-DTS-node.patch
new file mode 100644
index 00000000..214a307e
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-remoteproc-DTS-node.patch
@@ -0,0 +1,32 @@
+From 7a32af1d8f904990d016d96d50894c49686db14c Mon Sep 17 00:00:00 2001
+From: Harsimran Singh Tungal <[email protected]>
+Date: Thu, 29 May 2025 14:44:17 +0100
+Subject: [PATCH 37/37] corstone1000: purge remoteproc DTS node
+
+Purge remoteproc DTS node
+This is done to remove the remote proc node from the DTS passed
+to Linux from U-Boot because the device tree binding for remoteproc
+has not been upstreamed yet. Existence of remoteproc DTS node in Linux
+is causing dt-schema test for SystemReady-IR v2.0 certification to fail.
+
+Signed-off-by: Harsimran Singh Tungal <[email protected]>
+Upstream-Status: Denied [RFC: https://lore.kernel.org/u-boot/[email protected]/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ board/armltd/corstone1000/corstone1000.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index c8fcbf976e0..1b9c3a9ed16 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -33,6 +33,7 @@ DT_NON_COMPLIANT_PURGE_LIST(foo) = {
+ 	{ .node_path = "/soc/mhu@1b010000" },
+ 	{ .node_path = "/soc/mhu@1b020000" },
+ 	{ .node_path = "/soc/mhu@1b030000" },
++	{ .node_path = "/soc/remoteproc@1a010310" },
+ };
+ 
+ #define CORSTONE1000_KERNEL_PARTS 2
+-- 
+2.25.1
+
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.