diff --git a/kas/corstone1000-extsys.yml b/kas/corstone1000-extsys.yml new file mode 100644 index 00000000..0534b09c --- /dev/null +++ b/kas/corstone1000-extsys.yml @@ -0,0 +1,6 @@ +header: + version: 14 + +local_conf_header: + extsys: | + MACHINE_FEATURES += "corstone1000-extsys" diff --git a/meta-arm-bsp/documentation/corstone1000/user-guide.rst b/meta-arm-bsp/documentation/corstone1000/user-guide.rst index f4c7f5bf..cca12d83 100644 --- a/meta-arm-bsp/documentation/corstone1000/user-guide.rst +++ b/meta-arm-bsp/documentation/corstone1000/user-guide.rst @@ -180,6 +180,12 @@ then run: kas build meta-arm/kas/corstone1000-fvp.yml:meta-arm/ci/debug.yml +By default, the external system is disabled. To build the Corstone-1000 image with external system enabled, run: + +:: + + kas build meta-arm/kas/corstone1000-.yml:meta-arm/ci/debug.yml:meta-arm/kas/corstone1000-extsys.yml + The initial clean build will be lengthy, given that all host utilities are to be built as well as the target images. This includes host executables (python, cmake, etc.) and the required toolchain(s). @@ -1444,6 +1450,7 @@ The above commands will delete the Platform key (PK) and allow the normal system Testing the External System --------------------------- +Before testing the external system, please make sure to build the Corstone-1000 image with external system enabled as mentioned in section `Building the software stack`_. During Linux boot the remoteproc subsystem automatically starts the external system. 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 427e346f..2470db02 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 @@ -66,6 +66,8 @@ SRC_URI:append = " \ file://0048-corstone1000-Enable-UEFI-Secure-boot.patch \ file://0049-corstone1000-Add-secondary-cores-cpu-nodes-for-FVP.patch \ file://0050-fwu-Use-metadata-v2.patch \ + ${@bb.utils.contains('MACHINE_FEATURES', 'corstone1000-extsys', \ + '', 'file://0051-corstone1000-purge-remoteproc-dts-node.patch' , d)} \ " do_configure:append() { diff --git a/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0051-corstone1000-purge-remoteproc-dts-node.patch b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0051-corstone1000-purge-remoteproc-dts-node.patch new file mode 100644 index 00000000..3b0430c8 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0051-corstone1000-purge-remoteproc-dts-node.patch @@ -0,0 +1,34 @@ +From 4e0ab7af882fcf498fd8beb4024ea024e6464cef Mon Sep 17 00:00:00 2001 +From: Harsimran Singh Tungal +Date: Wed, 14 Aug 2024 14:33:50 +0000 +Subject: [PATCH] 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. + +Upstream-Status: Pending +Signed-off-by: Harsimran Singh Tungal +--- + board/armltd/corstone1000/corstone1000.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c +index ef74dc9032..d474fce1b2 100644 +--- a/board/armltd/corstone1000/corstone1000.c ++++ b/board/armltd/corstone1000/corstone1000.c +@@ -30,8 +30,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/client" }, +- { .node_path = "/soc/extsys@1A010310" }, ++ { .node_path = "/soc/remoteproc@1a010310" }, + }; + + #define CORSTONE1000_KERNEL_PARTS 2 +-- +2.34.1 + diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc index ae22531f..01803ba2 100644 --- a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc +++ b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc @@ -35,13 +35,21 @@ SRC_URI:append:corstone1000 = " ${@bb.utils.contains('MACHINE_FEATURES', \ 'file://corstone1000_kernel_debug.cfg', \ '', \ d)}" - SRC_URI:append:corstone1000 = " \ - file://extsys.cfg \ - file://0001-remoteproc-Add-Arm-remoteproc-driver.patch \ - file://0002-arm64-dts-Add-corstone1000-external-system-device-no.patch \ - file://0003-dt-bindings-remoteproc-Add-Arm-remoteproc.patch \ - " + ${@bb.utils.contains( \ + 'MACHINE_FEATURES', \ + 'corstone1000-extsys', \ + ' \ + file://extsys.cfg \ + file://0001-remoteproc-Add-Arm-remoteproc-driver.patch \ + file://0002-arm64-dts-Add-corstone1000-external-system-device-no.patch \ + file://0003-dt-bindings-remoteproc-Add-Arm-remoteproc.patch \ + ', \ + '', \ + d \ + ) \ + } \ +" # Default kernel features not needed for corstone1000 # otherwise the extra kernel modules will increase the rootfs size