Hello all,
I found out that there is discrepancy between remoteproc state
definition in kernel and open-amp library:
Linux kernel side definition:
https://github.com/torvalds/linux/blob/52da431bf03b5506203bca27fe14a97895c8…
enum rproc_state {
RPROC_OFFLINE = 0,
RPROC_SUSPENDED = 1,
RPROC_RUNNING = 2,
RPROC_CRASHED = 3,
RPROC_DELETED = 4,
RPROC_ATTACHED = 5,
RPROC_DETACHED = 6,
RPROC_LAST = 7,
};
open-amp library side definition:
https://github.com/OpenAMP/open-amp/blob/391671ba24840833d882c1a75c5d730770…
/**
* @brief Remote processor states
*/
enum remoteproc_state {
/** Remote is offline */
RPROC_OFFLINE = 0,
/** Remote is configured */
RPROC_CONFIGURED = 1,
/** Remote is ready to start */
RPROC_READY = 2,
/** Remote is up and running */
RPROC_RUNNING = 3,
/** Remote is suspended */
RPROC_SUSPENDED = 4,
/** Remote is has error; need to recover */
RPROC_ERROR = 5,
/** Remote is stopped */
RPROC_STOPPED = 6,
/** Just keep this one at the end */
RPROC_LAST = 7,
};
IIUC, both side state definition should match, so that if remote needs
to report crash error, it can use same name and mapped int value in the
code. Please let me know if I am missing something in this understanding.
Should we fix this?
If so, I believe it should be library side.
I am looking for suggestion to fix this without breaking backward
compatibility:
Approach 1: deprecate library side remoteproc_state definition.
deprecate current enum (with __deprecated attribute or add comment) and
introduce new one with same definition as in linux kernel. Then after 2
year (as per code of conduct policy) we can remove remoteproc_state.
Approach 2: Platform driver uses library side remoteproc state definition.
If we don't want to fix this, then another approach is, platform driver
in linux kernel should have library-side remoteproc state definition and
convert interprete it to kernel side remoteproc definition.
With this second approach we don't have to deprecate anything, but
platform drivers are responsible to maintain different remoteproc_state
definition. (Might create confusion).
I am open to any other suggestion regarding this.
Thanks,
Tanmay
[AMD Official Use Only - AMD Internal Distribution Only]
Hello All,
Presently for the OpenAMP Legacy Demos available in the community system reference repo the interrupt mechanism involves Libmetal APIs directly writing to control registers. This is an issue because it is clearly coupling the demos to vendor-specific logic.
If we could instead have a refactor of demos without the vendor-specific interrupt register writes this would be a code clean up.
[1] In one of the Libmetal-supported OS's, Zephyr there is already IPM support, though it is being deprecated as we have been told upstream.
[2][3] That being said, there is already mailbox support in Zephyr and AMD is upstreaming support for this too.
In order to (a) clean up the vendor-specific register writes and (b) add a generic mailbox support to Libmetal libraries below is a proposal for a patch series.
1. Add mailbox support - lib/mbox.h - descripe APIs for init, deinit, send and receive.
2. Add stubs for baremetal for the above APIs
3. Add stubs for freertos for the above APIs.
4. Add implementation for Zephyr with:
- init - As Zephyr OS statically defines mailbox structures today based on device tree, this will simply store the mailbox structure [4]
- deinit - free mailbox
- send/receive will simply wrap around the Zephyr APIs for mbox send/receive
1. https://github.com/OpenAMP/libmetal/tree/main/lib/system/zephyr
2. https://github.com/zephyrproject-rtos/zephyr/tree/main/drivers/mbox
3. (pull request pending)
4. https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/drivers/mbox
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: 96c7cd26dca9b99986441d5e4dced0bb66e0ea4f
https://github.com/OpenAMP/libmetal/commit/96c7cd26dca9b99986441d5e4dced0bb…
Author: Vincenzo Calabretta <vincenzo.calabretta(a)embedded-brains.de>
Date: 2025-06-02 (Mon, 02 Jun 2025)
Changed paths:
M test/system/linux/threads.c
Log Message:
-----------
system: linux: include missing headers
Do not rely on indirect includes since they may not be present on some
systems.
Signed-off-by: Vincenzo Calabretta <vincenzo.calabretta(a)embedded-brains.de>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/libmetal/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/openamp-system-reference
Commit: d0546027cd321466dfaf4f8888f9dd5432c7013f
https://github.com/OpenAMP/openamp-system-reference/commit/d0546027cd321466…
Author: Tanmay Shah <tanmay.shah(a)amd.com>
Date: 2025-05-28 (Wed, 28 May 2025)
Changed paths:
M examples/linux/dts/xilinx/Makefile
M examples/linux/dts/xilinx/xilinx-openamp-for-v6.x.dtso
A examples/linux/dts/xilinx/zynqmp-lockstep.dtso
M examples/linux/dts/xilinx/zynqmp-openamp.dtso
R examples/linux/dts/xilinx/zynqmp-split.dtso
Log Message:
-----------
examples: dts: xlnx: update dtso for remoteproc nodes
Use new remoteproc nodes introduced in 6.12 kernel.
From 6.12 kernel, split mode is enabled by default for zcu102 board.
All other boards remoteproc lockstep and split nodes are disabled
by default. So enable split mode by default for all the boards via
zynqmp-openamp.dtso and introduce zynqmp-lockstep.dtso to enable
lockstep mode only when needed.
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/openamp-system-reference/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/openamp-system-reference
Commit: 63fbb90069212ac0b70ba293f7cf31405d02acee
https://github.com/OpenAMP/openamp-system-reference/commit/63fbb90069212ac0…
Author: Ben Levinsky <ben.levinsky(a)amd.com>
Date: 2025-05-28 (Wed, 28 May 2025)
Changed paths:
R examples/legacy_apps/cmake/platforms/zynq7_generic.cmake
R examples/legacy_apps/cmake/platforms/zynq7_linux.cmake
R examples/legacy_apps/machine/zynq7/CMakeLists.txt
R examples/legacy_apps/machine/zynq7/platform_info.c
R examples/legacy_apps/machine/zynq7/platform_info.h
R examples/legacy_apps/machine/zynq7/platform_info_remoteproc_master.c
R examples/legacy_apps/machine/zynq7/rsc_table.c
R examples/legacy_apps/machine/zynq7/rsc_table.h
R examples/legacy_apps/machine/zynq7/zynq_a9_rproc.c
R examples/legacy_apps/system/generic/machine/zynq7/CMakeLists.txt
R examples/legacy_apps/system/generic/machine/zynq7/Xilinx.spec
R examples/legacy_apps/system/generic/machine/zynq7/helper.c
R examples/legacy_apps/system/generic/machine/zynq7/linker_master.ld
R examples/legacy_apps/system/generic/machine/zynq7/linker_remote.ld
Log Message:
-----------
zynq: Remove support for Zynq-7000 SoC
Remove openamp support for Zynq-7000 SoC, following changes are done
1) remove folder apps/machine/zynq7
2) remove folder apps/system/generic/machine/zynq7
3) remove file cmake/platforms/zynq7_generic.cmake
4) remove file cmake/platforms/zynq7_linux.cmake
5) Modify README.md files
Reasons to remove:
1) Support for Zynq-7000 has ended
2) Removing redundant or unmaintained code
3) Reduce technical debt carried by OpenAMP team
4) very few customer using openamp on Zynq-7000 SoC
For using Zynq-7000 SoC support
last working and tested version is (v2023.10)
https://github.com/OpenAMP/open-amp/tree/v2023.10
Signed-off-by: Rajiv Mohan <rajiv.mohan(a)amd.com>
Signed-off-by: Ben Levinsky <ben.levinsky(a)amd.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/openamp-system-reference/settings/notifications
Branch: refs/heads/virtio-exp-v2025.04
Home: https://github.com/OpenAMP/open-amp
Commit: 6ecc2ef43e992d85cdeb7b883552a48bfa9bcd24
https://github.com/OpenAMP/open-amp/commit/6ecc2ef43e992d85cdeb7b883552a48b…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2025-05-23 (Fri, 23 May 2025)
Changed paths:
M lib/virtio_mmio/virtio_mmio_drv.c
M lib/virtio_mmio/virtio_net_drv.c
M lib/virtio_mmio/virtio_rng_drv.c
M lib/virtio_mmio/virtio_serial_drv.c
Log Message:
-----------
Updated virtio drivers for network, entropy and serial devices
The drivers now support devices with version numbers 2 (virtio >= 1.0)
in addition to 1 (legacy).
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/open-amp/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: f2990d20daca81a12e7e84c33eb5398418f7568e
https://github.com/OpenAMP/libmetal/commit/f2990d20daca81a12e7e84c33eb53984…
Author: Sipke Vriend <sipke(a)direktembedded.com>
Date: 2025-05-19 (Mon, 19 May 2025)
Changed paths:
M doc/Doxyfile.in
Log Message:
-----------
doxygen: tell doxygen to generate tag file for external linking
To allow for external links to doxygen generated content, tell doxygen
to build tags, so the tag file can be used for cross referencing
doxygen generated data.
Signed-off-by: Sipke Vriend <sipke(a)direktembedded.com>
Commit: c86f48f19a9c58998123061777da680e14cbafb9
https://github.com/OpenAMP/libmetal/commit/c86f48f19a9c58998123061777da680e…
Author: Sipke Vriend <sipke(a)direktembedded.com>
Date: 2025-05-19 (Mon, 19 May 2025)
Changed paths:
M doc/Doxyfile.in
Log Message:
-----------
doxygen: tell doxygen to generate xml
in order to use the sphinx breathe plugin in the OpenAMP/openamp-docs
repository we need to enable xml generation
Signed-off-by: Sipke Vriend <sipke(a)direktembedded.com>
Compare: https://github.com/OpenAMP/libmetal/compare/36f87f9335f5...c86f48f19a9c
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/libmetal/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 1bd84cfd8926f88188f4091b47b4fdd3148448bc
https://github.com/OpenAMP/open-amp/commit/1bd84cfd8926f88188f4091b47b4fdd3…
Author: Sipke Vriend <sipke(a)direktembedded.com>
Date: 2025-05-19 (Mon, 19 May 2025)
Changed paths:
M doc/Doxyfile.in
Log Message:
-----------
doxygen: tell doxygen to generate tag file for external linking
To allow for external links to doxygen generated content, tell doxygen
to build tags, so the tag file can be used for cross referencing
doxygen generated data.
Signed-off-by: Sipke Vriend <sipke(a)direktembedded.com>
Commit: 391671ba24840833d882c1a75c5d7307703b1cf1
https://github.com/OpenAMP/open-amp/commit/391671ba24840833d882c1a75c5d7307…
Author: Sipke Vriend <sipke(a)direktembedded.com>
Date: 2025-05-19 (Mon, 19 May 2025)
Changed paths:
M doc/Doxyfile.in
Log Message:
-----------
doxygen: tell doxygen to generate xml
in order to use the sphinx breathe plugin in the OpenAMP/openamp-docs
repository we need to enable xml generation
Signed-off-by: Sipke Vriend <sipke(a)direktembedded.com>
Compare: https://github.com/OpenAMP/open-amp/compare/3737f8b18ad2...391671ba2484
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/open-amp/settings/notifications
Branch: refs/heads/virtio-exp-v2025.04
Home: https://github.com/OpenAMP/open-amp
Commit: 5ec5c10f741becf7d2840ee64ca2d86912784074
https://github.com/OpenAMP/open-amp/commit/5ec5c10f741becf7d2840ee64ca2d869…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
A lib/include/openamp/virtio_rng_drv.h
M lib/virtio_mmio/CMakeLists.txt
A lib/virtio_mmio/virtio_rng_drv.c
Log Message:
-----------
virtio-mmio: entropy device
Added virtio entropy device support.
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
Commit: 60faf773e8411b35eebff6a1e44c1ad701d49086
https://github.com/OpenAMP/open-amp/commit/60faf773e8411b35eebff6a1e44c1ad7…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
A lib/include/openamp/virtio_net_drv.h
M lib/virtio_mmio/CMakeLists.txt
A lib/virtio_mmio/virtio_net_drv.c
Log Message:
-----------
virtio-mmio: network device
Added virtio network device support.
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
Commit: b0d05292876b2b2bd96a98bd408f46ca503a1f81
https://github.com/OpenAMP/open-amp/commit/b0d05292876b2b2bd96a98bd408f46ca…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
A lib/include/openamp/virtio_serial_drv.h
M lib/virtio_mmio/CMakeLists.txt
A lib/virtio_mmio/virtio_serial_drv.c
Log Message:
-----------
virtio-mmio: console device
Added virtio console device support.
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
Commit: 911424a0ee6299cbb35d893757bc5f9c70501a9e
https://github.com/OpenAMP/open-amp/commit/911424a0ee6299cbb35d893757bc5f9c…
Author: Felipe Neves <felipe.neves(a)linaro.org>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
M cmake/options.cmake
M lib/include/openamp/virtio.h
A lib/include/openamp/virtio_mmio_dev.h
M lib/virtio_mmio/CMakeLists.txt
A lib/virtio_mmio/virtio_mmio_dev.c
Log Message:
-----------
virtio-mmio: add initial support for Virtio MMIO device side
Signed-off-by: Felipe Neves <felipe.neves(a)linaro.org>
virtio_mmio_dev: initial support for device side
virtio mmio transport, it is based on work done originally
by Nicolas Granger from ST: <nicolas.granger01(a)st.com>
Signed-off-by: Felipe Neves <felipe.neves(a)linaro.org>
Commit: 1cc0122d227d96de55eb25445f14f97553a984d7
https://github.com/OpenAMP/open-amp/commit/1cc0122d227d96de55eb25445f14f975…
Author: Felipe Neves <felipe.neves(a)linaro.org>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
M lib/include/openamp/virtio_mmio.h
R lib/include/openamp/virtio_mmio_dev.h
M lib/virtio_mmio/virtio_mmio_dev.c
Log Message:
-----------
virtio_mmio: unify device and driver interfaces into a
single header file.
Signed-off-by: Felipe Neves <felipe.neves(a)linaro.org>
Commit: 1f8a7cb9db21f753c776c9c024113d8cad18a17c
https://github.com/OpenAMP/open-amp/commit/1f8a7cb9db21f753c776c9c024113d8c…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2025-05-15 (Thu, 15 May 2025)
Changed paths:
M lib/include/openamp/virtio_mmio.h
A lib/include/openamp/virtio_mmio_hvl.h
M lib/virtio/virtqueue.c
M lib/virtio_mmio/CMakeLists.txt
M lib/virtio_mmio/virtio_mmio_drv.c
A lib/virtio_mmio/virtio_mmio_hvl.c
M lib/virtio_mmio/virtio_serial_drv.c
Log Message:
-----------
virtio-mmio: hypervisor-less mode
Added support for hypervisor-less virtio.
- HVP dispatch function table
- Semaphore-based configuration synchronization mechanism when in
yield-capable context
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
Compare: https://github.com/OpenAMP/open-amp/compare/604cdf9a4561...1f8a7cb9db21
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/open-amp/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 3737f8b18ad24a3b091a11cc6ea320d8b0576da5
https://github.com/OpenAMP/open-amp/commit/3737f8b18ad24a3b091a11cc6ea320d8…
Author: Peter van der Perk <peter.vanderperk(a)nxp.com>
Date: 2025-05-12 (Mon, 12 May 2025)
Changed paths:
M lib/remoteproc/remoteproc_virtio.c
M lib/rpmsg/rpmsg_virtio.c
Log Message:
-----------
rpmsg_virtio.c: wait_remote_ready use sleep instead to avoid starvation
metal_cpu_yield can either result in an unimplemented function or a yield
function. The yield function however only yields execution to another
thread of the same or higher priority. Thus starving any lower priority
threads.
wait_remote_ready can be blocked for a long time i.e. seconds waiting on
the remote core to start communication.
Instead use metal_sleep_usec, allowing lower priority tasks to be
executed. While waiting on the remote core.
Signed-off-by: Peter van der Perk <peter.vanderperk(a)nxp.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/open-amp/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: 604cdf9a4561bda7c2274fee64c0f5c90933b9d4
https://github.com/OpenAMP/open-amp/commit/604cdf9a4561bda7c2274fee64c0f5c9…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2025-05-05 (Mon, 05 May 2025)
Changed paths:
M VERSION
Log Message:
-----------
release: open-amp 2025.04.0
Set library version to 1.8.0
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Signed-off-by: Ed Mooring <ed.mooring(a)gmail.com>
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/open-amp/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: 36f87f9335f5afc3ce3a56c1069346df591094e1
https://github.com/OpenAMP/libmetal/commit/36f87f9335f5afc3ce3a56c1069346df…
Author: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Date: 2025-05-05 (Mon, 05 May 2025)
Changed paths:
M VERSION
Log Message:
-----------
release: libmetal 2025.04.0
Set library version to 1.8.0
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen(a)foss.st.com>
Signed-off-by: Ed Mooring <ed.mooring(a)gmail.com>
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/libmetal/settings/notifications
Branch: refs/heads/main
Home: https://github.com/OpenAMP/openamp-system-reference
Commit: 24d2219dc9edbaca103fe9052a36434222e16404
https://github.com/OpenAMP/openamp-system-reference/commit/24d2219dc9edbaca…
Author: Tanmay Shah <tanmay.shah(a)amd.com>
Date: 2025-04-30 (Wed, 30 Apr 2025)
Changed paths:
M examples/linux/dts/xilinx/xilinx-openamp-for-v6.x.dtso
M examples/linux/dts/xilinx/zynqmp-openamp.dtso
Log Message:
-----------
linux: dts: xlnx: Fix r5f node name as per 6.12 kernel
Linux 6.12 kernel has updated node name for r5 cores.
Fix example dts accordingly otherwise it will generate wrong dt example
that won't work.
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
To unsubscribe from these emails, change your notification settings at https://github.com/OpenAMP/openamp-system-reference/settings/notifications