Commit Graph

106 Commits

Author SHA1 Message Date
Bob Feretich
c6851201c0 This commit adds a new function arch_invalidate_dcache_by_addr(). It takes the same parameters as arch_invalidate_dcache(), but performs invalidation of only the lines in cache that need to be invalidated. This new function could be used as a a direct replacement for arch_invalidate_dcache().
The user of this invalidation are mmcsd_sdio currently.  The mmcsd_sdio driver makes calls for dcache invalidation through the chip specific architecture function SDIO_DMARECVSETUP(). I changed the arch/arm/stm32f7 chips to use arch_invalidate_dcache_by_addr() instead of arch_invalidate_dcache().

This commit includes additional changes to mmcsd_sdio.c.  I created SDIO_DMADELYDINVLDT() (DMA delayed invalidate) to invalidate store-into mode dcaches after the DMA transfer.  I have been using SDIO_DMADELYDINVLDT() for several weeks now and it has fixed the problems that I previously reported regarding non-cache aligned buffer invalidation errors (for my store-through dcache). However, it does not permit use of unaligned DMA buffers for store-into mode dcaches.

SDIO_DMADELYDINVLDT() is a NoOp unless the chip specific Kconfig file selects CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT. I have modified all the stm32f7 chips to select it.
2018-11-20 14:03:42 -06:00
Xiang Xiao
eb02b28428 drivers/audio: Move the I2S character driver to a dedicated folder. 2018-08-27 07:26:22 -06:00
Xiang Xiao
0308a86435 drivers/pwm: Move pwm.c into pwm folder 2018-08-27 07:17:34 -06:00
Xiang Xiao
ff1cba6ab5 drivers/crypto: Move dev_urandom.c into new crypto folder. 2018-08-27 07:14:01 -06:00
Gregory Nutt
4e5cf1229c drivers/mmcsd/Kconfig: three configuration settings were within ifdef/endif and led to warning: xxx selects xxxx which has unmet direct dependencies. Fix by moving settings to drivers/Kconfig and outside of the ifdef-endif. Also renamed CONFIG_SDIO_PREFLIGHT to CONFIG_ARCH_HAVE_SDIO_PREFLIGHT to follow naming of similar hidden architecture capability configurations. 2018-08-05 17:58:17 -06:00
Alan Carvalho de Assis
283b73edc5 Fix lots of typos in C comments and Kconfig help text 2018-07-08 18:24:45 -06:00
Gregory Nutt
7dec38b18f drivers/Kconfig: Global configuration variable CONFIG_FB_TRANSPARENCY is only defined in architecture-specific Kconfig files and then multiple times. Add the single global definition in drivers/Kconfig. arch/arm/src/stm32, stm32f7, and same5: Rename the architecture-specific variables appropriately. Selecting the architecture-specific version will also select the global version. 2018-06-28 12:31:51 -06:00
Gregory Nutt
ba53219821 drivers/Kconfig: Global configuration variable CONFIG_FB_CMAP is only defined in architecture-specific Kconfig files and then multiple times. Add the single global definition in drivers/Kconfig. arch/arm/src/stm32 and stm32f7: Rename the architecture-specific variables appropriately. Selecting the architecture-specific version will also select the global version. 2018-06-28 12:01:55 -06:00
Juha Niskanen
797d9b1822 This commit adds a 1wire subsystem.
Squashed commit of the following:

Author: Gregory Nutt <gnutt@nuttx.org>
    Some cosmetic changes from coding style review.
Author: Juha Niskanen <juha.niskanen@haltian.com>
    drivers/1wire: add 1-wire subsystem and ds28e17 driver
2018-04-04 10:57:36 -06:00
Gregory Nutt
9b2a8e8c0e Rename CONFIG_AUDIO_DEVICES to CONFIG_DRIVERS_AUDIO to conform better to the evolving configuration naming standard. 2017-09-12 14:10:15 -06:00
Gregory Nutt
831ee3bb72 Rename CONFIG_VIDEO_DEVICES to CONFIG_DRIVERS_VIDEO to conform better to the evolving configuration naming standard. 2017-09-12 14:03:51 -06:00
Alan Carvalho de Assis
853d332b6c Move CAN subsystem to its own directory and put device drivers there
Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
2017-05-12 11:48:47 -03:00
Gregory Nutt
2043e1a114 IOBs: Move from driver/iob to a better location in mm/iob 2017-05-09 07:35:30 -06:00
Gregory Nutt
bfb93338f6 Move net/iob to drivers/iob so that the I/O buffering feature can be available to other drivers when networking is disabled. 2017-04-20 16:08:49 -06:00
Juha Niskanen
9d13a2463f drivers/usbmisc: Add driver for Fairchild FUSB301 USB type-C controller.
From Harri Luhtala <harri.luhtala@haltian.com>. Tested with earlier
version of NuttX; with current version checked that it compiles.
2017-03-31 06:35:36 -06:00
Jussi Kivilinna
dffb8a67e3 Add entropy pool and strong random number generator
Entropy pool gathers environmental noise from device drivers, user-space, etc., and returns good random numbers, suitable for cryptographic use. Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm for CSPRNG output.

Patch also adds /dev/urandom support for using entropy pool RNG and new 'getrandom' system call for getting randomness without file-descriptor usage (thus avoiding file-descriptor exhaustion attacks). The 'getrandom' interface is similar as 'getentropy' and 'getrandom' available on OpenBSD and Linux respectively.
2017-03-30 07:38:37 -06:00
ahb
164546a65c increase number of supported PWM channels from 4 to 6 2017-03-09 11:54:37 +01:00
Maciej Wójcik
29b4b00068 drivers/spi/Kconfig: There is too much SPI in the configuration menu; SPI Driver Support menu is empty 2017-02-23 14:39:13 -06:00
Gregory Nutt
f063e4c5ac Remove Calypso architecture support and support for Calypso SERCOMM driver. 2016-12-13 18:35:52 -06:00
Paul A. Patience
d89765e1d0 spi: Fix Kconfig warning
This commit moves the ARCH_HAVE_SPI options outside the check
for SPI. Those options don't depend on SPI, and Kconfig files
in arch/ enable them even if SPI isn't enabled.

Sourcing the driver's Kconfig in drivers/Kconfig only if
support for the driver is enabled prevents us from defining
these ARCH_HAVE options in the driver's Kconfig. We should
probably remove the other checks in drivers/Kconfig and check
if the drivers are enabled only in their Kconfig.
2016-11-02 13:16:12 -04:00
Sebastien Lorquet
3654b841bc Move contactless drivers to their own directory 2016-08-31 13:08:58 +02:00
Gregory Nutt
ee9c66186c ramdisk.h moved from include/fs/nuttx/ to include/nuttx/drivers. 2016-07-20 14:02:18 -06:00
Gregory Nutt
1b9b3a7b47 pwm.h moved from include/nuttx/ to include/nuttx/drivers. 2016-07-20 13:48:24 -06:00
Gregory Nutt
ddcaa3d425 can.h moved from include/nuttx/ to include/nuttx/drivers. 2016-07-20 13:38:36 -06:00
Gregory Nutt
4b4dbc79a2 Move driver related prototypes out of include/nuttx/fs/fs.h and into new include/drivers/drivers.h 2016-07-20 13:15:37 -06:00
Gregory Nutt
d6bf67f9ff Alloc different sizes for pipe and fifo buffers 2016-07-19 13:34:18 -06:00
Gregory Nutt
a4458c5016 PTY: Fix a race condition in test-fifo-empty-before-read logic 2016-07-19 06:45:02 -06:00
Gregory Nutt
e0aaa168aa /dev/urandom: Add option to replace software PRNG with hardware TRNG. 2016-07-18 07:03:47 -06:00
Gregory Nutt
bf25eef79f Update comments in Kconfig 2016-07-18 06:43:08 -06:00
Gregory Nutt
1b7455c171 Update comments in a Kconfig 2016-07-17 11:09:01 -06:00
Gregory Nutt
07e20479ad /dev/random: Add configuration option to use the congruential PRNG. 2016-07-17 07:56:25 -06:00
David Alessio
6cefbc0c3f This change provides an option to add /dev/urandom to all architectures. The pseudo-random algorithm I choose strikes an arguably-good balance between being "random" and small/fast enough for 8/16 bit MCUs. It’s the well-documented xorshift128 algorithm. It has an internal state of 128 bits that can be [re-]seeded with a write. 2016-07-17 06:42:26 -06:00
Gregory Nutt
a897fd4ccf Eliminate use of apps/system/usbmonitor. Use drivers/usbmonitor instead. 2016-06-30 13:09:22 -06:00
Gregory Nutt
7c34a77b54 Move apps/system/usbmonitor to nuttx/drivers/usbmonitor 2016-06-30 12:24:33 -06:00
Gregory Nutt
ae19ca45e0 drivrs/ioexpander: Add support for a very simple GPIO drivers. It supports only pre-conrigured input and output pins and only basic input and output operations. 2016-06-24 09:43:49 -06:00
Paul A. Patience
2f76f6e848 can: Add support for poll 2016-06-21 13:02:46 -04:00
Gregory Nutt
de58cb6027 Some higher level SYSLOG features are disabled if the architecture-specific logic provides its own SYSLOG functionality 2016-06-19 09:21:52 -06:00
Gregory Nutt
e57a6d14c3 lcd/Kconfig, Make.defs: Remove dependency of CONFIG_LCD_NXDRIVER for building non-graphic, SLCD drivers. 2016-05-26 07:21:14 -06:00
Gregory Nutt
55faa87188 Should fix a warning about unmet dependencies in 'make menuconfig' 2016-05-25 10:17:42 -06:00
Gregory Nutt
35ab1697cd CONFIG_DEV_RANDOM depends on CONFIG_ARCH_HAVE_RNG which is selected with MCU-specific RNG H/W is enabled. So correct default is y; you almost certainly want /dev/random as well. 2016-03-30 07:58:09 -06:00
Gregory Nutt
970822b351 Add missing PM configuratin options to Kconfig file 2016-03-27 10:18:20 -06:00
Sebastien Lorquet
dc7adfa817 drivers/wireless/ieee802154/Kconfig
drivers/wireless/ieee802154/Make.defs
    Changes to the build infrastructure to include the mrf24j40 driver

include/nuttx/spi/spi.h
    Define a IEEE SPI device

include/nuttx/wireless/ieee802154/ieee802154_radio.h
    This file defines the API of a IEEE 802.15.4 radio device, to be used by the future common MAC 802.15.4 layer

drivers/wireless/ieee802154/mrf24j40.c
drivers/wireless/ieee802154/mrf24j40.h
    The main MRF24J40 IEEE 802.15.4 radio driver

include/nuttx/wireless/ieee802154/mrf24j40.h
    This file allows instanciation of the MRF24j40 driver from board configurations
2016-02-26 18:39:27 -06:00
Gregory Nutt
cfe018e991 Rename CONFIG_WIRELESS to CONFIG_DRIVERS_WIRELESS 2016-02-26 16:50:26 -06:00
Gregory Nutt
309beae2cd Move drivers/ieee802154 to drivers/wireless/ieee802154; rename include/nuttx/net ieee802154 to 6lowpan.h 2016-02-26 15:03:16 -06:00
Gregory Nutt
2f28ca86c2 Clean up some naming; rename net/ieee802154 to net/6lowpan 2016-02-26 10:08:36 -06:00
Gregory Nutt
9ff645a298 drivers/ieee802154: Add a skeleton IEEE802154 driver 2016-02-25 15:11:30 -06:00
Gregory Nutt
ceb415204e Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 08:00:16 -06:00
Vladimir Komendantskiy
19feab1bd6 drivers/modem/u-blox.c and include/nuttx/drivers/u-blox.h: Add an upper half driver for the U-Blox Modem. From Vladimir Komendantskiy 2016-01-30 07:37:43 -06:00
Gregory Nutt
67f38169b2 drivers/i2c: Move wrapper that implements I2C_WRITEREAD using I2C_transfer from pc9555.c to a new, comon i2c directory 2016-01-26 09:58:18 -06:00
Frank Benkert
da33ec6b2e CAN: Add more extensive error reporting information 2016-01-18 12:22:27 -06:00