You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2022/11/07 20:15:04 UTC

[incubator-nuttx] branch master updated: openamp: update openmap lib version to 2022.10.0

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 7ad4b573fb openamp: update openmap lib version to 2022.10.0
7ad4b573fb is described below

commit 7ad4b573fbf62cc71b3e3f9c247ff9aa7a1f6e26
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Nov 5 22:16:58 2022 +0800

    openamp: update openmap lib version to 2022.10.0
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 ...cknowledge-the-received-creation-message.patch} | 33 +++++----
 ...0001-openamp-add-ns_unbind_notify-support.patch | 42 ------------
 ...tiate-individual-buffer-size-dynamically.patch} | 17 +++--
 ...ndpoint-ready-in-rpmsg_send-and-rpmsg_se.patch} | 43 ++++++------
 ...-openamp-add-new-ops-notify_wait-support.patch} | 51 +++++++-------
 ...-don-t-need-check-status-when-get_tx_pay.patch} | 20 +++---
 ...ide-shram-to-TX-shram-RX-shram-by-config-.patch | 79 ----------------------
 ...-the-user-when-the-remote-address-is-rec.patch} | 27 ++++----
 ...d-double-calling-ns_bound-when-each-othe.patch} | 10 +--
 .../0008-openamp-add-available_idx-to-dump.patch   | 34 ----------
 ...ake-all-elf_-functions-static-except-elf.patch} |  8 +--
 ...claration-of-vring_rsc-shadows-a-previous.patch | 27 ++++++++
 ...p-firstly-take-all-buffer-from-shram-pool.patch | 38 -----------
 openamp/Makefile                                   |  2 +-
 openamp/open-amp.defs                              | 21 +++---
 15 files changed, 143 insertions(+), 309 deletions(-)

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 <xi...@xiaomi.com>
 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 <xi...@xiaomi.com>
  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 <li...@xiaomi.com>
-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 <li...@xiaomi.com>
----
- 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 <an...@pinecone.net>
 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 <an...@pinecone.net>
-Signed-off-by: ligd <li...@xiaomi.com>
 ---
  lib/include/openamp/remoteproc.h   | 17 +++++++++++++++++
  lib/include/openamp/rpmsg_virtio.h |  4 +++-
@@ -16,7 +15,7 @@ Signed-off-by: ligd <li...@xiaomi.com>
  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 <li...@pinecone.net>
 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 <li...@pinecone.net>
 ---
  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 <metal/utilities.h>
  #include <openamp/rpmsg_virtio.h>
  #include <openamp/virtqueue.h>
-@@ -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 <li...@xiaomi.com>
-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 <li...@xiaomi.com>
+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 <li...@xiaomi.com>
+Change-Id: Ie340ed06c306ce978ff165aacaf5b830e3645af8
+Signed-off-by: ligd <li...@xiaomi.com>
 ---
  lib/include/openamp/remoteproc.h        | 12 ++++++++++++
  lib/include/openamp/remoteproc_virtio.h |  2 ++
@@ -14,11 +15,11 @@ Signed-off-by: Guiding Li <li...@xiaomi.com>
  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 <do...@xiaomi.com>
-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 <li...@xiaomi.com>
+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 <li...@xiaomi.com>
-Signed-off-by: Jiuzhu Dong <do...@xiaomi.com>
+VELAOS-21
+
+Change-Id: Icb01034dfab146b3a02ea2c70dbdf197d8ed419f
+Signed-off-by: ligd <li...@xiaomi.com>
 ---
  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 <do...@xiaomi.com>
-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 <li...@xiaomi.com>
-Signed-off-by: Jiuzhu Dong <do...@xiaomi.com>
----
- 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 <li...@xiaomi.com>
 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 <li...@xiaomi.com>
 ---
  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 <do...@xiaomi.com>
 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 <do...@xiaomi.com>
  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 <li...@xiaomi.com>
-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 <li...@xiaomi.com>
----
- 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 <xi...@xiaomi.com>
 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 <xi...@xiaomi.com>
  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 <xi...@xiaomi.com>
+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 <xi...@xiaomi.com>
+---
+ 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 <li...@xiaomi.com>
-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 <li...@xiaomi.com>
----
- 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