From 7ad4b573fbf62cc71b3e3f9c247ff9aa7a1f6e26 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Sat, 5 Nov 2022 22:16:58 +0800 Subject: [PATCH] openamp: update openmap lib version to 2022.10.0 Signed-off-by: Xiang Xiao --- ...ledge-the-received-creation-message.patch} | 33 ++++---- ...openamp-add-ns_unbind_notify-support.patch | 42 ---------- ...-individual-buffer-size-dynamically.patch} | 17 ++-- ...nt-ready-in-rpmsg_send-and-rpmsg_se.patch} | 43 +++++----- ...amp-add-new-ops-notify_wait-support.patch} | 51 ++++++------ ...t-need-check-status-when-get_tx_pay.patch} | 20 ++--- ...hram-to-TX-shram-RX-shram-by-config-.patch | 79 ------------------- ...user-when-the-remote-address-is-rec.patch} | 27 +++---- ...ble-calling-ns_bound-when-each-othe.patch} | 10 +-- ...08-openamp-add-available_idx-to-dump.patch | 34 -------- ...ll-elf_-functions-static-except-elf.patch} | 8 +- ...tion-of-vring_rsc-shadows-a-previous.patch | 27 +++++++ ...stly-take-all-buffer-from-shram-pool.patch | 38 --------- openamp/Makefile | 2 +- openamp/open-amp.defs | 21 +++-- 15 files changed, 143 insertions(+), 309 deletions(-) rename openamp/{0002-ns-acknowledge-the-received-creation-message.patch => 0001-ns-acknowledge-the-received-creation-message.patch} (83%) delete mode 100644 openamp/0001-openamp-add-ns_unbind_notify-support.patch rename openamp/{0003-Negotiate-individual-buffer-size-dynamically.patch => 0002-Negotiate-individual-buffer-size-dynamically.patch} (88%) rename openamp/{0004-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch => 0003-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch} (82%) rename openamp/{0005-openamp-add-new-ops-notify_wait-support.patch => 0004-openamp-add-new-ops-notify_wait-support.patch} (82%) rename openamp/{0007-openamp-don-t-need-check-status-when-get_tx_payload.patch => 0005-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch} (52%) delete mode 100644 openamp/0006-openamp-divide-shram-to-TX-shram-RX-shram-by-config-.patch rename openamp/{0010-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch => 0006-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch} (75%) rename openamp/{0011-openamp-avoid-double-calling-ns_bound-when-each-othe.patch => 0007-openamp-avoid-double-calling-ns_bound-when-each-othe.patch} (83%) delete mode 100644 openamp/0008-openamp-add-available_idx-to-dump.patch rename openamp/{0012-remoteproc-make-all-elf_-functions-static-except-elf.patch => 0008-remoteproc-make-all-elf_-functions-static-except-elf.patch} (97%) create mode 100644 openamp/0009-Fix-warn-declaration-of-vring_rsc-shadows-a-previous.patch delete mode 100644 openamp/0009-openamp-firstly-take-all-buffer-from-shram-pool.patch diff --git a/openamp/0002-ns-acknowledge-the-received-creation-message.patch b/openamp/0001-ns-acknowledge-the-received-creation-message.patch similarity index 83% rename from openamp/0002-ns-acknowledge-the-received-creation-message.patch rename to openamp/0001-ns-acknowledge-the-received-creation-message.patch index 7a74173cb3..dcc31e7dbe 100644 --- a/openamp/0002-ns-acknowledge-the-received-creation-message.patch +++ b/openamp/0001-ns-acknowledge-the-received-creation-message.patch @@ -1,7 +1,7 @@ -From 73d9754ab14a2b5c3e25574ec860489031e32f00 Mon Sep 17 00:00:00 2001 +From 1e43e60aa7ae118309cf256c50bd17f313540eba Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Mon, 7 Jan 2019 02:15:42 +0800 -Subject: [PATCH 02/12] ns: acknowledge the received creation message +Subject: [PATCH 1/9] ns: acknowledge the received creation message the two phase handsake make the client could initiate the transfer immediately without the server side send any dummy message first. @@ -12,14 +12,14 @@ Signed-off-by: Xiang Xiao lib/include/openamp/rpmsg_virtio.h | 1 + lib/rpmsg/rpmsg.c | 5 ++++- lib/rpmsg/rpmsg_internal.h | 4 ++-- - lib/rpmsg/rpmsg_virtio.c | 16 ++++++++++++---- - 5 files changed, 20 insertions(+), 7 deletions(-) + lib/rpmsg/rpmsg_virtio.c | 15 ++++++++++++--- + 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h -index e6acce8..3560bb5 100644 +index 64678cfc..ff3ff8fb 100644 --- a/lib/include/openamp/rpmsg.h +++ open-amp/lib/include/openamp/rpmsg.h -@@ -121,6 +121,7 @@ struct rpmsg_device { +@@ -126,6 +126,7 @@ struct rpmsg_device { rpmsg_ns_bind_cb ns_unbind_cb; struct rpmsg_device_ops ops; bool support_ns; @@ -28,7 +28,7 @@ index e6acce8..3560bb5 100644 /** diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h -index ff1e171..255396c 100644 +index 80ce9981..874c9723 100644 --- a/lib/include/openamp/rpmsg_virtio.h +++ open-amp/lib/include/openamp/rpmsg_virtio.h @@ -28,6 +28,7 @@ extern "C" { @@ -40,10 +40,10 @@ index ff1e171..255396c 100644 /** * struct rpmsg_virtio_shm_pool - shared memory pool used for rpmsg buffers diff --git a/lib/rpmsg/rpmsg.c open-amp/lib/rpmsg/rpmsg.c -index 214b2a9..ba2b7a8 100644 +index 0d3e1d03..e8757d80 100644 --- a/lib/rpmsg/rpmsg.c +++ open-amp/lib/rpmsg/rpmsg.c -@@ -302,10 +302,13 @@ int rpmsg_create_ept(struct rpmsg_endpoint *ept, struct rpmsg_device *rdev, +@@ -317,10 +317,13 @@ int rpmsg_create_ept(struct rpmsg_endpoint *ept, struct rpmsg_device *rdev, rpmsg_register_endpoint(rdev, ept, name, addr, dest, cb, unbind_cb); metal_mutex_release(&rdev->lock); @@ -59,7 +59,7 @@ index 214b2a9..ba2b7a8 100644 if (status) rpmsg_unregister_endpoint(ept); diff --git a/lib/rpmsg/rpmsg_internal.h open-amp/lib/rpmsg/rpmsg_internal.h -index ab6e0f2..3e6ae37 100644 +index ab6e0f29..3e6ae37f 100644 --- a/lib/rpmsg/rpmsg_internal.h +++ open-amp/lib/rpmsg/rpmsg_internal.h @@ -39,12 +39,12 @@ extern "C" { @@ -78,10 +78,10 @@ index ab6e0f2..3e6ae37 100644 /** diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index d5f168c..0868f71 100644 +index cab72e68..5726c2ca 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -579,7 +579,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, +@@ -638,7 +638,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, metal_mutex_acquire(&rdev->lock); _ept = rpmsg_get_endpoint(rdev, name, RPMSG_ADDR_ANY, dest); @@ -90,17 +90,16 @@ index d5f168c..0868f71 100644 if (_ept) _ept->dest_addr = RPMSG_ADDR_ANY; metal_mutex_release(&rdev->lock); -@@ -587,8 +587,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, +@@ -646,7 +646,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, _ept->ns_unbind_cb(_ept); if (rdev->ns_unbind_cb) rdev->ns_unbind_cb(rdev, name, dest); -- - } else { + } else if (ns_msg->flags == RPMSG_NS_CREATE) { if (!_ept) { /* * send callback to application, that can -@@ -602,7 +601,15 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, +@@ -660,7 +660,15 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, } else { _ept->dest_addr = dest; metal_mutex_release(&rdev->lock); @@ -116,7 +115,7 @@ index d5f168c..0868f71 100644 } return RPMSG_SUCCESS; -@@ -683,6 +690,7 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, +@@ -745,6 +753,7 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, #endif /*!VIRTIO_DRIVER_ONLY*/ vdev->features = rpmsg_virtio_get_features(rvdev); rdev->support_ns = !!(vdev->features & (1 << VIRTIO_RPMSG_F_NS)); @@ -124,7 +123,7 @@ index d5f168c..0868f71 100644 #ifndef VIRTIO_DEVICE_ONLY if (role == RPMSG_HOST) { -@@ -778,7 +786,7 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, +@@ -841,7 +850,7 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, * Create name service announcement endpoint if device supports name * service announcement feature. */ diff --git a/openamp/0001-openamp-add-ns_unbind_notify-support.patch b/openamp/0001-openamp-add-ns_unbind_notify-support.patch deleted file mode 100644 index d3fad4628d..0000000000 --- a/openamp/0001-openamp-add-ns_unbind_notify-support.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 57afc457bc16cca04762391f77d22b9219cb0e5f Mon Sep 17 00:00:00 2001 -From: Guiding Li -Date: Tue, 20 Jul 2021 17:52:13 +0800 -Subject: [PATCH 01/12] openamp: add ns_unbind_notify support - -This is for notify rdev unbind event - -Signed-off-by: Guiding Li ---- - lib/include/openamp/rpmsg.h | 1 + - lib/rpmsg/rpmsg_virtio.c | 3 +++ - 2 files changed, 4 insertions(+) - -diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h -index 8b8ec2e..e6acce8 100644 ---- a/lib/include/openamp/rpmsg.h -+++ open-amp/lib/include/openamp/rpmsg.h -@@ -118,6 +118,7 @@ struct rpmsg_device { - unsigned long bitmap[metal_bitmap_longs(RPMSG_ADDR_BMP_SIZE)]; - metal_mutex_t lock; - rpmsg_ns_bind_cb ns_bind_cb; -+ rpmsg_ns_bind_cb ns_unbind_cb; - struct rpmsg_device_ops ops; - bool support_ns; - }; -diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index 57a2083..d5f168c 100644 ---- a/lib/rpmsg/rpmsg_virtio.c -+++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -585,6 +585,9 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, - metal_mutex_release(&rdev->lock); - if (_ept && _ept->ns_unbind_cb) - _ept->ns_unbind_cb(_ept); -+ if (rdev->ns_unbind_cb) -+ rdev->ns_unbind_cb(rdev, name, dest); -+ - } else { - if (!_ept) { - /* --- -2.25.1 - diff --git a/openamp/0003-Negotiate-individual-buffer-size-dynamically.patch b/openamp/0002-Negotiate-individual-buffer-size-dynamically.patch similarity index 88% rename from openamp/0003-Negotiate-individual-buffer-size-dynamically.patch rename to openamp/0002-Negotiate-individual-buffer-size-dynamically.patch index bff1f954c2..71ee90cff2 100644 --- a/openamp/0003-Negotiate-individual-buffer-size-dynamically.patch +++ b/openamp/0002-Negotiate-individual-buffer-size-dynamically.patch @@ -1,14 +1,13 @@ -From c3949d3b4a8883ec54f5db9ae55acac5ada75b81 Mon Sep 17 00:00:00 2001 +From 285e4d359458ef09d397a41de04ada9a6b8d48e7 Mon Sep 17 00:00:00 2001 From: Chao An Date: Mon, 10 Dec 2018 16:26:39 +0800 -Subject: [PATCH 03/12] Negotiate individual buffer size dynamically +Subject: [PATCH 2/9] Negotiate individual buffer size dynamically If slave support VIRTIO_RPMSG_F_BUFSZ(0x04) feature, master determine the buffer size from config space(first 8 bytes), otherwise the default size(512 bytes) will be used. Signed-off-by: Chao An -Signed-off-by: ligd --- lib/include/openamp/remoteproc.h | 17 +++++++++++++++++ lib/include/openamp/rpmsg_virtio.h | 4 +++- @@ -16,7 +15,7 @@ Signed-off-by: ligd 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/include/openamp/remoteproc.h open-amp/lib/include/openamp/remoteproc.h -index 41f5d57..e9111ff 100644 +index 7c79a292..d1efab85 100644 --- a/lib/include/openamp/remoteproc.h +++ open-amp/lib/include/openamp/remoteproc.h @@ -303,6 +303,23 @@ struct fw_rsc_vdev { @@ -44,7 +43,7 @@ index 41f5d57..e9111ff 100644 * struct fw_rsc_vendor - remote processor vendor specific resource * @len: length of the resource diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h -index 255396c..aaba7e1 100644 +index 874c9723..0b22e840 100644 --- a/lib/include/openamp/rpmsg_virtio.h +++ open-amp/lib/include/openamp/rpmsg_virtio.h @@ -16,6 +16,7 @@ @@ -63,7 +62,7 @@ index 255396c..aaba7e1 100644 /** * struct rpmsg_virtio_shm_pool - shared memory pool used for rpmsg buffers -@@ -68,7 +70,7 @@ struct rpmsg_virtio_config { +@@ -72,7 +74,7 @@ struct rpmsg_virtio_config { */ struct rpmsg_virtio_device { struct rpmsg_device rdev; @@ -73,10 +72,10 @@ index 255396c..aaba7e1 100644 struct virtqueue *rvq; struct virtqueue *svq; diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index 0868f71..186f23f 100644 +index 5726c2ca..69537399 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -674,7 +674,8 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, +@@ -737,7 +737,8 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, if (config == NULL) { return RPMSG_ERR_PARAM; } @@ -86,7 +85,7 @@ index 0868f71..186f23f 100644 } #else /*!VIRTIO_DEVICE_ONLY*/ /* Ignore passed config in the virtio-device-only configuration. */ -@@ -692,6 +693,13 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, +@@ -755,6 +756,13 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, rdev->support_ns = !!(vdev->features & (1 << VIRTIO_RPMSG_F_NS)); rdev->support_ack = !!(vdev->features & (1 << VIRTIO_RPMSG_F_ACK)); diff --git a/openamp/0004-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch b/openamp/0003-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch similarity index 82% rename from openamp/0004-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch rename to openamp/0003-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch index f94531e115..5fe242f565 100644 --- a/openamp/0004-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch +++ b/openamp/0003-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch @@ -1,7 +1,7 @@ -From 415f9cdcf5a93cd018fa920e53a9090d5ec94c37 Mon Sep 17 00:00:00 2001 +From 931cd95ab99550befa75703cc36d5e6f6964b63e Mon Sep 17 00:00:00 2001 From: Guiding Li Date: Wed, 20 Feb 2019 11:36:57 +0800 -Subject: [PATCH 04/12] rpmsg: wait endpoint ready in rpmsg_send and +Subject: [PATCH 3/9] rpmsg: wait endpoint ready in rpmsg_send and rpmsg_send_nocopy because the remote need time to return the destination address @@ -9,11 +9,11 @@ because the remote need time to return the destination address Signed-off-by: Guiding Li --- lib/include/openamp/rpmsg.h | 59 ++++++++++++++++++++++++++----------- - lib/rpmsg/rpmsg_virtio.c | 8 ----- - 2 files changed, 42 insertions(+), 25 deletions(-) + lib/rpmsg/rpmsg_virtio.c | 7 ----- + 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h -index 3560bb5..11c3ccb 100644 +index ff3ff8fb..dbe42ea6 100644 --- a/lib/include/openamp/rpmsg.h +++ open-amp/lib/include/openamp/rpmsg.h @@ -15,6 +15,7 @@ @@ -37,7 +37,7 @@ index 3560bb5..11c3ccb 100644 /* Error macros. */ #define RPMSG_SUCCESS 0 #define RPMSG_ERROR_BASE -2000 -@@ -142,6 +149,19 @@ int rpmsg_send_offchannel_raw(struct rpmsg_endpoint *ept, uint32_t src, +@@ -147,6 +154,19 @@ int rpmsg_send_offchannel_raw(struct rpmsg_endpoint *ept, uint32_t src, uint32_t dst, const void *data, int len, int wait); @@ -57,14 +57,17 @@ index 3560bb5..11c3ccb 100644 /** * rpmsg_send() - send a message across to the remote processor * @ept: the rpmsg endpoint -@@ -160,8 +180,17 @@ int rpmsg_send_offchannel_raw(struct rpmsg_endpoint *ept, uint32_t src, +@@ -165,11 +185,20 @@ int rpmsg_send_offchannel_raw(struct rpmsg_endpoint *ept, uint32_t src, static inline int rpmsg_send(struct rpmsg_endpoint *ept, const void *data, int len) { -- return rpmsg_send_offchannel_raw(ept, ept->addr, ept->dest_addr, data, -- len, true); + int tc = 0; + + if (!ept) + return RPMSG_ERR_PARAM; + +- return rpmsg_send_offchannel_raw(ept, ept->addr, ept->dest_addr, data, +- len, true); + for (; tc < RPMSG_TICK_COUNT; tc += RPMSG_TICKS_PER_INTERVAL) { + if (is_rpmsg_ept_ready(ept)) + return rpmsg_send_offchannel_raw(ept, ept->addr, @@ -77,14 +80,17 @@ index 3560bb5..11c3ccb 100644 } /** -@@ -434,8 +463,17 @@ static inline int rpmsg_sendto_nocopy(struct rpmsg_endpoint *ept, +@@ -476,11 +505,20 @@ static inline int rpmsg_sendto_nocopy(struct rpmsg_endpoint *ept, static inline int rpmsg_send_nocopy(struct rpmsg_endpoint *ept, const void *data, int len) { -- return rpmsg_send_offchannel_nocopy(ept, ept->addr, -- ept->dest_addr, data, len); + int tc = 0; + + if (!ept) + return RPMSG_ERR_PARAM; + +- return rpmsg_send_offchannel_nocopy(ept, ept->addr, +- ept->dest_addr, data, len); + for (; tc < RPMSG_TICK_COUNT; tc += RPMSG_TICKS_PER_INTERVAL) { + if (is_rpmsg_ept_ready(ept)) + return rpmsg_send_offchannel_nocopy(ept, ept->addr, @@ -97,7 +103,7 @@ index 3560bb5..11c3ccb 100644 } /** -@@ -508,19 +546,6 @@ int rpmsg_create_ept(struct rpmsg_endpoint *ept, struct rpmsg_device *rdev, +@@ -524,19 +562,6 @@ int rpmsg_create_ept(struct rpmsg_endpoint *ept, struct rpmsg_device *rdev, */ void rpmsg_destroy_ept(struct rpmsg_endpoint *ept); @@ -118,7 +124,7 @@ index 3560bb5..11c3ccb 100644 } #endif diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index 186f23f..d19d3b1 100644 +index 69537399..c56e0cea 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c @@ -10,7 +10,6 @@ @@ -129,7 +135,7 @@ index 186f23f..d19d3b1 100644 #include #include #include -@@ -19,13 +18,6 @@ +@@ -19,12 +18,6 @@ #define RPMSG_NUM_VRINGS 2 @@ -139,10 +145,9 @@ index 186f23f..d19d3b1 100644 -/* Time to wait - In multiple of 1 msecs. */ -#define RPMSG_TICKS_PER_INTERVAL 1000 - -- - /* Default configuration */ - #ifndef VIRTIO_DEVICE_ONLY - #define RPMSG_VIRTIO_DEFAULT_CONFIG \ + /** + * struct vbuff_reclaimer_t - vring buffer recycler + * -- 2.25.1 diff --git a/openamp/0005-openamp-add-new-ops-notify_wait-support.patch b/openamp/0004-openamp-add-new-ops-notify_wait-support.patch similarity index 82% rename from openamp/0005-openamp-add-new-ops-notify_wait-support.patch rename to openamp/0004-openamp-add-new-ops-notify_wait-support.patch index 91d052dbe9..d7e8735f65 100644 --- a/openamp/0005-openamp-add-new-ops-notify_wait-support.patch +++ b/openamp/0004-openamp-add-new-ops-notify_wait-support.patch @@ -1,11 +1,12 @@ -From 00d0f99b49a5647107bc16249a141d1c727ec11e Mon Sep 17 00:00:00 2001 -From: Guiding Li -Date: Thu, 18 Nov 2021 20:54:45 +0800 -Subject: [PATCH 2/9] openamp: add new ops notify_wait() support +From ddc209c9475a2822ffe5d18441bd01718acdbc11 Mon Sep 17 00:00:00 2001 +From: ligd +Date: Fri, 29 Jul 2022 22:57:23 +0800 +Subject: [PATCH 4/9] openamp: add new ops notify_wait() support This can avoid looping check tx buffer -Signed-off-by: Guiding Li +Change-Id: Ie340ed06c306ce978ff165aacaf5b830e3645af8 +Signed-off-by: ligd --- lib/include/openamp/remoteproc.h | 12 ++++++++++++ lib/include/openamp/remoteproc_virtio.h | 2 ++ @@ -14,11 +15,11 @@ Signed-off-by: Guiding Li lib/include/openamp/virtio.h | 1 + lib/remoteproc/remoteproc.c | 11 +++++++++++ lib/remoteproc/remoteproc_virtio.c | 14 ++++++++++++++ - lib/rpmsg/rpmsg_virtio.c | 5 +++++ - 8 files changed, 55 insertions(+) + lib/rpmsg/rpmsg_virtio.c | 7 +++++++ + 8 files changed, 57 insertions(+) diff --git a/lib/include/openamp/remoteproc.h open-amp/lib/include/openamp/remoteproc.h -index e9111ff..d276550 100644 +index d1efab85..f6554404 100644 --- a/lib/include/openamp/remoteproc.h +++ open-amp/lib/include/openamp/remoteproc.h @@ -428,6 +428,18 @@ struct remoteproc_ops { @@ -41,10 +42,10 @@ index e9111ff..d276550 100644 * get_mem * diff --git a/lib/include/openamp/remoteproc_virtio.h open-amp/lib/include/openamp/remoteproc_virtio.h -index 70cff97..eaca76a 100644 +index 6609a1fd..e65488d5 100644 --- a/lib/include/openamp/remoteproc_virtio.h +++ open-amp/lib/include/openamp/remoteproc_virtio.h -@@ -22,6 +22,7 @@ extern "C" { +@@ -25,6 +25,7 @@ extern "C" { /* define vdev notification function user should implement */ typedef int (*rpvdev_notify_func)(void *priv, uint32_t id); @@ -52,7 +53,7 @@ index 70cff97..eaca76a 100644 /** * struct remoteproc_virtio -@@ -37,6 +38,7 @@ struct remoteproc_virtio { +@@ -40,6 +41,7 @@ struct remoteproc_virtio { void *vdev_rsc; struct metal_io_region *vdev_rsc_io; rpvdev_notify_func notify; @@ -61,22 +62,22 @@ index 70cff97..eaca76a 100644 struct metal_list node; }; diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h -index 11c3ccb..6f546e5 100644 +index dbe42ea6..14440e20 100644 --- a/lib/include/openamp/rpmsg.h +++ open-amp/lib/include/openamp/rpmsg.h -@@ -49,6 +49,7 @@ extern "C" { - #define RPMSG_ERR_BUFF_SIZE (RPMSG_ERROR_BASE - 5) +@@ -50,6 +50,7 @@ extern "C" { #define RPMSG_ERR_INIT (RPMSG_ERROR_BASE - 6) #define RPMSG_ERR_ADDR (RPMSG_ERROR_BASE - 7) -+#define RPMSG_ERR_NXIO (RPMSG_ERROR_BASE - 8) + #define RPMSG_ERR_PERM (RPMSG_ERROR_BASE - 8) ++#define RPMSG_ERR_NXIO (RPMSG_ERROR_BASE - 9) struct rpmsg_endpoint; struct rpmsg_device; diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h -index aaba7e1..3ec0b0f 100644 +index 0b22e840..11cb6df9 100644 --- a/lib/include/openamp/rpmsg_virtio.h +++ open-amp/lib/include/openamp/rpmsg_virtio.h -@@ -143,6 +143,15 @@ rpmsg_virtio_create_virtqueues(struct rpmsg_virtio_device *rvdev, +@@ -148,6 +148,15 @@ rpmsg_virtio_create_virtqueues(struct rpmsg_virtio_device *rvdev, callbacks); } @@ -93,7 +94,7 @@ index aaba7e1..3ec0b0f 100644 * rpmsg_virtio_get_buffer_size - get rpmsg virtio buffer size * diff --git a/lib/include/openamp/virtio.h open-amp/lib/include/openamp/virtio.h -index 916132b..0303a5b 100644 +index 916132b4..0303a5b3 100644 --- a/lib/include/openamp/virtio.h +++ open-amp/lib/include/openamp/virtio.h @@ -162,6 +162,7 @@ struct virtio_dispatch { @@ -105,10 +106,10 @@ index 916132b..0303a5b 100644 int virtio_create_virtqueues(struct virtio_device *vdev, unsigned int flags, diff --git a/lib/remoteproc/remoteproc.c open-amp/lib/remoteproc/remoteproc.c -index 9a0cf3e..4c101db 100644 +index f7f9f2df..001b11bf 100644 --- a/lib/remoteproc/remoteproc.c +++ open-amp/lib/remoteproc/remoteproc.c -@@ -880,6 +880,16 @@ static int remoteproc_virtio_notify(void *priv, uint32_t id) +@@ -899,6 +899,16 @@ static int remoteproc_virtio_notify(void *priv, uint32_t id) return 0; } @@ -125,7 +126,7 @@ index 9a0cf3e..4c101db 100644 struct virtio_device * remoteproc_create_virtio(struct remoteproc *rproc, int vdev_id, unsigned int role, -@@ -927,6 +937,7 @@ remoteproc_create_virtio(struct remoteproc *rproc, +@@ -957,6 +967,7 @@ remoteproc_create_virtio(struct remoteproc *rproc, rproc_virtio_wait_remote_ready(vdev); rpvdev = metal_container_of(vdev, struct remoteproc_virtio, vdev); @@ -134,7 +135,7 @@ index 9a0cf3e..4c101db 100644 num_vrings = vdev_rsc->num_of_vrings; diff --git a/lib/remoteproc/remoteproc_virtio.c open-amp/lib/remoteproc/remoteproc_virtio.c -index cbfd966..ef5eef3 100644 +index 169e5b5f..4375c4c3 100644 --- a/lib/remoteproc/remoteproc_virtio.c +++ open-amp/lib/remoteproc/remoteproc_virtio.c @@ -30,6 +30,19 @@ static void rproc_virtio_virtqueue_notify(struct virtqueue *vq) @@ -166,10 +167,10 @@ index cbfd966..ef5eef3 100644 /* * We suppose here that the vdev is in a shared memory so that can diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index d19d3b1..80bfbf7 100644 +index c56e0cea..4960aa8a 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -339,6 +339,11 @@ static void *rpmsg_virtio_get_tx_payload_buffer(struct rpmsg_device *rdev, +@@ -373,6 +373,13 @@ static void *rpmsg_virtio_get_tx_payload_buffer(struct rpmsg_device *rdev, metal_mutex_release(&rdev->lock); if (rp_hdr || !tick_count) break; @@ -177,6 +178,8 @@ index d19d3b1..80bfbf7 100644 + status = rpmsg_virtio_notify_wait(rvdev, rvdev->rvq); + if (status == RPMSG_SUCCESS) + continue; ++ else if (status != RPMSG_ERR_NXIO) ++ break; + metal_sleep_usec(RPMSG_TICKS_PER_INTERVAL); tick_count--; diff --git a/openamp/0007-openamp-don-t-need-check-status-when-get_tx_payload.patch b/openamp/0005-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch similarity index 52% rename from openamp/0007-openamp-don-t-need-check-status-when-get_tx_payload.patch rename to openamp/0005-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch index bc2797730b..3cd7ae3b53 100644 --- a/openamp/0007-openamp-don-t-need-check-status-when-get_tx_payload.patch +++ b/openamp/0005-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch @@ -1,21 +1,21 @@ -From 13f72065d4085cebe10687f486edaa014b4adf6c Mon Sep 17 00:00:00 2001 -From: Jiuzhu Dong -Date: Mon, 18 Apr 2022 15:20:52 +0800 -Subject: [PATCH 07/12] openamp: don't need check status when get_tx_payload +From 5a9d63c1ce2878aa792c49a1205ebb73dbe6258f Mon Sep 17 00:00:00 2001 +From: ligd +Date: Mon, 28 Feb 2022 16:31:54 +0800 +Subject: [PATCH 5/9] rpmsg_virtio: don't need check status when get_tx_payload -Remove redundant check, because this status is already check in -rpmsg_init_vdev_with_config and rpmsg_virtio_wait_remote_ready. -Signed-off-by: Guiding Li -Signed-off-by: Jiuzhu Dong +VELAOS-21 + +Change-Id: Icb01034dfab146b3a02ea2c70dbdf197d8ed419f +Signed-off-by: ligd --- lib/rpmsg/rpmsg_virtio.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index adc3dbc..92f5883 100644 +index 4960aa8a..1f6ce593 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -323,11 +323,6 @@ static void *rpmsg_virtio_get_tx_payload_buffer(struct rpmsg_device *rdev, +@@ -356,11 +356,6 @@ static void *rpmsg_virtio_get_tx_payload_buffer(struct rpmsg_device *rdev, /* Get the associated remote device for channel. */ rvdev = metal_container_of(rdev, struct rpmsg_virtio_device, rdev); diff --git a/openamp/0006-openamp-divide-shram-to-TX-shram-RX-shram-by-config-.patch b/openamp/0006-openamp-divide-shram-to-TX-shram-RX-shram-by-config-.patch deleted file mode 100644 index 7671a38134..0000000000 --- a/openamp/0006-openamp-divide-shram-to-TX-shram-RX-shram-by-config-.patch +++ /dev/null @@ -1,79 +0,0 @@ -From bcaa279299ecd4194faffae71867c0371bf4f4a4 Mon Sep 17 00:00:00 2001 -From: Jiuzhu Dong -Date: Fri, 6 May 2022 10:41:57 +0800 -Subject: [PATCH 06/12] openamp: divide shram to TX shram & RX shram by - config:txrx_shpool - -In the multi core of lower power device, when one of core enters sleep, -it needs to put its corresponding share memory into retention mode to -save power consumption. Based on the limitations of the chip design, -when the CPU to which share memory belongs goes to sleep, the share -memory enters the retention mode, and other cores will not be able -to access it. When the share memory divides tx shm and rx shm -and the core of tx shm and rx shm are different, so that when one -CPU sleeps, the other CPU can still access its own tx shm. - -Signed-off-by: Guiding Li -Signed-off-by: Jiuzhu Dong ---- - lib/include/openamp/rpmsg_virtio.h | 10 ++++++++-- - lib/rpmsg/rpmsg_virtio.c | 5 +++-- - 2 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h -index 3ec0b0f..c81b404 100644 ---- a/lib/include/openamp/rpmsg_virtio.h -+++ open-amp/lib/include/openamp/rpmsg_virtio.h -@@ -56,6 +56,7 @@ struct rpmsg_virtio_shm_pool { - struct rpmsg_virtio_config { - uint32_t h2r_buf_size; - uint32_t r2h_buf_size; -+ bool split_shpool; - }; - - /** -@@ -208,8 +209,13 @@ int rpmsg_init_vdev(struct rpmsg_virtio_device *rvdev, - * @param ns_bind_cb - callback handler for name service announcement without - * local endpoints waiting to bind. - * @param shm_io - pointer to the share memory I/O region. -- * @param shpool - pointer to shared memory pool. rpmsg_virtio_init_shm_pool has -- * to be called first to fill this structure. -+ * @param shpool - pointer to shared memory pool array. -+ * If the config->split_shpool is turn on, the array will contain -+ * two elements, the shpool of txshpool and rxshpool, Otherwise, -+ * the array has only one element, and txshpool rxshpool shares -+ * a shpool. -+ * And rpmsg_virtio_init_shm_pool has to be called first to fill -+ * each shpool in this array. - * @param config - pointer to configuration structure - * - * @return - status of function execution -diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index c555101..adc3dbc 100644 ---- a/lib/rpmsg/rpmsg_virtio.c -+++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -24,6 +24,7 @@ - (&(const struct rpmsg_virtio_config) { \ - .h2r_buf_size = RPMSG_BUFFER_SIZE, \ - .r2h_buf_size = RPMSG_BUFFER_SIZE, \ -+ .split_shpool = false, \ - }) - #else - #define RPMSG_VIRTIO_DEFAULT_CONFIG NULL -@@ -705,11 +706,11 @@ int rpmsg_init_vdev_with_config(struct rpmsg_virtio_device *rvdev, - * Since device is RPMSG Remote so we need to manage the - * shared buffers. Create shared memory pool to handle buffers. - */ -+ rvdev->shpool = config->split_shpool ? shpool + 1 : shpool; - if (!shpool) - return RPMSG_ERR_PARAM; -- if (!shpool->size) -+ if (!shpool->size || !rvdev->shpool->size) - return RPMSG_ERR_NO_BUFF; -- rvdev->shpool = shpool; - - vq_names[0] = "rx_vq"; - vq_names[1] = "tx_vq"; --- -2.25.1 - diff --git a/openamp/0010-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch b/openamp/0006-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch similarity index 75% rename from openamp/0010-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch rename to openamp/0006-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch index 688288ad17..79ddaecda4 100644 --- a/openamp/0010-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch +++ b/openamp/0006-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch @@ -1,21 +1,21 @@ -From 442ccb015805eb5f7d700f80db9893d319ce5781 Mon Sep 17 00:00:00 2001 +From a2c9d79f9b77f057d89ede1395559c0645169b7a Mon Sep 17 00:00:00 2001 From: ligd Date: Tue, 19 Oct 2021 19:45:14 +0800 -Subject: [PATCH 10/12] rpmsg: notify the user when the remote address is +Subject: [PATCH 6/9] rpmsg: notify the user when the remote address is received Change-Id: I2f0601fb38944e0cfb8888aa397740161b159e40 Signed-off-by: ligd --- lib/include/openamp/rpmsg.h | 4 ++++ - lib/rpmsg/rpmsg_virtio.c | 9 +++++++-- - 2 files changed, 11 insertions(+), 2 deletions(-) + lib/rpmsg/rpmsg_virtio.c | 6 ++++++ + 2 files changed, 10 insertions(+) diff --git a/lib/include/openamp/rpmsg.h open-amp/lib/include/openamp/rpmsg.h -index 6f546e5..10d4f5b 100644 +index 14440e20..fbd7f619 100644 --- a/lib/include/openamp/rpmsg.h +++ open-amp/lib/include/openamp/rpmsg.h -@@ -57,6 +57,7 @@ struct rpmsg_device; +@@ -58,6 +58,7 @@ struct rpmsg_device; /* Returns positive value on success or negative error value on failure */ typedef int (*rpmsg_ept_cb)(struct rpmsg_endpoint *ept, void *data, size_t len, uint32_t src, void *priv); @@ -23,7 +23,7 @@ index 6f546e5..10d4f5b 100644 typedef void (*rpmsg_ns_unbind_cb)(struct rpmsg_endpoint *ept); typedef void (*rpmsg_ns_bind_cb)(struct rpmsg_device *rdev, const char *name, uint32_t dest); -@@ -69,6 +70,8 @@ typedef void (*rpmsg_ns_bind_cb)(struct rpmsg_device *rdev, +@@ -70,6 +71,8 @@ typedef void (*rpmsg_ns_bind_cb)(struct rpmsg_device *rdev, * @dest_addr: address of the default remote endpoint binded. * @cb: user rx callback, return value of this callback is reserved * for future use, for now, only allow RPMSG_SUCCESS as return value. @@ -32,7 +32,7 @@ index 6f546e5..10d4f5b 100644 * @ns_unbind_cb: end point service unbind callback, called when remote * ept is destroyed. * @node: end point node. -@@ -83,6 +86,7 @@ struct rpmsg_endpoint { +@@ -84,6 +87,7 @@ struct rpmsg_endpoint { uint32_t addr; uint32_t dest_addr; rpmsg_ept_cb cb; @@ -41,16 +41,13 @@ index 6f546e5..10d4f5b 100644 struct metal_list node; void *priv; diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index 4f26b01..e55e135 100644 +index 1f6ce593..efbcd68d 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -598,14 +598,19 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, - _ept->dest_addr = dest; - metal_mutex_release(&rdev->lock); +@@ -658,12 +658,18 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, if (_ept->name[0] && rdev->support_ack) -- rpmsg_send_ns_message(_ept, -- RPMSG_NS_CREATE_ACK); -+ rpmsg_send_ns_message(_ept, RPMSG_NS_CREATE_ACK); + rpmsg_send_ns_message(_ept, + RPMSG_NS_CREATE_ACK); + /* notify application that the endpoint has been bound */ + if (_ept->ns_bound_cb) + _ept->ns_bound_cb(_ept); diff --git a/openamp/0011-openamp-avoid-double-calling-ns_bound-when-each-othe.patch b/openamp/0007-openamp-avoid-double-calling-ns_bound-when-each-othe.patch similarity index 83% rename from openamp/0011-openamp-avoid-double-calling-ns_bound-when-each-othe.patch rename to openamp/0007-openamp-avoid-double-calling-ns_bound-when-each-othe.patch index 8a51530b53..3831c94b35 100644 --- a/openamp/0011-openamp-avoid-double-calling-ns_bound-when-each-othe.patch +++ b/openamp/0007-openamp-avoid-double-calling-ns_bound-when-each-othe.patch @@ -1,7 +1,7 @@ -From 8405b71cb738096a223c5f7ca02b9fa0de5ae0d6 Mon Sep 17 00:00:00 2001 +From 0e77783658066c02903cc6693460f3bb577e3030 Mon Sep 17 00:00:00 2001 From: Jiuzhu Dong Date: Mon, 11 Apr 2022 13:31:35 +0800 -Subject: [PATCH 11/12] openamp: avoid double calling ns_bound when each other +Subject: [PATCH 7/9] openamp: avoid double calling ns_bound when each other calls create_ept VELAPLATFO-1522 @@ -13,10 +13,10 @@ Signed-off-by: Jiuzhu Dong 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index e55e135..cd3a13d 100644 +index efbcd68d..49817799 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -594,7 +594,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, +@@ -652,7 +652,7 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, metal_mutex_release(&rdev->lock); if (rdev->ns_bind_cb) rdev->ns_bind_cb(rdev, name, dest); @@ -25,7 +25,7 @@ index e55e135..cd3a13d 100644 _ept->dest_addr = dest; metal_mutex_release(&rdev->lock); if (_ept->name[0] && rdev->support_ack) -@@ -603,14 +603,19 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, +@@ -662,14 +662,19 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data, if (_ept->ns_bound_cb) _ept->ns_bound_cb(_ept); } diff --git a/openamp/0008-openamp-add-available_idx-to-dump.patch b/openamp/0008-openamp-add-available_idx-to-dump.patch deleted file mode 100644 index 290f96e355..0000000000 --- a/openamp/0008-openamp-add-available_idx-to-dump.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3ae038f84432e657dff78ed135204210b42a33a9 Mon Sep 17 00:00:00 2001 -From: Guiding Li -Date: Tue, 31 May 2022 23:04:01 +0800 -Subject: [PATCH 08/12] openamp: add available_idx to dump - -Just update debug logs - -Signed-off-by: Guiding Li ---- - lib/virtio/virtqueue.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/lib/virtio/virtqueue.c open-amp/lib/virtio/virtqueue.c -index d989533..2d243b8 100644 ---- a/lib/virtio/virtqueue.c -+++ open-amp/lib/virtio/virtqueue.c -@@ -421,11 +421,11 @@ void virtqueue_dump(struct virtqueue *vq) - VRING_INVALIDATE(vq->vq_ring.used); - - metal_log(METAL_LOG_DEBUG, -- "VQ: %s - size=%d; free=%d; queued=%d; " -- "desc_head_idx=%d; avail.idx=%d; used_cons_idx=%d; " -+ "VQ: %s - size=%d; free=%d; queued=%d; desc_head_idx=%d; " -+ "available_idx=%d; avail.idx=%d; used_cons_idx=%d; " - "used.idx=%d; avail.flags=0x%x; used.flags=0x%x\r\n", - vq->vq_name, vq->vq_nentries, vq->vq_free_cnt, -- vq->vq_queued_cnt, vq->vq_desc_head_idx, -+ vq->vq_queued_cnt, vq->vq_desc_head_idx, vq->vq_available_idx, - vq->vq_ring.avail->idx, vq->vq_used_cons_idx, - vq->vq_ring.used->idx, vq->vq_ring.avail->flags, - vq->vq_ring.used->flags); --- -2.25.1 - diff --git a/openamp/0012-remoteproc-make-all-elf_-functions-static-except-elf.patch b/openamp/0008-remoteproc-make-all-elf_-functions-static-except-elf.patch similarity index 97% rename from openamp/0012-remoteproc-make-all-elf_-functions-static-except-elf.patch rename to openamp/0008-remoteproc-make-all-elf_-functions-static-except-elf.patch index 6e25df2204..8bb09a716d 100644 --- a/openamp/0012-remoteproc-make-all-elf_-functions-static-except-elf.patch +++ b/openamp/0008-remoteproc-make-all-elf_-functions-static-except-elf.patch @@ -1,7 +1,7 @@ -From fb046d85d5e098f58af037322f0de2f663e8f460 Mon Sep 17 00:00:00 2001 +From bcd10078fe4266cadbc437b130832dd90c00df33 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Fri, 15 Nov 2019 19:01:49 +0800 -Subject: [PATCH 12/12] remoteproc: make all elf_* functions static except +Subject: [PATCH 8/9] remoteproc: make all elf_* functions static except elf_identify it's the best practice to reduce the name scope as small as possible @@ -13,7 +13,7 @@ Signed-off-by: Xiang Xiao 2 files changed, 14 insertions(+), 107 deletions(-) diff --git a/lib/include/openamp/elf_loader.h open-amp/lib/include/openamp/elf_loader.h -index e7dda74..916a23f 100644 +index e7dda748..916a23f9 100644 --- a/lib/include/openamp/elf_loader.h +++ open-amp/lib/include/openamp/elf_loader.h @@ -323,99 +323,6 @@ extern const struct loader_ops elf_ops; @@ -117,7 +117,7 @@ index e7dda74..916a23f 100644 #if defined __cplusplus } diff --git a/lib/remoteproc/elf_loader.c open-amp/lib/remoteproc/elf_loader.c -index c90b8d4..ffb253f 100644 +index c90b8d46..ffb253fb 100644 --- a/lib/remoteproc/elf_loader.c +++ open-amp/lib/remoteproc/elf_loader.c @@ -392,9 +392,9 @@ int elf_identify(const void *img_data, size_t len) diff --git a/openamp/0009-Fix-warn-declaration-of-vring_rsc-shadows-a-previous.patch b/openamp/0009-Fix-warn-declaration-of-vring_rsc-shadows-a-previous.patch new file mode 100644 index 0000000000..caa360fcc1 --- /dev/null +++ b/openamp/0009-Fix-warn-declaration-of-vring_rsc-shadows-a-previous.patch @@ -0,0 +1,27 @@ +From 3af4aed5e9f7d0299ded056adcdd1259fc44f64c Mon Sep 17 00:00:00 2001 +From: Xiang Xiao +Date: Sun, 6 Nov 2022 00:51:35 +0800 +Subject: [PATCH 9/9] Fix warn: declaration of 'vring_rsc' shadows a previous + local + +Signed-off-by: Xiang Xiao +--- + lib/remoteproc/rsc_table_parser.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/lib/remoteproc/rsc_table_parser.c open-amp/lib/remoteproc/rsc_table_parser.c +index 80879380..4cccf4f1 100644 +--- a/lib/remoteproc/rsc_table_parser.c ++++ open-amp/lib/remoteproc/rsc_table_parser.c +@@ -144,8 +144,6 @@ int handle_vdev_rsc(struct remoteproc *rproc, void *rsc) + + num_vrings = vdev_rsc->num_of_vrings; + for (i = 0; i < num_vrings; i++) { +- struct fw_rsc_vdev_vring *vring_rsc; +- + vring_rsc = &vdev_rsc->vring[i]; + notifyid = vring_rsc->notifyid; + notifyid = remoteproc_allocate_id(rproc, +-- +2.25.1 + diff --git a/openamp/0009-openamp-firstly-take-all-buffer-from-shram-pool.patch b/openamp/0009-openamp-firstly-take-all-buffer-from-shram-pool.patch deleted file mode 100644 index c22cf3138e..0000000000 --- a/openamp/0009-openamp-firstly-take-all-buffer-from-shram-pool.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 8aff77d4ceea809da273b68763aea737ed81da38 Mon Sep 17 00:00:00 2001 -From: Guiding Li -Date: Tue, 2 Aug 2022 11:12:19 +0800 -Subject: [PATCH 09/12] openamp: firstly take all buffer from shram pool - -1. the memory already alloced for shram -2. this can help dump the right free cnt - -Signed-off-by: Guiding Li ---- - lib/rpmsg/rpmsg_virtio.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c -index 92f5883..4f26b01 100644 ---- a/lib/rpmsg/rpmsg_virtio.c -+++ open-amp/lib/rpmsg/rpmsg_virtio.c -@@ -154,12 +154,13 @@ static void *rpmsg_virtio_get_tx_buffer(struct rpmsg_virtio_device *rvdev, - - #ifndef VIRTIO_DEVICE_ONLY - if (role == RPMSG_HOST) { -- data = virtqueue_get_buffer(rvdev->svq, len, idx); -- if (!data && rvdev->svq->vq_free_cnt) { -- data = rpmsg_virtio_shm_pool_get_buffer(rvdev->shpool, -- rvdev->config.h2r_buf_size); -+ data = rpmsg_virtio_shm_pool_get_buffer(rvdev->shpool, -+ rvdev->config.h2r_buf_size); -+ if (data) { - *len = rvdev->config.h2r_buf_size; - *idx = 0; -+ } else { -+ data = virtqueue_get_buffer(rvdev->svq, len, idx); - } - } - #endif /*!VIRTIO_DEVICE_ONLY*/ --- -2.25.1 - diff --git a/openamp/Makefile b/openamp/Makefile index 2313df27fd..4bf73b0c52 100644 --- a/openamp/Makefile +++ b/openamp/Makefile @@ -20,7 +20,7 @@ include $(TOPDIR)/Make.defs -VERSION ?= 2022.04.0 +VERSION ?= 2022.10.0 include libmetal.defs include open-amp.defs diff --git a/openamp/open-amp.defs b/openamp/open-amp.defs index e0fcf76fe3..fa65b60f60 100644 --- a/openamp/open-amp.defs +++ b/openamp/open-amp.defs @@ -35,18 +35,15 @@ ifeq ($(wildcard open-amp/.git),) $(Q) curl -L https://github.com/OpenAMP/open-amp/archive/v$(VERSION).zip -o open-amp.zip $(Q) unzip -o open-amp.zip $(Q) mv open-amp-$(VERSION) open-amp - $(Q) patch -p0 < 0001-openamp-add-ns_unbind_notify-support.patch - $(Q) patch -p0 < 0002-ns-acknowledge-the-received-creation-message.patch - $(Q) patch -p0 < 0003-Negotiate-individual-buffer-size-dynamically.patch - $(Q) patch -p0 < 0004-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch - $(Q) patch -p0 < 0005-openamp-add-new-ops-notify_wait-support.patch - $(Q) patch -p0 < 0006-openamp-divide-shram-to-TX-shram-RX-shram-by-config-.patch - $(Q) patch -p0 < 0007-openamp-don-t-need-check-status-when-get_tx_payload.patch - $(Q) patch -p0 < 0008-openamp-add-available_idx-to-dump.patch - $(Q) patch -p0 < 0009-openamp-firstly-take-all-buffer-from-shram-pool.patch - $(Q) patch -p0 < 0010-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch - $(Q) patch -p0 < 0011-openamp-avoid-double-calling-ns_bound-when-each-othe.patch - $(Q) patch -p0 < 0012-remoteproc-make-all-elf_-functions-static-except-elf.patch + $(Q) patch -p0 < 0001-ns-acknowledge-the-received-creation-message.patch + $(Q) patch -p0 < 0002-Negotiate-individual-buffer-size-dynamically.patch + $(Q) patch -p0 < 0003-rpmsg-wait-endpoint-ready-in-rpmsg_send-and-rpmsg_se.patch + $(Q) patch -p0 < 0004-openamp-add-new-ops-notify_wait-support.patch + $(Q) patch -p0 < 0005-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch + $(Q) patch -p0 < 0006-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch + $(Q) patch -p0 < 0007-openamp-avoid-double-calling-ns_bound-when-each-othe.patch + $(Q) patch -p0 < 0008-remoteproc-make-all-elf_-functions-static-except-elf.patch + $(Q) patch -p0 < 0009-Fix-warn-declaration-of-vring_rsc-shadows-a-previous.patch endif .openamp_headers: open-amp.zip