Commit Graph

51 Commits

Author SHA1 Message Date
chenrun1
cfcf347515 nuttx/atomic.h:replace ALL stdatomic.h with nuttx/stdatomic.h in nuttx/
Summary:
 1. use nuttx/atomic.h instead of stdatomic
 2. remove CONFIG_HAVE_ATOMIC,because we now support atomic on all platforms

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-22 01:44:29 +08:00
chao an
ab51eae836 libmetal/atomic: enable 64-bit atomic by toolchain builtin flags
Fix compile error:
arm-none-eabi-ld: (remoteproc_virtio.o): in function `metal_io_read':
metal/io.h:252: undefined reference to `__atomic_load_8'
arm-none-eabi-ld: (remoteproc_virtio.o): in function `metal_io_write':
metal/io.h:290: undefined reference to `__atomic_store_8'

Not all 32-bit architectures support 64bit atomic, gcc/clang
toolchains have built-in properties to indicate whether support atomic64:

| $ arm-none-eabi-gcc -march=armv7e-m  -dM -E - < /dev/null | grep SYNC
| #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
| #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
| #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1

Signed-off-by: chao an <anchao@lixiang.com>
2024-06-29 22:38:48 +08:00
chao an
ec150b21d9 Revert "Check whether 64-bit atomic is supported"
Signed-off-by: chao an <anchao@lixiang.com>
2024-06-29 22:38:48 +08:00
xuxin19
0e8aecfe64 cmake:reuse OpenAMP own CMake script for CMake build
Check whether 64-bit atomic is supported

Co-authored-by: xuxin19 <xuxin19@xiaomi.com>
Co-authored-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-06-26 00:22:03 +08:00
Yanfeng Liu
6b608ab6a2 openamp/libmetal.cmake: sync with libmetal.defs
This adds missing patches so that to be in sync with libmetal.defs

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-03-28 16:07:49 +08:00
Jukka Laitinen
72f9bd142f openamp: Fix void pointer arithmetic in openamp to remove compilation warnings
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-02-12 17:06:33 +01:00
Xiang Xiao
b9bd88d9d3 rptun: Select OPENMAP under RPTUN
to simplify the IPC related configuration

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-12-28 11:08:57 +08:00
liqinhui
681b84b15d openamp: Add the virtio_negotiate_features interface for virtio-net.
Signed-off-by: liqinhui <liqinhui@xiaomi.com>
2023-12-13 05:00:59 -08:00
Bowen Wang
8ed836f05e openamp/libmetal: aligned io read/write when size=1,2,3,4
Make NuttX implemented metal io read/write to aligned access

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2023-11-17 09:42:52 +01:00
ligd
378470f611 add remote poweroff support
Signed-off-by: yintao <yintao@xiaomi.com>
2023-09-20 00:42:02 +08:00
xuxin19
48d95b8d82 cmake:replace custom_patch_target with PATCH_COMMAND
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-24 17:46:43 +02:00
chao an
f10b54a081 cmake: fix CMake build break
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-15 23:32:36 +08:00
Zhe Weng
fef52b11ee openamp/libmetal: Check CONFIG_HAVE_ATOMICS instead of HAVE_STDATOMIC_H in atomic.h
When we use libmetal with other headers using stdatomic.h, we'll get
symbol conflict if we don't enable HAVE_STDATOMIC_H in libmetal.  The
best solution might be using cmake to detect headers automatically, but
we can't.  Fortunately we have CONFIG_HAVE_ATOMICS macro now, which can
replace HAVE_STDATOMIC_H when we're not using cmake.

Note: 2-Steps to use CONFIG_HAVE_ATOMICS
1. Include compiler.h for CONFIG_HAVE_ATOMICS definition
2. Check CONFIG_HAVE_ATOMICS instead of HAVE_STDATOMIC_H

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2023-07-10 20:44:16 +08:00
chao an
6ee9ec7656 build: add initial cmake build system
1. Update all CMakeLists.txt to adapt to new layout
2. Fix cmake build break
3. Update all new file license
4. Fully compatible with current compilation environment(use configure.sh or cmake as you choose)

------------------

How to test

From within nuttx/. Configure:

cmake -B build -DBOARD_CONFIG=sim/nsh -GNinja
cmake -B build -DBOARD_CONFIG=sim:nsh -GNinja
cmake -B build -DBOARD_CONFIG=sabre-6quad/smp -GNinja
cmake -B build -DBOARD_CONFIG=lm3s6965-ek/qemu-flat -GNinja

(or full path in custom board) :
cmake -B build -DBOARD_CONFIG=$PWD/boards/sim/sim/sim/configs/nsh -GNinja

This uses ninja generator (install with sudo apt install ninja-build). To build:

$ cmake --build build

menuconfig:

$ cmake --build build -t menuconfig

--------------------------

2. cmake/build: reformat the cmake style by cmake-format

https://github.com/cheshirekow/cmake_format

$ pip install cmakelang

$ for i in `find -name CMakeLists.txt`;do cmake-format $i -o $i;done
$ for i in `find -name *\.cmake`;do cmake-format $i -o $i;done

Co-authored-by: Matias N <matias@protobits.dev>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-08 13:50:48 +08:00
wangbowen6
b3fead9d28 openamp: add OPENAMP_DEBUG config to enable/disable openamp debug
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-06-18 16:17:44 +03:00
wangbowen6
fa94317447 openamp/Kconfig: add config to enable/disable the cache feature
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-06-18 16:17:44 +03:00
wangbowen6
4a8331a019 openamp: virtio.h add version field in device id table struct
Add new patch 0019, this patch is used to support the legacy virtio
mmio trasport.

Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-05-27 18:51:04 +08:00
wangbowen6
1f4b71d576 openamp: decoupling the transport layer and virtio device layer
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>
2023-05-20 21:51:24 +08:00
wangbowen6
52525796ab openamp: libmetal compile pass with arm64 arch
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2023-03-21 07:43:20 +01:00
Karel Kočí
62661600b2 treewide: add DOWNLOAD variable as unification of curl call
This is a followup to the commit
03b164f59c.
2023-03-08 17:05:05 +08:00
ligd
c398375cc8 openamp: update openamp lib
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-02-23 22:38:02 +08:00
Xiang Xiao
fdc1aa6ae3 openamp: don't depend on pen-amp.zip and libmetal.zip in the git mode
since both don't exist in this mode

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-08 09:54:00 +01:00
Xiang Xiao
98a9762e2a rptun: fix rptun don't wait issue when get tx patyload
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-23 19:42:30 +09:00
Xiang Xiao
7ad4b573fb openamp: update openmap lib version to 2022.10.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-07 17:14:58 -03:00
ligd
fd07e7b012 openamp: fix rptun don't wait issue when get tx patyload buffer
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-10-27 21:21:35 +08:00
Peter Bee
9c7bb9e088 openamp/libmetal: support other arch sim host
Add support for x86, arm and arm64 host. Tested on M2 mac.

Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2022-10-11 14:58:51 +09:00
Huang Qi
e0185faa78 Don't download tarballs if a local git repo found
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-08-28 03:07:58 +08:00
ligd
546889d524 openamp: update openmap lib version to 2022.04.0
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-08-03 01:22:53 +08:00
ligd
bae9a97d31 openamp: add openamp patches
0006-openamp-fix-scenario-case.patch
0007-openamp-divide-shram-to-TX-shram-RX-shram.patch
0008-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch

Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-03-30 10:00:07 +03:00
ligd
f5ddbb317f rptun: support can_recursive check for openamp
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-13 08:32:57 -06:00
ligd
163109c80f openamp: notify the user when the remote address is received
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-04 13:29:51 -05:00
ligd
8c3996c001 openamp: add ns_unbind_notify support
This is for notify rdev unbind event

Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-01 06:57:33 -05:00
Xiang Xiao
a941c93f72 openamp: Move the download to context target
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-29 20:02:24 +02:00
Xiang Xiao
f8f1270f9b openamp: Update to 2020.10.0 official release
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-05-13 18:43:19 +01:00
Huang Qi
073912e232 Replace all wget with curl
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>
2020-12-22 03:36:10 -06:00
Matias N
d5b6ec450f Parallelize depend file generation 2020-11-22 09:02:59 -03:00
Xiang Xiao
ae356001cf Change all files come from Xiaomi/Pinecone to Apache License 2.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-22 17:37:21 -06:00
SPRESENSE
e249a2f82f Makefile: Fix Make.dep not updated by config changes
Make.dep file should be updated by .config changed after first make.
There are 2 cases affected for this problem:

 1) Add source files by config symbol
 2) Include header files in #ifdef directive

These 2 cases may not be included in Make.dep and this may prevent the
differential build from working correctly.
2020-07-28 03:59:45 -05:00
Xiang Xiao
23668a4b9b build: Remove the empty variable assignment
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 08:24:13 -06:00
Xiang Xiao
dd61d3d9f9 build: Remve the unnecessary .gitignore
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-23 18:00:40 +01:00
Xiang Xiao
1a95cce1a3 build: Move .config check to the top Makefile
remove the workaround to handle the inexistence of .config/Make.defs

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-20 17:57:34 +01:00
Xiang Xiao
517974787f Rename clock_systime[r|spec] to clock_systime_[ticks|timespec]
follow up the new naming convention:
https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-10 14:35:50 -06:00
Xiang Xiao
610fa1aadc openamp: Fix libmetal build break for arm
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-08 12:34:51 +02:00
Xiang Xiao
17112f4eed openamp: Update to 2020.04.0 release
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 13:09:11 -06:00
Xiang Xiao
2bfc03f636 openamp: Download libmetal and open-amp from github
and apply the patch which is pending merge to upstream

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-04-27 20:21:23 +08:00
YAMAMOTO Takashi
1ffa009c8b Revert "Don't generate .depend anymore"
This reverts commit 79af7fbf4e.

Because:

* btashton reported some issues in local builds:

  https://github.com/apache/incubator-nuttx/pull/603#issuecomment-602264860

* this might be related to the current CI breakage:

  > /bin/sh: 1: /__w/incubator-nuttx/incubator-nuttx/nuttx/tools/mkdeps: not found
2020-03-22 23:07:29 -05:00
Xiang Xiao
79af7fbf4e
Don't generate .depend anymore 2020-03-22 18:15:29 +00:00
Xiang Xiao
a82da37059 openamp/Makefile: Linker input file unused because linking not done. 2019-11-10 08:09:32 -06:00
hao.an
4d64634137 openamp/: Add Makefile defines. 2019-11-10 08:09:32 -06:00
Gregory Nutt
bec32fbd5c openamp/Makefile: libmetal/Make.defs and open-amp/Make.defs. may not be present. 2019-11-03 09:30:34 -06:00