1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-01 13:10:04 +00:00

arm-bsp/corstone1000: bump kernel version to 5.19

Bump the kernel version to 5.19.9, remove backported ffa
related patch to previous version and fix issues in the arm
rpmsg driver.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Rui Miguel Silva
2022-10-04 12:39:39 +01:00
committed by Jon Mason
parent 6001998caa
commit 38a3facd90
6 changed files with 74 additions and 95 deletions
@@ -49,7 +49,7 @@ EXTRA_IMAGEDEPENDS += "external-system"
# Linux kernel # Linux kernel
PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto" PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto"
PREFERRED_VERSION_linux-yocto = "5.15%" PREFERRED_VERSION_linux-yocto = "5.19%"
KERNEL_IMAGETYPE = "Image.gz" KERNEL_IMAGETYPE = "Image.gz"
INITRAMFS_IMAGE_BUNDLE ?= "1" INITRAMFS_IMAGE_BUNDLE ?= "1"
@@ -1,90 +0,0 @@
Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8e3f9da608f14cfebac2659d8dd8737b79d01308]
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
From a8f3e351c07c48774be2a45e184b9f08dc92f1db Mon Sep 17 00:00:00 2001
From: Sudeep Holla <sudeep.holla@arm.com>
Date: Wed, 13 Apr 2022 15:43:19 +0100
Subject: [PATCH] UPSTREAM: firmware: arm_ffa: Handle compatibility with
different firmware versions
The driver currently just support v1.0 of Arm FFA specification. It also
expects the firmware implementation to match the same and bail out if it
doesn't match. This is causing issue when running with higher version of
firmware implementation(e.g. v1.1 which will released soon).
In order to support compatibility with different firmware versions, let
us add additional checks and find the compatible version the driver can
work with.
Link: https://lore.kernel.org/r/20211013091127.990992-1-sudeep.holla@arm.com
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
(cherry picked from commit 8e3f9da608f14cfebac2659d8dd8737b79d01308)
Change-Id: I7bc9a3b172a9067bfd4e9bb9d50b4729e915b5a5
Bug: 168585974
---
drivers/firmware/arm_ffa/driver.c | 37 ++++++++++++++++++++++++++-----
1 file changed, 32 insertions(+), 5 deletions(-)
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index c9fb56afbcb4..6e0c883ab708 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -167,6 +167,28 @@ struct ffa_drv_info {
static struct ffa_drv_info *drv_info;
+/*
+ * The driver must be able to support all the versions from the earliest
+ * supported FFA_MIN_VERSION to the latest supported FFA_DRIVER_VERSION.
+ * The specification states that if firmware supports a FFA implementation
+ * that is incompatible with and at a greater version number than specified
+ * by the caller(FFA_DRIVER_VERSION passed as parameter to FFA_VERSION),
+ * it must return the NOT_SUPPORTED error code.
+ */
+static u32 ffa_compatible_version_find(u32 version)
+{
+ u32 compat_version;
+ u16 major = MAJOR_VERSION(version), minor = MINOR_VERSION(version);
+ u16 drv_major = MAJOR_VERSION(FFA_DRIVER_VERSION);
+ u16 drv_minor = MINOR_VERSION(FFA_DRIVER_VERSION);
+
+ if ((major < drv_major) || (major == drv_major && minor <= drv_minor))
+ return version;
+
+ pr_info("Firmware version higher than driver version, downgrading\n");
+ return FFA_DRIVER_VERSION;
+}
+
static int ffa_version_check(u32 *version)
{
ffa_value_t ver;
@@ -180,15 +202,20 @@ static int ffa_version_check(u32 *version)
return -EOPNOTSUPP;
}
- if (ver.a0 < FFA_MIN_VERSION || ver.a0 > FFA_DRIVER_VERSION) {
- pr_err("Incompatible version %d.%d found\n",
- MAJOR_VERSION(ver.a0), MINOR_VERSION(ver.a0));
+ if (ver.a0 < FFA_MIN_VERSION) {
+ pr_err("Incompatible v%d.%d! Earliest supported v%d.%d\n",
+ MAJOR_VERSION(ver.a0), MINOR_VERSION(ver.a0),
+ MAJOR_VERSION(FFA_MIN_VERSION),
+ MINOR_VERSION(FFA_MIN_VERSION));
return -EINVAL;
}
- *version = ver.a0;
- pr_info("Version %d.%d found\n", MAJOR_VERSION(ver.a0),
+ pr_info("Driver version %d.%d\n", MAJOR_VERSION(FFA_DRIVER_VERSION),
+ MINOR_VERSION(FFA_DRIVER_VERSION));
+ pr_info("Firmware version %d.%d found\n", MAJOR_VERSION(ver.a0),
MINOR_VERSION(ver.a0));
+ *version = ffa_compatible_version_find(ver.a0);
+
return 0;
}
--
2.17.1
@@ -4,9 +4,9 @@ Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
From e683c37ee51717e625c8a598056cf4bb1bdadcbc Mon Sep 17 00:00:00 2001 From e683c37ee51717e625c8a598056cf4bb1bdadcbc Mon Sep 17 00:00:00 2001
From: Emekcan <emekcan.aras@arm.com> From: Emekcan <emekcan.aras@arm.com>
Date: Wed, 17 Aug 2022 14:21:42 +0100 Date: Wed, 17 Aug 2022 14:21:42 +0100
Subject: [PATCH] Add rpsmg driver for corstone1000 Subject: [PATCH] Add rpmsg driver for corstone1000
Adds rpsmg driver to communicate with external Adds rpmsg driver to communicate with external
system in corstone1000 platform. system in corstone1000 platform.
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com> Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
@@ -0,0 +1,35 @@
Upstream-Status: Pending [Not submitted to upstream yet]
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
From 1426dd2b541cb51741bffbd95191ae5593e1749d Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Tue, 27 Sep 2022 10:05:27 +0100
Subject: [PATCH 1/2] rpmsg: arm: fix return value
The creation of and endpoint returns a pointer, fix the return
value to the right type.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
drivers/rpmsg/rpmsg_arm_mailbox.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/rpmsg/rpmsg_arm_mailbox.c b/drivers/rpmsg/rpmsg_arm_mailbox.c
index 4a80102669f6..5c0dcc8e353d 100644
--- a/drivers/rpmsg/rpmsg_arm_mailbox.c
+++ b/drivers/rpmsg/rpmsg_arm_mailbox.c
@@ -103,8 +103,9 @@ static struct rpmsg_endpoint *arm_create_ept(struct rpmsg_device *rpdev,
channel->mbox = mbox_request_channel_byname(&channel->cl, chinfo.name);
if (IS_ERR_OR_NULL(channel->mbox)) {
- printk("RPMsg ARM: Cannot get channel by name: '%s'\n", chinfo.name);
- return -1;
+ printk("RPMsg ARM: Cannot get channel by name: %s\n",
+ chinfo.name);
+ return ERR_PTR(-ENOENT);
}
return &channel->ept;
--
2.37.3
@@ -0,0 +1,33 @@
Upstream-Status: Pending [Not submitted to upstream yet]
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
From 20cd41fee8e4638eb47072b91d9a9f985730583b Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Tue, 27 Sep 2022 10:07:21 +0100
Subject: [PATCH 2/2] rpmsg: arm: update chrdev to ctrldev registration
Since "rpmsg: Update rpmsg_chrdev_register_device function",
there was a replacement of the chrdev driver to ctrldev
driver. Fix the registration.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
drivers/rpmsg/rpmsg_arm_mailbox.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rpmsg/rpmsg_arm_mailbox.c b/drivers/rpmsg/rpmsg_arm_mailbox.c
index 5c0dcc8e353d..90bc8df90885 100644
--- a/drivers/rpmsg/rpmsg_arm_mailbox.c
+++ b/drivers/rpmsg/rpmsg_arm_mailbox.c
@@ -142,7 +142,7 @@ static int client_probe(struct platform_device *pdev)
rpdev->dev.parent = dev;
rpdev->dev.release = arm_release_device;
- return rpmsg_chrdev_register_device(rpdev);
+ return rpmsg_ctrldev_register_device(rpdev);
}
static const struct of_device_id client_of_match[] = {
--
2.37.3
@@ -41,9 +41,10 @@ LINUX_KERNEL_TYPE:corstone1000 = "standard"
KERNEL_EXTRA_ARGS:corstone1000 += "CONFIG_INITRAMFS_COMPRESSION_NONE=y" KERNEL_EXTRA_ARGS:corstone1000 += "CONFIG_INITRAMFS_COMPRESSION_NONE=y"
SRC_URI:append:corstone1000 = " \ SRC_URI:append:corstone1000 = " \
file://defconfig \ file://defconfig \
file://0001-UPSTREAM-firmware-arm_ffa-Handle-compatibility-with-.patch \
file://0002-Add-external-system-driver.patch \ file://0002-Add-external-system-driver.patch \
file://0003-Add-rpsmg-driver-for-corstone1000.patch \ file://0003-Add-rpmsg-driver-for-corstone1000.patch \
file://0004-rpmsg-arm-fix-return-value.patch \
file://0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch \
" "
SRC_URI:append:corstone1000 = " ${@bb.utils.contains('MACHINE_FEATURES', \ SRC_URI:append:corstone1000 = " ${@bb.utils.contains('MACHINE_FEATURES', \