Commit graph

37 commits

Author SHA1 Message Date
Bowen Wang
6b13940797 openamp: add patch for VIRTIO_RPMSG_F_BUFADDR buffer address support
Add open-amp patch 0019 to extend fw_rsc_config with h2r_buf_addr
and r2h_buf_addr fields, allowing the host and remote sides to
specify buffer physical addresses through the resource table.
This enables splitting the shared memory pool into separate regions.

Also update open-amp.defs and open-amp.cmake to apply the new patch
during the open-amp build process.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-03-05 12:39:13 +08:00
Bowen Wang
5e2b3a114f lib/rpmsg: add priority support for rpmsg endpoint
Add priority field to rpmsg_endpoint structure to support
message prioritization. This allows different endpoints to
have different priority levels for scheduling purposes.

Changes:
- Define priority constants (MIN=0, DEFAULT=127, MAX=255)
- Add RPMSG_PRIO_RT alias for real-time priority
- Add priority field to struct rpmsg_endpoint
- Initialize priority to default value in rpmsg_register_endpoint()

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-30 07:50:11 -03:00
Bowen Wang
41e46333a8 openamp/virtqueue: change the virtqueue dump log level to emergency
To avoid the dump log can't be output.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-30 07:50:11 -03:00
Bowen Wang
59259eb7f2 openamp/lib/rpmsg_virtio: release the name service messsage
early

To improve the share memory buffer utilization
1. Support release the rx buffer early, the ept->cb should return
   RPMSG_SUCCESS_BUFFER_RETURNED to tell the rpmsg virtio the
   rx buffer has been released;
2. Modifty name service callback to release the rx name service
   message early;

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-29 09:26:50 -03:00
Bowen Wang
1fa6a43a40 openamp: optimize virtqueue_notification() called condition
1. call virtqueue_notification() only when buffer exist to avoid unnecessary
calls to virtqueue callback.

2. call virtqueue_notification() only when vq != NULL, because
rproc_virtio_notified() may be called when the virtqueues is not created:
virtqueue created in the virtio/vhost driver but the virtio devices
has been added to the remoteproc virtio devices list after the remoteproc
transport layer create the virtio devices.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-19 14:18:27 +08:00
Bowen Wang
3c0a4639ca openamp: rpmsg virtio use virtio_alloc_buf to alloc share memory
So rpmsg virtio can alloc share memory from the virtio transport
layer and can work with various transport layer.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-19 14:18:27 +08:00
Bowen Wang
4c06a2768d openamp: add mm_priv to struct virtio_device
now the virtio device can set it's own memory private data, and
can use this private data to store the memory manager handler

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-19 14:18:27 +08:00
Bowen Wang
0a26f09c6b openamp: make the remoteproc virtio fit more virtio devices
1. add cpuname config for the rpmsg virtio devices, so the rpmsg virtio
driver can get the local and remote cpuname from the virtio config
space, and we can distinguish the differnt channel when there are
two rpmsg virtio devices in the same resource table;
2. optimize the remoteproc virtio transport layer to make it can
work with all the virtio devices instead only work with rpmsg virtio
devices;

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-01-19 14:18:27 +08:00
Bowen Wang
dac8604f5e openamp: update openamp and libmetal to last release version
and remove somes libmetal and openamp patches that already merged
in the OpenAMP and Libmetal community.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2025-12-31 02:36:29 +08:00
wangyongrong
ef67a866f3 openamp: replace VIRTIO_DRIVER/DEVICE_ONLY to VIRTIO_DRIVER/DEVICE_SUPPORT
New OpenAMP change the VIRTIO_DRIVER/DEVICE_ONLY to the
VIRTIO_DRIVER_DEVCE_SUPPORT, so upgrade the NuttX OpenAMP config too

Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-10-09 23:32:58 +08:00
Bowen Wang
8b4376683a openamp: sync the openamp and libmetal to the last commit
Upgrade the openamp is a troublesome thing, so diretly sync the
open-amp and libmetal the newest commit.

We can update the commit and remove the patch when this patch has
been merged in the OpenAMP repo.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-10-09 23:32:58 +08:00
Yongrong Wang
f93688cbd5 openamp/Kconfig: add CONFIG_OPENAMP_ENABLE_VIRTIO_ONLY to enable virtio only
OPENAMP_VIRTIO_DEVICE_ONLY and OPENAMP_VIRTIO_DRIVER_ONLY can be used to
comment some unused code in OpenAMP library to save code size.

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-10-08 23:34:50 +08:00
Xiang Xiao
815c9c464a openamp: Refine elf_load to remoteproc_elf_loader
to avoid the name conflict with binfmt elf loader

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-10-08 23:34:50 +08:00
Xiang Xiao
6b0c22c775 openamp: Merge OPENAMP_RPMSG_DEBUG and OPENAMP_VQUEUE_DEBUG into OPENAMP_DEBUG
to simplify the configuration

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-10-08 23:34:50 +08:00
Alin Jerpelea
c13254d7c5 openamp: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-09-10 22:54:05 +08:00
liqinhui
681b84b15d openamp: Add the virtio_negotiate_features interface for virtio-net.
Signed-off-by: liqinhui <liqinhui@xiaomi.com>
2023-12-13 05:00:59 -08:00
wangbowen6
b3fead9d28 openamp: add OPENAMP_DEBUG config to enable/disable openamp debug
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-06-18 16:17:44 +03:00
wangbowen6
fa94317447 openamp/Kconfig: add config to enable/disable the cache feature
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-06-18 16:17:44 +03:00
wangbowen6
4a8331a019 openamp: virtio.h add version field in device id table struct
Add new patch 0019, this patch is used to support the legacy virtio
mmio trasport.

Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-05-27 18:51:04 +08:00
wangbowen6
1f4b71d576 openamp: decoupling the transport layer and virtio device layer
Patch 17:
virtio: follow virtio 1.2 spec, add more virtio status and device

Patch 18:
virtio: decoupling the transport layer and virtio device layer

1. Add virtio device api to decouple the transport layer and virtio
   device layer.
2. Move the vrings info and virtqueue allocation/free  to the
   remoteproc transport layer;
3. Because 2, modify the rpmsg device also;

Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-05-20 21:51:24 +08:00
Karel Kočí
62661600b2 treewide: add DOWNLOAD variable as unification of curl call
This is a followup to the commit
03b164f59c.
2023-03-08 17:05:05 +08:00
ligd
c398375cc8 openamp: update openamp lib
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-02-23 22:38:02 +08:00
Xiang Xiao
fdc1aa6ae3 openamp: don't depend on pen-amp.zip and libmetal.zip in the git mode
since both don't exist in this mode

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-08 09:54:00 +01:00
Xiang Xiao
98a9762e2a rptun: fix rptun don't wait issue when get tx patyload
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-23 19:42:30 +09:00
Xiang Xiao
7ad4b573fb openamp: update openmap lib version to 2022.10.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-07 17:14:58 -03:00
Huang Qi
e0185faa78 Don't download tarballs if a local git repo found
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-08-28 03:07:58 +08:00
ligd
546889d524 openamp: update openmap lib version to 2022.04.0
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-08-03 01:22:53 +08:00
ligd
bae9a97d31 openamp: add openamp patches
0006-openamp-fix-scenario-case.patch
0007-openamp-divide-shram-to-TX-shram-RX-shram.patch
0008-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch

Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-03-30 10:00:07 +03:00
ligd
f5ddbb317f rptun: support can_recursive check for openamp
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-13 08:32:57 -06:00
ligd
163109c80f openamp: notify the user when the remote address is received
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-04 13:29:51 -05:00
ligd
8c3996c001 openamp: add ns_unbind_notify support
This is for notify rdev unbind event

Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-01 06:57:33 -05:00
Xiang Xiao
a941c93f72 openamp: Move the download to context target
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-29 20:02:24 +02:00
Xiang Xiao
f8f1270f9b openamp: Update to 2020.10.0 official release
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-05-13 18:43:19 +01:00
Huang Qi
073912e232 Replace all wget with curl
wget is missing from some system (like macOS and Windows native),
it's better to use curl to simplify build environment.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2020-12-22 03:36:10 -06:00
Xiang Xiao
ae356001cf Change all files come from Xiaomi/Pinecone to Apache License 2.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-22 17:37:21 -06:00
Xiang Xiao
2bfc03f636 openamp: Download libmetal and open-amp from github
and apply the patch which is pending merge to upstream

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-04-27 20:21:23 +08:00
hao.an
4d64634137 openamp/: Add Makefile defines. 2019-11-10 08:09:32 -06:00