Hi all,
During the late stages of testing of the v2022.10 OpenAMP library, I ran
across a failure that looks like there is an unexpected interaction between
the library and the Linux remoteproc implementations. We have decided
to delay the release until we understand the problem better.
Regards,
Ed M
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: cd7f331045889650189d1357fc079987236c4c0c
https://github.com/OpenAMP/open-amp/commit/cd7f331045889650189d1357fc079987…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-20 (Thu, 20 Oct 2022)
Changed paths:
M lib/remoteproc/remoteproc_virtio.c
Log Message:
-----------
remoteproc: Fix build warning in rproc_virtio_create_vdev function
The arm-none-eabi-gcc complains when VIRTIO_DEVICE_ONLY is enable
remoteproc_virtio.c:222:29: warning: variable 'vring_rsc'
set but not used [-Wunused-but-set-variable]
222 | struct fw_rsc_vdev_vring *vring_rsc;
| ^~~~~~~~~
The vring_rsc variable should be declared and set only if
VIRTIO_DEVICE_ONLY is not enable.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 4e1fa03814331fb87ad238072789207db5dbc374
https://github.com/OpenAMP/open-amp/commit/4e1fa03814331fb87ad238072789207d…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M docs/rpmsg-design.md
M lib/include/openamp/rpmsg.h
M lib/rpmsg/rpmsg.c
Log Message:
-----------
rpmsg: Add rpmsg_release_tx_buffer API
Add an API to be able to release unused TX buffer that will not be
sent.
For instance this API can be called in case of error between the
buffer reservation and the send to the remote side.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Commit: 753a20368b2ab4b27b893eb44d7a7a5bdd840394
https://github.com/OpenAMP/open-amp/commit/753a20368b2ab4b27b893eb44d7a7a5b…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M docs/rpmsg-design.md
Log Message:
-----------
docs: add no-copy user API description
Add short description of the no-copy user interface.
Add some sub-chapters to increase the readability.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Commit: 2e0015af74cee05cb82ff65c73f725670e28603e
https://github.com/OpenAMP/open-amp/commit/2e0015af74cee05cb82ff65c73f72567…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M lib/include/openamp/virtqueue.h
M lib/virtio/virtqueue.c
Log Message:
-----------
virtqueue: Add helper to get the buffer address from descriptor index
As it possible to get the buffer length we need also to retrieve
the address associated to the descriptor index.
This is need by rpmsg virtio to implement the buffer recycler.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Commit: 6dad72724fcb056414e0193805362647e347ae59
https://github.com/OpenAMP/open-amp/commit/6dad72724fcb056414e0193805362647…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M lib/include/openamp/rpmsg_virtio.h
M lib/rpmsg/rpmsg_virtio.c
Log Message:
-----------
rpmsg virtio: Implement the Tx buffer reclaimer
With the no-copy feature a tx buffer can be get, filled and then
sent to the remote side.
In Some error cases the application can need to release it instead
of sending it to the remote side.
As the virtqueue is updated when the buffer it get, it is not
possible to manage this use case at virtqueue level.
This patchset implements the release based on a buffer recycler.
The principle is to store the released buffer in a 'reclaimer' list.
On next get pmsg_virtio_get_tx_buffer call the buffer is reused.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Commit: 80555a314e5cdc92533fec26e48941cd2db60108
https://github.com/OpenAMP/open-amp/commit/80555a314e5cdc92533fec26e48941cd…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/tests/msg/CMakeLists.txt
A apps/tests/msg/rpmsg-nocopy-echo.c
A apps/tests/msg/rpmsg-nocopy-ping.c
Log Message:
-----------
test: Add test for the no-copy validation.
Add test to validate the no copy and the associated Tx buffer
recycler.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Compare: https://github.com/OpenAMP/open-amp/compare/988da0074d9c...80555a314e5c
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 988da0074d9c5cd95b693218f0eea05bbcee6d2b
https://github.com/OpenAMP/open-amp/commit/988da0074d9c5cd95b693218f0eea05b…
Author: Tanmay Shah <tanmay.shah(a)amd.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/examples/rpc_demo/rpc_demo.c
Log Message:
-----------
examples: apps: Update rpc_demo description
rpc_demo.c file creates firmware that runs on remote processor.
The current description implies that proxy service is implemented
on remote side which is not true. Fix description and explicitly
mention that proxy service is implemented on host side
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 4f2d0c2106560b4bbe91e8b3f2d25d8b01e4958c
https://github.com/OpenAMP/open-amp/commit/4f2d0c2106560b4bbe91e8b3f2d25d8b…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M README.md
Log Message:
-----------
README: Remove deprecated method to build open-amp lib for zephyr
The instructions to build open-amp for zephyr do not work.
Instead of trying to maintain a cross dependency between the zephyr
and the open-amp, just reference the zephyr project and documentation
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 17b2594ab6e7929bac7d876748bed0d16a657f1e
https://github.com/OpenAMP/open-amp/commit/17b2594ab6e7929bac7d876748bed0d1…
Author: Sergei Korneichuk <sergei.korneichuk(a)amd.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/examples/rpc_demo/rpc_demod.c
Log Message:
-----------
app: rpc_demod: fix buffer overflow in handle_read
Fix the following error:
Remote>Opened file 'remote.file' with fd = 8
*** buffer overflow detected ***: rpc_demod-shared
1. Change RPC_BUFF_SIZE to accomodate the remote
2. Set size to the minimum of the request or the buffer size
Signed-off-by: Sergei Korneichuk <sergei.korneichuk(a)amd.com>
Commit: bb6d16837b2c0e8f5c6d2c18c220846c2df43607
https://github.com/OpenAMP/open-amp/commit/bb6d16837b2c0e8f5c6d2c18c220846c…
Author: Ben Levinsky <ben.levinsky(a)xilinx.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/examples/load_fw/load_fw.c
M apps/examples/load_fw/zynqmp_rpu_lcm_rproc_example.c
Log Message:
-----------
apps: examples: load_fw: fix up for -werror
with werror flag compilation fails. update to build
Signed-off-by: Ben Levinsky <ben.levinsky(a)xilinx.com>
Commit: 29fbf24ef926d553e56092c9d4513a4752a7b0cb
https://github.com/OpenAMP/open-amp/commit/29fbf24ef926d553e56092c9d4513a47…
Author: Manikanta Sreeram <manikanta.sreeram(a)xilinx.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/examples/load_fw/lscript.ld
M apps/system/generic/machine/zynqmp_r5/linker_large_text.ld
M apps/system/generic/machine/zynqmp_r5/linker_remote.ld
Log Message:
-----------
apps: update linker scripts to SPDX license
Update linker scripts to SPDX based licensing.
Signed-off-by: Manikanta Sreeram <manikanta.sreeram(a)xilinx.com>
Commit: 2e9f3a31cc70dc04bd2c5fc45fb96602173003b2
https://github.com/OpenAMP/open-amp/commit/2e9f3a31cc70dc04bd2c5fc45fb96602…
Author: Manikanta Sreeram <manikanta.sreeram(a)xilinx.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M LICENSE.md
Log Message:
-----------
Update LICENSE.md to cover CI test scripts
Add Apache and GPL licensing to cover CI test scripts in case they
are converted to SPDX:
Apache-2.0
scripts/ci/check_compliance.py
scripts/do_checkpatch.sh
scripts/gitlint/commit_rules.py
GPL-2.0
scripts/checkpatch.pl
scripts/spelling.txt
Note: Neither Apache nor GPL are used by the libmetal library itself.
Signed-off-by: Manikanta Sreeram <manikanta.sreeram(a)xilinx.com>
Commit: 4ab1ce6f95a9046363d4b3d3f19075d373c03bb4
https://github.com/OpenAMP/open-amp/commit/4ab1ce6f95a9046363d4b3d3f19075d3…
Author: Ben Levinsky <ben.levinsky(a)xilinx.com>
Date: 2022-10-18 (Tue, 18 Oct 2022)
Changed paths:
M apps/examples/rpc_demo/rpc_demod.c
Log Message:
-----------
app: rpc_demod: replace copy_from_shbuf with metal_io_block_read
After a toolchain upgrade, the OpenAMP rpc_demod application would
fail with a bus error on AArch64 Linux. This was because the call to
copy_from_shbuf() was now inlined by the optimizer and the compiler
generated code that used 8-byte copies ("ldp x10, x11 [x4, #16]" followed
by the corresponding store instruction). The bus error happened when
the address in x4 (the index) was 4-byte aligned, but not 8-byte aligned.
This would not be a problem with normal user-space memory, but the memory
used for the shared buffer between the remote processor and Linux is
mapped as device memory. On AArch64, device memory is strictly ordered
and the alignment and width of accesses must match.
Replace copy_from_shbuf() with a call to metal_io_block_read(), which
is intended to do this sort of thing, and also makes this a better
example of how to use OpenAMP.
Return error only on a negative return value from copy_from_shbuf in
rpmsg_endpoint_cb.
Signed-off-by: Ben Levinsky <ben.levinsky(a)xilinx.com>
Compare: https://github.com/OpenAMP/open-amp/compare/2b6a38a9c689...4ab1ce6f95a9
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 2b6a38a9c6890869960ed41d6a1dc9930c079e0d
https://github.com/OpenAMP/open-amp/commit/2b6a38a9c6890869960ed41d6a1dc993…
Author: Guiding Li <liguiding1(a)xiaomi.com>
Date: 2022-10-14 (Fri, 14 Oct 2022)
Changed paths:
M lib/rpmsg/rpmsg_virtio.c
Log Message:
-----------
openamp: should kick remote when use release_rx_buffer
There is missing virtqueue_kick when use hold_rx/release_rx
Signed-off-by: Guiding Li <liguiding1(a)xiaomi.com>