Commit graph

42249 commits

Author SHA1 Message Date
Peter Mitsis
3259d0e3c4 unified: Replace _nano_get_earliest_deadline()
Replaces _nano_get_earlist_deadline() with the more streamlined
routine _timeout_get_next_expiry().

Change-Id: Iee7ec727f0500cb28e37a364036fd40a483b40c3
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-09-23 19:53:20 +00:00
Dmitriy Korovkin
5a92f4b54f unified: Make test_pend unified capable.
test_pend test checks task_offload_to_fiber() routine.

Change-Id: I1d23e371accd633cce94db71b94f224b9b99a385
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-09-23 18:51:07 +00:00
Dmitriy Korovkin
bf9972113f unified: Add legacy task_offload_to_fiber() routine
For unified kernel the routine is implemented through
a wait queue.

Change-Id: Iceab7b821e3b55e0773ad780f4b9b0a1dfc21f5d
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-09-23 18:51:06 +00:00
Peter Mitsis
653ff0b949 unified: Remove check in _reschedule_threads()
The routine _reschedule_threads() does not need to check that the
scheduler is locked as this is done as part of _must_switch_threads().

Change-Id: I701b811512836eef591b2adcd708991ec9324b3d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-09-23 18:25:49 +00:00
Andy Ross
8d8b2acb26 k_timer: Don't allocate dynamic timers by default
Most apps run fine with static k_timer objects.  Don't pay the cost
for the timer pool if no one asks for it.

Also turn off the allocate/free API in the header if it can't possibly
work at runtime as it's an obviously-detectable error that would
otherwise be visible only at runtime.

Change-Id: I492e6e01c4213e3544f707247eea6e4bc601fefd
Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2016-09-23 18:25:37 +00:00
Andrew Boie
7c385bd8b1 ioapic: make init-time RTE masking optional
In some cases we can either assume they are already masked
at boot and save some cycles, or the IOAPIC has configuration
from a prior boot stage that needs to be preserved.

Change-Id: I0c71ff0f01a6ee13a3b9c9e239d5a933d6cb6542
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-23 17:54:19 +00:00
Andrew Boie
d3831180cf apic: set initial PM state at build time
Change-Id: I7531088d0455fb405513787eb61137ff79ca8b29
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-23 17:53:49 +00:00
Andrew Boie
325cae5c94 kernel: remove lingering irq_connect_dynamic() references
This API no longer exists.

Change-Id: I724bee8c0ebfbbe2d47c00c7645977d817bbcd36
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-23 15:36:51 +00:00
Andrew Boie
a5b2682ce8 init.h: use a counter when naming system devices
Avoids a build error if two or more system devices are declared
in the same C file that use the same init function.
Use _CONCAT() for token concatenation to ensure the names are
properly generated, needed if any of the components are themselves
macros that need to be expanded.

Change-Id: I559bd987617d8cf3bd8c9ee0c985d670b4f59a64
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-23 15:36:29 +00:00
Kumar Gala
9ec847e608 Revert "rfc: ksdk: Add KSDK ENET driver."
This reverts commit 581e15ced2.

The commit was marked RFC and should not have been merged yet.

Change-Id: Iafd3587f8840e64670c32fa5726ea20ac9c9962a
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2016-09-23 09:07:26 -05:00
Marcus Shawcroft
581e15ced2 rfc: ksdk: Add KSDK ENET driver.
Provide a network driver wrapped around the KSDK ENET and PHY
drivers.

This driver is functional, just.  It is not in a fit state to be merged to master yet.

Origin: Original

Change-Id: Id29e756f33c6c0263926139188c49f9a9c3d5e09
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-09-23 01:54:00 +00:00
Marcus Shawcroft
ec60dcc4c1 ksdk: Build ksdk fsl_enet.c and fsl_phy.c
Add ksdk components necessary to build a network driver on k64f to the
build process.

Origin: Original

Change-Id: I777ab2594b4c443d634264625c39c6c875c34d9f
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-09-23 01:53:50 +00:00
Ramesh Thomas
98357de7a3 sample: fs: Add tests for fs_truncate and fs_statvfs
Adds tests for the new APIs fs_truncate() and fs_statvfs()

Jira: ZEP-636 ZEP-622 ZEP-635
Change-Id: Ic1c6dfa4e9592a362b67129df389b4b78cc5f250
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-09-23 00:06:33 +00:00
Ramesh Thomas
97d8fd1748 fs: Add file system API to flush cache of an open file
This API flushes the cached data of an open file to the
storage media. This can be called after writes to avoid data
loss if power is removed unexpectedly.

Jira: ZEP-767
Change-Id: I0f99f2f34126aa8e6a43f69c7a1b6d903937de11
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-09-23 00:06:32 +00:00
Ramesh Thomas
524004d54b fs: Adds file system API to get volume statistics
Adds API to return volume statistics. This is similar to
fstatvfs() POSIX function but limited to total size, free space,
allocation unit size and optimal transfer block size.

Jira: ZEP-636
Change-Id: Ie9e7367b9164277875860c2d0e8de883b2fca07a
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-09-23 00:06:32 +00:00
Ramesh Thomas
211db5352d fs: Adds file system API to grow or shrink a file
Adds fs_truncate() function which can be used to change the size
of a file. The name is counter intuitive but that is how the POSIX
version is named. It shrinks as well as grows a file.

Jira: ZEP-635 ZEP-622
Change-Id: If7b8cad17e1b80479a529c60a32c12fb134cd456
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-09-23 00:06:31 +00:00
Anas Nashif
986596bb91 boards: arduino_101: remove backup/restore scripts
restoring of the original firmware is now possible using the
flashpack utility.

Change-Id: I32df4b5bb63fb5f6a318026e9f89b1504bd37f5e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-09-22 22:09:34 +00:00
Anas Nashif
179ce1c891 boards: remove obsolete board basic_minuteia
This board is not being used or tested and does not actually
run on any hardware, remove it in favor of well supported boards
for this CPU.

Jira: ZEP-850
Change-Id: I01c825c7eb44d6c321f2ffb88e8899da528921dc
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-09-22 22:09:34 +00:00
Anas Nashif
572f4a1a14 boards: remove obsolete board basic_cortex_m3
This board is not being used or tested and does not actually
run on any hardware, remove it in favor of well supported boards
for this CPU.

Jira: ZEP-850
Change-Id: Ied681b6059ad74f9d019054292c919a9f938e7d3
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-09-22 22:09:33 +00:00
Benjamin Walsh
70c68b92de unified: change signature of k_sem_reset()
Does not need to return anything, since it simply resets the count.

Change-Id: I1185ea1728a9809178afa53b3dba47f7650218e2
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-09-22 21:09:44 +00:00
Benjamin Walsh
bee1c0655f test_mem_safe: fix breakage in unified kernel
Linker scripts had not been updated following the addition of
_k_mem_pool sections.

Change-Id: Ic58e893b5296d0f814253e714f8858c272e79913
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-09-22 21:09:44 +00:00
Benjamin Walsh
0bee91dae1 unified: fix some leftover K_<obj>_DEFINE macros
The K_<obj>_DEFINE macros in the unified kernel create objects of name
'name', and not a pointer named 'name' to an object. Some macros
contained the code from early prototyping.

Change-Id: I7262570fbe0b267012874eac0185b4e0cd7f523d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-09-22 21:09:22 +00:00
Javier B Perez
14dd53289d drivers: serial: uart_qmsi: update Quark SE C1000 config
Updated CONFIG_SOC_QUARK_SE_SS to CONFIG_SOC_QUARK_SE_C1000_SS

Change-Id: I7dc02d91a4d739f6cd3f84001d1dd29759317163
Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
2016-09-22 18:00:07 +00:00
Kumar Gala
3fa32becd5 arm: merge Cortex-M3/M4 memory map into master Cortex-M memory map
Merge the Cortex-M3/M4 memory map bits into the master memory map in
prep for it being shared with Cortex-M7 support and Cortex-M0 support
going forward.

Change-Id: I211fc2a2d7d49082b51463f06e6e71cca75d886f
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2016-09-22 17:19:40 +00:00
Tomasz Bursztyka
276086da28 kernel: Fix for k_sem where counter is a unsigned int
So let the helper return the right type.

Change-Id: I850937a70fe042e42c06cb53ad736c8904221f1b
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-09-22 17:01:48 +00:00
Paul Sokolovsky
dbb9094b8a net: Set uIP context on newly allocated buffers immediately.
This context must be set for TX buffers, and there's no better place to
set it than at the allocation time. If not set, it may end up NULL,
causing adverse effects (one seen by few parties is dereferencing random
memory locations to get (random again) MSS values). For RX buffers, uIP
context is set elsewhere too, but anyway, common sense says that if a
buffer is allocated for network context X, and that context uses uIP
connection Y, the a buffer should be just cross-linked with Y during
allocation time, not somewhere later.

Change-Id: Icdb3cd724802ca263c1cd0e3909be811e53822ba
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2016-09-22 12:00:24 +00:00
Anas Nashif
58002193e9 drivers: gpio: reuse gpio Kconfigs for sensor subsystem
No need to create new Kconfig that do exactly the same, just
reuse those from the main QMSI driver.

Change-Id: I965055f36845ac0464e4a383b0d05c3ae35c0015
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-09-22 01:00:46 +00:00
Vinicius Costa Gomes
47e8893654 tests/zoap: Add simple test for retransmission
Change-Id: I3a552f10e02e3880bbeb00b31f31c31414c6f163
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
2016-09-22 00:54:36 +00:00
Vinicius Costa Gomes
7d0a1279b6 iot/zoap: Fix retrieving the token for every reply
As there is only one response token, we can do this only once at the
beginning of the function, instead of every iteration.

Change-Id: Ibb324a1189929227bd1eb9837c5d330ff8c8dac2
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
2016-09-22 00:54:36 +00:00
Vinicius Costa Gomes
eab5adb282 iot/zoap: Fix subtly wrong indentation
There were a few lines where the alignment was wrong.

Change-Id: I474976c218ac28564dfe9dcda0e0687ed110834e
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
2016-09-22 00:54:35 +00:00
amirkapl
eb9d45e6cd power_mgmt: Mark old device pm API functions as deprecated
Mark old device power management API functions as deprecated:
1. device_suspend(struct device *device,int pm_policy)
2. device_resume(struct device *device, int pm_policy)
In addition added deprecated comments for the macro related
to the old API

Jira: ZEP-954
Change-Id: Ibfeeb88f4e6644409296b5f4e2ed02a149d911a2
Signed-off-by: Amir Kaplan <amir.kaplan@intel.com>
2016-09-22 00:23:43 +00:00
amirkapl
c490219d1e power_mgmt: Update sample and drivers according to new pm device API
Update the power sample and drivers with the new device driver power
management API using the existing logic

Jira: ZEP-954
Change-Id: Idd94232e458767635973e94e9fc673c01612c1e2
Signed-off-by: Amir Kaplan <amir.kaplan@intel.com>
2016-09-22 00:23:43 +00:00
amirkapl
d305da61e9 power_mgmt: Update Power Management device driver API
Have one function that can be used for all possible device
purposes using a control code instead of the suspend
resume functions, makes it generic for device control.
Added device power states.
The older replaced APIs will be deprecated in a future patch

Jira: ZEP-954
Change-Id: I6dd3ebfd0fde3546b2d8397f19842f5758fda0c4
Signed-off-by: Amir Kaplan <amir.kaplan@intel.com>
2016-09-22 00:23:43 +00:00
Javier B Perez
035ec8249d drivers: timer: cortex_m_systick remove dead code
Removed CONFIG_INT_LATENCY_BENCHMARK dead code.
CONFIG_INT_LATENCY_BENCHMARK depends on ARCH="x86", it will never
be true for ARM code.

Change-Id: Ia5779a69b1bf670ebb140c2923c9fe0af6b781d4
Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
2016-09-21 23:11:41 +00:00
Anas Nashif
86a4fb0332 doc: add zoap.h to doxygen input
Change-Id: I06cec65045782c3325fa8d2ec22f14a490275213
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-09-21 22:56:46 +00:00
Javier B Perez
d4429bfb88 drivers: timer: loapic remove unused workaround
Removed unused workaround in loapic. There are no references
of usage.

Change-Id: I8700b4b7ce8efef5e7b95e6cdd2b201eae3f1f37
Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
2016-09-21 14:51:34 +00:00
Jesus Sanchez-Palencia
8108aa8990 usb_dw: Clear device address on USB Reset
During USB device reset, the controller must have its device address
cleared (set to 0). This is not really taken into account by most host
side stacks, which is the reason why this bug didn't show up before.
It was found when we were trying to run the USB20CV [1] compliance test
suite on Windows.

Without this fix the device doesn't show up on the targets list, which
means device enumeration failed. With this patch in place the bug is
fixed and the device gets listed.

Tested with the CDC ACM sample application.

Jira: ZEP-950

[1] http://www.usb.org/developers/tools/usb20_tools/

Change-Id: I0b78f7ce043fa29dde0fb7f3b3aecee9844f4d11
Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
2016-09-21 12:19:05 +00:00
Dmitriy Korovkin
e3be818115 unified: Make memory pool test unified capable
Add the tag for unified kernel

Change-Id: I56953ade864580a68786fd39c459ed70bde0787c
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-09-20 22:04:47 +00:00
Dmitriy Korovkin
7f14618227 unified: Enable memory pools in mailbox tests
Change-Id: I216fbff4db7e97bfca3574f6bfc5294d73ae8e9c
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-09-20 22:04:46 +00:00
Dmitriy Korovkin
3c426888a1 unified: Implement memory pools
Due to the memory pool structure only static declaration of
memory pool is possible.

Change-Id: I4797ed88fd2ac3b7812ff26e552e1745611c4575
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-09-20 22:04:46 +00:00
Benjamin Walsh
3fb21ac39c test_mem_safe: bring x86 linker script up-to-date
Some modifications to the base linker scripts were not propagated.

Change-Id: I73ab016d861779ad7e633ce8602d2e57845bde85
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-09-20 21:45:07 +00:00
Andrew Boie
99368c7435 x86: optimize GDT space
The CPU manual indicates that 8-byte alignment is sufficient,
not sure why gdt_rom was aligned on a 16-byte boundary.

The null descriptor in the GDT is never looked at by the CPU,
save a few bytes by putting the 6-byte pseudo descriptor there.

Change-Id: I73f26cdeb30a91f8258c88ef960a45812a11d959
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-20 20:47:15 +00:00
Andrew Boie
757dae5b7d x86: introduce new segmentation.h header
This header has a bunch of data structure definitions and macros useful
for manipulating segment descriptors on X86. The old IDT_ENTRY defintion
is removed in favor of the new 'struct segment_descriptor' which can be
used for all segment descriptor types and not just IRQ gates.

We also add some inline helper functions for examining segment registers,
descriptor tables, and doing far jumps/calls.

Change-Id: I640879073afa9765d2a214c3fb3c3305fef94b5e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-09-20 20:46:45 +00:00
David B. Kinder
7bad492e5b doc: Add links from kernel API to overview docs
API documentation wasn't linking to important conceptual overview
material available in the primer documentation.

This will need to be done over again when we work on the combined
kernel documentation, but this will give us a peek at what that
will look like.

Jira: ZEP-746

Change-Id: Ib1142575272c72d93af8d409518d0d0a4304ef32
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2016-09-20 20:35:07 +00:00
David B. Kinder
f01601b935 doc: fix title generation for config options pages
Use the ReST metadata document title directive instead of
embedded javascript to assign a title to the configuration
options (Kconfig) reference guide pages.  This will generate
a static <title> directive in the generated HTML instead
of relying on javascript.

Change-Id: Ib70a8b1f641a5ed72be774f0f5b2a93a2d1c9b8c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2016-09-20 20:30:18 +00:00
Vinayak Chettimada
79cdf33579 ARM: irq: Add _arch_irq_is_enabled external interrupt API
Add _arch_irq_is_enabled external interrupt API to find out
if an IRQ is enabled.

Change-id: I8ccbaa6d4640c1ab8369d2d35c01a2cfbb02f6cd
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
2016-09-20 19:45:31 +00:00
Vinayak Chettimada
b33aaa4ca5 irq: Add irq_is_enabled external interrupt API
Add irq_is_enabled external interrupt API to find out if an
IRQ is enabled.

Change-id: I4e4fb6318f0c9da442926b34aa6773eb11e90efe
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
2016-09-20 19:45:12 +00:00
Vinayak Chettimada
bbeb7030a4 ARM: irq: Do not clear pending IRQ when enabling them.
Do not clear pending IRQ when enabling an IRQ on ARM
architectures. Peripherals and S/W ISRs may be required to
be deferred until they are enabled later and the pended
IRQ should be retained for the ISR to be vectored to when
enabled.

Change-id: I808183018d8a2cc58390a1de3b4797b2bb7c6ec9
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
2016-09-20 19:44:59 +00:00
Peter Mitsis
a4b4f5ca20 unified: Enable semaphore group use in test_mail
Change-Id: I4b8821480d2d03fa1dfc4602c00fef12da59a1a2
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-09-20 11:45:28 -04:00
Peter Mitsis
95b75d7e6e unified: Fix semaphore group tests
Threads usings semaphore groups require a larger stack.

Also suppresses warnings in test_sema/microkernel due to Zephyr's
__printf_like() toolchain macro as variable types being printed
have changed between the microkernel and unified kernel.

Change-Id: If7490e0c68c299cc7a45010b9e6db7c01c826a6c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-09-20 11:45:28 -04:00