Newer
Older
* net/, include/, various files: Rename CONFIG_NET_RECEIVE_WINDOW to
CONFIG_NET_ETH_TCP_RECVWNDO and CONFIG_NET_SLIP_TCP_RECVWNDO. Add
data structures and logic to handler different TCP receive windows
when both Ethernet and SLIP are enabled (2014-11-16).
* configs/sama5d4-ek/bridge: Add a simple test for the dual EMACs on
the SAMA5D4 (2014-11-17).
* arch/arm/src/sama5/sam_emacb.c: Fix several typos that will prevent
EMAC1 from initializing properly (2014-11-17).
* include/nuttx/net/ip.h and tcp.h, net/icmp/icmp_send.c and
igmp/igmp_send.c: Move IP header flags from tcp.h to ip.h and rename
IP_FLAGS vs TCPFLAGS. The problem fixed here is that there IP flags
were not available when TCP was disabled. The IP flags are used in
ICMP and IGMP (2014-11-17).
* sched/clock/clock_abstime2ticks.c: Calling mq_timedreceived() with
immediate timeout was getting stuck and not timing out. Immediate
timeout is achieved by setting absolute timeout value to past time,
for example abstime={ .tv_sec=0, .tv_nsec=0 }. However absolute
time was converted to relative time using unsigned integer arithmetic
and resulted large ticks count by clock_abstime2ticks, instead of
expected negative ticks value. Change corrects clock_abstime2ticks()
to return negative ticks, if absolute time is in the past. From
Jussi Kivilinna (2014-11-19).
* fs/vfs/fs_poll.c: poll() was not waking up from signals (for example
mq_notify() events). From Jussi Kivilinna (2014-11-19).
* arch/arm/src/stm32/stm32_otghs.c, Make.defs,
configs/stm32f429i-disco/src/stm32_usb.c and Makefile: STM32 F4 OTGHS
device controller driver from Brennan Ashton (2014-11-20).
* configs/sama5d3-xplained/bridge: Add a simple test for the EMAC
* libnx/nxtk/nxtk_drawframe.c: Remove warnings when CONFIG_NXTK_BORDERWIDTH
is set to zero. From Pierre-Noel Bouteville (2014-11-20).
* fs/vfs/fs_poll.c: Add proper handling for sem_timedwait errnos.
From Jussi Kivilinna (2014-11-21).
* net/udp/udp_conn.c and udp.h: Extensions to UDP "connection" structure
for the case of multiple networks. In this case, assigned port numbers
only have to be unique with respect to the IP address. So, for
example, you could have multiple port 80's, one on each network
(2014-11-21).
* net/tcp/tcp_conn.c and tcp.h: Make tcp_listener static scope; it is
not used outside of tcp_conn.c (2014-11-22).
* net/udp/tcp_conn.c and tcp.h: Extensions to TCP connection structure
for the case of multiple networks. See the description of the similar
change for UDP above (2014-11-22).
* net/route/net_router.c: Refuse to perform routing table lookups for
the Broadcast IP address. From Brennan Ashton.
* net/netdev/netdev_findbyaddr.c and netdev: Add logic to netdev_findbyaddr()
to return the correct network device for the case where a broadcast
address is used. This change caused trivial ripples through other
files because additional parameters are required for netdev_findbyaddr()
when CONFIG_NET_MULTINIC. Those other file include net/netdev/netdev_rxnotify.c,
netdev_txnotify.c which, in turn, for changes to arp/arp_send.c,
icmp/icmp_ping.c, socket/net_sendfile.c, recvfrom.c, sendto.c,
tcp/tcp_send_buffered.c, and tcp_send_unbuffered.c (2014-11-23).
* arch/arm/src/kl/chip/kl_i2c.h: I2C header file for the Freescale KL
* include/nuttx/fs/fs.h: Fix typo in conditional compilation. From
7.7 2015-01-26 Gregory Nutt <gnutt@nuttx.org>
* nuttx/drivers/eeprom and include/nuttx/eeprom/: Add support for generic
EEPROM access via a character driver. Add also the EEPROM driver itself.
From Sébastien Lorquet (2014-11-26).
* libnx/nxfonts/nxfonts_pixel-lcd-machine.h and nxfonts_pixel-unicode.h,
include/nuttx/nx/nxfonts.h, graphpics/Kconfig, and build-related files
in libnx/nxfonts: Two new fonts from Pierre-noel Bouteville (2014-11-26).
* configs/lpc4357-evb, arch/arm/src/pc43xx/chip/, configs/Kconfig, and
and other related files: A port of NuttX to the LPC4357-EVB from
Toby Duckworth. This port is a leverage of the LPC3330-Xplorer port
and still have a some misinformation from that port that needs to be
updated for the LPC4357-EVB (2014-11-26).
* arch/arm/include/stm32/chip.h, src/stm32/Kconfig, chip.h, and
chip/stm32f102_pinmap.h: Enable support for the STM32 F102. From
https://github.com/PX4/NuttX/pull/28.diff (2014-11-27).
* drivers/loop.c: Loop device should return -EINTR is interrupt by a
signal (2014-11-27).
* drivers/input/djoystick.c and include/nuttx/input/djoystick.h. Also
drivers/input/Kconfig and Make.defs, and include/nuttx/fs/ioctl.h: Add
an interface definition and upper half driver for a discrete joystick
device (2014-11-27).
* arch/arm/src/efm32/Kconfig and efm32_serial.c: Add support for serial
termios TCGET and TCSET. For the moment, only set/get speed is
implemented. From Pierre-noel Bouteville (2014-11-27).
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
* drivers/wireless/ and include/nuttx/wireless/cc3000.h: A set of 11
patches correcting issues with the CC3000 networking. All from Jussi
Kivilinna (2014-11-28). Among these:
03/11: CC3000 driver was getting stuck at recv() when remote host
closed connection and application tried to read data from remotely
shutdown socket. This patch adds proper handling for remotely closed
socket event.
07/11: Socket state initialization was done in 'register', while it
should be initialized in 'open' and deinitialized in 'close'. Old
way caused problems when device is closed, power-cycled and then
reopened as old socket state was left enabled.
08/11: Select thread was getting stuck after 'close, power-cycle,
reopen', since selectsem was not properly setup and cleaned up.
09/11: 'maxFD' was not properly reset in select worker and not checked
for before calling cc3000_select().
10/11: After wlan_stop()/cc3000_close(), irqsem was left with count
'-1'. Therefore on next wlan_start()/cc3000_open(), initial value
for irqsem was wrong. Additional repeated wlan_start()/wlan_stop()
decreased irqsem value further. Obviously this causes driver not to
function correctly and freeze. Patch moves initialization and
destruction of waitsem, irqsem and readysem to
cc3000_open/cc3000_close.
* include/cxx/cctype: Undefine macros defined ctype.h so that builtin
C++ implementations will be used intead. From Lorenz Meier
(2014-11-28).
* configs/stm3210e-eval/src/stm32_djoystick.c: Add a discrete Joystick
supportfor the STM3210E-EVAL (2014-11-28).
* drivers/input/djoystick.c include/nuttx/input/djoystick.h: Add a new
ioctl to get the supported joystick discrete signals (2014-11-28).
* drivers/input/ajoystick.c and include/nuttx/input/ajoystick.h. Also
drivers/input/Kconfig and Make.defs, and include/nuttx/fs/ioctl.h: Add
an interface definition and upper half driver for an analog joystick
device. Initial check-in is only a little more of a clone of the
discrete joystick driver and is as-of-yet untested (2014-11-27).
* libc/Kconfig, misc/Make.defs, misc/lib_ioctl.c, fs/vfs/fs_ioctl.c,
include/nuttx/fs/fs.h, include/sys/ioctl.h, syscall.h, and several
files in syscall/: Add support for a variadic ioctl() function. The
ioctl() interface is a non-standard, Unix interface. NuttX has always
used the older, three-parameter version. Most contemporary systems
now, however, use a variadic form of the ioctl() function. Added an
option to insert a shim layer to adapt the three-parameter ioctl() to
use the variadic interface form. Internally, the ioctl handling is
the same three-parameter logic. The only real complexity to the shim
is in how the system calls must be handled (2014-11-29).
* arch/arm/src/stm32/stm32_i2c.c: Port Tridge's I2C noise resilience
logic from the PX4 repository (2014-11-29).
* arch/arm/src/stm32/chip/stm32l15xxx_pinmap.h: Fix a typo in the
MCO pin definition. From Jussi Kivilinna (2014-12-02).
* arch/arm/src/stm32/stm32_rcc.h: Add missing MCO configuration for
the STM32L1xxx. From Jussi Kivilinna (2014-12-02).
* configs/sama5d3-xplained/src/sam_ajoystick.c: Add analog Joystick
shield support for the SAMA5D3 Xplained board (2014-12-3).
* configs/ucleo-f4x1re/src/sam_ajoystick.c and sam_adc.c: Add
analog Joystick shield support for the Nucleo F4x1RE boards. There
are still some ADC issues to be worke through as of the initial
commit (2014-12-3).
* /drivers/eeprom/spi_xx25xx.c and /include/nuttx/eeprom/spi_xx25xx.h:
Add support for ST Micro EEPROM device geometries. From Sebastien
Lorquet (2014-12-5).
* sched/mqueue: msg type should be char * not void * in mq_send,
mq_timedsend, mq_receive, and mq_timedreceive. Noted by Pierre-Noel
Bouteville (2014-12-05).
* fs/mqueue/mq_open.c and sched/mqueue/mq_msgqalloc.c: In message queue
creation return ENOSPC error if size exceeds the configured size of
pre-allocated messages; Use ENOSPC vs ENOMEM per OpenGroup.org. From
Pierre-Noel Bouteville (2014-12-6).
* Add sys/custom_file.h. Used when CUSTOM_FILE_IO is define and avoids
re-definition errors about the FILE define. From Thomas Gruber via
the PX4 repository (2014-12-06).
* tools/bfd-converter.c and mkdeps.c: Eliminate a warnging about
redefined strtok_r on some platforms (2014-12-8).
* arch/sim/Kconfig: Allow building the simulated framebuffer driver
even if NX is not enabled (12014-12-8).
* configs/sim/traveler and README.txt: Add a configuration build and test
the Traveler first person game using the simulator (2014-12-8).
* arch/arm/src/stm32/chip/stm32f20xxx_pinmap.h and stm32f40xxx_pinmap.h:
Set the GPIO_SPEED_50MHz on all F2 and F4 SPI pin configurations.
This is based on an F411 SPI1 errata but the fixed is generalized to
all SPI and all F2 and F4 (let me know if this introduces any other
issues). Discovered and fixed by Sebastien Lorquet after much
consternation (2014-12-8).
* libc/stdio/lib_avsprintf.c: avsprintf(): Fix a bug in usage of
va_list on x86. On x86, va_list is a pointer to a single copy on the
stack. avsprintf() calls lib_vsprintf() twice and so traverses the
va_list twice using va_start. va_start modifies that single copy on
the stack so that the second call to lib_vsprintf() fails. This appears
* stdint.h: Don't use hex values to specify minimum values of fixed
width, signed values. Hex values are inherently unsigned and not
usable for this purpose in all contexts (2014-12-8).
* arch/arm/src/tiva/tiva_i2c.c, tiva_i2c.h, Kconfig, and Make.defs: Add
build framework and skeleton files for Tiva I2C driver. Initial
commit is just the STM32 I2C driver with name changes and STM32-
specific logic removed (2014-12-9).
* fs/procfs/fs_procfs.c: Add procfs write support. From Ken Petit
(2014-12-9).
* include/crc8.h, libc/misc/lib_crc8.c, and Make.defs: Add CRC8 support.
From Ken Pettit (2014-12-9).
* drivers/mtd/smart.c, Kconfig, fs/smartfs/smartfs_smart.c,
smartfs_procfs.c, smartfs_utils.c, smartfs.h, Kconfig,
include/nuttx/fs/ioctl.h, smart.h, and mtd/smart.h: Implements wear-
leveling in the SmartFS. From Ken Pettit (2014-12-9).
* arch/arm/src/tiva/tiva_i2c.c: Driver is code complete but still
* configs/tm4c123g-launchpad/src/tm4c_at24.c, tm4c_bringup.c, and other
files: Add initialization logic for an external AT24 EEPROM. This
is intended only to suppport testing of the Tiva I2C driver
(2014-12-10).
* libnx/Makefile, libnx/nxfonts/nxfonts_x11-misc-fixed-*.h, Make.defs,
Makefile.sources, nxfonts_bitmaps.c, graphics/Kconfig, and
include/nuttx/nx/nxfonts.h: Lots of fonts that derive from
X11-misc-fixed-* fonts. Converted for use by NuttX by Pierre-Noel
Bouteville (2014-12-10).
* nuttx/drivers/mtd/m25px.c; M25P serial flash driver: Add subsector
size of the M24P16 part. From Lazlo (2014-12-10).
* libc/string/lib_strncpy.c: Commit d0c76ccacf0dc8988f9617ad82bf4349f456bb08
will trash a lot of memory if n == 0. From Yasuhiro Osaki (2014-12-11).
* arch/arm/src/stm32/stm32_otghsdev.c. Fix for OTGHS device driver
working in FS mode. From Ken Pettit (2014-12-12).
* libc/stdio/lib_sscanf.c: Accept %X as well as %x as a format
specifier. From Sébastien Lorquet (2014-12-12).
* libc/stdio/lib_sscanf.c: Also accept %F as well as %f (2014-12-12).
* arch/arm/src/stm32/stm32_otghsdev.c: For STM32 OTG HS DEV (in FS
mode): Disable ULPI clock enable in RCC AHB1 Register. If Both ULPI
and the FS clock enable bits are set in FS mode, then the ARM never
awakens from WFI due to a chip issue. This is only an issue if you
are using the internal PHY. From Ken Pettit (2014-12-13).
* drivers/serial/serial.c: In case a thread is doing a blocking
operation (e.g. read()) on a serial device, while it is being
terminated by pthread_cancel(), then uart_close() gets called, but
the semaphore (dev->recv.sem in the above example) is still blocked.
This means that once the serial device is opened next time, data will
arrive on the serial port (and driver interrupts handled as normal),
but the received characters never arrive in the reader thread.
The problem was fixed by re-initializing the semaphores on the last
uart_close() on the device. From Harald Welte (2014-12-13).
* sched/semaphore/sem_recover.c, Make.defs, seamphore.c,
sched/wdog/wd_recover.c, Make.defs, wdog.h, sched/task/task_recover.c:
Add logic to clean up after task_delete() or pthread_cancel() if the
task happens to be waiting on a semaphore when it is cancelled
(2014-12-13).
* arch/arm/src/kl/kl_gpioirq.c, Kconfig, Make.defs, and kl_irq.c: Add
GPIO interrupt capability for the KL architecture. The patch is
almost the same as kinetis_pinirq.c, just minor modifications and
rename kl_pinirq to kl_gpioirq to make it more generic to developers.
From Alan Carvalho de Assis (2014-12-13).
* arch/sim/src/up_ajoystick.c, Kconfig, Makefile, up_idle.c,
up_internal.h, up_x11eventloop.c, up_x11framebuffer.c,
configs/sim/src/Makefile, sim_boot.c, and traveler/defconfig: Add an
X11 mouse-based simulation of an analog joystick device (2014-12-14).
* drivers/sensors/adxl345*, include/nuttx/sensors/adxl345.h and other
files: Add driver support for the ADXL345 accelerometer. From Alan
Carvalho de Assis (2014-12-16).
* configs/freedom-kl25z: Add board support for the ADXL345 accelerometer.
From Alan Carvalho de Assis (2014-12-16).
* Kconfig, include/debug.h, drivers/sensors/*, and Qencoder logic in
arch/arm/src/stm32 and various QEncoder board support files under
config/: Unify sensor debug. ADX driver was using input debug; LM75
and QENCODE that their own custom debug. Now all use
CONFIG_DEBUG_SENSOR, sndbg() (2014-12-16).
* configs/dk-tm4c129x: Initial board support for the Tiva DK-TM4C129x
Connected Development Kit. The initial commit is just the Tiva
TM4C123G-Launchpad board support with naming changes (2014-12-16).
* include/nuttx/sched.h, sched/Kconfig, sched/init/os_start.c,
sched/pthread/pthread_create.c, sched/task/task_prctl.c,
sched/task/task_setup.c: strncpy() will not copy the terminating \0
into the destination if the source is larger than the size of the
destination. Ensure that the last byte is always zero and let strncpy
only copy CONFIG_TASK_NAME_SIZE bytes. The issue of unterminated names
can be observed in ps when creating a pthread while
CONFIG_TASK_NAME_SIZE is set to 8. From Daniel Willmann (2014-12-17).
* configs/*/*/defconfig: The previous change increased the task name
size allocation by one to hold a NUL terminator. This changes reduces
the configured name size by one so that no additional memory is used
(2014-12-17).
* drivers/wireless/cc3000/cc3000.c: CC3000 Fix: Data can be unaligned.
When dereferenced as an input ntosh(), a bad value is returned.
Reported by Alan Carvalho de Assis (2014-12-18).
* configs/freedom-kl25z: Update the Freedom KL25Z board CC3000 support
to use the current CC300 interfaces. From Alan Carvalho de Assis
(2014-12-18).
* arch/arm/src/tiva, include/tiva, and many configurations: Change
negative Tiva logic CONFIG_TIVA_DISABLE_GPIOx_IRQS to positive logic
CONFIG_TIVA_GPIOx_IRQ (2014-12-18).
* arch/arm/src/tiva/Kconfig: Fix configuration logic for IRQ interrupts.
The various parts support varying numbers of GPIO blocks and with varying
capabilities to support interrupts on the pins of different GPIO blocks
(2014-12-18).
* arch/arm/src/stm32/chip/stm32f40xxx_rcc.h: PLLSAI register name to
this one in the reference manual. From Marco Krahl (2014-12-19).
* arch/arm/src/stm32/chip/stm32_ltdc.h: Rename CFBLR register name to
the name used in the reference manual. From Marco Krahl (2014-12-19).
* arch/arm/src/stm32/chip/stm32_ltdc.h: Add missing clut register
* arch/arm/src/stm32/stm32f40xxx_rcc.c: Configure PLLSAI clock to
enable ltdc register access. From Marco Krahl (2014-12-19).
* configs/stm32f429i-disco/include/board.h: Update board definition for
the ili9341 LCD display. This configures all LCD settings for the RGB
interface. Also adds a customer LCD display template. From Marco Krahl
* arch/arm/src/stm32/stm32_ltdc.h: Define a common layer description for
the ltdc and dma2d controller. From Marco Krahl (2014-12-19).
* arch/arm/src/stm32/stm32_dma2d.c/.h and related files: Add
infrastructure for dma2d support. From Marco Krahl (2014-12-19).
* arch/arm/include/stm32/ltdc.h: Add interface to perform hardware
accelerated layer operation. The following methods must be supported
by the implementation: gevideoinfo, getplaneinfo, getlid, setclut,
getclut, setcolor, getcolor, setcolorkey, getcolorkey, setalpha,
getalpha, setblendmode, getblendmode, setarea, getarea, and update.
And if DMA2D is supported: blit and blend. The method up_ltdcgetlayer
provides access to a reference of a specific ltdc layer. From Marco
* arch/arm/src/stm32/stm32_ltdc.c: Implements ltdc frambuffer support
for the generic nuttx framebuffer interface, (see nuttx/video/fb.h).
This also implements the interface to perform hardware accelerated
layer operation by the ltdc controller and dma2d controller later
(see nuttx/video/ltdc.h). The following methods are supported by the
ltdc interface: getvideoinfo, getplaneinfo, getlid, setclut, getclut,
setcolor, getcolor, setcolorkey, getcolorkey, setalpha, getalpha,
setblendmode, getblendmode, setarea, getarea, and update. From Marco
* include/nuttx/lcd/ili9341.h: Update interface control definitions.
* configs/stm32f429i-disco/src/stm32_lcd.c: Add support for
initializing ltdc framebuffer and the configured lcd display. This
adds support for initializing of the ltdc controller and the lcd
device connected on the stm32f429i-disco. The following methods are
provided for the generic fb interface: up_fbinitialize,
up_fbgetvplane, and fb_uninitialize. The following methods are
provided for the ltdc interface: up_ltdcgetlayer. From Marco Krahl
* zrch/arm/src/stm32/Kconfig: Add configuration option for ltdc. This
adds the following ltdc configuration options: dither support, cmap
support, is this the right place for CONFIG_FB_CMAP?, support for
extended ltdc interface. From Marco Krahl (2014-12-19).
* nuttx/configs/stm32f429i-disco: Enable configuration of framebuffer
support for the ltdc controller. From Marco Krahl (2014-12-19).
* configs/stm32f429i-disco/src/stm32_boot.c: Initialize ltdc during
* configs/stm32f429i-disco/ltdc: Add default platform configuration to
test framebuffer support for the ltdc. . From Marco Krahl
(2014-12-19).
* libnx/nxfonts/nxfonts_getfont.c: A patch to add previous added font
into nxf_getfonthandle function. From Pierre-Noel Bouteville
(2014-12-19).
* arch/arm/src/tiva, include/tiva, and many configurations: Change
negative Tiva logic CONFIG_SSIx_DISABLE to positive logic
CONFIG_TIVA_SSIx. Add support for SSI2 and SSI3 (2014-12-21).
* arch/arm/src/efm32/efm32_pwm.c/.h, efm32_timer.c/.h, and related
build files: Add support for timer/PWM on the EFM32GG. From
Pierre-noel Bouteville (2014-12-26).
* drivers/serial/Kconfig, serial.c, serialirq.c, and
include/nuttx/serial/serial.h: Add watermark levels to the serial
RX flow control logic. Modify the rxflowcontrol method to accept
the number of bytes in the buffer and a boolean indication of which
watermark was crossed (2014-12-27).
* sched/semaphore/sem_waitirq.c must be built when signals are disabled.
That is because not handles not only the case of semaphore wait
being awakened by a signal, but also the case with sem_timedwait.c
when the semaphore wait is awakened by a timeout (2014-12-28).
* arch/arm/src/stm32/stm32_ltdc.c: stm32: fix faulty access to non-
existing layer. This disables operation that requires double layer
support, when configured for single layer only. From Marco Krahl
(2014-12-29).
* arch/arm/src/stm32/stm32_ltdc.c: stm32: fix wait upon vertical blank.
This should never have occurred before. From Marco Krahl (2014-12-29).
* configs/stm32f429i-disco/ltdc/defconfig and src/stm32_boot.c:
stm32f429i-disco: change ltdc initializing during boot up. This moves
initializing of the ili9341 lcd and ltdc driver to the board specific
initializing routine. From Marco Krahl (2014-12-29).
* arch/arm/src/stm32/stm32_ltdc.c: Clean up documentation, some
formatting improvements. From Marco Krahl (2014-12-29).
* arch/arm/src/tiva/chip/tiva_ethernet.h, lm3s_ethernet.c, and
tm4c_ethernet.h: Add logic to discriminate between LM3S class Ethernet
register definitions and TM4C129X class Ethernet register definitions.
Add TM4C129X Ethernet register definitions (2014-12-30).
* arch/arm/src/tiva/tm4c_ethernet.c, lm3s_ethernet.c, Kconfig, and
Make.defs: First cut at TM4C129X Ethernet driver. Initial commit is
basically just the STM32 Ethernet driver with modifications for a clean
compilation in the Tiva environment (2014-12-31).
* arch/arm/src/stm32/stm32_rtc.c, stm32_rcc.c, Kconfig: Add support for
the internal low speed clock (LSI) as a source of the RTC clock. Some
boards do not have the external 32khz oscillator installed, for those
boards we must fallback to the crummy internal RC clock. Turn on by
defining CONFIG_RTC_LSICLOCK. From Kevin Hester (2015-01-02).
* net/tcp/tcp_conn.c: Fix a logic error when CONFIG_NETDEV_MULTINIC is
selected: net_unlock(flags) will be called will an uninitialized
variable (2015-01-03).
* arch/arm/src/tiva/tiva_irq.c: Fix Tiva IRQ control logic; was limited
to only 64 IRQs. That is a problem for higher numbered IRQs on many
platforms (2015-01-06).
* arch/arm/src/stm32/stm32_sdio.c, drivers/mmcsd/mmcsd_sdio.c and Kconfig,
and include/nuttx/sdio.h: MMCSD SDIO: Add support for a new
SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait loop
to poll the card R1 status to determine when the card was ready for
the next transfer. That busy-wait can be quite long -- up to hundreds
of milliseconds. An alternative is to look the SD D0 pin which
will change state when the card is no longer busy. This change avoids
the busy-wait poll by reconfiguring the SD D0 pin as a GPIO interrupt,
then waiting for the card to become ready without taking up CPU
cycles. This change is conditioned on CONFIG_MMCSD_SDIOWATI_WRCOMPLETE
and is currently only implemented for the STM32 SDIO driver. From
David Sidrane (2015-01-08).
* arch/arm/src/tiva/tiva_timerlib.c and .h: Add a timer library for
* arch/arm/src/tiva/tiva_timerlow32.c: Add a driver lower half for
drivers/timer.c. Only 32-bit periodic timers are supported. This
provides userspace access to timers.
* configs/px4-v2_upstream, Kconfig, README.txt: Remove the px4-v2_upstream
configuration. Moved to misc/Obsoleted/configs. This was not the
official configuration for the PX4 board and has led to confusion by
NuttX users. The board configuration also requires some ongoing
maintenance and customization to support ongoing PX4 testing and
evaluation. It is best retained the PX4 repositories where it can be
properly maintained and not in the upstream NuttX repository
(2015-01-14).
* net/netdev/netdev_ioctl.c and include/nuttx/net/ioctl.h: Add support
for IPv6 ioctls to manipulate IP addresses (2015-01-14).
* net/icmpv6: Create a future home for ICMPv6 (2015-01-14).
* net/icmp: Remove all logic conditioned on CONFIG_NET_IPv6
(2015-01-14).
* net/, include/nuttx/net, and a few other files: (1) Copied all ICMP
sources files to net/icmpv6 with proper renaming and removal of IPv4
logic, (2) remove IPv6 logic from files in net/icmp, (3) copied
include/nuttx/icmp.h to icmpv6.h and removed IPv4 specific logic, (4)
removed all IPv6 logic from icmp.h, (5) IP_HDRLEN became IPv4_HDRLEN
and IPv6_HDRLEN, (6) ip_chksum() became ipv4_chksum() and
ipv6_chksum(), and (7) added partial support for ICMPv6 statistics
(2015-01-14).
* arch/, drivers/net/, include/nuttx/net, and net/devif: (1) Rename
devif_input() ipv4_input(), (2) copy net/devif/devif_input.c to
ipv6_input.c, remove all IPv4-specific logic, (3) rename
net/devif/devif_input.c to ipv4_input.c, remove all IPv6-specific
logic, and (4) xplit IPv4 header structure out as net_ipv4hdr_s from
net_iphdr_s (2015-01-15).
* arch/ and drivers/net: All Ethernet drivers: Call ipv6_input() if
IPv6 is enabled and an IPv6 packet is received (2015-01-15).
* net/devif, net/tcp, net/ucp, include/nuttx/net: Separate tcp_input()
and udp_input() into separate functions tcp_ipv4_input(),
tcp_ipv6_input(), udp_ipv4_input(), and upd_ipv6_input() than can deal
will the data offsets caused by the differing sizes of the IP header
(2015-01-15).
* net/utils/net_ipv6_maskcmp.c: Add missing implementation of
net_ipv6_maskcmp() (2015-01-15).
* Networking: Drivers can have both IPv4 and IPv6 addresses, but a
socket can only only one or the other; The socket connection
structures need to include a union of IPv4 and IPv6 addresses for
the local address binding and for the remote address connections
(2015-01-16).
* Networking: Replace all references to net_ipaddr_t with either
in_addr_t on net_ipv6addr_t. The goal is to support both IPv4 and
IPv6 simultaneously. This requires that the two types be distinct
and not conditionally typedef'ed to net_ipaddr_t (2015-01-16).
* Networking: Replace all references to the macros net_ipaddr_copy,
net_ipaddr_hdrcopy, net_ipaddr_cmp, net_ipaddr_hdrcmp, and
net_ipaddr_maskcmp with the appropriate IPv4 or IPv6 version of the
macro (such as net_ipv4addr_copy). The goal is to support both
IPv4 and IPv6 simultaneously. This requires that the macros be
distinct and not conditionally defined to one on or the other
(2015-01-16).
* Networking: UDP and TCP MSS depends on the IP header size (as well
as the link layer header size) and cannot be represented with a
single value (2015-01-16).
* net/neighbor: Move net/ipv6 to net/neighbor (2015-01-16).
* include/net/if.h: Add a bit to the device flags to indicate if the
device packet buffer holds an IPv4 or an IPv6 domain packet.
Set/clear the flag along with the correct offset to the application
payload data as each packet is received (2015-01-17).
* net/socket, net/tcp, net/udp: Add logic to select the domain of the
outgoing packet before sending any UDP or TCP packet. This sets the
bit to indicate the IPv4 or IPv6 domain and the correct offset to the
output going payload data (2015-01-17).
* net/socket and net/tcp: When we are ready to receive data or when we
have outgoing data ready to be sent, we need to the notify the
appropriate device driver of this condition. The notifying socket
will be configured as either PF_INET or PF_INET6 and must look up the
correct driver using the correct IP domain (2015-01-17).
* net/socket/accept.c: Fix accept() so that it returns the correct IP
address for the selected socket IP domain (2015-01-17).
* Networking: Final detangling off IPv4 and IPv6 TCP/UDP send logic.
The networking subsystem now compiles with IPv6 enabled (2015-01-18).
* arch/arm/src/tiva/tm4c_ethernet.c: When calling into the stack
from the worker thread, it is necessary to have the stack locked
(2015-01-18).
* nuttx/arch/arm/src/stm32/stm32_serial.c: fix declaration and
definition of up_receive() and up_dma_receive() to match fields of
uart_ops_s from nuttx/include/nuttx/serial/serial.h. From Freddie
Chopin (2015-01-19).
* drivers/pipes/pipe.c, drivers/usbdev/cdcacm.c, and
mm/mm_gran/mm_granalloc.c: Fixes some issues found by the PX4 team
using Coverity. From Pavel Krienko (2015-01-19).
* net/icmpv6/icmpv6_solicit.c, net/neighbor/neighbor_out.c, and other
files: Add logic to search the Neighbor Table and update the
destination address in the output Ethernet header OR to send an
ICMPv6 Neighbor Solicitation if there is no entry in the Neighbor
table for the IPv6 address (2015-01-20).
* arch/ and drivers/net: Add missing raw/packet socket support to
* arch/ and drivers/net: Networking: Modify all Ethernet drivers:
Do neighbor look-up on all outgoing IPv6 packs in order to properly
set the destination link layer address (2015-01-20).
* Networking: When sending ICMPv6 advertisements and solicitations,
set the NOARP bit so that we don't overwrite the destination MAC
address (2015-01-20).
* Many files: Correct name of fields in struct sockaddr_in6: sin6_port
and sin6_family, not sin_port and sin_family (2015-01-20).
* net/socket/accept.c: Correct the value returned by accept() in the
case where net_lockingwait() is called. It was returning -1 and
losing the errno value. Noted by Rony Xln (2015-01-22).
* net/: After some significant effort, ICMPv6 and TCP are both
functional when IPv6 is selected. UDP still requires testing
* configs/dk-tm4c129x/ipv6: Add an IPv6-enabled NSH configuration
* include/nuttx/net/icmpv6.h and net/icmpv6/icmpv6_ping.c: First cut
at ICMPv6 ping logic. It works in both directions! (2015-01-23).
* arch/arm/src/efm32/efm32_rmu.c and .h: Add support for the EFM32
reset management unit (RMU). From Pierre-noel Bouteville
(2015-01-23).
* include/nuttx/math.h: Adds support for the expm1 functions:
http://pubs.opengroup.org/onlinepubs/009695399/functions/expm1.html.
From Brennan Ashton (2015-01-23).
* Many file: Add CONFIG_STACK_COLORATION that does the same thing as
CONFIG_DEBUG_STACK but without enabling debug. From David Sidrane
(2015-01-24).
* Remove CONFIG_DEBUG_STACK. Adding CONFIG_STACK_COLORATION makes
this configuration option pointless (2015-01-24).
* net/: Clean up network status collection for IPv6 (2015-01-24).
* arch/ and configs/: Changes to get USART 2 & 3 working on
lpc4357-evb. These changes are required to get USART 2 and 3 working
on the Embest development board. From Toby Duckworth.
* include/nuttx/math.h and libc/math: Add support for inverse
hyperbolic functions. From Brennan Ashton (2015-01-26).
* include/nuttx/math.h: Add math library definition for isfinite().
From Brennan Ashton (2015-01-26).
* include/nuttx/math.h and libc/math/lib_erf*.c: Add error function
to math library. From Brennan Ashton (2015-01-26).
* include/nuttx/math.h and libc/math: Add math library defines for
nan(), copysign(), and trunc() functions. From Brennan Ashton
(2015-01-26).
* sched/wqueue/kwork_process and libc/wqueue/lib_usrthread.c: Fix
a backward calculation when determining the time to the next event.
This is a bug in the back-up, "fail safe", work queue timing so it
not as bad as it seems. From Liio Chen via the PX4 repository
(2015-01-27).
* arch/arm/src/stm32/stm32_exti_gpio.c: Disabling any of EXTI 5-9
interrupts was disabling interrupts for all EXTI 5-9. Same issue with
EXTI 10-15. From Jussi Kivilinna (2015-01-27).
* arch/arm/src/stm32/stm32_rtcc.c and Kconfig: Recent changes to
stm32_rtcc.c do not compile with STM32L15XX configurations. From
Jussi Kivilinna (2015-01-27).
* net/local: Add initial support for local, Unix domain sockets.
Initial support is limited to SOCK_STREAM and is untested on
initial commit (2014-01-27).
* net/iob, net/tcp/tcp_callback.c, and include/nuttx/net/iob.h: There
were issues with the TCP write-ahead buffering if CONFIG_NET_NOINTS was
enabled: There is a possibility of deadlocks in certain timing conditions.
I have not seen this with the Tiva driver that I have been users but
other people claim to see the issue on other platforms. Certainly it
is a logic error: The network should never wait for TCP read-ahead
buffering space to be available. It should drop the packets
immediately. This was fixed by duplicating most of the IOB interfaces:
The versions that waited are still present (like iob_alloc()), but now
there are non-waiting versions of the same interfaces (like
iob_tryalloc()). The TCP read-ahead logic now uses only these non-
waiting interfaces (2015-01-27).
* net/tcp/tcp_send_buffered.c and tcp_wrbuffer.c: Fix another deadlock
condition. tcp_write_buffer_alloc() calls sem_wait() with network
locked. That worked if CONFIG_NET_NOINTS was not defined because
interrupts are automatically restored when the wait happens. But
with CONFIG_NET_NOINTS=y, the wait blocks with the network locked --
bad style and also can lead to a deadlock condition (2015-01-28).
* arch/arm/src/armv7-a/arm_memcpy.S and arch/arm/src/armv7-m/up_memcpy.S:
ARM assembly language memcpy.S's were not returning a value in R0 they
are required to do. From David Sidrane (2015-01-29).
* net/local: Extend Unix domain socket support to include support
for datagram Unix domain sockets (2015-01-29).
* net/socket/accept.c: Fix a major TCP bug introduced with commit
e71c09ce9777ff732cb60bd07fb43d85522f79d6. Some connection logic was
reordered; setting the socket as 'connected' got moved to BEFORE the point
where the check was made if the socket was already connected. The
resulting behavior was odd: Telnet would connect, but then when you
exit and reconnect, it would fail to connect. But then if try again, it
would connect okay. So the symptom was connect-fail-connect-fail-...
(2015-01-29).
* net/socket/net_poll.c, recvfrom.c, and udp/udp_callback.c: Add UDP
read-ahead support. This enables support for for poll/select on UDP
sockets and also non-blocking UDP sockets. From Macs N (2015-01-30).
* net/local/local_netpoll.c, socket/net_poll.c, and udp/udp_netpoll.c:
Separate out UDP poll logic from net_poll.c into a new udp_netpoll.c;
Create a skeleton local_netpoll (2015-01-30).
* net/socket/net_poll.c and tcp/tcp_netpoll.c: Separate TCP poll logic
out of net_poll.c and move it into the new tcp_netpoll.c (2015-01-30).
* arch/arm/src/efm32/efm32_clockconfig.c: Logic to unconditionally enable
LE clocking. Even you don't use core clock LE as source for LFA or LFB,
to read are write any register not clocked by HFPERCLK or HFCORECLK,
HFCORECLKLE should be enabled. From Pierre-noel Bouteville (2015-01-30).
* drivers/net/slip.c: SLIP interface improvements. From Macs N
(2015-01-30).
* clock_systimespec(): Fixes for compilation errors in certain
configurations. From Macs N.
* drivers/pipes/fifo.c, include/nuttx/fs/ioctl.h, and net/local/local_fifo.c:
Fix a race condition between FIFO buffer operations and the opening and
closing of FIFOs which necessary when the FIFOs are used to support
Unix domain, datagram sockets. The default policy is the deallocate
FIFO buffering when the last client closes the pipe. When when used
for datagram communications, packets left in the FIFO will be lost.
Some like UDP read-ahead is needed: The buffered data in the FIFO
needs to be retained until the reader gets a chance to re-open the
FIFO. Added an ioctl (PIPEIOC_POLICY) to control the buffer policy.
Default (0) is the legacy behavior; Unix domain datagram logic sets
the alternative policy so that the packet data persists after the FIFO
is closed (2015-01-30).
* net/local: Add configuration options so that Unix domain stream and
datagram support can be separately enabled (2015-01-31).
* fs/vfs/fs_unlink.c and include/nuttx/fs/fs.h: Add an unlink method to
both the character and block driver interface. This is important
because if the driver inode is unlinked and there are no open references
to the driver, then the driver resources will be stranded. On the unlink
call, the driver has the opportunity (1) check if there an any open
references, and if not, (2) free the driver resources (2015-01-31).
* drivers/pipes: Implement the unlink method. If the pipe/FIFO is
unlinked, it will marked the pipe/FIFO as unlinked. If/when all open
references to the driver are closed, all of the driver resources will
be freed (2015-01-31).
* arch/avr: Added architecture support for the Atmel AVR ATMega1284P
MCU. From Jedi Tek'Unum (2015-01-31).
* configs/moteino-mega: Added support for the LowPowerLab MoteinoMEGA
that is based on the Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum
(2015-01-31).
* EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville
(2015-02-01).
* drivers/ramdisk.c, include/nuttx/fs/ramdisk.h, and other files: Add
logic to dispose of the driver and RAM buffer when the RAM disk has
been unlinked and all open references to the RAM disk have been
closed. Add new parameters to romdisk() to specify what should be
done with the RAM/ROM buffer -- Should it be freed or not? Changed
all calls to ramdisk() to use these new parameters (2015-02-01).
* net/icmpv6/icmpv6_neighbor.c, icmpv6_notify.c (and other files): Adds
basic logic to support verification that we have the IPv6 address in
the Neighbor Table. This feature is important because otherwise the
first packet sent to a remote peer will fail (it will be replaced
with a Neighbor Solicitation) (2015-01-02).
* net/arp/arp.h, arp_notify.c, and arp_send.c: Fixes another
CONFIG_NET_NOINTS issues. When called sem_timedwait() with the
network locked, the network stays locked while we wait which is not
what we want (without CONFIG_NET_NOINTS, interrupts are re-enabled
while we wait and all is well) (2015-02-02).
* net/icmpv6/icmpv6.h, icmpv6_neighbor.c, icmpv6_notify.c: Apply the
same fix as for ARP to the Neighbor Solicitation logic (2015-02-02).
* sched/sched/sched_timerexpiration.c, Kconfig, and include/nuttx/arch.h:
On my platform I have just 16-bit timer clocked at 32kHz. As result
oneshot timer max delay is 2s. The patch adds limit of maximum ticks
in sched_timer_start(). From Macs N (2015-02-03).
* arch/arm/src/sam34: Add support for Tickless mode of operation for
the SAM4CM platform. From Macs N (2015-02-03).
* include/nuttx/net/icmpv6.h and net/icmpv6/Kconfig: Add support for
sending ICMPv6 Router Solicitation and receiving Router advertisement.
This is a part of the ICMPv6 auto-configuration logic is still not
complete (2015-02-03).
* libnx/nxfonts/nxfonts_getfont.c and nxfonts_sans39x48.h: Fixes a
problem with one of the font files. From Pierre-noel Bouteville
(2015-02-03).
* arch/arm/src/efm32/efm32_rtc_burtc.c: Remove a misbehaving assertion.
From Pierre-noel Bouteville (2015-02-03).
* net/icmpv6: Implemented the ICMPv6 Autonomous Auto-Configuration
logic. This is an IPv6 alternative to DHCP. It obtains the IPv6
addresses and masks using ICMPv6 Router Solicitation and
Advertisement messages (2015-02-03).
* arch/arm/src/stm32/stm32_aes.c, stm32_aes.h, and
chip/stm32l15xxx_aes.h: Add driver for STM32L162XX AES peripheral.
From Juha Niskanen (2015-02-04).
* net/icmpv6/icmpv6_radvertise.c, Kconfig, and other files: Add option
to send Router Advertisement Messages (2015-02-05).
* net/icmpv6/icmpv6_input.c, arch/arm/src/tiva/tm4c_ethernet.c, and
stm32/stm32_eth.c: Add logic to behave like a router (if so
configured): NuttX will not send the router advertisement message
in response to any router solicitation messages (2015-02-05).
* configs/stm32f4discovery/ipv6 and arch/arm/src/stm32/stm32_eth.c: Add
an IPv6 configuration for the STM32F4-Discovery board (with the
STM32-DISCO_BB base board). Verify that the STM32 Ethernet driver
works with IPv6 (2015-02-05).
* net/icmpv6/icmpv6_input.c and icmpv6_rnotify.c: With these two
changes both ICMPv6 autonomous autoconfiguration and router
functionality appear to be working with no problems (2015-02-05).
* arch/arm/src/tiva and configs/tm4c123g-launchpad: Adds support for
TM4C123G timers; integrates with the TM4C123G Launchpad. From Calvin
Maguranis (2015-02-05).
* arc/arc/src/tiva/tiva_adc.c and .h: Adds a Tiva ADC driver. From
Calvin Maguranis (2015-02-05).
* tmv4c123g-launchpad: Add Tiva ADC support to the TM4C123G-Launchpad.
From Calvin Maguranis (2015-02-05).
* arch/arm/src/stm32/stm32_spi.c: The source clock for SPI 4,5, and 6
should be PCLK2, not PCLK1 (for F411, F427, and F429). Per David
Sidrane (2015-02-07).
* drivers/syslog/syslog_console.c, include/nuttx/syslog/syslog_console.h,
and the console device initialization logic for all architectures: Add
an option to use the syslog'ing device as the system console. This
option enables a low-level, write-only console device at /dev/console
(similar to the low-level UART console device). From Pierre-noel
Bouteville (2015-02-08).
* net/utils: Clean up and consolidate some clunky stuff in ARP and
ICMPv6 time waiting logic by adding new net_timedwait() function
(2015-4-09).
* arch/arm/src/stm32/stm32_eth.c: Add logic so that STM32 Ethernet
driver can avoid interrupt level processing and, instead, execute on
the work thread (2015-4-09).
* configs/stm32f4discovery/netnsh and ipv6: Convert all STM32F4-
Discovery configurations (with base board) to configure the Ethernet
driver to use the work queue (vs. interrupt level processing)
(2015-4-09).
* libc/unisted/lib_execl.c: Fix bad logic in counting the number of
arguments. This could never have worked. Noted by Pierre-noel
Bouteville (2015-4-09).
* arch/arm/src/sama5/sam_emacb.c: Add support for Multicast address
matching and IPv6 in the SAMA5D4 Ethernet driver (2015-02-09).
* configs/sama5d4-ek/ipv6: Add a configuration for testing IPv6 with
the SAMA5D4-EK (2015-02-09).
* arch/arm/src/armv7-a/arm_doirq.c: ARMv7-A interrupt handler should not
automatically re-enable interrupts on interrupt return. That
interferes with the driver's ability to manage interrupts (2015-02-09).
* arch/arm/src/sama5/sam_emacb.c: Add support for CONFIG_NET_NOTINTS in
the SAMA5D4 Ethernet driver so that the driver can operate from the
work queue thread instead of doing everything from the interrupt level
(2015-02-09).
* SAMA5D4-EK: CONFIG_NET_NOINTS is now enabled in the nsh and ipv6
configurations (2015-02-09).
* arch/arm/src/a1x, arm, c5471, common, dm320, imx, lpc2378, lpc31xx,
sama5, str71x, hc/src.common, sh/src/common, x86/src/common,
z16/src/common, z16f, z80/src/z8: Big, very risky change: Remove all
occurrences of up_maskack_irq() that disable and enable interrupts
with up_ack_irq() that only acknowledges the interrupts. This is only
used in interrupt decoding logic. Also remove the logic that
unconditionally re-enables interrupts with the interrupt exits. This
interferes with the drivers ability to control the interrupt state.
This is a necessary, sweeping, global change and unfortunately
to test (2015-02-09).
* mtd/ramtron.c: Table of parts is not terminated properly if
CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David
Sidrane (2015-02-09).
* arch/arm/src/sam34/sam_emac.c, sama5/sam_emaca.c, and sama5/sam_gmac.c:
Clone the SAMA5D4 IPv6 support to the SAM4E EMAC and SAMAd3 EMAC and
GMAC drivers (2015-02-09).
* net/: Lots of build problems introduced into multiple NIC support.
Many places where conditional logic based on CONFIG_NETDEV_MULTINIC is
confused with CONFIG_NET_MULTILINK. Lots of code changed with IPv6
that was never compiled with MULTINIC enabled. Still some problem
with parameter passing in the MULTINIC configuration(2015-02-09).
* net/iob/Kconfig: In IOB Configuration, the default number of IOB
chains must be more than zero is UDP read-ahead is enabled (2015-02-10).
* net/tcp/tcp_conn.c and udp/udp_conn.c: Fix several build errors/warning
with IPv4 + IPv6 + multiple networks are enabled (2015-02-10).
* arch/arm/src/sam34/sam_emac.c: SAM4 Ethernet driver bow supports
operation using the high priority work queue so that packet processing
can occur outside of interrupt level processing (2015-02-10).
* SAM4E-EK: The nsh configuration now configures the Ethernet driver
for execution on the HP work thread (2015-02-10).
* arch/arm/src/lpc17xx/lpc17_ethernet.c: Add IPv6 support to the LPC17
Ethernet driver. Untested... I no longer have a proper environment
for LPC17 debug (2015-02-10).
* include/netinet/in.h and libc/net/lib_addrconfig.c: Some extensions
to netinet/in.h adding some Linux compatible definitions. From Macs N
* arch/arm/src/kl: Add architectural support for the K26Z128VLH4 chip.
From Derek B. Noonburg (2015-02-11).
* configs/freedom-kl26z: Add board support for the Freedom KL26Z board.
From Derek B. Noonburg (2015-02-11).
7.9 2015-xx-xx Gregory Nutt <gnutt@nuttx.org>
* arch/arm/src/tiva: Add support for the TM4C1294. Contributed by
Frank Sautter (2015-02-11).
* configs/tm4c1294-launchpad: Add support for the TM4C1294 Launchpad.
Contributed by Frank Sautter (2015-02-11).
* gettimeofday(): Move gettimeofdady() from sched/clock to libc/time.
Remove gettimeofday() from NuttX system calls. It is only a wrapper
around clock_settime() and does not need a trap. gettimeofday() is
no longer treated as a core OS interface (2015-02-12).
* settimeofday(): gettimeofday has been decrecated in POSIX 2008.
settimeofday() was never part of POSIX, but I decided to add it to
libc as well just for symmetry (2015-02-12).
* drivers/sensors/mpl115a.c and include/nuttx/sensors/mpl115a.h: Add
driver for the Feescale MPL115A baramoter. From Alan Carvalho de
Assis (2015-02-12).
* configs/viewtool-stm32f107: Add support for an optional, add-on
Freescale MPL115A baramoter. From Alan Carvalho de Assis
(2015-02-12).
* sched/clock/clock_systimer.c: Fix a problem in clock_systimer64 that
occurs when (1) the 64-bit system time is enabled, and (2) the value
of CONFIG_USEC_PER_TICK is less than 1 milliseconds (such as when using
the tickless mode of operation). In that case, the conversion of time
to 64-bit millisecond value in clock_systmer64() causes some bad times
to be returned. Time was converted to milliseconds, then to configured
ticks. Precision was lost in the millisecond conversion. The fix is
to first convert time to a 64-bit microsecond value, then to the
configured tick value. Noted by David Sidrane (2015-02-13).
* include/nuttx/rtc.h, arch.h, and arch/*/src/*_rtc.h: Removed all of the
old, malformed RTC interface definitions from include/nuttx/rtc.h. The
necessary prototypes have been removed, renamed, scattered to the wind,
hidden under rocks, -- whatever it takes to make it clear that there is
no RTC interface callable from application code (2015-02-13).
* include/nuttx/rtc.h and fs/ioctl.h: Begin the definition of a proper,
driver based RTC interfaces that is better suited to the architectural
goals of nuttx (2015-02-13).
* drivers/timers/timer.c and watchdog.c: Move timer-related drivers from
drivers/ to drivers/timers (2015-02-13).
* drivers/timers/rtc.c: Add an RTC upper half driver. This is the driver
that is documented in include/nutt/rtc.h (2015-02-13).
* arch/arm/src/stm32/stm32_rtcc.c and stm32_rtc.h: Break out a new internal
interface, stm32_rtc_setdatetime(). This eliminates some un-necessary
time conversions. From Freddie Chopin (2015-02-13).
* arch/arm/src/stm32/stm32_rtc_lowerhalf.c, Make.defs, and stm32_rtc.h: Add
a skeleton implementation of the RTC lower half interface at
arch/arm/src/stm32/stm32_rtc_lowerhalf.c. This is just the framework for
the RTC lower half. None of the interface methods have yet been
implemented (2015-02-13).
* net/icmpv6/icmpv6_advertise.c and icmpv6_solicit.c: Add inclusion of
nuttx/net.h to two files. Without these there can be compilation errors
in certain configurations. From Max Neklyudov (2015-02-13).
* net/net_initialize.c, sched/init/os_start.c, and a few other files:
Divide net_intiialize() into net_setup() and net_initialize() to solve
a chicken-and-egg problem. net_setup() must be called before
up_initialize() is called so that networking data structures are ready
to register new network devices. net_initialize() now does only timer
related operations and is called AFTER up_initialize() where the timers
are configured. Problem note by Max Neklyudov (2015-02-14).
* include/time.h and sys/time.h: Move struct timeval from include/time.h
to include/sys/time.h where it belongs (2015-02-15).
* arch/arm/src/stm32/stm32_rtcc.c, stm32_rtc.h, and Kconfig: Extend the
RTC interface to support reading subseconds. From Jussi Kivilinna
(2015-02-16).
* arch/arm/src/efm32/efm32_usbdev.c: EFM32 USB Device is now basically
functional with this change. From Pierre-noel Bouteville (2015-02-16).
* include/nuttx/net/ip.h: Move macros and common logic for IPv4-mapped
IPv6 addresses from files in net/ to include/nuttx/ip.h. These are
currently only used for UDP, but will need to be be used in many places
in the future (2015-02-17).
* includes/nuttx/compiler.h: Add support for the restrict keyword
(2015-02-17).
* include/netdb.h: Add a mostly-commented-out version of the standard
netdb.h header file (2015-02-17).
* arch/arm/src/tiva/: Updated files to allow for ADC triggering by the
timer. Iâve cleaned up some parts of the ADC code, too, and fleshed
out the PWM triggering ioctl. From Calvin Maguranis (2015-02-17).
* configs/tm4c123g-launchpad: Add ADC suppport. From Calvin Maguranis
(2015-02-17).
* fs/fat/fs_mkfatfs.c: Use DMA memory for mkfatfs when needed. This makes
mkfatfs use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is
needed to ensure mkfatfs operates with boards that use DMA for microSD.
From Andrew Tridgell via the PX4/NuttX repository (2015-02-17).
* include/nuttx/rtc.h, fs/fs.h, drivers/ramdisk.c, pipes/, and
timers/rtc.c: The inode unlink method should not be support if
operations on the root pseudo-filesystem are disabled (2015-02-18).
* include/nuttx/sched timing functions: Fix some nanosecond comparisons.
Comparisons should be greate than OR EQUAL TO 1000000000 for maximum
value of nanoseconds in struct tm. From Juha Niskanen (2015-02-20).
* tm4c123g-launchpad: Add board button interrupt logic. From Calvin
Maguranis (2015-02-20).
* "Tiva: Move GPIIO prototypes out of arch/arm/include/tiva/irq.h to
arch/arm/tiva/tiva_gpio.h where they belong (2015-02-20).
* arch/arm/src/tiva: Tiva GPIO clean-up by Calvin Maguranis (2015-02-20).
* arch/arm/src/stm32/stm32_pwr.c, stm32_pwr.h, and stm32_rtcc.c: Changes
to support fully write protecting the backup domain. N.B.
stm32_pwr_enablebkp did not account for the delay from enable to the
domain being writable. The KISS solution is a up_udelay. A more
complex solution would be a negated write test with restore. From
David Sidrane (2015-02-21).
* arch/arm/src/stm32/stm32_bbsram.c, stm32_bbsram.h, Kconfig, and
Make.defs: Adds the ability to use the STM32F2 and STM32F4 Battery
Backedup SRAM in the file system. With an option to Save Panic
context to one of the files. From David Sidrane (2015-02-21).
* configs/pic32mx-starterkit: Rename from pic32-starterkit to make
room on the namespace for a pic3mz-starterkit. Update src/ directory
file naming to match currnet standard. Refresh configurations. Move
linker scripts to a new scripts/directory. Make sure that it builds
using the Pinquino toolchain (2015-02-21).
* arch/mips/src/mips32/Toolchain.mk: Current Pinguino toolchain uses
the prefix p32- instead of mips- (2015-02-21).
* configs/pic32mz-starterkit: Add basic board support for the PIC32MZ
(can't build yet of course because there is not yet any PIC32MZ
support) (2015-02-22).
* arch/mips/src/pic32mz and include/pic32mz: Add some PIC32MZ header
file definitions and just enough logic in the source directory so
that we can run 'make menuconfig'. Still a very long way from being
complete (2015-02-22).
* libc/time/lib/lib_sfrtime.c: Missing implementation of %C in
sfrtime() C (was being treated as %y). From Freddie Chopin
(2015-02-23).
* drivers/can.c: In the can_open function: this line
'dev->cd_ocount = tmp;' needs to be moved a few lines down otherwise
the open count will only be incremented from 0 to 1. This causes
problems when trying to open the can bus from two different tasks.
SourceForge Patch #46 from Anonymous (2015-02-23).
* Tiva TM4c1294: Updates from Frank Sautter (2015-02-24).
* fs/aio: Corrrect some backward tests in aio_read() and aio_write():
Socket descriptors have higher numbers than file descriptors. In
aio_contain(), Copy u.ptr (void *) when initializing aioc and not
the case specific u.aioc_filep. From Michal Ulianko (2015-02-24).
* include/pthread.h: Fix PTHREAD_COND_INITIALIZER (2015-02-24).
* sched/clock/clock_systimespec.c: When an RTC is used clock_systimespec()
must subtract the basetime from the returned time. It needs to
return the time since power up, no the current time. Issue noted
by Max Neklyudov (2015-02-25).
* fs/vfs/fs_select.c and sched/semaphore/sem_timedwait.c: Fix places
where the errno value was being overwritten by subsequent actions so
that the returned errno value was incorrect. From Max Neklyudov
(2015-02-25).
* include/sys/select.h: Extend the fd_set type definition so that it
can handle more than 32 descriptors (if so configured). From Max
Neklyudov (2015-02-25).
* net/netdev/netdev_unregister.c: Fix a list handling error in
netdev_unregister(). From Max Neklyudov (2015-02-27).
* net/netdev/netdev_register.c: Improve the network device registration
logic. When multiple link types are used, modify how each interface
number is assigned to the device name by incrementing the device
number individually for each interface link type. From Max Neklyudov
(2015-02-27).
* include/nuttx/board.h: Remove common board function prototypes from
other files and consolidate them in this new header file (2015-02-27).
* arch/mips/src/pic32mz/: Implement support IO port interrupts
(2015-03-01).
* configs/pic32mz-starterkit/src: Add support for on-board buttons
(2015-03-01).
* include/nuttx/spi/spi.h: Add an SPIDEV_USER so that there can be
board-specific definitions of SPI devices (2015-03-01).
* arch/arm/src/stm32 and arch/arm/src/stm32: Adds architecture support
for the STM32F372 and F373 (no board support yet). Only tested on
STM32F373CC, but should work on the rest. Contributed by Marten
Svanfeldt (2015-03-01).
* arch/mips/src/pic32mz/pic32mz-spi.c and chip/pic32mz-spi.h: Add
support for a basic SPI driver for the PIC32MZ (2015-03-03).
* include/nuttx/i2c.h: Add a user provided void * argument to the
I2C callback method for the I2C slave interface. Suggested by
Nate Weibley (2015-03-03).
* crypto/, include/nuttx/crypto, and arm/src/common/up_initialize.c:
Fix issues when AES support was added for the STM32L1. From Juha
Niskanen (2015-03-04).