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>
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>
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>
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>
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>
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>
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>
and remove somes libmetal and openamp patches that already merged
in the OpenAMP and Libmetal community.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
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>
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>
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>
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>
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>
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>