You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/05/01 19:09:22 UTC

[incubator-nuttx] branch master updated: openamp: Update to 2020.04.0 release

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

gnutt 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 17112f4  openamp: Update to 2020.04.0 release
17112f4 is described below

commit 17112f4eede2b73c50a0b1e101c078db5f0a5108
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat May 2 01:29:40 2020 +0800

    openamp: Update to 2020.04.0 release
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 ...x-change-sched_kfree-to-metal_free_memory.patch | 29 ------------
 ...e-the-address-check-in-rpmsg_send-rpmsg_t.patch |  2 +-
 ...-rpmsg_register_endpoint-into-rpmsg_init_.patch |  4 +-
 ...dn-t-allocate-0-1023-address-in-rpmsg_cre.patch |  2 +-
 .../0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch  |  4 +-
 ...n-fail-if-either-source-or-destination-ad.patch |  2 +-
 ...eproc_mmap-support-va-to-pa-da-conversion.patch | 53 ++++++++++------------
 .../0007-rpmsg-bring-back-zero-copy-transfer.patch |  6 +--
 ...acknowledge-the-received-creation-message.patch |  6 +--
 ...proc_virtio_read_config-rproc_virtio_writ.patch | 12 ++---
 ...otiate-individual-buffer-size-dynamically.patch |  8 ++--
 openamp/Makefile                                   |  2 +-
 openamp/libmetal.defs                              |  1 -
 13 files changed, 48 insertions(+), 83 deletions(-)

diff --git a/openamp/0001-nuttx-change-sched_kfree-to-metal_free_memory.patch b/openamp/0001-nuttx-change-sched_kfree-to-metal_free_memory.patch
deleted file mode 100644
index 94a848d..0000000
--- a/openamp/0001-nuttx-change-sched_kfree-to-metal_free_memory.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e84d8dd13d31de4942bbf4ec8093932961b9d1b9 Mon Sep 17 00:00:00 2001
-From: Xiang Xiao <xi...@xiaomi.com>
-Date: Tue, 21 Apr 2020 22:02:38 +0800
-Subject: [PATCH] nuttx: change sched_kfree to metal_free_memory
-
-since the upstream remove sched_kfree and put the similar logic into kmm_free:
-https://github.com/apache/incubator-nuttx/commit/231ad202ee0a3abfd2e14fab1f218b588f61284b
-
-Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
----
- lib/system/nuttx/irq.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/system/nuttx/irq.c libmetal/lib/system/nuttx/irq.c
-index 476eab9..84200d3 100644
---- a/lib/system/nuttx/irq.c
-+++ libmetal/lib/system/nuttx/irq.c
-@@ -45,7 +45,7 @@ static int metal_cntr_irq_handler(int irq, void *context, void *data)
- 
- 	/* context == NULL mean unregister */
- 	irqchain_detach(irq, metal_cntr_irq_handler, data);
--	sched_kfree(data);
-+	metal_free_memory(data);
- 	return 0;
- }
- 
--- 
-2.17.1
-
diff --git a/openamp/0001-rpmsg-remove-the-address-check-in-rpmsg_send-rpmsg_t.patch b/openamp/0001-rpmsg-remove-the-address-check-in-rpmsg_send-rpmsg_t.patch
index 023d244..8e2edab 100644
--- a/openamp/0001-rpmsg-remove-the-address-check-in-rpmsg_send-rpmsg_t.patch
+++ b/openamp/0001-rpmsg-remove-the-address-check-in-rpmsg_send-rpmsg_t.patch
@@ -1,4 +1,4 @@
-From aca01202ec47984ea90d3904560b973976cab1e5 Mon Sep 17 00:00:00 2001
+From 5bc0ae0942fa9a4b9d321e31445457c31c888530 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Fri, 24 Apr 2020 01:44:31 +0800
 Subject: [PATCH 01/10] rpmsg: remove the address check in
diff --git a/openamp/0002-rpmsg-merge-rpmsg_register_endpoint-into-rpmsg_init_.patch b/openamp/0002-rpmsg-merge-rpmsg_register_endpoint-into-rpmsg_init_.patch
index 52a1f57..791efdc 100644
--- a/openamp/0002-rpmsg-merge-rpmsg_register_endpoint-into-rpmsg_init_.patch
+++ b/openamp/0002-rpmsg-merge-rpmsg_register_endpoint-into-rpmsg_init_.patch
@@ -1,4 +1,4 @@
-From c4c3577a3d7a1e957c84f86caa64b7e076b9db89 Mon Sep 17 00:00:00 2001
+From d58fa6ab189fded40786e7d025036a1c16c773c4 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Fri, 24 Apr 2020 03:40:56 +0800
 Subject: [PATCH 02/10] rpmsg: merge rpmsg_register_endpoint into
@@ -108,7 +108,7 @@ index f63c958..9c46970 100644
  static inline struct rpmsg_endpoint *
  rpmsg_get_ept_from_addr(struct rpmsg_device *rdev, uint32_t addr)
 diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c
-index cf3ec21..ff1226b 100644
+index 8165216..4dea4c0 100644
 --- a/lib/rpmsg/rpmsg_virtio.c
 +++ open-amp/lib/rpmsg/rpmsg_virtio.c
 @@ -636,10 +636,9 @@ int rpmsg_init_vdev(struct rpmsg_virtio_device *rvdev,
diff --git a/openamp/0003-rpmsg-shouldn-t-allocate-0-1023-address-in-rpmsg_cre.patch b/openamp/0003-rpmsg-shouldn-t-allocate-0-1023-address-in-rpmsg_cre.patch
index b550c0d..b425fa3 100644
--- a/openamp/0003-rpmsg-shouldn-t-allocate-0-1023-address-in-rpmsg_cre.patch
+++ b/openamp/0003-rpmsg-shouldn-t-allocate-0-1023-address-in-rpmsg_cre.patch
@@ -1,4 +1,4 @@
-From 373d773c188920088af1673867de5cfed12ea4de Mon Sep 17 00:00:00 2001
+From ca34df45f5d4893be223346b06cc75f370452386 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Fri, 24 Apr 2020 01:33:12 +0800
 Subject: [PATCH 03/10] rpmsg: shouldn't allocate 0-1023 address in
diff --git a/openamp/0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch b/openamp/0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch
index 59d89df..df72f2f 100644
--- a/openamp/0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch
+++ b/openamp/0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch
@@ -1,4 +1,4 @@
-From 2a82b3350bc5eb44d6ffd66da6e3bae6d15ec84c Mon Sep 17 00:00:00 2001
+From 8a55f0f3c2fec8c817ad579b070040ee8058c536 Mon Sep 17 00:00:00 2001
 From: ligd <li...@pinecone.net>
 Date: Wed, 20 Feb 2019 11:36:57 +0800
 Subject: [PATCH 04/10] rpmsg: wait ept ready in rpmsg_send
@@ -99,7 +99,7 @@ index 3403240..7000453 100644
  }
  #endif
 diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c
-index ff1226b..17f2998 100644
+index 4dea4c0..44b46d4 100644
 --- a/lib/rpmsg/rpmsg_virtio.c
 +++ open-amp/lib/rpmsg/rpmsg_virtio.c
 @@ -8,7 +8,6 @@
diff --git a/openamp/0005-rpmsg-return-fail-if-either-source-or-destination-ad.patch b/openamp/0005-rpmsg-return-fail-if-either-source-or-destination-ad.patch
index fd4ccaf..fbf9cdf 100644
--- a/openamp/0005-rpmsg-return-fail-if-either-source-or-destination-ad.patch
+++ b/openamp/0005-rpmsg-return-fail-if-either-source-or-destination-ad.patch
@@ -1,4 +1,4 @@
-From 8169c7954d432c6abd8db8f1bde35890bba672ff Mon Sep 17 00:00:00 2001
+From 3ea6f30819b25281ec80c68b3abd779981311a77 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Fri, 24 Apr 2020 02:22:15 +0800
 Subject: [PATCH 05/10] rpmsg: return fail if either source or destination
diff --git a/openamp/0006-remoteproc_mmap-support-va-to-pa-da-conversion.patch b/openamp/0006-remoteproc_mmap-support-va-to-pa-da-conversion.patch
index e6a4fa7..3c915e8 100644
--- a/openamp/0006-remoteproc_mmap-support-va-to-pa-da-conversion.patch
+++ b/openamp/0006-remoteproc_mmap-support-va-to-pa-da-conversion.patch
@@ -1,4 +1,4 @@
-From bdadd236975ba4b4d9011d3b86d528d305476cb2 Mon Sep 17 00:00:00 2001
+From 27026fc4c781a9dbd328059884b9b94ff39ad6b9 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Fri, 15 Mar 2019 01:51:03 +0800
 Subject: [PATCH 06/10] remoteproc_mmap support va to pa/da conversion
@@ -10,16 +10,16 @@ Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
 ---
  .../load_fw/zynqmp_r5_lcm_rproc_example.c     |  69 +++++------
  apps/machine/zynq7/platform_info.c            |  16 +--
- apps/machine/zynq7/zynq_a9_rproc.c            |  40 +++----
+ apps/machine/zynq7/zynq_a9_rproc.c            |  40 ++++---
  apps/machine/zynqmp/platform_info.c           |   6 +-
  apps/machine/zynqmp/zynqmp_linux_r5_proc.c    |  40 ++++---
  apps/machine/zynqmp_r5/platform_info.c        |  16 +--
- apps/machine/zynqmp_r5/zynqmp_r5_a53_rproc.c  |  38 +++---
- .../linux/machine/generic/platform_info.c     |  52 ++++----
- lib/include/openamp/remoteproc.h              |  19 +--
- lib/remoteproc/remoteproc.c                   | 112 ++++++++++--------
+ apps/machine/zynqmp_r5/zynqmp_r5_a53_rproc.c  |  38 +++----
+ .../linux/machine/generic/platform_info.c     |  52 +++++----
+ lib/include/openamp/remoteproc.h              |  19 ++--
+ lib/remoteproc/remoteproc.c                   | 107 ++++++++++--------
  lib/remoteproc/rsc_table_parser.c             |   2 +-
- 11 files changed, 212 insertions(+), 198 deletions(-)
+ 11 files changed, 209 insertions(+), 196 deletions(-)
 
 diff --git a/apps/examples/load_fw/zynqmp_r5_lcm_rproc_example.c open-amp/apps/examples/load_fw/zynqmp_r5_lcm_rproc_example.c
 index 26a09e5..e224631 100644
@@ -429,10 +429,10 @@ index ee25368..ef5299c 100644
  
  static int zynqmp_r5_a53_proc_notify(struct remoteproc *rproc, uint32_t id)
 diff --git a/apps/system/linux/machine/generic/platform_info.c open-amp/apps/system/linux/machine/generic/platform_info.c
-index 5743c5c..66d15c1 100644
+index 0b0f721..748fd83 100644
 --- a/apps/system/linux/machine/generic/platform_info.c
 +++ open-amp/apps/system/linux/machine/generic/platform_info.c
-@@ -319,39 +319,43 @@ static void linux_proc_remove(struct remoteproc *rproc)
+@@ -300,39 +300,43 @@ static void linux_proc_remove(struct remoteproc *rproc)
  	}
  }
  
@@ -497,7 +497,7 @@ index 5743c5c..66d15c1 100644
  }
  
  static int linux_proc_notify(struct remoteproc *rproc, uint32_t id)
-@@ -420,7 +424,7 @@ static struct remoteproc *
+@@ -391,7 +395,7 @@ static struct remoteproc *
  platform_create_proc(int proc_index, int rsc_index)
  {
  	struct remoteproc_priv *prproc;
@@ -506,7 +506,7 @@ index 5743c5c..66d15c1 100644
  	int rsc_size;
  	int ret;
  	metal_phys_addr_t pa;
-@@ -449,8 +453,8 @@ platform_create_proc(int proc_index, int rsc_index)
+@@ -420,8 +424,8 @@ platform_create_proc(int proc_index, int rsc_index)
  
  	/* Mmap resource table */
  	pa = RSC_MEM_PA;
@@ -560,7 +560,7 @@ index a83aa12..b34cb1a 100644
  /**
   * remoteproc_set_rsc_table
 diff --git a/lib/remoteproc/remoteproc.c open-amp/lib/remoteproc/remoteproc.c
-index 057edc6..27fcdb4 100644
+index 5afb40c..34b8cb8 100644
 --- a/lib/remoteproc/remoteproc.c
 +++ open-amp/lib/remoteproc/remoteproc.c
 @@ -295,13 +295,14 @@ struct metal_io_region *
@@ -702,18 +702,17 @@ index 057edc6..27fcdb4 100644
  }
  
  int remoteproc_load(struct remoteproc *rproc, const char *path,
-@@ -529,8 +542,8 @@ int remoteproc_load(struct remoteproc *rproc, const char *path,
+@@ -529,8 +542,7 @@ int remoteproc_load(struct remoteproc *rproc, const char *path,
  			img_data = NULL;
  			/* get the I/O region from remoteproc */
  			pa = METAL_BAD_PHYS;
--			(void)remoteproc_mmap(rproc, &pa, &da, nmemsize, 0, &io);
--			if (pa == METAL_BAD_PHYS || io == NULL) {
+-			(void)remoteproc_mmap(rproc, &pa, &da, nmemsize, 0,
+-					      &io);
 +			remoteproc_mmap(rproc, &pa, &da, NULL, nmemsize, 0, &io);
-+			if (pa == METAL_BAD_PHYS || !io) {
+ 			if (pa == METAL_BAD_PHYS || !io) {
  				metal_log(METAL_LOG_ERROR,
  					  "load failed, no mapping for 0x%llx.\r\n",
- 					  da);
-@@ -599,8 +612,9 @@ int remoteproc_load(struct remoteproc *rproc, const char *path,
+@@ -600,8 +612,9 @@ int remoteproc_load(struct remoteproc *rproc, const char *path,
  
  		metal_log(METAL_LOG_DEBUG,
  			  "%s, update resource table\r\n", __func__);
@@ -725,31 +724,27 @@ index 057edc6..27fcdb4 100644
  		if (rsc_table) {
  			size_t rsc_io_offset;
  
-@@ -759,8 +773,8 @@ int remoteproc_load_noblock(struct remoteproc *rproc,
+@@ -760,7 +773,7 @@ int remoteproc_load_noblock(struct remoteproc *rproc,
  		if (da != RPROC_LOAD_ANYADDR) {
  			/* get the I/O region from remoteproc */
  			*pa = METAL_BAD_PHYS;
 -			(void)remoteproc_mmap(rproc, pa, &da, *nmlen, 0, io);
--			if (*pa == METAL_BAD_PHYS || io == NULL) {
 +			remoteproc_mmap(rproc, pa, &da, NULL, *nmlen, 0, io);
-+			if (*pa == METAL_BAD_PHYS || !io) {
+ 			if (*pa == METAL_BAD_PHYS || !io) {
  				metal_log(METAL_LOG_ERROR,
  					  "load failed, no mapping for 0x%llx.\r\n",
- 					  da);
-@@ -784,9 +798,9 @@ int remoteproc_load_noblock(struct remoteproc *rproc,
+@@ -785,8 +798,8 @@ int remoteproc_load_noblock(struct remoteproc *rproc,
  				ret = -RPROC_ENOMEM;
  				goto error1;
  			}
 -			rsc_table = remoteproc_mmap(rproc, NULL, &rsc_da,
 -						    rsc_size, 0, io);
--			if (*io == NULL) {
 +			remoteproc_mmap(rproc, NULL, &rsc_da,
 +					&rsc_table, rsc_size, 0, io);
-+			if (!*io) {
+ 			if (!*io) {
  				metal_log(METAL_LOG_ERROR,
  					  "load failed: failed to mmap rsc\r\n");
- 				metal_free_memory(lrsc_table);
-@@ -923,7 +937,7 @@ remoteproc_create_virtio(struct remoteproc *rproc,
+@@ -924,7 +937,7 @@ remoteproc_create_virtio(struct remoteproc *rproc,
  		metal_phys_addr_t da;
  		unsigned int num_descs, align;
  		struct metal_io_region *io;
@@ -758,7 +753,7 @@ index 057edc6..27fcdb4 100644
  		size_t size;
  		int ret;
  
-@@ -933,7 +947,7 @@ remoteproc_create_virtio(struct remoteproc *rproc,
+@@ -934,7 +947,7 @@ remoteproc_create_virtio(struct remoteproc *rproc,
  		num_descs = vring_rsc->num;
  		align = vring_rsc->align;
  		size = vring_size(num_descs, align);
@@ -768,7 +763,7 @@ index 057edc6..27fcdb4 100644
  			goto err1;
  		ret = rproc_virtio_init_vring(vdev, i, notifyid,
 diff --git a/lib/remoteproc/rsc_table_parser.c open-amp/lib/remoteproc/rsc_table_parser.c
-index 184a463..816a0ee 100644
+index e43fa72..0bfd163 100644
 --- a/lib/remoteproc/rsc_table_parser.c
 +++ open-amp/lib/remoteproc/rsc_table_parser.c
 @@ -109,7 +109,7 @@ int handle_carve_out_rsc(struct remoteproc *rproc, void *rsc)
diff --git a/openamp/0007-rpmsg-bring-back-zero-copy-transfer.patch b/openamp/0007-rpmsg-bring-back-zero-copy-transfer.patch
index 5a65e52..7ac5ba6 100644
--- a/openamp/0007-rpmsg-bring-back-zero-copy-transfer.patch
+++ b/openamp/0007-rpmsg-bring-back-zero-copy-transfer.patch
@@ -1,4 +1,4 @@
-From 4224f5f028aec8ebc13e1e203cbae3127b07605e Mon Sep 17 00:00:00 2001
+From e2233e080ef0ad62682f1725e17abb07e939ed50 Mon Sep 17 00:00:00 2001
 From: anchao <an...@pinecone.net>
 Date: Mon, 10 Dec 2018 19:39:01 +0800
 Subject: [PATCH 07/10] rpmsg: bring back zero copy transfer
@@ -297,7 +297,7 @@ index 9c46970..3db6b24 100644
  /**
   * enum rpmsg_ns_flags - dynamic name service announcement flags
 diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c
-index 17f2998..a525066 100644
+index 44b46d4..195189d 100644
 --- a/lib/rpmsg/rpmsg_virtio.c
 +++ open-amp/lib/rpmsg/rpmsg_virtio.c
 @@ -140,6 +140,7 @@ static void *rpmsg_virtio_get_tx_buffer(struct rpmsg_virtio_device *rvdev,
@@ -453,7 +453,7 @@ index 17f2998..a525066 100644
 +		}
  
  		rp_hdr = rpmsg_virtio_get_rx_buffer(rvdev, &len, &idx);
- 		if (rp_hdr == NULL) {
+ 		if (!rp_hdr) {
 @@ -522,6 +644,10 @@ int rpmsg_init_vdev(struct rpmsg_virtio_device *rvdev,
  	rvdev->vdev = vdev;
  	rdev->ns_bind_cb = ns_bind_cb;
diff --git a/openamp/0008-ns-acknowledge-the-received-creation-message.patch b/openamp/0008-ns-acknowledge-the-received-creation-message.patch
index 1f527b7..be3ecb8 100644
--- a/openamp/0008-ns-acknowledge-the-received-creation-message.patch
+++ b/openamp/0008-ns-acknowledge-the-received-creation-message.patch
@@ -1,4 +1,4 @@
-From c2d2e03d9a0ddf9e1782c33fd459973c9bc7275a Mon Sep 17 00:00:00 2001
+From 3ea08a8002de5e4992bed32567ecb05c887f31be Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Mon, 7 Jan 2019 02:15:42 +0800
 Subject: [PATCH 08/10] ns: acknowledge the received creation message
@@ -28,7 +28,7 @@ index 0b46ee1..318acd1 100644
  
  /**
 diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h
-index 528b9bf..a2dd504 100644
+index 2209a48..e6e5fa2 100644
 --- a/lib/include/openamp/rpmsg_virtio.h
 +++ open-amp/lib/include/openamp/rpmsg_virtio.h
 @@ -28,6 +28,7 @@ extern "C" {
@@ -79,7 +79,7 @@ index 3db6b24..d513a56 100644
  
  /**
 diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c
-index a525066..e57b1c2 100644
+index 195189d..9988a1e 100644
 --- a/lib/rpmsg/rpmsg_virtio.c
 +++ open-amp/lib/rpmsg/rpmsg_virtio.c
 @@ -586,13 +586,13 @@ static int rpmsg_virtio_ns_callback(struct rpmsg_endpoint *ept, void *data,
diff --git a/openamp/0009-implement-rproc_virtio_read_config-rproc_virtio_writ.patch b/openamp/0009-implement-rproc_virtio_read_config-rproc_virtio_writ.patch
index 7faf2b3..3678826 100644
--- a/openamp/0009-implement-rproc_virtio_read_config-rproc_virtio_writ.patch
+++ b/openamp/0009-implement-rproc_virtio_read_config-rproc_virtio_writ.patch
@@ -1,4 +1,4 @@
-From 1d94cd9ae8345543fa93c12cdc11ccbc2ca5b127 Mon Sep 17 00:00:00 2001
+From 9bbc2dcd43f6107a7e0b1eec16bab10e533329f2 Mon Sep 17 00:00:00 2001
 From: Xiang Xiao <xi...@xiaomi.com>
 Date: Thu, 3 Jan 2019 14:20:48 +0800
 Subject: [PATCH 09/10] implement
@@ -14,7 +14,7 @@ Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
  3 files changed, 47 insertions(+), 8 deletions(-)
 
 diff --git a/lib/include/openamp/rpmsg_virtio.h open-amp/lib/include/openamp/rpmsg_virtio.h
-index a2dd504..e7c670e 100644
+index e6e5fa2..4d3093b 100644
 --- a/lib/include/openamp/rpmsg_virtio.h
 +++ open-amp/lib/include/openamp/rpmsg_virtio.h
 @@ -86,6 +86,20 @@ rpmsg_virtio_get_features(struct rpmsg_virtio_device *rvdev)
@@ -39,7 +39,7 @@ index a2dd504..e7c670e 100644
  rpmsg_virtio_create_virtqueues(struct rpmsg_virtio_device *rvdev,
  			       int flags, unsigned int nvqs,
 diff --git a/lib/include/openamp/virtio.h open-amp/lib/include/openamp/virtio.h
-index 7085554..a93e0d9 100644
+index 55c8ea5..9c8376e 100644
 --- a/lib/include/openamp/virtio.h
 +++ open-amp/lib/include/openamp/virtio.h
 @@ -100,6 +100,7 @@ struct virtio_device {
@@ -51,10 +51,10 @@ index 7085554..a93e0d9 100644
  	struct virtio_vring_info *vrings_info;
  };
 diff --git a/lib/remoteproc/remoteproc_virtio.c open-amp/lib/remoteproc/remoteproc_virtio.c
-index e495d81..6a3b28b 100644
+index aafc48c..7505f64 100644
 --- a/lib/remoteproc/remoteproc_virtio.c
 +++ open-amp/lib/remoteproc/remoteproc_virtio.c
-@@ -126,20 +126,43 @@ static uint32_t rproc_virtio_negotiate_features(struct virtio_device *vdev,
+@@ -128,20 +128,43 @@ static uint32_t rproc_virtio_negotiate_features(struct virtio_device *vdev,
  static void rproc_virtio_read_config(struct virtio_device *vdev,
  				     uint32_t offset, void *dst, int length)
  {
@@ -106,7 +106,7 @@ index e495d81..6a3b28b 100644
  }
  
  static void rproc_virtio_reset_device(struct virtio_device *vdev)
-@@ -220,6 +243,7 @@ rproc_virtio_create_vdev(unsigned int role, unsigned int notifyid,
+@@ -222,6 +245,7 @@ rproc_virtio_create_vdev(unsigned int role, unsigned int notifyid,
  	vdev->notifyid = notifyid;
  	vdev->role = role;
  	vdev->reset_cb = rst_cb;
diff --git a/openamp/0010-Negotiate-individual-buffer-size-dynamically.patch b/openamp/0010-Negotiate-individual-buffer-size-dynamically.patch
index 60d1ce8..03d14d5 100644
--- a/openamp/0010-Negotiate-individual-buffer-size-dynamically.patch
+++ b/openamp/0010-Negotiate-individual-buffer-size-dynamically.patch
@@ -1,4 +1,4 @@
-From f5f905a5c7b63e0b90a6b67e45d70305e6dfaa2c Mon Sep 17 00:00:00 2001
+From 2a64e1f23b140e1e2fdabfe77ed7a11062ef341a Mon Sep 17 00:00:00 2001
 From: anchao <an...@pinecone.net>
 Date: Mon, 10 Dec 2018 16:26:39 +0800
 Subject: [PATCH 10/10] Negotiate individual buffer size dynamically
@@ -43,7 +43,7 @@ index b34cb1a..ee9162a 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 e7c670e..e58c84e 100644
+index 4d3093b..7f0c573 100644
 --- a/lib/include/openamp/rpmsg_virtio.h
 +++ open-amp/lib/include/openamp/rpmsg_virtio.h
 @@ -16,6 +16,7 @@
@@ -79,12 +79,12 @@ index e7c670e..e58c84e 100644
  	struct virtqueue *rvq;
  	struct virtqueue *svq;
 diff --git a/lib/rpmsg/rpmsg_virtio.c open-amp/lib/rpmsg/rpmsg_virtio.c
-index e57b1c2..792a3b1 100644
+index 9988a1e..d127084 100644
 --- a/lib/rpmsg/rpmsg_virtio.c
 +++ open-amp/lib/rpmsg/rpmsg_virtio.c
 @@ -138,8 +138,8 @@ static void *rpmsg_virtio_get_tx_buffer(struct rpmsg_virtio_device *rvdev,
  		data = virtqueue_get_buffer(rvdev->svq, len, idx);
- 		if (data == NULL) {
+ 		if (!data) {
  			data = rpmsg_virtio_shm_pool_get_buffer(rvdev->shpool,
 -							RPMSG_BUFFER_SIZE);
 -			*len = RPMSG_BUFFER_SIZE;
diff --git a/openamp/Makefile b/openamp/Makefile
index 9f2c254..6ba275e 100644
--- a/openamp/Makefile
+++ b/openamp/Makefile
@@ -41,7 +41,7 @@ CSRCS =
 VPATH := $(SRCDIR)
 DEPPATH = --dep-path .
 
-VERSION ?= 2020.01.0
+VERSION ?= 2020.04.0
 
 include libmetal.defs
 include open-amp.defs
diff --git a/openamp/libmetal.defs b/openamp/libmetal.defs
index d851011..c51db0c 100644
--- a/openamp/libmetal.defs
+++ b/openamp/libmetal.defs
@@ -76,7 +76,6 @@ libmetal.zip:
 	$(Q) wget https://github.com/OpenAMP/libmetal/archive/v$(VERSION).zip -O libmetal.zip
 	$(Q) unzip -o libmetal.zip
 	$(Q) mv libmetal-$(VERSION) libmetal
-	$(Q) patch -p0 < 0001-nuttx-change-sched_kfree-to-metal_free_memory.patch
 
 .libmetal_headers: libmetal.zip
 	$(eval headers := $(wildcard libmetal/lib/compiler/gcc/*.h))