The "85fb139 (Refactor equal processor headers into new generic ones)
commit had deleted some deprecated files, which also need to be removed
from the Zephyr libmetal module for alignment.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Origin:
https://github.com/OpenAMP/libmetal
Commit:
f3f365d3f4f1c2bf4170294c8a7629feaad57926
Status:
update to libmetal main branch that integrate the version
2023.10.0 with follwing patches on top of:
e087ea5 libmetal: add metal_list_for_each_safe() support
694620f libmetal: set ept address loop++ in bitmap
9855f84 lib: compiler support of arm compiler v6
8041e1c lib: add guards for errno values for ARMCC compiler
0a67afa Zephyr integration: Add support for hosted test environment
dabb14f Add support for hosted test environments
85fb139 Refactor equal processor headers into new generic ones
f3f365d zephyr: use k_cpu_idle instead of arch_cpu_idle
after removing useless dirs to bring
fixes and support for the new cache API in Zephyr.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
When building for CMAKE_SYSTEM_PROCESSOR will be set to
"posix" which is not usefull. Let's rename it instead
to something else we can use.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Add a new hosted test environment "processor".
This is meant as a build target used when the
code is not built for a real target
but as part of a test in a hosted environment
(for ex. as a test environment like Zephyr's
native_sim target).
When building for this target PROJECT_PROCESSOR
should be set as "hosted".
In this, the "__metal_cpu_yield()" call
is expected to be provided by the system folder
headers, to provide whatever is needed for the
metal_cpu_yield() function to perform its duty.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Origin:
https://github.com/OpenAMP/libmetal
Commit:
cd4fb67a4f5080665bc9d31c8272f7c411e037c2
Status:
Merge libmetal version 2022.10.0 after removing useless dirs to bring
fixes and support for the new cache API in Zephyr.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Origin:
https://github.com/OpenAMP/libmetal
commit:
23ba77941cf38a916d7a9fe5137a8bd2ee1e6122
Status:
merge libmetal new version after removing useless dirs to bring
in important fixes and support for ARM64
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
lib: update libmetal to release v2021.10.0
Origin:
https://github.com/OpenAMP/libmetal
commit:
695d29ba60a5c4946bb16d2378955fa8bad8bead
Status:
merge libmetal new version after removing useless dirs to bring
in important fixes and the new Xtensa and RISC-V support.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Origin:
https://github.com/OpenAMP/libmetal
commit:
04cf5d9e0ef562d676cd3f58530fed4e1901f428
Status:
merge libmetal new version after removing useless dirs.
In addition of the official release v2021.04.0 , the following
commit has been merged:
04cf5d9e0ef5 ("cmake: fix VERSION file path", 2021-05-03)
Release Description:
https://github.com/OpenAMP/libmetal/releases/tag/v2021.04.0
+ 04cf5d9e0ef5 ("cmake: fix VERSION file path", 2021-05-03)
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Origin:
https://github.com/OpenAMP/libmetal
commit:
db77c464376e603bc46122b38a7956c87597895b
Status:
merge libmetal new version after removing useless dirs.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Synchronize code with sha1 b00b2d815fdf0cc34f8bb05731aeef877fc777d7
to integrate fix for cmake3.17 support
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Rename reserved function names in drivers/ subdirectory. Update
function macros concatenatenating function names with '##'. As
there is a conflict between the existing gpio_sch_manage_callback()
and _gpio_sch_manage_callback() names, leave the latter unmodified.
Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
Pull in libmetal SHA 59a10acbb0bb684c1a75488f11878cb984170c81 to get
some build fixes related to newlib.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
There is an effort underway to make most of the Zephyr build script's
reentrant. Meaning, the build scripts can be executed multiple times
during the same CMake invocation.
Reentrancy enables several use-cases, the motivating one is the
ability to build several Zephyr executables, or images, for instance a
bootloader and an application.
For build scripts to be reentrant they cannot be directly referencing
global variables, like target names, but must instead reference
variables, which can vary from entry to entry.
Therefore, in this patch, we replace global targets with variables.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Kconfig options are often either of the type 'feature' or
'configuration'. Meaning, either an option controls whether a feature
is enabled, or it adjusts/configures an already enabled feature.
Configuration of features should depend on the feature they are
configuring or else noise is created both in the Kconfig output and in
the Kconfig menu.
In this commit we add a dependency from a configuration option to it's
feature option.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
The system tick count is a 64 bit quantity that gets updated from
interrupt context, meaning that it's dangerously non-atomic and has to
be locked. The core kernel clock code did this right.
But the value was also exposed to the rest of the universe as a global
variable, and virtually nothing else was doing this correctly. Even
in the timer ISRs themselves, the interrupts may be themselves
preempted (most of our architectures support nested interrupts) by
code that wants to set timeouts and inspect system uptime.
Define a z_tick_{get,set}() API, eliminate the old variable, and make
sure everyone uses the right mechanism.
Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
Pull in a more recent version of libmetal, motivated by the void
pointer fixes in efc33fe.
libmetal's b4b5bea to a4f7630 spans:
a4f7630 linux: device: fix max chars to copy for the dev name
10a0d5b lib: system: freertos: mutex: change to use atomic_int ...
4e670c5 ci: Zephyr env var for toolchain
3bef6f0 cmake: Fix Zephyr library integration
13158c3 compiler: add IAR compiler file
0820a2e microblaze: suppress io 64-bit R/W access if 64 bit atomic ...
e2e5608 io: suppress io 64 bit R/W access if 64 bit atomic not ...
efc33fe io: fix compilation error for void pointers.
32ad1d2 cache: fix compilation issue
c1ade0d travis CI: update Zephyr SDK version to 0.9.3
c49d7cd travis CI: updated arm compiler ubuntu package
d279a6a travis ci: Update FreeRTOS download path
5c70105 irq: update sys_irq_restore_enable and sys_irq_save_disable
05f0cd4 cmake: Only look for doxygen package if docs enabled
b4b5bea zephyr: Introduce WITH_ZEPHYR_LIB option
At current time of writing, libmetal's HEAD is 5bc2106641.
However this failed to build in their Travis CI.
The latest passing commit is a4f7630.
Signed-off-by: Mark Ruvald Pedersen <mped@oticon.com>
Consistently use
config FOO
bool/int/hex/string "Prompt text"
instead of
config FOO
bool/int/hex/string
prompt "Prompt text"
(...and a bunch of other variations that e.g. swapped the order of the
type and the 'prompt', or put other properties between them).
The shorthand is fully equivalent to using 'prompt'. It saves lines and
avoids tricking people into thinking there is some semantic difference.
Most of the grunt work was done by a modified version of
https://unix.stackexchange.com/questions/26284/how-can-i-use-sed-to-replace-a-multi-line-string/26290#26290, but some
of the rarer variations had to be converted manually.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
Bool symbols implicitly default to 'n'.
A 'default n' could make sense e.g. in a Kconfig.defconfig file, if you
wanted to override a 'default y' on the base definition of the symbol,
but it doesn't seem to be used like that on any of these symbols.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
Introduce a Kconfig option (CONFIG_LIBMETAL_SRC_PATH) that allows us to
point to an external copy of libmetal.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
With recent changes to libmetal we can now include and build it directly
as a zephyr library rather than doing a recursive make. We remove
ext/hal/libmetal.cmake as part of this change and introduce a Kconfig
option for libmetal.
This is a partial fix for issue #7673.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Pull in a slightly more recent version of libmetal with changes
to the build system to improve integration with Zephyr. This change
will break anything that builds with Zephyr and libmetal (which at this
point is only the open-amp example). Will fix that shortly.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
libmetal itself isn't an ipc library, its a generic HAL abstraction
library so move it into ext/hal where it belongs.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>