Commit Graph

141 Commits

Author SHA1 Message Date
Brennan Ashton
8934f2ed79 SIM: Add support Linux HCI Socket as BLE adaptor
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-08-28 01:01:29 -07:00
Xiang Xiao
7a32a396b0 arch/sim: Move share memory allocation to up_hostmemory.c
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-28 15:41:19 +01: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
cc00d2b2b0 arch/sim: Call sched_note_cpu_* when SCHED_INSTRUMENTATION equal true
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-26 12:24:57 +01:00
Xiang Xiao
dc55968678 arch/sim: Don't construct global C++ objects before main
otherwise the crash will happen because NuttX doesn't initialize yet

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Icc3f3fcd842a315bc68ae436d7a7a04aca1fc546
2020-07-11 15:06:09 -03:00
Xiang Xiao
19aaf7b357 arch/sim: Move the generation of nuttx-names.dat into nuttx target
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I04c612a56caee170742b07f87cea1b7feb4078c5
2020-07-11 15:06:09 -03:00
Xiang Xiao
f36bf5e079 arch/sim: Avoid build nuttx.rel and cleanrel concurrently
make can't guarantee the build order of prerequest with -jn where n > 1

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I772fcc0775d15b385f28fc0abeeff383b3a52622
2020-07-11 15:06:09 -03:00
chao.an
159053ab62 sim/c++: correct the compile flags
fix the following linker error:
nuttx.rel:(.eh_frame+0x93): undefined reference to `__gxx_personality_v0'

Change-Id: I94f43a15275194d42199c91f276e8848ad5189f6
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-07-11 15:06:09 -03:00
chao.an
f5039d0b23 sim: fix compile error caused by race condition
LD: nuttx.rel
objcopy: couldn't open symbol redefinition file nuttx-names.dat
         (error: No such file or directory)
Makefile: 297: recipe for target 'nuttx.rel' failed

Change-Id: Ic78f030b77c3468ddbb96d4fb0558edad3abc3ae
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-06-24 14:32:22 +01:00
chao.an
6e8cf28e9c nuttx/names: add symbol name preprocessing support
Change-Id: I54e0b24391b6e08801e3f0b1799ed3fcc9188ae7
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-06-18 07:09:40 -06:00
Xiang Xiao
37685110cb arch/sim: Fix hostfs.h No such file or directory in makedep
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-25 09:34:47 -06:00
Xiang Xiao
7e5b0f81e9 build: Replace -I with INCDIR
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01: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
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
2476aad5b4 sim: Fix librt can't find on macOS
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 13:09:44 -06:00
Xiang Xiao
2a7029dd52 arch/sim: All cpu core need conform to CONFIG_SIM_WALLTIME behaviour
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-04-19 07:51:18 -06:00
liuhaitao
459ad99373 Use EXTRAFLAGS instead of EXTRADEFINES to be used by make via command line
So call 'make EXTRAFLAGS=-Wno-cpp' could suppress the warnings with pre-processor
directive #warning in GCC.

Change-Id: Iaa618238924c9969bf91db22117b39e6d2fc9bb6
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-04-11 08:31:08 -06:00
YAMAMOTO Takashi
a493c92826 sim: Use executable memory for the heap
On modern environments, bss is not executable.

Alternatively we can use the ARCH_HAVE_MODULE_TEXT mechanism.
But it's considered overkill for the sim, which is mainly
for development.
2020-03-27 00:04:36 -05:00
YAMAMOTO Takashi
27aa16111c sim: hostfs: Stop assuming CONFIG_NAME_MAX=32 2020-03-25 20:31:32 -06:00
YAMAMOTO Takashi
702d82d052 vpnkit: Add a config to specify the socket 2020-03-23 14:37:56 -05: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
YAMAMOTO Takashi
a5f8b20fcd sim: Add a netdev backed by VPNKit 2020-03-19 09:13:32 -05:00
Xiang Xiao
8b5658b918 arch/sim: Implement arch rtc interface on top of rtc driver 2020-02-15 07:17:19 -06:00
Xiang Xiao
d0d4b7a531 Reimplement arch alarm timer on top of oneshot driver framework
The benefit include:

1. Simplify the implementation
2. Support both tick and tickless automatically
3. No time drift in tickless mode
4. Support critmon arch API automatically
2020-02-15 07:17:16 -06:00
Xiang Xiao
5e99e64d9f sim/net: Replace the busy polling with work
netdriver_loop should check there is data to read before queue the work
2020-02-12 08:16:43 -06:00
Xiang Xiao
5a00657ac4 arch/sim: Change CONFIG_NET_ETHERNET to CONFIG_SIM_NETDEV 2020-02-12 08:16:33 -06:00
Xiang Xiao
7fd3a3bcca xarch/sim: Call pm_initialize from up_initialize directly
We don't need the additional flexibility since sim just has one chip.
2020-02-10 08:56:51 -06:00
Xiang Xiao
978575d79a arch/sim: Pass X11 related config to host environment
Remove the hard code CONFIG_SIM_X11NOSHM value from up_x11framebuffer.c
2020-02-10 08:56:37 -06:00
Xiang Xiao
406a9adfdd arch/sim: fix up_idle call the wrong pthread_yield version
The logic want the host version but link to NuttX version
2020-02-09 07:44:51 -06:00
Xiang Xiao
04128b4570 arch/sim/src: Rename board_lcd.c to up_lcd.c like other sim code
Rename board_lcd.c to up_lcd.c like other sim code and compile up_spiflash.c and up_qspiflash.c conditionally
2020-02-08 08:52:34 -06:00
Xiang Xiao
fa3e66fe82 arch/sim/src/: Reimplement sim uart on top of serial driver framework
The benefits include:

1. Simplify the implementation
2. Support Ctrl+C automatically
3. Support poll automatically
4. Call pm_activity automatically
5. Save one polling thread
2020-02-08 07:52:26 -06:00
YAMAMOTO Takashi
4174c818df sim: Don't bother to remove nuttx.rel after consuming
We usually don't remove input files like $OBJS.
2020-01-29 09:03:48 +01:00
YAMAMOTO Takashi
b5573c5b51 sim: Fix nuttx.rel for macOS
* ld doesn't have --start-groupi/--end-group things.  As far as I know,
  it works that way by default.

* objcopy with Mach-O support is not widely available.
  (GNU binutils seem to claim the support but it didn't actually work
  for me.  llvm-objcopy --redefine-syms explicitly rejects Mach-O.)
  Instead, use -unexported_symbols_list linker flag to hide symbols
  to avoid conflicts with host symbols.
2020-01-29 09:03:48 +01:00
chao.an
b7e8670af1 arch/sim/ and boards/sim/sim/sim: Support OpenAMP between two simulator instances. Please read rpserver/rpproxy section in boards/sim/sim/sim/README.txt for more information. 2019-11-12 08:03:38 -06:00
Xiang Xiao
5a3d9c7570 arch/sim/src/Makefile: Move all SMP stuff into one place for arch/sim. 2019-11-10 20:42:00 -06:00
Xiang Xiao
a4ce23518e arch/sim/src/sim: Replace all CONFIG_DEV_CONSOLE with USE_DEVCONSOLE for arch/sim and compile up_devconsole.c conditionally. 2019-11-10 20:40:38 -06:00
Matias N
ddbb38ac91 arch/sim/src/Makefile: Fixes missing recursion into sim board directory for dependency generation. 2019-10-24 08:10:55 -06:00
Matias N
7135abbd2c arch/sim/src/sim: Fixes compilation for sim target when enabling power management. 2019-10-22 07:30:33 -06:00
ligd
9924e88d1e arch/sim: Add stack color feature for ps command. 2019-09-28 10:46:12 -06:00
Gregory Nutt
9bd850295e arch/sim/src/Makefile: Fix dependency problem due to reorganization of some directories. 2019-08-26 17:31:29 -06:00
Gregory Nutt
c840ac2496 arch/sim: Even though the simulation has no chips, it needs to have CONFIG_ARCH_CHIP and chip sub-directories. Otherwise, we would have to treat it as a special case in the build system. 2019-08-07 16:05:00 -06:00
Gregory Nutt
807d5bb4ae Critical Section Monitor: Add low level timer support for simulation. Fix serial bugs and logic errors in initial implementation. Still does not work; takes assertions. 2018-11-24 15:07:12 -06:00
Gregory Nutt
22cd0d47fa This commit attempts remove some long standard confusion in naming and some actual problems that result from the naming confusion. The basic problem is the standard MTU does not include the size of the Ethernet header. For clarity, I changed the naming of most things called MTU to PKTSIZE. For example, CONFIG_NET_ETH_MTU is now CONFIG_NET_ETH_PKTSIZE.
This makes the user interface a little hostile.  People thing of an MTU of 1500 bytes, but the corresponding packet is really 1514 bytes (including the 14 byte Ethernet header).  A more friendly solution would configure the MTU (as before), but then derive the packet buffer size by adding the MAC header length.  Instead, we define the packet buffer size then derive the MTU.

The MTU is not common currency in networking.  On the wire, the only real issue is the MSS which is derived from MTU by subtracting the IP header and TCP header sizes (for the case of TCP).  Now it is derived for the PKTSIZE by subtracting the IP header, the TCP header, and the MAC header sizes.  So we should be all good and without the recurring 14 byte error in MTU's and MSS's.

Squashed commit of the following:

    Trivial update to fix some spacing issues.
    net/: Rename several macros containing _MTU to _PKTSIZE.
    net/: Rename CONFIG_NET_SLIP_MTU to CONFIG_NET_SLIP_PKTSIZE and similarly for CONFIG_NET_TUN_MTU.  These are not the MTU which does not include the size of the link layer header.  These are the full size of the packet buffer memory (minus any GUARD bytes).
    net/: Rename CONFIG_NET_6LOWPAN_MTU to CONFIG_NET_6LOWPAN_PKTSIZE and similarly for CONFIG_NET_TUN_MTU.  These are not the MTU which does not include the size of the link layer header.  These are the full size of the packet buffer memory (minus any GUARD bytes).
    net/: Rename CONFIG_NET_ETH_MTU to CONFIG_NET_ETH_PKTSIZE.  This is not the MTU which does not include the size of the link layer header.  This is the full size of the packet buffer memory (minus any GUARD bytes).
    net/: Rename the file d_mtu in the network driver structure to d_pktsize.  That value saved there is not the MTU.  The packetsize is the memory large enough to hold the maximum packet PLUS the size of the link layer header.  The MTU does not include the link layer header.
2018-07-04 14:10:40 -06:00
Gregory Nutt
de119e8589 Various fixes necessary to build the simulator under MSYS. 2018-05-31 13:25:04 -06:00
Gregory Nutt
f2a89813f2 Build system: Remove fixed lib/ subdirectory and its content. Replace with new directory called staging/ that is created dynamically when building and removed when 'make clean' is done. This both improves the name and eliminates a garbage directory from the repository. 2018-05-29 11:36:21 -06:00
Jussi Kivilinna
7fe3625382 Simulation: Fix building 32-bit simulation on 32-bit X86 2017-09-04 07:56:51 -06:00
Nickolay Semyonov (RPI)
1fcc7ec38e Ommitted a file in previous commit 2017-08-26 11:45:08 -06:00
Simon Piriou
2e7961cc55 sim arch: fix mkdir issue in GNU target 2017-07-22 09:01:24 -06:00
Gregory Nutt
1b6630ee75 6loWPAN: Fix compile errors and warnings when building the complete 6loWPAN configuration. 2017-04-02 17:46:22 -06:00