Commit graph

2632 commits

Author SHA1 Message Date
Michael LeMay 73774def6b x86, galileo: Add sample non-driver protection domain
This patch adds a simple non-driver protection domain sample to serve
as an example for defining other non-driver protection domains.  It
simply performs a ping-pong test of protection domain switching
latency during boot, including optional accesses to a private metadata
region, and prints out the results.
2016-04-22 08:16:43 -07:00
Michael LeMay 4cdb7ba9b6 x86: Add TSS-based protection domain support
This patch extends the protection domain framework with an additional
plugin to use Task-State Segment (TSS) structures to offload much of
the work of switching protection domains to the CPU.  This can save
space compared to paging, since paging requires two 4KiB page tables
and one 32-byte page table plus one whole-system TSS and an additional
32-byte data structure for each protection domain, whereas the
approach implemented by this patch just requires a 128-byte data
structure for each protection domain.  Only a small number of
protection domains will typically be used, so
n * 128 < 8328 + (n * 32).

For additional information, please refer to cpu/x86/mm/README.md.

GCC 6 is introducing named address spaces for the FS and GS segments
[1].  LLVM Clang also provides address spaces for the FS and GS
segments [2].  This patch also adds support to the multi-segment X86
memory management subsystem for using these features instead of inline
assembly blocks, which enables type checking to detect some address
space mismatches.

[1] https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html
[2] http://llvm.org/releases/3.3/tools/clang/docs/LanguageExtensions.html#target-specific-extensions
2016-04-22 08:16:39 -07:00
Nicolas Tsiftes 6ae1b4ab66 Merge pull request #1463 from MichaelKlemm/FixUsingAtmega128RFA1
Fixed using target AVR ATmega128RFA1
2016-04-21 14:30:35 +02:00
Pere Tuset d9f4d97a41 Adapted OpenMote-CC2538 sensor drivers to Contiki sensor API. 2016-04-19 22:41:40 +02:00
Simon Duquennoy de51dd5c30 Merge pull request #1598 from mguc/jn516x_llsecinit_ccm-star
JN516x NETSTACK_LLSEC.init and ccm-star fix
2016-04-19 17:27:15 +02:00
Simon Duquennoy ba72f0a131 Merge pull request #1422 from kkrentz/packetbuf-cleanup
packetbuf cleanup
2016-04-19 17:23:47 +02:00
George Oikonomou 040bada378 Merge pull request #1590 from OpenMote/master
Add OpenMote-CC2538 platform and examples.
2016-04-18 21:26:15 +01:00
Pere Tuset 3e00ea55d1 Updated the OpenMote-CC2538 platform and examples. 2016-04-18 16:48:48 +02:00
kkrentz 6fb6fd5bb9 packetbuf: No more splitting of header and data 2016-04-15 03:12:40 -07:00
Marko Gucanin d8db093eb2 renamed ccm-star.c to jn516x-ccm-star.c, adapted Makefile accordingly 2016-04-14 16:55:48 +02:00
Marko Gucanin f1110bf6df removed NETSTACK_LLSEC.init 2016-04-14 16:52:32 +02:00
Antonio Lignan 8f064511d3 Merge pull request #1213 from joakimeriksson/dao_ack_handling
End-to-End DAO and DAO ACK handling for Contiki RPL.
2016-04-11 18:53:43 +02:00
Pere Tuset 1d3c37d6da Add OpenMote-CC2538 platform and examples. 2016-04-11 12:35:02 +02:00
Toni Lozano a81b4007b0 Allow to use up to 6xADC channels (now hardcoded), disabling the user button
(PA3) if ADC6 is enabled
2016-04-04 10:48:43 +02:00
Marko Gucanin 1818700bde JN516x clock module sign error fix 2016-03-31 13:51:03 +02:00
thomas-ha bc2f1b5a2a update delay constants 2016-03-29 10:24:38 +02:00
Oliver Schmidt 7a5249b066 Added a Contiki version of the CBM exec() system file; it uses PFS instead of POSIX.
It reduces the webbrowsers' size by 735 bytes.
2016-03-28 20:03:47 +02:00
Oliver Schmidt 4f28289df2 Added a pfs_remove() function and a pfs_seek() stub to the Commodore platforms.
- "Normalized" some Assembly code.
- Implemented CFS_APPEND in pfs_open().
- Made CFS_WRITE work in VICE's virtual disk/file system.
2016-03-28 14:07:35 +02:00
Joakim Eriksson ee97dc4bcd tuned configuration for rpl-collect and micaz platform 2016-03-26 09:45:39 +01:00
Joakim Eriksson 37c5f741e9 removed viztool usage of learned-from routing state that was removed 2016-03-26 09:45:37 +01:00
Michael LeMay 3908253038 x86: Add support for (paging-based) protection domains
This patch implements a simple, lightweight form of protection domains
using a pluggable framework.  Currently, the following plugin is
available:

 - Flat memory model with paging.

The overall goal of a protection domain implementation within this
framework is to define a set of resources that should be accessible to
each protection domain and to prevent that protection domain from
accessing other resources.  The details of each implementation of
protection domains may differ substantially, but they should all be
guided by the principle of least privilege.  However, that idealized
principle is balanced against the practical objectives of limiting the
number of relatively time-consuming context switches and minimizing
changes to existing code.

For additional information, please refer to cpu/x86/mm/README.md.

This patch also causes the C compiler to be used as the default linker
and assembler.
2016-03-21 17:18:06 -07:00
George Oikonomou de2ecf8e3a Document that LaunchPads can be programmed with cc2538-bsl 2016-03-21 00:00:38 +00:00
Michael LeMay 93126b57bb x86, galileo: Use IMRs to restrict DMA
This patch configures Isolated Memory Regions (IMRs) to block DMA to
code and data regions that do not contain any data that needs to be
DMA-accessible.
2016-03-17 08:35:49 -07:00
Michael LeMay 58a00b7c23 x86, galileo: Add driver for Isolated Memory Regions (IMRs)
The Intel Quark X1000 SoC includes support for Isolated Memory Regions
(IMRs), which are specified using range registers and associated
control registers that are accessible via the message bus.  This patch
adds a driver for accessing those registers.
2016-03-17 08:35:49 -07:00
Michael LeMay 25c07613c2 x86: Add driver for message bus
The Intel Quark X1000 SoC includes a message bus that is accessible
via PCI configuration registers.  It communicates to various SoC
components such as the Isolated Memory Region (IMR) registers and the
Remote Management Unit.  This patch adds a driver for accessing the
message bus.
2016-03-17 08:35:48 -07:00
Nicolas Tsiftes 9ab327090c Merge pull request #1444 from mdlemay/galileo-always-init-gpio
galileo: Enable I2C and GPIO interrupt sharing and centralize their initialization
2016-03-14 20:09:40 +01:00
Nicolas Tsiftes 862e43d9b0 Merge pull request #1523 from Zolertia/pull/z1-apify-sensors
Adapt Z1 on-board sensors to Contiki's API
2016-03-14 17:10:46 +01:00
Simon Duquennoy 1ffbafeaa6 Merge pull request #1375 from myrfy001/myrfy001-patch-1
off_t changed to signed to stay the same as POSIX
2016-03-14 16:42:13 +01:00
thomas-ha 400a09e82c comment 2016-03-11 11:05:04 +01:00
Robert Olsson 39094e3c41 CO2 sensor bug fix 2016-03-08 20:04:01 +01:00
thomas-ha 0e0dba932f disable TSCH HW frame filtering 2016-03-08 15:52:40 +01:00
thomas-ha 9ac14d1c7b defines needed for TSCH 2016-03-07 18:39:13 +01:00
Simon Duquennoy dea04c67d7 Change the default IPv6 prefix from aaaa::/64 to fd00::/64 2016-03-07 17:47:44 +01:00
Robert Olsson 07ec06ad09 Setting node_id and RIME linkaddr from EUI64 chip. 2016-03-06 21:37:25 +01:00
Oliver Schmidt 8b3d220761 Merge pull request #1542 from oliverschmidt/master
Adjusted segment names to match recent cc65 change.
2016-03-06 21:29:50 +01:00
Oliver Schmidt 6876b97466 Adjusted segment names to match recent cc65 change. 2016-03-06 21:11:18 +01:00
Nicolas Tsiftes fbf3aba152 Merge pull request #1513 from mdlemay/check-newlib-conf
galileo: build_newlib.sh: Exit on configuration error
2016-03-03 13:39:27 +01:00
Nicolas Tsiftes da5044acb2 Merge pull request #1514 from mdlemay/newlib-filter-patches
galileo: build_newlib.sh: Only apply patch files with the extension ".patch"
2016-03-03 13:38:56 +01:00
Atis Elsts 9f1fedfbc1 avr-rss2 platform examples: remove some binary files 2016-02-23 11:59:29 +02:00
Atis Elsts d8f2129b17 avr-rss2 platform: Update README.md 2016-02-23 11:59:09 +02:00
Robert Olsson ce8e87d60e Adding the avr-rss2 platform based on AtMega256RFR2 2016-02-22 20:46:07 +01:00
Aitor Mejias 56aeb7cd7e Added Zolertia Zonik sound sensor test and drivers 2016-02-22 16:49:35 +01:00
Antonio Lignan 934cdbacca Adapted the ADXL345 sensor to Contiki's sensor API 2016-02-22 12:08:56 +01:00
Antonio Lignan 1be30d52dc Removed unused blocks and made functions static 2016-02-22 12:08:56 +01:00
Antonio Lignan 151f532225 Adapted the TMP102 sensor to Contiki's sensor API 2016-02-22 12:08:56 +01:00
Michael LeMay 58874ea25d x86, galileo: Refactor I2C and GPIO initialization
This patch revises the I2C and GPIO initialization code to always be
run during platform boot rather than within each process that requires
it.

This patch also revises the gpio-output example to use a pin that is
set as an output by the default pinmux configuration.  Previously, it
used a pin that was set as an output by the pinmux configuration that
is in effect when the OS does not change the pinmux configuration.
2016-02-16 21:19:44 -08:00
Michael LeMay c815fa4511 x86: Use shared ISR for I2C and GPIO
This patch permits interrupts to be generated by both the I2C and GPIO
controllers for simultaneously-executing applications. The controllers
share a single interrupt pin, INTC. Prior to this patch,
quarkX1000_gpio_init() routed INTA to PIRQC and IRQ 10 (due to an
incorrect assumption that INTA is connected to the GPIO controller),
and quarkX1000_i2c_init() routed INTC to PIRQC and IRQ 9. The I2C
controller initialization is a prerequisite for GPIO initialization,
so the final configuration was that INTA and INTC were both routed to
PIRQC and IRQ 10. Thus, only the GPIO ISR was being invoked, even if
the I2C controller was actually responsible for the interrupt.

This patch refactors the I2C and GPIO ISR setup and handler code so
that the shared portions are combined in
cpu/x86/drivers/legacy_pc/shared-isr.[ch].  The I2C and GPIO drivers
communicate their interrupt information to the shared component by
placing structures in a specific section of the binary.
2016-02-16 21:19:44 -08:00
Michael LeMay 66629ae58f galileo: build_newlib.sh: Exit on configuration error
This patch adds a check for the result of the newlib configure command
and immediately exits the build_newlib.sh script if configure fails.
2016-02-16 11:36:57 -08:00
Toni Lozano 2cbde75b02 Removed PM10 code lines from adc-sensors driver 2016-02-15 14:45:26 +01:00
Antonio Lignan 0dbed519a5 Merge pull request #1507 from Zolertia/remote-voc-test
Added VOC (iAQ-Core) drivers and test application
2016-02-15 12:21:32 +01:00
Aitor Mejias cb1e7c2c45 Added VOC (iAQ-Core) drivers and test application 2016-02-15 11:00:48 +01:00
Wojciech Bober d39ad95db5 nrf52dk: platform support 2016-02-15 09:37:38 +01:00
Antonio Lignan 25ff850a43 Weather meter: replaced rtimer by ctimer as it was breaking contikimac 2016-02-13 22:33:05 +01:00
Michael LeMay 16145f645a galileo: build_newlib.sh: Only apply patch files with the extension ".patch"
This avoids treating as patches other files that may happen to be
present in the newlib patch directory in a working tree.
2016-02-12 13:45:25 -08:00
Simon Duquennoy ebdc536d61 Merge pull request #1496 from simonduq/pr/jn516x-serial-input
jn516x enable serial input whenever there is no fallback interface
2016-02-04 10:02:15 +01:00
Simon Duquennoy f87f7e7edd jn516x enable serial input whenever there is no fallback interface 2016-02-03 17:53:29 +01:00
Simon Duquennoy 658cf0d2cc Reworking jn516x default configuration and examples 2016-02-03 10:35:48 +01:00
Nicolas Tsiftes eef96f3ba7 Merge pull request #1480 from mdlemay/revise-clang-flags
galileo: Revise include flags for LLVM Clang
2016-02-01 14:25:53 +01:00
Simon Duquennoy 7c3108bf3b jn516x: flush only uart Tx FIFO in main loop, leaving Rx FIFO intact 2016-02-01 13:36:18 +01:00
Antonio Lignan 35345cdb40 Fixed casts and calculations for the wind direction circular averaging 2016-01-31 22:51:08 +01:00
George Oikonomou deb633216c Document support for the CC2650 LaunchPad 2016-01-28 11:23:20 +00:00
George Oikonomou 387bb96ca4 Add support for the CC2650 LaunchPad 2016-01-28 11:23:20 +00:00
George Oikonomou 5eb0470ad4 Move the SPI and Ext Flash Driver to a common directory
This commit creates a `common` directory, aimed to host drivers supported by multiple boards of the CC13xx/CC26xx family.

We move the Sensortag SPI and External Flash drivers to this location and we change the Sensortag build system to pull the  respective files from therein.
2016-01-28 11:23:20 +00:00
George Oikonomou 24871b0702 Extend the Sensortag external flash Driver to support more parts
The driver currently supports two Winbond external flash parts with identical instruction sets. The instruction set of the Macronix MX25R8035F appears to be a superset. We therefore change the driver to add the MID/DID of the Macronix to the list of supported parts.

This will subsequently allow us to share the same driver for both the SensorTag and the CC2650 LauchPad.
2016-01-28 11:23:19 +00:00
George Oikonomou 7d6966b22c Merge pull request #1483 from Zolertia/pm10-sensor
Added PM10, VAC and AAC sensor drivers
2016-01-27 11:47:07 +00:00
Toni Lozano 1f6dafecb0 Modified ADC measurement of PM10 driver to include adc-zoul direct access 2016-01-26 17:55:48 +01:00
Antonio Lignan 8337843d69 Minor fixes 2016-01-26 09:45:43 +01:00
Michael LeMay 6557194fc5 galileo: Revise include flags for LLVM Clang
This patch revises the compiler flags when LLVM Clang is in use to
cause Clang to automatically use its built-in header files rather than
those for GCC.
2016-01-25 14:01:16 -08:00
Antonio Lignan 9f1376d37a Merge pull request #1453 from g-oikonomou/contrib/test-with-arm-gcc-5
Change travis arm tests to use gcc-arm-embedded v5
2016-01-25 21:32:28 +01:00
Toni Lozano 31e6cc48ca Solved doxygen comments information from VAC, AAC and PM10 sensor files 2016-01-25 18:13:00 +01:00
Toni Lozano 42e1beb931 Added PM10 GP2Y1010AU0F sensor driver and demo test 2016-01-25 10:06:17 +01:00
Toni Lozano 4907842821 Added parameters of aac-sensor on adc-sensors file and adapted AAC and VAC test files for correct results 2016-01-25 10:05:43 +01:00
Toni Lozano 1fca3e810a Added PM10 and VAC parameters to adc_sensors driver 2016-01-25 10:04:25 +01:00
Antonio Lignan d4251d7c3b Merge pull request #1470 from alignan/pull/grove-rgb-backlight-lcd
Ported Grove LCD with RGB backlight for the Zoul platforms
2016-01-25 09:54:25 +01:00
George Oikonomou 9e9e6d07b0 Adjust READMEs to point explicitly to the arm-gcc version used by travis 2016-01-24 13:59:19 +00:00
Antonio Lignan 9a5682b75b Merge pull request #1476 from alignan/pull/update-weather-meter
Updated to new adc-zoul renaming
2016-01-23 16:20:22 +01:00
Antonio Lignan 246b01095f Ported Grove LCD with RGB backlight for the Zoul platforms 2016-01-23 15:52:29 +01:00
Antonio Lignan 66ebca3ade Updated to new adc-zoul renaming 2016-01-23 15:42:13 +01:00
Antonio Lignan 9a80c0098f Added zero-calibration function and added offset values to the structure 2016-01-22 16:58:46 +01:00
Antonio Lignan 426fa24e50 Clear interrupt and trigger callback if new data is generated 2016-01-22 16:58:46 +01:00
Antonio Lignan f5b52e8094 Ported Grove's 3-axis gyroscope sensor (based on ITG-3200) 2016-01-22 16:58:46 +01:00
Antonio Lignan 6351462e89 Unified BMP180 and BMP085 drivers 2016-01-22 16:11:49 +01:00
Antonio Lignan ec45369d1b Merge pull request #1466 from alignan/pull/weather-meter
Add driver for the Sparkfun Weather meter station
2016-01-22 15:18:14 +01:00
Adam Dunkels 7128a6a178 Merge pull request #1258 from joakimeriksson/multiple-reassembly-fix
6LoWPAN - multiple reassembly fix and cleanup
2016-01-22 07:15:18 +01:00
Antonio Lignan 98ed8a29a0 Removed harsh restriction on mask values and disabled debug flags 2016-01-19 22:28:09 +01:00
Antonio Lignan a6c30b4e09 Fixed missing static keyword in both zoul-demo and weather meter driver 2016-01-19 22:24:53 +01:00
Antonio Lignan 366f11d5df Uncrustified weather meter driver and example 2016-01-19 18:03:16 +01:00
Antonio Lignan 81bec49a40 Changed fixed 2 minute integration period to allow overriding 2016-01-19 18:00:18 +01:00
Antonio Lignan 0902e0fc6d Added degree converted value for the wind vane sensor.
Also added a 2-minutes average wind direction value, replaced the 240 bytes buffer from the reference example, but probably there's room for efficiency improvement
2016-01-19 17:47:46 +01:00
Antonio Lignan 61f1516369 Reworked instant wind speed calculation and extended the available wind speed return values 2016-01-19 17:47:46 +01:00
Antonio Lignan 0cb80b0605 Prevent calculations if tick is zero 2016-01-19 17:47:46 +01:00
Antonio Lignan aacbcd904f Added interrupt configuration for the weather meter 2016-01-19 17:47:46 +01:00
Antonio Lignan 103911f619 Added driver for the Sparkfun's weather meter station 2016-01-19 17:47:46 +01:00
Joakim Eriksson d4dc45e096 updated sicslowpan documentation and platform configurations 2016-01-19 15:27:14 +01:00
Antonio Lignan 2295ecdbd9 Renamed adc-sensors/adc-wrapper to adc-zoul/adc-sensors, to have a better wording reflecting the intented use 2016-01-17 23:04:34 +01:00
Antonio Lignan 503abb4415 ADC wrapper for the Zoul-based platforms, allows to add analogue sensors over the existing adc interface 2016-01-17 22:40:06 +01:00
Antonio Lignan ac07e848b7 Minor fixes to file descriptions and disable DEBUG switches 2016-01-17 21:52:34 +01:00
Antonio Lignan 2bb7ac9cc0 Merge pull request #1451 from g-oikonomou/bugfix/sensortag/select
Rename select() in various sensortag sensor drivers
2016-01-17 00:08:37 +01:00
Michael Klemm a40e28a7c8 Fixed using target AVR ATmega128RFA1
Set operating speed to 16MHz and added missing dependency to llsec.
This fix was tested with sparkfun ATmega128RFA1 Dev Board.
2016-01-16 12:45:21 +01:00
Antonio Lignan 99f0c9f19b Merge pull request #1457 from alignan/pull/motion-sensor
Add support for digital motion/presence sensors
2016-01-11 20:30:09 +01:00