Remove the following CMake options and associated definitions that have
been deprecated for over two years:
- WITH_DCACHE_VRINGS
- WITH_DCACHE_BUFFERS
- WITH_DCACHE_RSC_TABLE
- VIRTIO_CACHED_RSC_TABLE
- VIRTIO_CACHED_BUFFERS
- VIRTIO_CACHED_VRINGS
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
The application folder is deprecated and should no more be used.
Remove associated cmake options.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
The applications are now in the openamp-system-reference repository.
The "apps" folder is now deprecated and should be removed in coming
releases.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Add VQ_RX_EMPTY_NOTIFY config to define the behavior. If
VQ_RX_EMPTY_NOTIFY is disabled, notify the other side each
time a buffer is released. If VQ_RX_EMPTY_NOTIFY is enabled,
only send one notification when the RX queue is empty to
improve performance.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
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@amd.com>
The use of the master and slave terminologies in configs and API are now
deprecated since 2 years, we can remove the associated code.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Currently compiler defines are defined when support for driver or device
is the only support being built. This is a negative define, it surrounds
the code to not be built and we use ifndef. This is confusing. It also
leaves ifndefs all throughout the code-base. Instead, define a macro that
is set to 1 if support is enabled. Use this inline in if statements where
possible. Any sane compiler will optimize away the code in the branch
when support is not enabled just the same as when using the preprocessor
so we keep the same binary size.
Signed-off-by: Andrew Davis <afd@ti.com>
Add WITH_DCACHE operation used for all cache operations:
vrings, buffers and resource table.
The other options will be deprecated - add warning
message for this.
Add info for WITH_DCACHE option in README.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Do a cache invalidation before reading the resource table's info
since this ca be in a cacheable region.
Make this optional, based on VIRTIO_CACHED_RSC_TABLE.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Using command line to define the OPENAMP_VERSION string macro breaks
Cygwin build on some releases of Microsoft Windows and CMake. Remove all
OPENAMP_VERSION macros from cmake compiler flags and use the ones from
the generated version_def.h file.
Signed-off-by: Sergei Korneichuk <sergei.korneichuk@amd.com>
Building OpenAMP for standalone ARM R5, the following warning occurs:
CMake Deprecation Warning at
/usr/share/cmake-3.16/Modules/CMakeForceCompiler.cmake:75 (message):
The CMAKE_FORCE_C_COMPILER macro is deprecated. Instead just set
CMAKE_C_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
cmake/platforms/cross_generic_gcc.cmake:5 (CMAKE_FORCE_C_COMPILER)
/home/mooring/build-oa/toolchain.r5-oa.sa:18 (include)
/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake:93 (include)
CMakeLists.txt:19 (project)
Follow the suggestions in the above error message, and add
CMAKE_TRY_COMPILE_TARGET_TYPE = STATIC LIBRARY, which makes try_compile()
not try to link the cross-compiled binary. This is necessary because the
arm-none-eabi toolchain libgcc doesn't have an implementation of _exit(),
leaving that to the BSP. This results in a CMake error because it can't
build the test executable.
Signed-off-by: Ed Mooring <ed.mooring@gmail.com>
In line with the terminology changes proposed by the OpenAMP
Technical Steering committe. Change VIRTIO_SLAVE_ONLY to
VIRTIO_DEVICE_ONLY. On linux, the two ends of the virtio communication
path are referred to as the "driver" (Linux), and the "device", in this
case running on the remote processor.
Terminology: Replace VIRTIO_MASTER_ONLY with VIRTIO_DRIVER_ONLY.
Terminology: Replace VIRTIO_DEV_SLAVE with VIRTIO_DEV_DEVICE
Terminology: Replace VIRTIO_DEV_MASTER with VIRTIO_DEV_DRIVER.
Apps: Fix variable names
Per guidance from the Technical Steering Committee, replace "master" and
"slave" with more appropriate terms.
lib: Replace RPMSG_MASTER with RPMSG_HOST
cmake: Change option names from "master", "slave" to "driver", "device".
Apps: Cleanup terminology
README: Update variable names to match the code.
Terminology: Add deprecation warnings to configuration variables.
Warn the user if they use the older, possibly offensively
named configuration variables.
Terminology: Clean up deprecation warnings.
CMake: Default deprecated configuration variables to off.
Make the deprecated WITH_VIRTIO_MASTER and WITH_VIRTIO_SLAVE
configuration variables default to OFF. This means that only deliberate
use of those variables will trigger the deprecation warning.
Terminology: Replace compiler-specific warnings with #warning.
In warning about deprecated constant names, change from
compiler-specific compile time warnings to the standard #warning.
fixup! Terminology: Replace potentially offensive terms in the code.
Fix the compilation error in zephyr by declaring a deprecated function
Deprecated message generated:
zephyr/samples/subsys/ipc/openamp_rsc_table/src/main_remote.c: In function 'rpmsg_mng_task':
zephyr/samples/subsys/ipc/openamp_rsc_table/src/main_remote.c:351:2: warning: 'deprecated_virtio_dev_slave' is deprecated [-Wdeprecated-declarations]
351 | rpdev = platform_create_rpmsg_vdev(0, VIRTIO_DEV_SLAVE, NULL,
| ^~~~~
In file included from modules/lib/open-amp/open-amp/lib/include/openamp/rpmsg_virtio.h:18,
from modules/lib/open-amp/open-amp/lib/include/openamp/open_amp.h:12,
from zephyr/samples/subsys/ipc/openamp_rsc_table/src/main_remote.c:15:
modules/lib/open-amp/open-amp/lib/include/openamp/virtio.h:49:32: note: declared here
49 | __deprecated static inline int deprecated_virtio_dev_slave(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
fixup! Terminology: Replace potentially offensive terms in the code.
miscellaneous update
Signed-off-by: Ed Mooring <ed.mooring@gmail.com>
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
PROJECT_VERSION* variables are recognized by cmake. Rename the
PROJECT_VER* variables used for the version.
Create a version file to make it easier to find and update the version.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Fix warnings spotted by cmake:
The package name passed to `find_package_handle_standard_args`(LIBMETAL) does
not match the name of the calling package(Libmetal). This can lead to problems
in calling code that expects `find_package` result variables (e.g., `_FOUND`)
to follow a certain pattern.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Add support for having CMAKE_BUILD_TYPE be the empty string. Setting
CMAKE_BUILD_TYPE to the empty string is valid use, so we should not
override it when it is set as such.
Also, when a multi-config generator is in use, and CMAKE_BUILD_TYPE is
set to the empty string, we will accidentally be dynamically changing
the value of CMAKE_BUILD_TYPE. This breaks the build because as the
docs say, this value is a static value and should not be dynamically
changed:
"This statically specifies what build type
https://cmake.org/cmake/help/v3.17/variable/CMAKE_BUILD_TYPE.html
This is of the same nature as
https://github.com/OpenAMP/libmetal/pull/108
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
This provides bug fixes and enhancements to the Xilinx-specific example
code, and a couple of small fixes to the linux example code.
Signed-off-by: Ed Mooring <ed.mooring@linaro.org>
Remove unused cmake options such as REMOTEPROC_MASTER
as the library allows user to use different libraries sperately.
Signed-off-by: Wendy Liang <jliang@xilinx.com>
* Removed IS_TEST, not used by Zephyr anymore
* Added zephyr_include_directories so when we embedded open-amp
in zephyr we have the include path setup for the headers
* If we build as an embedded zephyr library (WITH_ZEPHYR_LIB) we
shouldn't utilize Zephyr's app/boilerplate.cmake.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
As the proxy library functions relies on fcntl.h file,
only allows proxy functions if fcntl.h file is found.
Signed-off-by: Wendy Liang <jliang@xilinx.com>
Update the ZynqMP R5 generic toolchain file to use
hard fp by default as Xilinx enable hard fp for R5 applications
from 2017.2.
Signed-off-by: Sam Sortais <sam.sortais@xilinx.com>
Signed-off-by: Wendy Liang <jliang@xilinx.com>
When running multilib builds on 64-bit platforms, the system library
paths need to be adjusted to either lib64/lib32, or lib64/lib in a
distro specific way. This is handled via CMAKE_INSTALL_LIBDIR/BINDIR
variable
Signed-off-by: Wendy Liang <jliang@xilinx.com>
Add option to avoid checking for pre-existence of libmetal.a.
Add option to avoid checking external include existence.
This is needed in case cmake is invoked before those others are created.
Signed-off-by: Sam Sortais <sam.sortais@xilinx.com>
Check wheter stdatomic header file exists, if not, use the
atomic operations defined in libmetal, if not, use the
atomic operations defined in libmetal.
Signed-off-by: Wendy Liang <jliang@xilinx.com>