This adds the necessary functions to enable the tickless idle test
for Atmel SAM3 family processor.
Change-Id: I19e2a8c898dbbc687c980d06bb6c19de693b97a4
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The ticker was always initialized in the NANOKERNEL init level. In a
microkernel, this can cause problems if for the some reason the
initialization of the microkernel server is delayed, such as devices
initialization in the NANOKERNEL level taking non-insignificant time to
complete. What happens in that case is the ticker ISR will start firing
and piling up events in the microkernel server stack, and quite quickly
overrun it, since it has a finite size, causing random crashes.
So, in the microkernel, initialize the ticker once the microkernel
server is available. There is no point in sending ticker event before
anyway.
Change-Id: Ie9e13184f6ad35954023faf3bbff26242284b7be
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
TICKS_NONE was mistakenly used when waiting on the nanokernerel
semaphore in the microkernel case, instead of TICKS_UNLIMITED, causing a
thread that wants to wait to return immediately, as if the device was
always ready.
Change-Id: Id2376ebef324339fec05c56655e705755a670973
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
On x86, IPM is not enabled for footprint min benchmark. Extends this
to ARC too.
Change-Id: I099fc00c9f8ee086118c63523ad28afd6c991732
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The libc 'ctype.h' header file is not supposed to be automatically
included when including 'stdlib.h'.
Change-Id: I821a9946894572a7b82804b1569b7b18c24316db
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Zephyr includes a Task Monitor feature that allows to
track events on the microkernel server scheduler.
Task monitor is integrated as a profiler point for the
Kernel Event Logger feature.
Change-Id: I7b8be5872439a333f976eada1aa3511d93b46388
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Remove table which had redundant information and created a simple TOC
with boards. This will allow easy expansion of the list over time.
Change-Id: Ic94063cc99ddcb3d2140a4beef1067a9766d60a3
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Many of the UART interface functions are hidden behind ifdefs,
set those to 'y' when building documentation.
Change-Id: I1371e64b6fe4c269ce41c2c54e0f013d8088dbcf
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Task monitor is being tracked as a profiler point of the kernel
event logger. Now, the capacity to register task monitor events
is dictated by KERNEL_EVENT_LOGGER_BUFFER_SIZE symbol.
Change-Id: Ia4fe04c7d46fe41524c53447ad51af2e03ea5a15
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Kernel event logger keeps track of task monitor events.
Old structures are not needed anymore.
Change-Id: I2267bdb3c2f27ea87d8675c4ecf0646ea62761ae
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Interrupt handler needs to finish all the handler work before
returning to the sync call.
Before this fix, a call to the API read() method could unexpectedly
fail because a second read() call could start before the previous
read() call had not completely finished.
Change-Id: I74249a52b403e2a589d970fae05b9325b20fbe38
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Per Curie documentation, the first sample from the Quark SE ADC
hardware after reset needs to be dropped.
This commits changes the location and the trigger event to do
a dummy read that drops the first sample.
Originally the driver did the dummy read on the API call enable()
and it was triggered if the ADC had awakened from suspend mode.
Because the SoC is not in suspend mode on power on and the API
enable() call has no information on the channels to be read the
dummy read could be missed.
Now the dummy read is done on the API call to read()
and triggered if it is the first time read() is called
since power on.
Change-Id: I1e1ad5f7f44d71ca88572ae242ad629471a9ab9b
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
We have a new policy: users should not be able to configure
an interrupt with "forbidden" priority levels, and any priority
levels with special semantics will be activated by flags.
Change-Id: I757c19cfedcb1d0938eaf4da348ddafb71b3e001
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Updates Set Up steps from previous 01.org Gerrit to new Linux Foundation one.
Change-Id: Iab98864b405ff6dc4ea20d687fae77bd59284678
Signed-off-by: Genaro Saucedo Tejada <genaro.saucedo.tejada@intel.com>
DEBUG isn't tied to any config option. Just use assertions.
Most of the time return values aren't being checked anyway.
Change-Id: I7457dcf00e18505bd6bcd98d46288545c03b5fbc
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Having priority levels 0 and 1 reserved on x86 due to implementation
details on how the CPU uses the vector table is confusing to users,
and makes it unnecessarily difficult to share drivers between arches.
Now on x86, priority levels 0 and 1 are available. Semantically, all
priority levels have had 2 subtracted from them.
It is no longer necessary to specify a priority level when the
vector itself is specified. If an IDT entry has a specific vector
associated with it, any priority argument is simply ignored.
In gen_idt, some simplifications have been made:
- The printed representation of a generated entry now fits on one line
- Some checks being done in validate_priority() were redundant, as
generate_interrupt_vector_bitmap() also ensures that there are
sufficient free vectors within a priority level.
Change-Id: I26669d8ee0a53f48fbc2283490a8c42d8b1daf8e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Available only when CONFIG_SPI_DEBUG is set:
- Print out all exported functions with relevant infos
- Remove superfluous messages
- Make counter in push/pull not being instanciated when not debugging
Change-Id: Iaa96a897008d360a14bc83da54152c264f42c60d
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
It's a bug that did not happen, but is a valid one:
if there is an error, we should not care at all about current stage of
transmission, thus it will stop right away.
Change-Id: Iec2b519d8118233f570ded18d6c6eb4084371e5b
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This helps saving stack but also fixes an error when unrelevant packet
detection is made and thus calls read_packet recursively.
Change-Id: I5c1130a369b573f204f30230417e5bcbb97257bc
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Original mechanism was useless, but it was due to the fact prototype
code was purely polling-based. Now that we are back to interrupt mode
only, it's actually required. It's done a different way than original
though as it was really redundant, and sometimes bogus (no release).
Change-Id: I36b55b072564ee2f9d331f49c69751d9d274bab2
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
The radio driver was using DW spi and gpio drivers hardcoded.
Now it will check if SPI_DW or SPI_QMSI is set.
Change-Id: I4e12ef7c071058218c1cc714c62fed90a9f5eb06
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
If an init or config function needs to configure a static interrupt or
otherwise do something that requires a build time reference to
a device with DEVICE_GET(), there is a dependency issue that so
far is usually resolved with a forward prototype of the init function.
In addition, there currently isn't a good way to declare a device in
a header so that DEVICE_GET() can be used in a different C file.
This patch should resolve both of these problems; the data structure
defined for the device is no longer static (the names have to be unique
anyway), and in cases where we need a forward declaration so that
DEVICE_GET() can be used, we have a new DEVICE_DECLARE() macro which
does this.
Change-Id: Ie8d53d0c344f61a130c735c86473562820190d70
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
W25Q80BL is the SPI flash chip soldered on the Quark SE development
board, for communicating with it, having support for using GPIO as Chip
Select is necessary, so it will be useful when testing that feature.
Change-Id: Idbf571cdb3b1ae8704d7a932bc0ac56dc53f8ff1
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Depending on the driver implementation, the name of the device will be
different.
Change-Id: I35395abe44727b39d930e4c123860fad7b13edfd
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
The argument to _common_dynamic_exc_handler() in the C domain
was still being set up the Sys V way. Arguments are popped off the
stack in reverse order, so _ExcEnt pushes *pEsf for arg 2, and then
the stub pushes the stub_num for Arg 1.
For IAMCU case, *pEsf is placed in EAX which is where argument 1
lives; static exception handlers take just one argument. However
since we're calling _common_dynamic_exc_handler we also need to
supply the stub_id, which we put in EDX (where arg 2 goes).
Rather than swapping things around at runtime the prototype for
_common_dynamic_exc_handler() is adjusted to fit the calling
convention in use.
Change-Id: Id43cbc3b86d90f941cea771678b2796ae5f1358d
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
... and adds a note about terminal and flashing.
Change-Id: I9b3fe9a8e9993ee68612d177aa4163fcf15e912d
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Adds the driver to utilize the I2C/TWI interface on Atmel SAM3
family processors for I2C communication.
Note that this currently only supports master mode. Limited
testing has been done using the Fujitsu FRAM sample app.
Change-Id: Ibdb8277e47dd9450b49a66a95421eb1ffb1c4eb4
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Adds the struct to describe PDC (Peripheral DMA Controller).
The PDC is being used by peripherals to initiate DMA
transfers.
Change-Id: Ida2a20810c4f2ef972e9669c45e22da07c1576ab
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Using level will just flood the handler, as the concerned gpio pins
stays on level for some time.
Change-Id: I991d818783170b09c326350c04bb588c7324892c
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
As the GPIO callback is ran into ISR context, it's thus impossible to
start SPI transactions as these are interrupt based as well. Thus
forwarding the packet reading to an internal fiber.
If CONFIG_INIT_STACKS is set as well as debug mode, it will print out
the usage of the stack after each loop in read_packet().
CC2520 internal fiber stack size is set via Kconfig option, where the
default is set to 640 bytes. At this stage, this value cannot be fixed
so it's more flexible to be able to tweak it from a Kconfig option
rather than tweaking the source code.
Change-Id: I54138c4d1e66f6775b1ae0248574ac8eb5e44f3d
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Updates Set Up steps from previous 01.org Gerrit to new Linux Foundation one.
Change-Id: Iab98864b405ff6dc4ea20d687fae77bd59284678
Signed-off-by: Genaro Saucedo Tejada <genaro.saucedo.tejada@intel.com>
Updated all the links and references for gerrit to the new gerrit
in LF. Also updated the screenshots to show the new gerrit and
project name.
Change-Id: If56b230379fad4de58032f9d729e6a94f27389ed
Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Adding in a README file for the external library of TinyCrypt providing
details for origin, commit id, and where to find the original.
Source: Original to Zephyr Project
Change-Id: Ibc7ec33f7f459e8df88978b5b4505e67a2141998
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
Search engines recommend having only one heading on level 1.
Modified the headings in the documentation index file to
follow the recommendation and help ensure that search engines
place Zephyr higher on their results lists.
Change-Id: I5590138f88721d1f2cdcbb49ad2aaad1d2dcd466
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Updates files that were previously referencing the no longer in use
01.org infrastructure, now it we refer Linux Foundation name and have
updated links.
Change-Id: I9d03d7c23f855390f74219dbf1617fde1d58b33b
Signed-off-by: Genaro Saucedo Tejada <genaro.saucedo.tejada@intel.com>
Removed a repeated heading and set the ther headings
with the correct level.
Change-Id: Ief8b2f9a7f88d0b6c2456d6ae448e86bb0b8d050
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Changed the link to the ReST documentation to a external link for reusability.
Change-Id: Ia575717c0fb92672828bb11854c9a8a1268af464
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Removes the Sphinx specific ReST Markup from th README.rst file.
This allows basic ReST converters to render the README without
markup showing raw.
Change-Id: I9f31afb953802119939d177524c0d283414c3a48
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Adding documentation on best practices for a commit message.
Change-Id: I354fc13f641bc93c8fd82aca6310d488ffc30f24
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
gerrit_practices.rst has style and formatting issues. Bringing them back
in line with the recommended practices of the project.
Change-Id: If76406e046ab376cea3e14c0e490e38587b34e6d
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>