From 5e2b3a114f729f35eb4bd863465010311911f5bf Mon Sep 17 00:00:00 2001 From: Bowen Wang Date: Thu, 29 Jan 2026 16:19:56 +0800 Subject: [PATCH] lib/rpmsg: add priority support for rpmsg endpoint Add priority field to rpmsg_endpoint structure to support message prioritization. This allows different endpoints to have different priority levels for scheduling purposes. Changes: - Define priority constants (MIN=0, DEFAULT=127, MAX=255) - Add RPMSG_PRIO_RT alias for real-time priority - Add priority field to struct rpmsg_endpoint - Initialize priority to default value in rpmsg_register_endpoint() Signed-off-by: Bowen Wang --- ...-priority-support-for-rpmsg-endpoint.patch | 64 +++++++++++++++++++ openamp/open-amp.cmake | 2 + openamp/open-amp.defs | 1 + 3 files changed, 67 insertions(+) create mode 100644 openamp/0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch diff --git a/openamp/0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch b/openamp/0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch new file mode 100644 index 00000000000..36821bbc528 --- /dev/null +++ b/openamp/0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch @@ -0,0 +1,64 @@ +From 502673fc80f0cfc1454b4ea7f106ab667f337b81 Mon Sep 17 00:00:00 2001 +From: Bowen Wang +Date: Wed, 28 Jan 2026 21:37:53 +0800 +Subject: [PATCH 18/18] lib/rpmsg: add priority support for rpmsg endpoint + +Add priority field to rpmsg_endpoint structure to support +message prioritization. This allows different endpoints to +have different priority levels for scheduling purposes. + +Changes: +- Define priority constants (MIN=0, DEFAULT=127, MAX=255) +- Add RPMSG_PRIO_RT alias for real-time priority +- Add priority field to struct rpmsg_endpoint +- Initialize priority to default value in rpmsg_register_endpoint() + +Signed-off-by: Bowen Wang +--- + lib/include/openamp/rpmsg.h | 8 ++++++++ + lib/rpmsg/rpmsg.c | 3 +++ + 2 files changed, 11 insertions(+) + +diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h +index 5b702339aa..2d89084dc4 100644 +--- a/lib/include/openamp/rpmsg.h ++++ open-amp/lib/include/openamp/rpmsg.h +@@ -53,6 +53,11 @@ extern "C" { + #define RPMSG_ERR_PERM (RPMSG_ERROR_BASE - 8) + #define RPMSG_EOPNOTSUPP (RPMSG_ERROR_BASE - 9) + ++#define RPMSG_PRIO_MIN 0 ++#define RPMSG_PRIO_DEFAULT 127 ++#define RPMSG_PRIO_MAX 255 ++#define RPMSG_PRIO_RT RPMSG_PRIO_MAX ++ + struct rpmsg_endpoint; + struct rpmsg_device; + +@@ -102,6 +107,9 @@ struct rpmsg_endpoint { + /** Endpoint service unbind callback, called when remote ept is destroyed */ + rpmsg_ns_unbind_cb ns_unbind_cb; + ++ /** The priority of current rpmsg endpoint */ ++ uint8_t priority; ++ + /** Endpoint node */ + struct metal_list node; + +diff --git a/lib/rpmsg/rpmsg.c open-amp/lib/rpmsg/rpmsg.c +index 28a8de61b3..04953d19d1 100644 +--- a/lib/rpmsg/rpmsg.c ++++ open-amp/lib/rpmsg/rpmsg.c +@@ -318,6 +318,9 @@ void rpmsg_register_endpoint(struct rpmsg_device *rdev, + ept->ns_unbind_cb = ns_unbind_cb; + ept->priv = priv; + ept->rdev = rdev; ++ if (ept->priority == RPMSG_PRIO_MIN) ++ ept->priority = RPMSG_PRIO_DEFAULT; ++ + metal_list_add_tail(&rdev->endpoints, &ept->node); + } + +-- +2.34.1 + diff --git a/openamp/open-amp.cmake b/openamp/open-amp.cmake index 55ce8ba2f70..1ca7dfb7990 100644 --- a/openamp/open-amp.cmake +++ b/openamp/open-amp.cmake @@ -72,6 +72,8 @@ if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/open-amp) ${CMAKE_CURRENT_LIST_DIR}/0016-lib-rpmsg_virtio-support-release-the-name-service-me.patch && patch -p0 -d ${CMAKE_CURRENT_LIST_DIR} < ${CMAKE_CURRENT_LIST_DIR}/0017-lib-virtio-virtqueue-change-the-virtqueue-dump-log-l.patch + && patch -p0 -d ${CMAKE_CURRENT_LIST_DIR} < + ${CMAKE_CURRENT_LIST_DIR}/0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch DOWNLOAD_NO_PROGRESS true TIMEOUT 30) diff --git a/openamp/open-amp.defs b/openamp/open-amp.defs index 8842eb46ea4..20268f10c1e 100644 --- a/openamp/open-amp.defs +++ b/openamp/open-amp.defs @@ -83,6 +83,7 @@ open-amp.zip: $(Q) patch -p0 < 0015-lib-remoteproc_virtio-optimize-virtqueue_notificatio.patch $(Q) patch -p0 < 0016-lib-rpmsg_virtio-support-release-the-name-service-me.patch $(Q) patch -p0 < 0017-lib-virtio-virtqueue-change-the-virtqueue-dump-log-l.patch + $(Q) patch -p0 < 0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch .openamp_headers: open-amp.zip else