Commit Graph

1297 Commits

Author SHA1 Message Date
Ulf Magnusson
63cb2334f0 doc: Document Zephyr's Kconfig configuration scheme
In particular, try to demystify Kconfig.defconfig files, and provide
guidelines on whether configuration settings should go in
BOARD_defconfig or Kconfig.defconfig.

The board porting section seems to be the most relevant one here, so put
the documentation there, with some "see also" links from elsewhere.
Things could be reorganized later if needed.

Give a general overview of visible and invisible Kconfig symbols as
well, as that ties in with the configuration scheme.

This is reverse-engineering on my part. The configuration scheme doesn't
seem to be documented anywhere prior.

Fixes: #7159

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-04-27 13:31:20 +02:00
Johan Hedberg
9968cda453 fs: Convert NFFS partition to a generic one
The NFFS partition at the end of flash is also useful for any other
file system or even the Flash Circular Buffer (FCB). Rename the
partition from 'nffs_partition' to 'storage_partition' and make it
depend on a new hidden Kconfig entry which the relevant users will
select (such as NFFS and FCB).

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-04-26 16:06:55 +05:30
Leandro Pereira
39dc7d03f7 scripts: gen_kobject_list: Generate enums and case statements
Adding a new kernel object type or driver subsystem requires changes
in various different places.  This patch makes it easier to create
those devices by generating as much as possible in compile time.

No behavior change.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-04-26 02:57:12 +05:30
Leandro Pereira
c200367b68 drivers: Perform a runtime check if a driver is capable of an operation
Driver APIs might not implement all operations, making it possible for
a user thread to get the kernel to execute a function at 0x00000000.

Perform runtime checks in all the driver handlers, checking if they're
capable of performing the requested operation.

Fixes #6907.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-04-26 02:57:12 +05:30
David B. Kinder
b4d67dcc46 doc: update doc generation instructions
Incorrectly stated Sphinx 1.7.0 was supported (it's not); newest working
version is 1.6.7.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-04-25 05:55:03 +05:30
Andy Ross
3f55dafebc kernel: Deprecate k_thread_cancel() API
The only difference between this call and k_thread_abort() (beyond
some minor performance deltas) is that "cancel" will act as a noop in
cases where the thread has begun execution and will return an error.
"Abort" always succeeds, of course.  That is inherently racy when used
as a "stop the thread" API: there's no way in general (or at all in
SMP situations) to know that you're calling this function "early
enough" to catch the thread before it starts.

Effectively, all k_thread_cancel() gives you that k_thread_abort()
doesn't is an indication about whether or not a thread has started.
There are many other ways to get that information that don't require
dangerous kernel APIs.

Deprecate this function.  Zephyr's own code never used it except for
its own unit test.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-04-24 03:57:20 +05:30
Ulf Magnusson
64eb789ff5 doc: Clarify format for CONF_FILE
The documentation doesn't give the format for listing multiple files in
CONF_FILE (space-separated list).

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-04-24 03:39:12 +05:30
Ulf Magnusson
303484aa2f doc: Clarify application configuration
The current application configuration documentation makes it a bit
unclear that configuration files are merged. Rewrite the documentation
to explicitly talk about merging, which I think is less confusing.

Remove the following section from the introduction as well, as I think
it might make people wonder how they can have an existing kernel
configuration when they haven't created one. The updated configuration
section (which the introduction now has a forward reference to)
clarifies the zephyr/.config bit anyway.

    If omitted, the application's existing kernel configuration option
    values are used; if no existing values are provided, the kernel's
    default configuration values are used.

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-04-24 03:38:20 +05:30
Ulf Magnusson
1ae99f02f1 doc: Improve Kconfig interface description
Pressing Y/N to configure boolean configuration symbols probably won't
be supported in the upcoming Python menuconfig implementation, and Space
is much smoother anyway. '?' is smoother than tabbing to '< Help >' too.

Also remove this part, which I couldn't make sense of:

    When a non-default entry is selected for options that are
    non-numerical, an asterisk :kbd:`*` appears between the square
    brackets in the display. There is nothing added added the display
    when you select the option's default.

[*] just means the current symbol value is 'y'.

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-04-24 03:36:12 +05:30
Iván Sánchez Ortega
e618608fca doc: Expand info about troubleshooting ModemManager
Expand information about the ModemManager issues (spurious AT commands)
and instructions on adding Segger USB devices to the ModemManager
blacklist.

Signed-off-by: Iván Sánchez Ortega <ivan@sanchezortega.es>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-04-21 07:05:38 -07:00
David B. Kinder
a380dce018 doc: fix links to mailing lists
A recent LF change to the Zephyr mailing list hosting software changed
the mailing list names and links to the message archives.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-04-21 06:55:46 -07:00
David B. Kinder
b57ac8a2ff doc: improve Sphinx search results output
The search result from Sphinx displays raw ReST file snippets showing
the context of the search hit.  While we could generate text versions of
the ReST files just for the search results, it would potentially double
the time to generate docs (run once to generate txt files, run again to
generate HTML).

Instead, this patch does a poor man's cleanup of the ReST markup on the
fly when the search summary snippets are written out.  Not perfect, but
looks much better.

It does expose a problem that some of our ReST content is not actually
written out into a .rst file. Content that's dynamically generated by
extensions, such as the sample code from zephyr-app-commands, can
yield a search result hit, but there's no hits in the .rst file content
itself.

Line 552-558 are the modified lines from the Sphinx-provided
searchtools.js that does the pattern match/replace.

Addresses: #7032

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-04-21 06:54:35 -07:00
Sebastian Bøe
558406932b doc: win: Invoke pip3 instead of pip to be safe
It has been observed that users might "default" to Python2 and pip
will therefore install packages for the wrong Python. pip3 appears to
always be installed when Python3 is installed, so we invoke pip3
instead of pip2 to be safe.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-04-21 05:42:04 -07:00
Ulf Magnusson
3a72cc9889 doc: genrest: Simplify select logic with split_expr()
The logic for walking reverse dependencies (from 'select's and 'imply's)
is a bit tricky to read (and write), and was essentially duplicated in a
few different spots (including in the upcoming menuconfig
implementation).

Use a new split_expr() helper function that's been added to Kconfiglib
to reduce code duplication and make the code more readable.

This also has another nice side effect: The list of symbols that select
a particular symbol now has the symbols in the order that they appear in
the Kconfig files.

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-04-17 08:02:40 -07:00
Sebastian Bøe
88b66b58b1 doc: getting_started: Make it more obvious how to follow the guide
Several users have reported confusion about whether one should stop at
the 'Using MSYS2' guide, or continue following the guide.

To resolve this we title the three options as Option 1,2,3, and change
the wording of the second guide to make it clear that it is an
alternative, not an additional step.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-04-12 14:18:31 -04:00
Andrei Emeltchenko
a660fcb315 doc: Add USB documentation identifiers and links
Add nicer looking links to sections and correct section name.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-04-12 14:03:00 -04:00
Andrei Emeltchenko
556e5329a6 doc: Make code consistent lowering case
Lowering case for consistency.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-04-12 14:03:00 -04:00
Andrei Emeltchenko
5e9563ab8b doc: usb: Move USB sections to USB Stack
At the moment "USB Vendor and Product identifiers" is hanging
inside "Subsystem" section.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-04-12 14:03:00 -04:00
Marti Bolivar
70a5bdedd8 doc: network-management-api: clarify intended event listening usage
Clean up the text, add an important warning, and add a self-contained
example rather than referring to the internal test code.

Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
2018-04-12 10:35:10 +03:00
Marti Bolivar
f6a25cfd0e docs: network-management-api: update a changed function name
The old net_mgmt_add_event_cb() is now net_mgmt_add_event_callback().

Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
2018-04-12 10:35:10 +03:00
Erwan Gouriou
9708372080 doc: provide board porting guidelines
Provide board porting guidelines to help achieving a coherent
board library to ease work for people developing application
not board specific and define clear objective to help board
porting reviews.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-04-06 22:23:45 -04:00
Carles Cufi
361ef34043 doc: subsys: Remove unnecessary subsystem from titles
In order to be consistent with the rest of the subsystems, remove
"subsystem" from the title.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-04-06 07:30:33 -04:00
Andrzej Puzdrowski
f1275a78f2 doc: subsystem: settings subsystem doc
This patch introduce doc for settings subsystem
with FCB and File System beck-ends.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2018-04-06 12:46:39 +02:00
David B. Kinder
9abc31e315 doc: clean up QEMU networking doc
Noticed a typo in the first sentence, then some missing articles further
down, and some other clarity and grammar edits came along.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-04-05 19:18:06 -04:00
David B. Kinder
e48b64d1be doc: fix doc misspellings in doc, boards, samples
Occasional spelling-check scan found some misspellings.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-04-05 19:17:01 -04:00
Loic Poulain
4b78225393 doc: usb: Update API doc
Add missing DC driver functions:
- usb_dc_ep_read_wait
- usb_dc_ep_read_continue
- usb_dc_ep_mps

Add missing DC status code:
- USB_DC_INTERFACE

Document new transfer API.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2018-04-05 16:43:43 -04:00
Carles Cufi
cd05a630c8 doc: getting_started: Modernize macOS instructions
Modernize macOS instructions to fit the latest packages offered by
Homebrew and macOS High Sierra.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-04-05 12:48:33 -04:00
Carles Cufi
8a8d981822 doc: subsys: Add dfu and mgmt subsytem doc
Add documentation for two closely-related subystems: dfu and mgmt, which
are currently undocumented.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-04-05 16:56:46 +02:00
Carles Cufi
6fd8a0b3ca doc: dts: Add reference to mcuboot flash partitions
Add a reference to the MCUboot flash partition doc so we can link to it
from other documentation pages.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-04-05 16:56:46 +02:00
Stig Bjørlykke
cde9c00c76 doc: Show a command to enable IPv4 forwarding
Using QEMU host on a Zephyr application using IPv4 to access Internet
requires IPv4 forwarding, so show a command to enable IPv4 forwarding.

Signed-off-by: Stig Bjørlykke <stig.bjorlykke@nordicsemi.no>
2018-04-02 15:26:28 -04:00
Ulf Magnusson
4703ba7d31 doc: genrest: Use Kconfiglib 2 and improve output
The new version of the reference page for a symbol lists the following
essential and generally useful information at the top of the page:

 - Prompt

 - Type

 - Help text

 - Direct dependencies (from 'depends on', and inherited from if's and
   menus)

 - Defaults

 - Other symbols selecting or implying the symbol

The current symbol value and visibility are no longer displayed. They
don't make much sense in a reference document, as they depend on user
values from configuration files.

The bottom of the reference page also includes the symbol represented in
Kconfig format (including propagated dependencies).

All references to defined symbols appearing in expressions are turned
into links, which can be clicked on to jump to the reference page for
that symbol.

The following (slightly outdated) screenshot gives an idea of the
format:
https://www.dropbox.com/s/a34tlk2ncyus8po/promptandtype.png?dl=0

This commit also removes Kconfiglib 1, since it is no longer used.

Fixes #5622
Fixes #6821

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-29 14:25:24 -04:00
Maureen Helm
c33087d336 build: doc: Add support for a Windows equivalent to .zephyrrc
Adds support for setting user environment variables in the file
%userprofile%\zephyrrc.cmd

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2018-03-29 10:35:19 -04:00
Ulf Magnusson
6188579063 filter-doc-log.sh: Fix error for empty log file
Running 'make html' in doc/ when doc.log is missing or empty gives the
following error if sphinx-build doesn't write anything on stdout/stderr:

    Error in ./scripts/filter-doc-log.sh: logfile "doc.log" not found.
    Makefile:84: recipe for target ”html” failed
    make: *** [html] Error 1

The problem is that scripts/filter-doc-log.sh tests for the existence of
the log file with [ -s ${LOG_FILE} ], which requires it to be nonempty.

Fix it by using -e instead, which only checks if the log file exists.
scripts/filter-known-issues.py ($KI_SCRIPT) seems to be able to deal
with empty files (and runs quickly).

Fixes #6854

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-29 08:26:47 -04:00
Ulf Magnusson
80c28dbf5e doc: sphinx: Fix broken import of lexer.DtsLexer
When sphinx-build is run under Python 2, running e.g. 'make html' in
doc/ currently causes the following error:

    Exception occurred:
      File "conf.py", line 128, in <module>
        from lexer.DtsLexer import DtsLexer
    ImportError: No module named lexer.DtsLexer

The problem is that doc/extensions/lexer/ contains no __init__.py file,
which prevents Python 2 from finding submodules in it[1].

The problem does not occur for Python 3, due to implicit namespaces
packages:
https://www.python.org/dev/peps/pep-0420/

Add an empty __init__.py to doc/extensions/lexer/ to fix building when
sphinx-build uses Python 2 (2.7 is still the version recommended on the
Sphinx homepage). This won't alter the behavior for Python 3.

(doc/extensions is added to the search path at the beginning of conf.py
and so doesn't need an __init__.py. doc/extensions/zephyr already has an
empty __init__.py.)

[1] https://docs.python.org/2/tutorial/modules.html#packages

Fixes #6851

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-29 08:16:04 -04:00
Jukka Rissanen
e5ea7d2260 doc: net: Add websocket and websocket_console to net API docs
Websocket related groups were missing from network API documentation.

Fixes #6779

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-03-28 10:05:49 +03:00
Sebastian Bøe
bdc5c72498 samples: Add sample that demonstrates a custom board definition
Add a sample that demonstrates a custom board definition. This proves
that BOARD_ROOT works and can be a useful reference when creating a
custom board definition.

Instead of spending time making up a board, the nrf52840_pca10056
board has been copied as-is. And the hello world sample has been used
as the basis for the application.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-27 09:35:35 -04:00
Carles Cufi
9ba007e878 doc; bluetooth: Rework and expand the Bluetooth doc
In order to avoid duplication, move all information relating to QEMU and
BlueZ from samples to subsystems, and expand to cover BlueZ installation
and usage of Controllers with BlueZ and QEMU in detail.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-03-27 09:45:08 +02:00
Sebastian Bøe
8356045633 docs: Fix reference to non-existent SYS_INIT_PM macro
The documentation is referencing the macro SYS_INIT_PM, but
SYS_INIT_PM does not exist, the correct name is SYS_DEVICE_DEFINE.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-26 13:17:39 -04:00
Sebastian Bøe
0de21f8a9b doc: drivers: Include device_config declaration in documentation
There are several references to config_info in this documentation, but
no introduction to what it is. Including this declaration makes it
possible to understand the documentation.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-26 13:17:39 -04:00
Sebastian Bøe
917d8e2f7b doc: drivers: Re-order error-handling section
The paragraphs on error handling are out-of-place, as they are
abruptly explained in the middle of a section that is about the cruft
involved in declaring and implementing drivers.

This commit moves them into their own section.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-26 13:17:39 -04:00
Sebastian Bøe
b07cb2924b docs: Use simple english
Simplify the sentence by using simple english.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-26 13:17:39 -04:00
Reto Schneider
3642a69a6b doc: boards: Remove hint to ini file
Since commit a792a3d410, adding an ini
file in scripts/sanity_chk/arches/ to support a new board is no longer
needed.

Signed-off-by: Reto Schneider <code@reto-schneider.ch>
2018-03-23 22:21:54 -04:00
Bobby Noelte
a5a29e4efc doc: sphinx: Add Pygment lexer for DTS
Add pygment lexer for DTS code-block.

Fixes #6029

Origin: skiboot, https://github.com/qemu/skiboot
Status:  91350c5a926795d8917a4eff699941361f780476
Description: Syntax highlighting of Device Tree Source (dts)
Dependencies: None
URL: https://github.com/qemu/skiboot/blob/master/doc/DtsLexer.py
commit: 91350c5a926795d8917a4eff699941361f780476
Maintained-by: External
License: BSL-1.0
License Link:
    https://github.com/qemu/skiboot/blob/master/doc/DtsLexer.py

Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2018-03-23 08:16:49 -04:00
Stig Bjørlykke
029c3235e9 doc: Supplement list of implemented socket operations
Add sendto() and recvfrom() to the list of implemented operations
in BSD Socket API.

Signed-off-by: Stig Bjørlykke <stig.bjorlykke@nordicsemi.no>
2018-03-21 15:36:11 -04:00
David B. Kinder
34d02e5e24 doc: fix backslashes in doc
Single backslashes outside of a code-block are treated as escape
characters, so need to double up to get a single backslash rendered in
the generated HTML.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-03-21 13:11:01 -05:00
Sebastian Bøe
43bc30466a Revert "doc: Kconfig: Decode Kconfig sources as UTF-8 instead [...]"
This reverts commit f8d451258e. The
revert is done because of a regression in Mac OSX
https://github.com/zephyrproject-rtos/zephyr/issues/6726

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-21 08:57:44 -04:00
Anas Nashif
585fd1faec doc: kernel: capitalize Fifo/Lifo
Capitalise Fifo and Lifo in documentation, those are acronyms and need
to be all in caps.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-03-20 14:01:30 -04:00
Maureen Helm
e2d73fb153 doc: application: Add Eclipse debugging section
Document how to debug a Zephyr application in the Eclipse IDE.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2018-03-20 12:44:05 -04:00
Sebastian Bøe
f8d451258e doc: Kconfig: Decode Kconfig sources as UTF-8 instead of as LC_CTYPE
Decode Kconfig sources as UTF-8 instead of decoding them according to
the system locale (which might be ascii-only).

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-20 12:07:02 -04:00
Iván Sánchez Ortega
71ddd825ec doc: Add 'apt-get install python3-wheel' to linux installation docs
Adding missing dependency to the "getting started" documentations.
Without the python3-wheel package, running "pip3 -r requirements.txt"
on a Debian system will fail.

Signed-off-by: Iván Sánchez Ortega <ivan@sanchezortega.es>
2018-03-17 19:05:17 +01:00