Skip to content
ChangeLog 880 KiB
Newer Older
	* First attempt at a nucleo-l432kc board.  From Sebastien Lorquet
	  (2017-05-02).
	* STM32F7:  Flash: macro naming errors, there is no FLASH_CONFIG_F for
	  F7.  From Juha Niskanen (2017-05-02).
	* STM32L4: stm32l4x6xx_pinmap:  Update I2C4 and DCMI pins.  From Juha
	  Niskanen (2017-05-02).
	* 6loWPAN: Add basic call path to interface with the MAC layer through
	  the MAC network driver.  Logic has not yet been implemented.  This is
	  just a structural change in preparation for additional changes
	  (2017-05-02).
	* wireless/ieee802154:  Sets up default PIB attributes.  From Anthony
	  Merlino (2017-05-02).
	* wireless/ieee802154:  Finishes some IOCTL logic for MAC layer.  From
	  Anthony Merlino (2017-05-02).
	* 6loWPAN:  Changes to use new MAC interfaces.  Incomplete and needs
	  some clean-up of dangling, unused definitions (2017-05-03).
	* wireless/ieee802154: Starts work on setting PIB attributes.  From
	  Anthony Merlino (2017-05-03).
	* 6loWPAN:  Fixes hang in loopback test (2017-05-03).
	* drivers/wireless/bcmf:  Fix frame not freed when dropped + cleanup.
	  From Simon Piriou (2017-05-03).
	* STM32L4: stm32l4_i2c:  Change wrong macro to CONFIG_I2C_POLLED.  From
	  Juha Niskanen (2017-05-04).
	* STM32L4: modularize Kconfig to support different product
	  lines/families.  This is modeled after STM32F7. Idea is to declare
	  each chip in Kconfig but allow for flash size override. Commit adds
	  many STM32L4_HAVE_XXX feature test macros.  From Juha Niskanen
	  (2017-05-02).
	* STM32L4:  Changes needed for STM32L452 and Nucleo-L452RE board.  GPIO
	  and UART seem similar across STMicro product matrix, so renamed files
	  accordingly. RCC is cloned just in case, while conflicting
	  differences there seem to be very minor.  From Juha Niskanen
	  (2017-05-02).
	* STM32L4:  Flash: update override config macros and add
	  FLASH_CONFIG_B.  From Juha Niskanen (2017-05-02).
	* configs:  Add nucleo-l452re board files.  From Juha Niskanen
	  (2017-05-04).
	* fixedmath:  Add square root and b32_t conversion operators.  From
	  Jussi Kivilinna (2017-05-04).
	* Fix STM32F7 I2C interrupt handler.  From Jussi Kivilinna (2017-05-04).
	* STM32F7 serial:  Allow configuring Rx DMA buffer size.  From Jussi
	  Kivilinna (2017-05-04).
	* 6loWPAN: Replace Rime address naming with more consistent
	  short/exended address terminology (2017-05-04).
	* 6loWPAN:  Remove all ieee802.15.4 MAC knowledge from 6loWPAN.  Now
	  relies on wires/ieee802154 for all MAC-related operations (2017-05-04).
	* 6loWPAN:  Local address length is fixed by the configuration.  The
	  remote address be with short or extended (2017-05-04).
	* STM32L4:  Separate SYSCFG into product line specific files for
	  clarity.  From Juha Niskanen (2017-05-05).
	* STM32L4:  firewall for stm32l4x3xx.  Not tested for any product
	  family, but now it at least compiles.  L496 devices can have one bit
	  wider Volatile Data Segment.  From Juha Niskanen (2017-05-05).
	* STM32L4:  Add more chips to Kconfig.  This also removes
	  DPFPU/DTCM/ITCM features again, fixing a recent git history hickup.
	  From Juha Niskanen (2017-05-05).
	* configs/nucleo-l496zg:  Kconfig was copied from nucleo-144.  Removed
	  as most options have not been tested.  From Juha Niskanen (2017-05-05).
	* nucleo-144:  Default for choice in Kconfig was not one of the
	  possible choices (2017-05-05).
	* Kinetis:  Add TPM to K66 chip.  From David Sidrane (2017-05-05).
	* Kinetis:  Fixed CLKSRC Bit Names.  From David Sidrane (2017-05-05).
	* Kinetis:  Add OSC_DIV to the kinetis_osc header.  From David Sidrane
	  (2017-05-05).
	* Kinetis:  Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock
	  configuration.  From David Sidrane (2017-05-05).
	* Kinetis:  Added HW flow control and termios.  From David Sidrane
	  (2017-05-05).
	* wireless/ieee802154:  Changes rxenable at radio layer.  From Anthony
	  Merlino (2017-05-03).
	* wireless/ieee802154:  Finishes promiscuous mode IOCTL.  From Anthony
	  Merlino (2017-05-03).
	* wireless/ieee802154:  Removes radio IOCTL.  Starts bringing radio and
	  MAC closer with well-defined interface.  From Anthony Merlino
	  (2017-05-05).
	* STM32L4:  Add support for many new MCUs from STM32L4X3XX product line
	  and Nucleo-L452 board.  From Juha Niskanen (2017-05-05).
	* 6loWPAN:  Use information in struct ieee802154_data_ind_s when
	  reassembling a packet (2017-05-05).
	* ieee 802.15.4: Add a pool-based memory allocator for RX frame
	  meta-data (2017-05-05).
	* kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as
	  Open Drain.  The output structure of the GPIO for I2C needs to be
	  open drain.  When left at the default, one can observe on a scope the
	  slave contending with the push-pull during the ACK.  From David
	  Sidrane (2017-05-05).
	* wireless/ieee802154: Removes msdu_length from meta-data since it is
	  intrinsically in the IOB.  From Anthony Merlino (2017-05-06).
	* wireless/ieee802154: Reworks data_ind allocation to include IOB
	  allocation/deallocation. Hides private data.  From Anthony Merlino
	  (2017-05-05).
	* wireless/ieee802154: Completes Rx data flow through MAC layer to
	  callback.  From Anthony Merlino (2017-05-06).
	* Kinetis:  Add ARCH_HAVE_I2CRESET.  From David Sidrane (2017-05-06).
	* Reworks data_ind allocation to include IOB allocation/deallocation.
	  Hides private data.  From Anthony Merlino (2017-05-06).
	* STM32:  Serial Allow configuring Rx DMA buffer size.  From David
	  Sidrane (2017-05-06).
	* 6loWPAN: Minor cleanup and re-verification of all compression modes
	  after so many recent changes (2017-05-06).
	* Update the C coding standard document (2017-05-06).
	* IEEE 802.15.4 network driver.  Remove support for multicast address
	  filtering; doesn't work that way on an IEEE 802.15.4 network
	  (2017-05-08).
	* STM32:  Serial DMA buffer round off not up.  From David Sidrane
	  (2017-05-08).
	* STM32 TIM:  Add method to get timer width.  Freerun timer: Use timer
	  width to get the correct clock rollover point (2017-05-08).
	* wireless/ieee802154: Finishes MAC processing of received data frame.
	  From Anthony Merlino (2017-05-08).
	* wireless/ieee802154: Finishes MAC char driver read functionality.
	  From Anthony Merlino (2017-05-08).
	* wireless/ieee802154: MRF24J40: Finishes receive functionality,
	  supports promicuous mode, and rxonidle attributes.  From Anthony
	  Merlino (2017-05-08).
	* wireless/ieee802154: Completes basic receive functionality.  From
	  Anthony Merlino (2017-05-08).
	* Final fixes to get the nucleo-l432kc config build.  Execution not
	  tested yet.  From Sebastien Lorquet (2017-05-09).
	* Adapt stm32l43x pin definitions.  From Sebastien Lorquet (2017-05-09).
	* More unbuilt stm32 -> stm32l4 changes.  From Sebastien Lorquet
	  (2017-05-09).
	* Restore settings for UARTs 4 and 5.  From Sebastien Lorquet
	  (2017-05-09).
	* IOBs:  Move from driver/iob to a better location in mm/iob
	  (2017-05-09).
	* STM32L4:  Add dbgmcu header files.  From Juha Niskanen (2017-05-09).
	* wireless/ieee802154: Fixes missing handle of read/write being able to
	  be interrupted.  From Anthony Merlino (2017-05-09).
	* wireless/ieee802154:  Starts implementing START.request primitive.
	  From Anthony Merlino (2017-05-09).
	* drivers/serial: I discovered a problem in the file
	  drivers/serial/serial.c concerning the function uart_close(…). In the
	  case that a serial device is opened with the flag O_NONBLOCK the
	  function uart_close(…) blocks until all data in the buffer is
	  transmitted. The function close(…) called on an handle opened with
	  O_NONBLOCK should not block. The problem occurred with a CDC/ACM
	  device.  From Stefan Kolb (2017-05-10).
	* mtd/config:  erase block between block read and write.  From Juha
	  Niskanen (2017-05-10).
	* Moved LIS3DSH from the I2C-dependent block to the SPI-block to make
	  Make.defs consistent with the driver (SPI only) and
	  drivers/sensors/Kconfig.  From Floxx (2017-05-10).
	* syslog:  Add option to buffer SYSLOG output to avoid interleaving
	  (2017-05-10).
	* syslog buffering:  Use IOBs to buffer data, not an on-stack buffer
	  (2017-05-10).
	* STM32L4:  Add internal flash write support.  From Juha Niskanen
	  (2017-05-11).
	* When syslog message has addition characters after last new-line. With
	  buffering those now get lost as vsyslog does not flush output after
	  lib_sprintf. Additional trailing characters could be ANSI escape
	  sequence to reset state that message setups. For example, macro here
	  uses colors and resets state after actual message (including '\n'):
	  With flushing added to vsyslog, then there is problem that next
	  syslog line might come from other task before reset sequence, causing
	  wrong line getting color. This could be avoided by not flushing on
	  '\n' but only if IOB is full and/or at end of vsyslog.  Would this
	  make sense?.  From Jussi Kivilinna (2017-05-11).
	* Syslog:  Need inclusion of errno.h for fix building with
	  CONFIG_SYSLOG_TIMESTMAP=y (2017-05-11).
	* mtd:  Build RAMTRON and AT45DB drivers only if selected.  From Juha
	  Niskanen (2017-05-11).
	* mtd/config:  Fix byte read interface test.  From Juha Niskanen
	  (2017-05-11).
	* mtd:  Fix some unallocated and NULL pointer issues.  rwb->wrflush and
	  rwb->wrmaxblocks in rwbuffer could get unallocated values from
	  ftl_initialize() in some configurations.  Also fixes related assert:

	    up_assert: Assertion failed at file:rwbuffer.c line: 643

	  that can happen with the following configuration:

	    CONFIG_FTL_WRITEBUFFER=y
	    CONFIG_DRVR_WRITEBUFFER=y
	    # CONFIG_FS_WRITABLE is not set

	  These problems are caused by CONFIG variable differences between the
	  buffer layers. TODO: This is not a perfect solution. readahead
	  support has similar issues.  From Juha Niskanen (2017-05-11).
	* STM32L4: port stm32l4_serial_get_uart function from STM32F7.  From
	  Juha Niskanen (2017-05-12).
	* syslog:  Avoid flushing syslog_stream buffer, if possible, until
	  lib_vsprintf() completely parses the format.  This assures that the
	  flush will flush the entire output, even data that may potentially
	  follow the linefeed.  And, in that case, it cannot be interleaved
	  with other devug output.  Suggested by Jussi Kivilinna (2017-05-12).
	* syslog:  There is yet another place where the output can get split.
	  That is in syslog_dev_write():  It will break up the stream to insert
	  a CR before the LF.  This can that can be avoid be generating the
	  CR-LF sequence in the buffer and then detecting and ignoring valid
	  CR-LF sequences, rather than expecting syslog_dev_write() to insert
	  the CR in this case.  I don't like the idea that syslog_dev_write()
	  still scans the entire output buffer to expand CR-LF sequence.  This
	  seems really wasteful, especially in this case where we can be sure
	  that the is no CR or LF without a matching LF or CR.  Bu, I think,
	  the existing behavior in syslog_dev_write() must be retained because
	  it is needed in other contexts (2017-05-12).
	* Bitbucket Issue 47: Some of last syslog changes needed to be
	  condition on #ifdef CONFIG_SYSLOG_BUFFER in order to be built without
	  syslog buffering enabled (2017-05-12).
	* Move CAN subsystem to its own directory and put device drivers
	  there.  From Alan Carvalho de Assis (2017-05-12).
	* locale.h:  Add a bogus definition of locale_t.  From  (2017-05-12).
	* kinetis K66:  Fixed TMP2_CH1 definition.  From David Sidrane
	  (2017-05-12).
	* kinetis K66:  Define ALT1 to match ref manual.  From David Sidrane
	  (2017-05-12).
	* kinetis K66:  GPIO and pin mux cleanup.  From David Sidrane
	  (2017-05-13).
	* STM32F410:  Add support for STM32F410.  STM32F410 is a version of
	  STM32F4 with 32 KB of RAM and 62 or 128 KB of flash.  From Gwenhael
	  Goavec-Merou (2017-05-13).
	* Kconfig/deconfigs:  Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that
	  the toolchain is based on GNU gcc/as/ld.  This is in addition to the
	  CPU-specific versions of the same definition (2017-05-13).
	* Remove CONFIG_ARM_TOOLCHAIN_GNU; replace with
	  CONFIG_ARCH_TOOLCHAIN_GNU (2017-05-13).
	* Tiva I2C:  Correct an error in conditional compilation (2017-05-13).
	* Kconfig:  Rename CONFIG_ARM_TOOLCHAIN_IAR to
	  CONFIG_ARCH_TOOLCHAIN_IAR (2017-05-13).
	* Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h
	  to apps/include/platform/cxxinitialize.h (2017-05-13).
	* libc/wchar: Versions mbrlen and mbsrtowcs taken and adapted from
	  FreeBSD code (at https://github.com/freebsd/freebsd/).  From Matias
	  v01d (2017-05-13).
	* tcp:  wait for 3-Way Handshare before accept() returns.  From Simon
	  Piriou (2017-05-14).
	* configs/photon/wlan:  disable network logs and add nsh over telnet.
	  From Simon Piriou (2017-05-14).
	* TCP: Send RST if applicaiton 'unlistens()' before we complete the
	  connection sequence (2017-05-14).
	* drivers:  fix some bad NULL checks.  From Juha Niskanen (2017-05-15).
	* drivers:  rename newly introduced up_i2creset to I2C_RESET.  From
	  Juha Niskanen (2017-05-15).
	* TCP: An RST received during the 3-way handshake requires a little
	  more clean-up (2017-05-15).
	* STM32 CAN: I had the problem that the transmit FIFO size (= actual
	  elements in FIFO) was slowly increasing over time, and was full after
	  a few hours.  The reason was that the code hit the line
	  "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so
	  can_xmit thinks it has sent the packet to the hardware, but actually
	  has not. Therefore the transmit interrupt never happens which would
	  call can_txdone, and so the size of the FIFO size does not decrease.
	  The reason why the code actually hit the mentioned line above, is
	  because stm32can_txready uses a different (incomplete) condition than
	  stm32can_send to determine if the mailbox can be used for sending,
	  and thus can_xmit forwards the packet to stm32can_send.
	  stm32can_txready considered mailboxes OK for sending if the mailbox
	  was empty, but did not consider that mailboxes may not yet be used if
	  the request completed bit is set - stm32can_txinterrupt has to
	  process these mailboxes first.  Note that I have also modified
	  stm32can_txinterrupt - I removed the if condition, because the CAN
	  controller retries to send the packet until it succeeds. Also if the
	  condition would not evaluate to true, can_txdone would not be called
	  and the FIFO size would not decrease also.  From Lederhilger Martin
	  (2017-05-16).
	* drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY
	  for DIOC_GETPRIV command.  It should returns OK if DIOC_GETPRIV
	  command succeeds.  From  EunBong Song (2017-05-16).
	* There can be a failure in IOB allocation to some asynchronous
	  behavior caused by the use of sem_post().  Consider this scenario:
	  (1) Task A holds an IOB.  There are no further IOBs.  The value of
	  semcount is zero. Task B calls iob_alloc().  Since there are not
	  IOBs, it calls sem_wait().  The value of semcount is now -1.  (2)
	  Task A frees the IOB.  iob_free() adds the IOB to the free list and
	  calls sem_post() this makes Task B ready to run and sets semcount to
	  zero NOT 1.  There is one IOB in the free list and semcount is zero.
	  When Task B wakes up it would increment the sem_count back to the
	  correct value.  (3) But an interrupt or another task runs occurs
	  before Task B executes.  The interrupt or other tak takes the IOB off
	  of the free list and decrements the semcount.  But since semcount is
	  then < 0, this causes the assertion because that is an invalid state
	  in the interrupt handler. So I think that the root cause is that
	  there the asynchrony between incrementing the semcount.  This change
	  separates the list of IOBs:  Currently there is only a free list of
	  IOBs.  The problem, I believe, is because of asynchronies due
	  sem_post() post cause the semcount and the list content to become out
	  of sync.  This change adds a new 'committed' list:  When there is a
	  task waiting for an IOB, it will go into the committed list rather
	  than the free list before the semaphore is posted.  On the waiting
	  side, when awakened from the semaphore wait, it will expect to find
	  its IOB in the committed list, rather than free list.  In this way,
	  the content of the free list and the value of the semaphore count
	  always remain in sync (2017-05-16).
	* stm32_serial:  Fix freezing serial port.  Serial interrupt
	  enable/disable functions do not disable interrupts and can freeze
	  device when serial interrupt is received while execution is at those
	  functions. Trivially triggered with two or more threads write to
	  regular syslog stream and to emergency stream. In this case, freeze
	  happens because of mismatch of priv->ie (TXEIE == 0) and actually
	  enabled interrupts in USART registers (TXEIE == 1), which leads to
	  unhandled TXE interrupt and causes interrupt storm for USART.  From
	  Jussi Kivilinna (2017-05-17).
	* STM32 Ethernet: Add support for KSZ8081 PHY interrupts.  From
	  Sebastien Lorquet (2017-05-17).
	* IPv6: Fix net_ipv6_pref2mask().  From Masayuki Ishikawa (2017-05-18).
	* net procfs: Fix buffer corruption and refactor netdev_statistics.c.
	  From Masayuki Ishikawa (2017-05-19).
	* binfmt: Fix .dtor memory allocation.  From Masayuki Ishikawa
	  (2017-05-19).
	* stm32_i2c: make private symbols static.  From Juha Niskanen
	  (2017-05-19).
	* network IOCTL commands:  The only place in net/netdev/netdev_ioctl.c
	  where the interface state should change is for SIOCSIFFLAGS.  The
	  other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR ..  should not
	  change the link state.  From Sebastien Lorquet (2017-05-19).
	* drivers/wireless/ieee80211: Add support for AP scanning.  From Simon
	  Piriou (2017-05-21).
	* drivers/audio:  Add cs43l22 audio driver  STM32F4: Add I2S driver.
	  From Taras Drozdovsky (2017-05-21).
	* This is based on a patch by Taras Drozdovsky.  Basically, the delay
	  that was added during the integration of the CDC/ACM host driver was
	  interfering with streaming audio.  That delay was put there to
	  prevent build endpoints from hogging the system bandwidth.  So what
	  do we do?  Do we hog the bandwidth or do we insert arbitrarity
	  delays.  I think both ideas such (2017-05-21).
	* Replace sprintf() with snprintf() in pipe.c.  From Nobutaka Toyoshima
	  (2017-05-22).
	* drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c.  From Masayuki
	  Ishikawa (2017-05-22).
	* FAT: Fix 'Missing unlock' in fs_fat32.c.  From Masayuki Ishikawa
	  (2017-05-22).
	* netdb: Fix time info in lib_dnscache.c.  From Masayuki Ishikawa
	  (2017-05-23).
	* STM32L4:  Add IWDG peripheral.  This is the same as for STM32 except
	  that prescale and reload can be changed after watchdog has been
	  started, as this seems to work on L4.  From Juha Niskanen (2017-05-23).
	* drivers/can: Add Microchip MCP2515 CAN Bus controller driver.  From
	  Alan Carvalho de Assis (2017-05-23).
	* button_upper:  Fix interrupt enabling for poll-events.  From Jussi
	  Kivilinna (2017-05-24).
	* netdb: Fix bugs in lib_gethostbynamer.c. This fix sets h_name in
	  struct hostent returned by gethostbyname().  From Masayuki Ishikawa
	  (2017-05-25).
	* TCP: Fix tcp_findlistner() in dual stack mode.  From Masayuki
	  Ishikawa (2017-05-25).
	* TCP: tcp_input() now receives IP domain as an input parameter vs.
	  deriving from the IP header length (2017-05-25).
	* Kinetis ADC: Various corrections and updates.  From David Sidrane
	  (2017-05-25).
	* drivers/lcd: Add driver for Nokia 5110 (Philips PCD8544).  From Alan
	  Carvalho de Assis (2017-05-26).
	* configs/stm32f103-miniumum: Add board support to use the Nokia 5110
	  LCD display driver.  From Alan Carvalho de Assis (2017-05-26).
	* configs/pic32mx7mmb:  Add support for the Pinquino toolchain
	  (2017-05-27).
	* configs/pic32mx7mmb: Repartition files to match newer
	  configurations.   Add support for PROCFS file system.  Default is now
	  Pinguino toolchain.  Verify networking (2017-05-27).
	* pthread_trylock: Fixes a problem in pthread_trylock() noted by
	  initialkjc@yahoo.com.  When CONFIG_PTHREAD_MUTEX_UNSAFE=y, the
	  special return value EAGAIN was not being detected due to differences
	  in reporting of returned values (2017-05-29).
	* vfs: fdopen:  Add missing file stream flags clearing.  Clear file
	  stream structure regardless of config options. Structure clearing is
	  needed as previous use of stream list entry might leave fs_flags
	  set.  From Harri Luhtala (2017-05-31).
	* drivers/input:  Add Cypress MBR3108 CapSense touch button driver.
	  From Juha Niskanen (2017-05-31).
	* STM32L4: gpio: put back EXTI line source selection.  From Juha
	  Niskanen (2017-05-31).
	* mtd/smart: Fix use of uninitialized variable.  From Jussi Kivilinna
	  (2017-05-31).
	* drivers/mtd/w25.c:  Erase sector only if it is not in erased state.
	  From Jussi Kivilinna (2017-05-31).
	* stm32f7:  Add SPI DMA support.  From Jussi Kivilinna (2017-05-31).
	* drivers/mtd/w25.c: Enable short delay after sector/chip erase.  From
	  Jussi Kivilinna (2017-05-31).
	* pthread robust mutexes:  Fix memmory trashing problem:  the main task
	  may also use mutexes; need to check thread type before accessing
	  pthread-specific mutex data structures.  Problem noted by Jussi
	  Kivilinna (2017-05-31).
	* STM32L4 RTC: store RTC MAGIC to backup reg, not to address zero.
	  From Juha Niskanen (2017-06-01).
	* drivers/{sensors,usbmisc}:  Fix uninitialized I2C frequency.  From
	  Juha Niskanen (2017-06-01).
	* mtd/config:  Add some error checks for I/O errors.  From Juha
	  Niskanen (2017-06-01).
	* pthread mutex:  Remove bogus DEBUGASSERT.  Problem noted by Jussi
	  Kivilinna (2017-06-01).
	* Tiva SSI:  Resolves issue 52 'Copy-Paste error in
	  tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev
	  (2017-06-01).
	* nucleo-f4x1re User LEDS: Issue #51 reports compilation problems with
	  stm32_userled.c.  Reported by Gappi92 (2017-06-01).
	* tools/:  Add initialconfig.c so that perhaps in the future we will be
	  able to use this to generate a new configuration from scratch (rather
	  than having to derive new configurations from existing
	  configurations).  NOTE: Not yet intregated into the build system
	  (2017-06-02).

7.22 2017-xx-xx Gregory Nutt <gnutt@nuttx.org>