Commit Graph

55 Commits

Author SHA1 Message Date
Alberto Escolar Piedras 3ac2dc920e native_posix: Minor fix in message printed on kill
The message which was printed when killing the process was not
correct. Fixed it.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-08-20 17:49:18 -07:00
Alberto Escolar Piedras e861661c11 native_posix: argparsing: Fix possible segfault
Fix in command line parsing common functions, to prevent
a possible segfault when handling string type arguments

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-08-20 17:49:18 -07:00
Alberto Escolar Piedras 00b07615fa native_posix: Add missing headers and function prototypes
A few function prototypes were missing in the native_posix
board and its drivers.
Let's add them.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-08-02 19:14:19 +02:00
Alberto Escolar Piedras a76fa45e4a native_posix: minor doc fixes
A few minor fixes in the native_posix documentation.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-08-01 12:13:20 -07:00
Alberto Escolar Piedras 55f6620c3e native_posix: Refactor cmd line options
For each driver/model with command line options.
Move its code for the board file into the driver/model file.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-30 22:13:46 -04:00
Alberto Escolar Piedras f742d0e2a2 native: Allow cmd line options to be registered dynamically
Allow command line arguments to be registered dynamically
instead of being statically defined.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-30 22:13:46 -04:00
Alberto Escolar Piedras 550225b668 native: Generalize native tasks
Some drivers or tests need to execute some code before Zephyr is
booted, dynamically register command line arguments, etc.

For this purpose, we generalize the NATIVE_EXIT_TASK to also
provide hooks to run a function at a given point during the startup
of native_posix.

Also, test/boards/native_posix/exit_tasks is generalized to cover
this new functionality.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-30 22:13:46 -04:00
Alberto Escolar Piedras 5cc928fbd4 native_posix: Add realtime control and real time clok model
For native_posix:
Added the option to control the speed of the simualated time vs
the real(host) time.

Added a model of a real time clock with an API.

In the documentation we clarify the relationship between simulated
time and real time, and include documentaion of this new RTC.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-24 22:59:07 -04:00
Alberto Escolar Piedras ba45d54bf9 native_posix: command line parsing fix
Until now, command line options switches which matched the
begining of other options with argumentes needed to be listed
after those. After this fix this is not neccessary anymore.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-24 22:59:07 -04:00
Alberto Escolar Piedras 362e5ddb6b native_posix: Be more precise with stop-at
Let the HW events which would have executed right at the
stop-at time happen, as this produces a more intuitive runtime.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-24 22:59:07 -04:00
Alberto Escolar Piedras 15d847add8 native: Add NATIVE_EXIT_TASK hooks
Some of the native application components or drivers need to
do a proper cleanup before the executable exits.
So we provide a macro similar to SYS_INIT but which will be
called just before exiting.
This can be used for freeing up resources, closing descriptors,
or doing any neccessary signaling to any other host process.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-18 15:43:12 -04:00
Alberto Escolar Piedras 0a5de7df71 native_posix: override C standard version to 2011
Override the C standard used for compilation to C 2011
This is due to some tests using _Static_assert which is a 2011
feature, but otherwise relying on compilers supporting it also
when set to C99.
This was in general ok, but with some host compilers and C
library versions it led to problems. So we override it to 2011
for native_posix board.

Fixes: #8529

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-05 12:55:07 -04:00
Alberto Escolar Piedras e1af33b428 doc: native_posix: Add paragraph about ASan
Added one paragraph about having the option to use
Address Sanitizer and how to use it.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-04 15:11:20 -04:00
Alberto Escolar Piedras bdab07a2fd native_posix: Do not select COVERAGE by default
Now that it is possible to easily add Kconfig options from command
line, we do not need to always compile native_posix with coverage.
This was done only to have it set easily for sanity_check.

So do not select it anymore, and let users choose if they
want coverage dumps or not.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:36:06 -04:00
Ulf Magnusson fb0366b339 boards: Kconfig: Remove redundant 'default n' properties
Bool symbols implicitly default to 'n'.

A 'default n' can make sense e.g. in a Kconfig.defconfig file, if you
want to override a 'default y' on the base definition of the symbol. It
isn't used like that for any of the removed properties though.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-27 17:15:31 -05:00
Alberto Escolar Piedras 985f43e38b native_posix: Let users use math functions
native_posix relies on the host C library even if users think
they are selecting one of the lib/libc C libraries.

For the math functions to be available at link time we need
to link to the host math library when building for this board

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-23 00:39:08 -04:00
Alberto Escolar Piedras ebbb744b03 native: Fix host BT driver kconfig warning
Fixed the BT_USERCHAN config warning
by setting it only if BT_HCI is selected,
instead of setting it always and relying on it
being set to "no" by not meeting that dependency.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-13 18:48:26 +02:00
Alberto Escolar Piedras 3a87e0ed05 native: Fix entropy generator kconfig warning
Fixed the FAKE_ENTROPY_NATIVE_POSIX config warning
by setting it only if the entropy generator is used,
instead of setting it always and relying on it
being set to "no" by not meeting that dependency.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-13 18:48:26 +02:00
Alberto Escolar Piedras 477b5497a7 native: Add command line options to control real timeness
For the native_posix board,
added the command line options -rt and -no-rt to control
if the execution should be slowed down to real time or not.

CONFIG_NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME still works, but
now it just sets a default.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-11 17:29:27 -04:00
Alberto Escolar Piedras 2e405fbc6d native_posix & kernel: Remove legacy preemption checking
Fix in interrupt wrapping for native_posix so it also
supports meta-interrupts.

Related to commit:
3a0cb2d35d

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-11 17:25:58 -04:00
Alberto Escolar Piedras a7de06a687 native_posix: irq_offload to use a sw interrupt
New tests rely on irq_offload() actually being based on an
interrupt.
So let's base it on a new SW interrupt.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-11 17:25:58 -04:00
Johan Hedberg 7d9896575b Bluetooth: Add HCI User Channel driver for native POSIX port
Introduce a custom HCI driver for the native POSIX port, which opens a
HCI User Channel socket to the Linux kernel to gain access to a local
Bluetooth controller.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-06-11 17:14:43 -04:00
Alberto Escolar Piedras 29ed87c930 native: entropy: warn of security risk
Be more obvious about the entropy_native_posix driver
being only a test utility which does not generate real
entropy.

Fixes: #6388

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-05-17 07:51:00 +03:00
David B. Kinder 9af44d8256 doc: add native posix command line help
The zephyr.exe created when building a native POSIX application can take
some parameters that are documented in the "board" document, so add a
reference to that documentation here.

fixes: #6384

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-05-14 17:24:03 -04:00
Anas Nashif ea9a345182 boards: native_posix: mark netif as supported
To be able to run many networking tests.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-04-09 22:55:20 -04:00
Alberto Escolar Piedras 9782755a55 native doc: minor improvement in ethernet driver
Refer to the samples/net/eth_native_posix sample app
and mention that this driver only works on Linux
with admin rights

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-04-04 15:30:07 -04:00
Jukka Rissanen 22399c327e drivers: eth: native_posix: Enable ethernet by default if needed
As the native_posix board has ethernet driver, then enable it by
default if networking is enabled in prj.conf file. This way we can
use generic networking config file when running the application
for native_posix board.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-04-03 17:47:53 -04:00
Jukka Rissanen 0f66426f4a drivers: eth: Add ethernet driver for native posix arch
This creates zeth network interface in your host and allows user
to send and receive data sent to this network interface.

Fixes #6007

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-03-18 20:47:36 -04:00
Alberto Escolar Piedras 19e3500f24 native: doc: command line related improvements
A few new additions in the documenation regarding the
command line options

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-03-02 07:10:39 +01:00
Alberto Escolar Piedras 30ae79ae39 native: added entropy device
Added pseudorandom entropy device for the native_posix board

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-23 07:34:07 -05:00
Alberto Escolar Piedras f004e0475e native: added more proper command line parameters parsing
Added a basic command line parameter parsing framework

Added the following options by now:
--stop-at=<time>: Auto-stop after <time> seconds
--seed=<seed>   : random seed for entropy device
--testargs      : any argument that follows is ignored in top level
                  and made available thru
                  native_get_test_cmd_line_args()

All command line parameters are still avaliable by calling
native_get_cmd_line_args(), but now you can also call
native_get_test_cmd_line_args() to get whatever was set after
--testargs

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-23 07:33:11 -05:00
Andy Ross 9c62cc677d kernel: Add kswap.h header to unbreak cycles
The xtensa-asm2 work included a patch that added nano_internal.h
includes in lots of places that needed to have _Swap defined, because
it had to break a cycle and this no longer got pulled in from the arch
headers.

Unfortunately those new includes created new and more amusing cycles
elsewhere which led to breakage on other platforms.

Break out the _Swap definition (only) into a separate header and use
that instead.  Cleaner.  Seems not to have any more hidden gotchas.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-02-16 10:44:29 -05:00
Alberto Escolar Piedras 6c483ead26 native: timer bugfix in tickless mode part
Bugfix in the tickless mode part:
During _time_idle_exit it was not announcing to the kernel the
already passed silent ticks, but it was left for the tick interrupt
itself.
This did not cause any trouble so far as there was only the timer
interrupt in this board.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-08 15:56:48 -08:00
Alberto Escolar Piedras 3b924ede3e native: coverage exclusions
Just some exclusions to coverage in code which cannot be
reached, or can only be reached in error conditions

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-07 16:28:16 -05:00
Alberto Escolar Piedras 66c1652fb8 native: native_posix timer + irq fix
Added possibility to reconfigure CONFIG_SYS_CLOCK_TICKS_PER_SEC
for the native_posix board (before it could only be 100)
+
Fixed tickless idle support
+
Minor fixes in irq wrapping

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-07 16:28:16 -05:00
Alberto Escolar Piedras a99a14c3b7 native: added posix_get_hw_cycle()
Added function (for all ARCH_POSIX boards) to get the
the current clock cycle of the CPU

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-07 16:28:16 -05:00
Alberto Escolar Piedras 1e46d39068 native test: End tests as soon as they pass fail
To avoid indeterministic behaviour of the tests
which leads to changing coverage reports, let's
finish the tests exectuion as soon as they pass
or fail.
Also let's return 0 to the shell if the test passed,
and 1 if it failed.

(Reverting
f9af42f078 and
07c9163f67
)

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-05 06:26:53 -08:00
Alberto Escolar Piedras 0e1c6e1f59 native: doc: typo in figure
Corrected a typo in native_posix's architecture figure

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-02 07:48:46 -08:00
Alberto Escolar Piedras e3f727cc6e native: added stdin handling for shell
Now the native console driver also handles stdin
so we can drive the shell from the command line,
a pipe or a file

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-02 07:48:46 -08:00
David B. Kinder 701bb2afba doc: fix misspellings in boards and samples docs
Fix misspellings found in board and sample docs missed during regular
reviews.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-01-30 20:27:43 -05:00
Alberto Escolar Piedras abd54484fc native: doc fix regarding ztest not stopping
Tests using ztest do not stop anymore since commit
07c9163f67
=> fixed documentation

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-29 23:23:56 -05:00
Alberto Escolar Piedras a35364dd1a native: minor consistency rename
rename main_clean_up() to posix_exit() for consistency
with all other global functions of this architecture

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-29 23:23:56 -05:00
Alberto Escolar Piedras cf81893344 native: Corrected board name in config short description
Corrected the board name in the configuration short
description string. It was the old Simple_process name which was
replaced with native_posix

Corrected also the comment/title in the "Board Options" menu

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-25 18:54:26 +05:30
Alberto Escolar Piedras dd968b97ea native: fixed configuration warning
The native SOC Kconfig file was still referring to the old
configuration option SOC_INF_CLOCK which was replaced with
SOC_POSIX.
This produced a warning on configuration which is now fixed

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-25 18:54:26 +05:30
Anas Nashif 2fd36fac81 native_posix: enable coverage by default
To get coverage data from all samples and tests, enable this by default.
Right now we only get coverage data from tests, however many samples we
currently have can run natively and can generate more coverage and
testing.

This should be removed once we have tests provide better coverage.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-25 04:45:35 +05:30
Alberto Escolar Piedras 2eab036233 native: documentation improvements
Quite a lot of improvements in the native_posix board
documentation:

* Added TOC
* Reordered
* Given much more emphasis to its limitation
* Added subsection explaining how to overcome some of these
  limitations
* Added rationale section
* Added section comparing this port with QEMU and ISSs
* Corrected build example (this port cannot be compiled on
  Windows, regression from commit
  e62ee6ab3c )
* Added note about it not working on W10 WSL (#5762)
* Several other minor fixes

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-25 04:44:36 +05:30
Alberto Escolar Piedras a9ae315f07 native: don't slow down tests
For tests (CONFIG_TESTS) do not slow down the execution
to real time.
For samples, we assume they are interactive and therefore it is
still preferred to run them at real time.

This speeds up the native_posix part of sanitycheck
by ~50% (more the faster the computer)

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-24 06:51:22 +05:30
David B. Kinder fd04de2d10 doc: fix misspellings in Kconfig files
periodic scan for typos missed during normal reviews

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-01-12 20:58:56 -05:00
Alberto Escolar Piedras 5aa0d88b58 native: native_posix doc improvements
* Added a figure explaining how layering of the posix arch
  compares to the embedded builds
* One minor grammar change in last paragraph

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-11 19:02:07 -05:00
Alberto Escolar Piedras 66a1454ce6 native: Accept command line arguments
The native_posix board will accept command line arguments
which the application / test may pick by calling
native_get_cmd_line_args()

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-01-11 18:02:54 -05:00