Commit graph

15409 commits

Author SHA1 Message Date
Benjamin Walsh
7ef0f624a7 unified: rename 'memory maps' to 'memory slabs'
This better aligns with the actual functionality of the object.

Change-Id: I70abf54f994e92abd7367251089ea4f735d273fe
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-10-28 18:44:18 +00:00
Johan Hedberg
4a3db55a54 Bluetooth: Fix license header in l2cap.h and rfcomm.h
The header was always supposed to be Apache 2 and not 3-Clause BSD.

Change-Id: I82f319edfc7a76323b2b409fadc90e270d7f1cad
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-10-28 13:16:39 +03:00
Johan Hedberg
6989bf88e1 Bluetooth: Rename bt_driver to bt_hci_driver
The bt_driver API was created when Zephyr only had a Bluetooth host
stack, but no controller-side functionality. The only "driver" that
was needed for the host was the HCI driver, and hence "HCI" was
omitted from the name.

With support both for host and controller Zephyr will be getting more
Bluetooth driver types, in particular radio drivers. To prepare for
this, move all HCI drivers to drivers/bluetooth/hci/ and rename the
bt_driver API bt_hci_driver.

Change-Id: I82829da80aa61f26c2bb2005380f1e88d069ac7d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-10-28 08:09:08 +03:00
Carles Cufi
86912a5e83 Bluetooth: HCI: Remove "EDR" and "HS" marketing terms from macros
Remove "EDR" and "HS" postfixes from the version names, since
those are only relevant from a marketing point of view, and
not at all for HCI compatibility purposes.

Change-Id: Id8b4b010ed8b80dd63898c4baf85062e51b2635a
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2016-10-28 08:09:08 +03:00
Carles Cufi
40b8ea136a Bluetooth: Controller: Set HCI version to 4.2
Report the HCI version supported by the Controller as 4.2,
since it was set as 0 (1.0b) and this confused certain Host
implementations, such as BlueZ.

Change-Id: I809721ee9c2b55e77e6a3ca63688c802a9ffa0ba
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2016-10-28 08:09:08 +03:00
Allan Stephens
88095027f4 unified: Ensure K_THREAD_DEFINE() generates a thread id
Previously the macro provided no way for an application to
easily reference a statically-defined thread.

Change-Id: I552e5f4ab4e6e8a793bb3a6a2b0c2636b900023a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-27 08:36:14 -05:00
Allan Stephens
6cfe1322f8 unified: Streamline thread initialization macros
The _THREAD_INITIALIZER() macro is now used in all cases where
a static thread is defined. It accepts the arguments used by
k_thread_spawn(), as well as the legacy abort function and task
group arguments.

The two remaining legacy macros required to support static threads
now appear in legacy.h.

Change-Id: I7ba24c285beee63d63c8da0e0fa120f35c0d9526
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-27 08:14:51 -05:00
Allan Stephens
7c5bffa669 unified: Add options field to static thread initialization structure
Adds the field, in preparation for making use of it in the future.

Also re-orders the existing fields of the _static_thread_data
structure so they appear in the same order as the arguments
to k_thread_spawn(). This makes it easier to ensure all of the
arguments and fields are handled in a consistent manner.

Change-Id: I401687ecfdacd52c05ab95af7f12d8dc658ed419
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-27 08:14:51 -05:00
Szymon Janc
ccadd4b006 net: Use proper format for printing size_t
size_t should be printed with %zu. This also fix build error on
unified kernel due to ZEP-1133.

Change-Id: I9c5fc7f7de365e47bd0973913b94baa80f7907e3
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-10-27 08:08:27 +00:00
Benjamin Walsh
162cbdd22f unified: map legacy nano sem give APIs directly to unified kernel APIs
For some reason, the legacy nanokernel semaphore "give" APIs were
implemented as macros that took a parameter instead of doing a straight
mapping to the unified kernel functions that provide the equivalent
functionalities. This prevented passing the nanokernel semaphore APIs as
function pointers to other APIs.

One such subsystem that does this is the kernel event logger.

Change-Id: Ib302167c9907d2c8ac1f9beef1eef093b48abf61
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-10-26 23:37:54 +00:00
Piotr Mienkowski
378fa6598f arch: Add support for Cortex-M7 processor
All M7 features common to M3/M4 are working. New features like Tightly
Coupled Memory (TCM) are not yet supported.

Change-Id: I5f7b292e70843aec415728f24c973bb003014f4b
Jira: ZEP-977
Signed-off-by: Piotr Mienkowski <Piotr.Mienkowski@schmid-telecom.ch>
2016-10-26 12:58:40 -05:00
Kumar Gala
19ffcab434 arm: Move Cortex-M memory map to be absolute addressed
Support Cortex-M0, M3/M4, M7 is easier when the memory map is defined in
terms of absolute addresses.

Based work from: Piotr Mienkowski <Piotr.Mienkowski@schmid-telecom.ch>

Change-Id: I860860c369e8bed6c6c23661a15ce464d87ff221
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2016-10-26 12:56:59 -05:00
Andrew Boie
431607c20a nios2: port to unified kernel
With this patch we introduce unified kernel support for NIOS II.
Not all test cases have been ported, but the following command
currently succeeds with 43/43 passing test cases:

 $ sanitycheck --arch=nios2 -xKERNEL_TYPE=unified \
         --tag=unified_capable

Issue: ZEP-934
Change-Id: Id8effa0369a6a22c4d0a789fa2a8e108af0e0786
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-10-26 17:10:13 +00:00
Allan Stephens
e262615280 unified: Remove k_thread_abort_handler() support
The new kernel doesn't support the thread abort handler concept,
so only the legacy API for this capability is needed.

Change-Id: Ie809092e73b784504c3d298911d216bed8dd8993
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-26 17:03:12 +00:00
Luiz Augusto von Dentz
76240677d9 net: buf: Make net_buf_frag_add take ownership of the buffer
This simplify buffer handling so that no extra references are needed.

Change-Id: Id99a0a75b39ca8db2216668f76c5a672713075ae
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-10-26 12:48:47 +00:00
Marcus Shawcroft
8d6ac0d045 drivers: Make the device struct driver_api pointer target const
Change-Id: I9e3815a0a0628171ab105fffef77a75a706ecca4
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-25 18:45:09 +00:00
Marcus Shawcroft
571c3a8968 drivers/uart: Make references to driver_api const
Change-Id: I6f4149f8cb4ba425e266ff1cff4b1a57763dddb7
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-25 11:31:09 +00:00
Marcus Shawcroft
1bc999cb8d drivers/uart: Refactor UART input hook.
This refactor is in preparation for making driver API structures
const.

The console driver provides a mechanism to install an input and an
output hook function.  These are primarily used by the onboard
gdb-server.  The output hook is entirely implemented within the
console driver.

The input hook is partially implemented in the top of the uart driver
and within the console driver.  The hook function itself is installed
in the uart API structure, but is invoked only by the console driver.

Installing the hook function directly into the uart API structure
prevents the API structure being const.  There are two approaches to
fixing this:

1) Implement setting of the input hook in the same way as
uart_irq_callback_set().

2) Move the input hook entirely to the console driver.

We implement the latter.  This approach has two benefits, first it
removes the need for every uart driver to implement the behaviour and
second, the current placement of the callback function in the uart API
seems odd given that the callback is only invoked by the console
driver, never by a uart driver.

Change-Id: I258b312d3055df1c2bdeb896bd4f4f39c40838f7
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-25 11:31:08 +00:00
Allan Stephens
480a131ad9 unified: Support heap memory pool
Fleshes out the prototype heap memory pool support
to make it fully operational. Noteworthy changes are
listed below:

Tweaks arguments to k_malloc() and k_free() to be more like
malloc() and free(). Similarly, modifies k_free() to take
no action when passed a NULL pointer.

Now stores the complete block descriptor at the start
of any block allocated from the heap memory pool. This
increases memory overhead by 4 bytes per block, but
streamlines the allocation and freeing algorithms. It also
ensures that the routines will work if the block descriptor
internals are changed in the future.

Now allows the heap memory pool to be defined using the
HEAP_MEM_POOL_SIZE configuration option. This will be the
official configuration approach in the unified kernel.

Also allows the heap memory pool to be defined using the
(undocumented) HEAP_SIZE entry in the MDEF. This is provided
for legacy reasons only.

Co-locates memory pool initialization code to keep the line
that causes memory pool initialization to be done during booting
right next to the routine that does the initialization.

Change-Id: Ifea9d88142fb434d4bea38bb1fcc4856a3853d8d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-25 00:10:34 +00:00
Allan Stephens
904cf97263 unified: Eliminate thread config structure used by work queues
Reworks k_work_q_start() so that it accepts its 3 configuration
settings directly, rather than forcing the caller to pass in a
configuration data structure.

Change-Id: Ic0bd1b94f1a1c8e0f8a84b3bd3677d59d0708734
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-25 00:10:34 +00:00
Allan Stephens
06aefdb654 unified: Align thread creation APIs
Aligns the APIs for defining a thread at compile time and for
spawning a thread at run time.

Change-Id: Ic5df450cbe4d0eb562fb4a608f1ac5a8a7cb4b96
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-25 00:10:33 +00:00
Allan Stephens
35ffaff43d unified: Don't bother initializing memory map buffer
The "__noinit" was accidentally lost during initial prototyping
of the unified kernel. This just restores it ...

Change-Id: Id13e0e9a323c1bcd49c28a5d8da73943b0177890
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-25 00:10:33 +00:00
Peter Mitsis
602e6a8ae7 unfied: Tweak stack API parameters
- Reorders parameters where necessary

Change-Id: I0aa659515b71c8f2d6ed7fae47489ddcb10eb69f
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-10-24 22:58:27 +00:00
Peter Mitsis
ddbe77a1dd unified: Remove unused K_STACK_SIZE() macro
Change-Id: I3ded26e249fec3e9024984f4a788bf312c3c2d88
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-10-24 22:58:26 +00:00
Marcus Shawcroft
af1d1c2d8c drivers/flash: Make references to driver_api const
Change-Id: Ib2b85638a82259a551005bd8d66a5a364104b14f
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:26 +00:00
Marcus Shawcroft
a5e897050e drivers/gpio: Make references to driver_api const
Change-Id: I0254a2793e0c0cd9b9146647c8d845cb7d36dd28
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:26 +00:00
Marcus Shawcroft
e7a24458f2 drivers/i2c: Make references to driver_api const
Change-Id: I4bb104862ade4d46eaa74a0916b49599d9d94bf9
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:25 +00:00
Marcus Shawcroft
bb4d03b154 drivers/ipm: Make references to driver_api const
Change-Id: I1ce60c6e139bbac4f8f4eb901bf9654b89d098d4
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:25 +00:00
Marcus Shawcroft
07b56d8545 drivers/pinmux: Make references to driver_api const
Change-Id: Ifc5ee93db7631bbe7c900666b5d83bf80facf9fb
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:24 +00:00
Marcus Shawcroft
5e1e3edee6 drivers/pwm: Make references to driver_api const
Change-Id: I5f275f1715fab3251bf866f7a311175edc64eac2
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:24 +00:00
Marcus Shawcroft
39d34d73a0 drivers/rtc: Make references to driver_api const
Change-Id: I3e32eb8a12ec8ac71257dbd5f98fe614f3c385c7
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:24 +00:00
Marcus Shawcroft
b3774c9070 drivers/sensor: Make references to driver_api const
Change-Id: I872bf5c748f00bc40e5a1f8992e1e11ad843311c
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:23 +00:00
Marcus Shawcroft
a45c3f8ad6 drivers/shared_irq: Make references to driver_api const
Change-Id: Id553da5c36261391d70a89e567762e31f19bde5a
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:23 +00:00
Marcus Shawcroft
a7749abbb5 drivers/eth: Make references to driver_api const
Change-Id: I27f5ba316799aafabac4bbe1c93caa639a952684
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:22 +00:00
Marcus Shawcroft
3651a7d108 drivers/dma: Make references to driver_api const
Change-Id: Iecf333860d92e2f79ef26bfefdde4abfb31bbe0f
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:22 +00:00
Marcus Shawcroft
4b93e14b64 drivers/clock_control: Make references to driver_api const
Change-Id: I059fd2df62059a782b7ac5aa6e68e2cd948a2bc1
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:21 +00:00
Marcus Shawcroft
df35c244c4 drivers/counter: Make references to driver_api const
Change-Id: I09d24dd5aa126cacf47927b38286353adc8f6337
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:21 +00:00
Marcus Shawcroft
278f9792f0 drivers/aio_comparator: Make references to driver_api const
Change-Id: I4c396ace0d4365e57449da004c86e30dce7d0a85
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:20 +00:00
Marcus Shawcroft
842a8e4a24 drivers/adc: Make references to driver_api const
Change-Id: I4981f0679345845762e762c585d098c3eaa85384
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:20 +00:00
Marcus Shawcroft
9ff8463b39 drivers/spi: Make references to driver_api const
Change-Id: I9bf5bc445c0dac651d57ed7216bd239457b29bb3
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:20 +00:00
Marcus Shawcroft
156eebe912 drivers/watchdog: Make references to driver_api const.
Change-Id: I2c0d21329b9216e5b7bedbdd6dadee19b7f827fa
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-10-24 22:22:19 +00:00
Paul Sokolovsky
fb9185cdb8 kernel: Allow SYS_KERNEL_VER_MAJOR(), etc. return full range of values.
Macros SYS_KERNEL_VER_MAJOR(), SYS_KERNEL_VER_MINOR(),
SYS_KERNEL_VER_PATCHLEVEL() capped their return values to 0-15 range,
even though documentation says "Each of these elements must therefore be
in the range 0 to 255, inclusive". Fix to corresponds to the docs. This
issue especially affected SYS_KERNEL_VER_PATCHLEVEL(), which could be
set to a high value to represent WIP code in-between releases.

Change-Id: I0b72fb68f3f0f8d3d3b321a5ba2c48671879dfbc
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2016-10-22 10:04:00 +00:00
Dmitriy Korovkin
3c90651fd8 unified/arc: add memory pools support for ARC architecture
ARC does not align data structures by 4 bytes by default.
Add necessary linker sections.

Change-Id: I3bf7aa38b9bc8cba56f824469040c027968fa564
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-10-22 01:27:01 +00:00
Ricardo Salveti
ffacae20d0 arch/arm: add initial support for Cortex-M0/M0+
Not disabling SysTick as it is optional by the spec.

SVC not used as there is no priority-based interrupt masking (only
PendSV is used).

Largely based on a previous work done by Euan Mutch <euan@abelon.com>.

Jira: ZEP-783

Change-Id: I38e29bfcf0624c1aea5f9fd7a74230faa1b59e8b
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2016-10-22 01:25:53 +00:00
Ramesh Thomas
6249c567f5 device_pm: Update control function name and doc to indicate PM specific
PM control function is used only by the PM subsystem. Update
documentations to make it clear and name the relevant structures and
functions with _pm_ in the name.

Jira: ZEP-1044
Change-Id: I29e5b7690db34a228ed30a24a2e912e1360a0090
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-10-21 23:32:52 +00:00
Andrew Boie
1c25f49ac5 x86: arm: add support for custom data at start/end of RAM
This is used by a test case, and it's better to just put this
here instead of forking the linker scripts.

Change-Id: Ifbb90b73bb26118ae2422cc6feccb3db58a26f2c
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-10-21 23:30:06 +00:00
Andrew Boie
662df128cd x86: remove references to .intStubSect in linker script
This has been unused for a long time.

Change-Id: Ie251d60d1cf9f3806292e3c150dbedf5f99d6410
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-10-21 23:30:06 +00:00
Andrew Boie
327017fb92 x86: remove unused linker-defs-arch.h
Change-Id: Ib57cced30569adf2ae72f32d27baf30a5ca4fe71
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-10-21 23:30:05 +00:00
Andrew Boie
caf19b2503 x86: remove final-linker.cmd
This mechanism was intended to reserve space during the first pass for
certain data structures created by gen_idt, but this is unnecessary.
The only memory addresses that must be fixed between the two passes are the
locations of the interrupt stubs, which are in the .text section much
earlier than the generated data structures; they do not shift.

Change-Id: I3aab00e171e6a9ff439a7af8d69769e4c29337a7
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-10-21 23:30:04 +00:00
Anas Nashif
bce6b337a5 Merge "Merge bluetooth branch into master" 2016-10-21 22:12:23 +00:00