Skip to content
ChangeLog 705 KiB
Newer Older
Gregory Nutt's avatar
Gregory Nutt committed
	  warn() (and all variants vwarn(), llwarn(), etc.). (4) Debug
	  assertions can now be enabled separately from debug output. (5) You
	  can now enable subsystem/device driver debug output at different
	  output levels. For example, CONFIG_DEBUG_FS no longer enables file
	  system debug output. It enables general file system debug logic and
	  enables selection of CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN,
	  and CONFIG_DEBUG_FS_INFO (2016-06-12).
Gregory Nutt's avatar
Gregory Nutt committed
	* strtoul() and strtoull():  Fix errno settings required by function
	  definition.  Resolved Bitbucket Issue #1. From Sebastien Lorquet
	  (2016-06-13)
	* arch/arm/src/stm32f7:  Add SPI driver.  DMA not yet supported.  From
	  David Sidrane (2016-06-14).
	* configs/nucleo-144:  Add test for STM32 F7 SPI.  From David Sidrane
	  (2016-06-14).
	* alert(): New debug macro: alert().  This is high priority,
	  unconditional output and is used to simplify and stanardize crash
	  error reporting(2016-06-14).
	* arch/arm/src/tiva: Bug Fix in tiva_serial.c - UART5, UART6 and UART7
	  were not being configured as TTYS0 for printing over serial console.
	  From Shirshak Sengupta (2016-06-14).
	* SAMV7: SPI: SPI-Freq. 40MHz; VARSELECT; hw-features
	  This change adds the following improvements:
	  - Increase the allowed SPI-Frequency from 20 to 40 MHz.
	  - Correct and rename the "VARSELECT" option
	    This option was included in the code as "CONFIG_SPI_VARSELECT" but
	    nowhere  defined in a Kconfig file. The change renames it to
Gregory Nutt's avatar
Gregory Nutt committed
	    "CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation
	    according the datasheet of Atmel. In short, this option switches
	    the processor from "fixed peripheral selection" (single device) to
	    "variable peripheral selection" (multiple devices on the bus).
	  - Add a new Function to the interface to control the timing and delays
	    of the chip according the ChipSelect lines. This function can
	    control the delay between the assertion of the ChipSelect and the
	    first bit, between the last bit and the de-assertion of the
	    ChipSelect and between two ChipSelects. This is needed to tune the
	    transfer according the specification of the connected devices.  
	  - Add three "hw-features" for the SAMV7, which controls the behavior
	    of the ChipSelect:
	    - force CS inactive after transfer: this forces a (short)
	      de-assertion of the CS after a transfer, even if more data is
	      available in time
	    - force CS active after transfer: this forces the CS to stay active
	      after a transfer, even if the chip runs out of data.
	      Btw.: this is a prerequisit to make the LASTXFER bit working at all.
	    - escape LASTXFER: this suppresses the LASTXFER bit at the end of the
	      next transfer. The "escape"-Flag is reset automatically.
	  From Frank Benkert (2016-06-14)
Gregory Nutt's avatar
Gregory Nutt committed
	* Many CONFIG_DEBUG_* options did not have matching macros defined in
	  include/debug.h.  Rather, there were various definitions scattered
	  throughout the sourse tree.  These were collected together and
	  centralized with single macro definitions in include/debug.h
	  (2016-06-15)
	* STM32F7: Add SPI, I2C, and ADC drivers.  From Lok Tep (2016-06-15).
	* err(), warn(), info(), and alert() renamed to include leading '_'.
	  This was done to avoid some naming collisions (2-06-16
	* STM32: Move backup domain reset to to earlier in the initialization
	  sequence (stm32_rcc.c() in order to avoid disabling LSE during RTC
	  initialiation.  From Alan Carvalho de Assis (2016-06-16).
	* SYSLOG: syslog() will now automatically redirect output to lowsyslog()
	  if called from an interrupt handler (2016-06-16).
	* STM32: When configuring a GPIO via stm32_configgpio() the function
	  will first set the mode to output and then set the initial state of
	  the gpio later on.  If you have an application with an externaly
	  pulled-up pin, this would lead to a glitch on the line that may be
	  dangerous in some applications (e.G. Reset Line for other chips,
	  etc).  This changes sets the output state before configuring the pin
	  as an output.  From Pascal Speck  (2016-06-17).
	* STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4
	  (2016-06-17).
	* STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4.
	  From Sebastien Lorquet (2016-06-17).
	* Review all uses of *err().  These macro family should indicate only
	  error conditions.  Convert *err() to either *info() or add ERROR:,
	  depending on if an error is reported (2016-06-17).
	* STM32F7: Review, correct, and update I2C, SPI, and ADC drivers.  From
	  David Sidrane (2016-06-17).
Gregory Nutt's avatar
Gregory Nutt committed
	* LPC17 Ethernet:  Needs to correctly ignore PHYID2 revision number
	  when comparing PHY IDs (2016-06-18).
	* SYSLOG: Consolidate all SYSLOG logic in drivers/syslog.  Add an
	  abstraction layer that supports:  (1) redirection of SYSLOG outpout.
	  This is usually so that you can boot with one SYSLOG output but
	  transition to another SYSLOG output when the OS has initialialized,
	  (2) adds common serialization of interrupt output as a configuration
	  option.  Without this configuration setting, interrupt level output
	  will be asynchronous.  And (3) vsyslog is now a system call and is
	  usable with other-than-FLAT builds (2016-06-19).
	* TCP Networking: While working with version 7.10 I discovered a
	  problem in TCP stack that could be observed on high network load.
	  Generally speaking, the problem is that RST flag is set in
	  unnecessary case, in which between loss of some TCP packet and its
	  proper retransmission, another packets had been successfully sent.
	  The scenario is as follows:  NuttX did not receive ACK for some
	  sent packet, so it has been probably lost somewhere. But before
	  its retransmission starts, NuttX is correctly issuing next TCP
	  packets, with sequence numbers increasing properly. When the
	  retransmission of previously lost packet finally succeeds, tcp_input
	  receives the accumulated ACK value, which acknowledges also the
	  packets sent in the meantime (i.e. between unsuccessful sending of
	  lost packet and its proper retransmission). However, variable unackseq
	  is still set to conn->isn + conn->sent, which is truth only if no
	  further packets transmission occurred in the meantime.  Because of
	  incorrect (in such specific case) unackseq value, few lines further
	  condition if (ackseq <= unackseq)is not met, and, as a result, we
	  are going to reset label.  From  Jakub Łągwa (2016-06-20).
Gregory Nutt's avatar
Gregory Nutt committed
	* SYSLOG: Remove lowsyslog(), vlowsyslog(), and associated macros
	  *llinfo(), *llwarn(), and llerr().  In the redesigned syslog() logic,
	  these serve no purpose (2016-06-20).
	* Make system: Need to build the drivers/ directory even it file
	  descriptors are not supported.  There are things in the drivers/
Gregory Nutt's avatar
Gregory Nutt committed
	  directory that are still needed (like SYSLOG logic) (2016-06-20).
	* assert.h: Define static assert for C++ usage.  From Paul Alexander
	  Patience (2016-06-21).
	* arch/arm/src/stm32l4:  Add ioctls to set/get bit timing in stm32l4.
	  Add ioctl hooks to allow future management of can id filters. From
	  Sebastien Lorquet (2016-06-21).
	* drivers/can.c:  Add support for poll. From Paul Alexander Patience
	  (2016-06-21).
	* drivers/syslog: Extend SYSLOG logic so that we can send SYSLOG output
	  to a file.  Not verified on initial commit  (2016-06-21).
Gregory Nutt's avatar
Gregory Nutt committed
	* arch/arm/src/stm32l4: Add some CAN mode IOCTL calls.  These will be
	  useful for device autotest when the application boots.  They are
	  redundant with the CONFIG_CAN_LOOPBACK option, which can now just be
	  interpreted as a default setting.  From Sebastien Lorquet (2016-06-22).
	* drivers/syslog: syslog_dev_flush() needs to check if the inode is a
	  mountpoint before calling the flush() method.  Noted by David Sidrane
	  (2016-06-22).
	* arch/arm/src/stm32f7: Adds SDMMC1 for stm32F7 74-75.  From Lok Tep
	  (2016-06-22).
	* drivers/syslog: SYSLOG character device channel will now expand LF to
	  CR-LF.  Controllable with a configuration option (2016-06-22).
	* arch/arm/src/stm32l4: Implementation of loopback IOCTLs.  From
	  Sebastien Lorquet (2016-06-22).
	* Documentation: Add SYSLOG documentation to the porting guide
	  (2016-06-22).
	* configs/stm32f746g-disco:  Removed knsh configuration it failed to
	  refresh (via tools/refresh.sh).  I assume that it is a hand-edited
	  configuration and, hence, must be removed from the repository
	  (2016-06-23).
	* arch/arm/arc/sam34: DAC bugfix: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY. 
	  Timer bugfix:  Fix ops check in TCIOC_STOP.  From Wolfgang Reissnegge
	  (2016-06-23).
Gregory Nutt's avatar
Gregory Nutt committed
	* configs/nucleo-144: Added SDMMC support to Nucleo-144. From David
	  Sidrane (2016-06-23).
Gregory Nutt's avatar
Gregory Nutt committed
	* arch/arm/src/stm32: Port STM32L4 CAN IOCTLs to STM32.  From Sebastien
	  Lorquet (2016-06-24).
	* drivers/ioexpander:  Add support for a very simple GPIO driver.  It
	  supports only pre-conrigured input and output pins and only basic
	  input and output operations (2016-06-24).
	* arch/arm/src/lpc43xx:  Correct auto-negotiation mode in the LPC43xx
	  Ethernet.  From Alexander Vasiljev (2016-06-24)
	* arch/arm/src/samv7: TWIHS Driver improved and GPIO-Driver fixed for
	  Open-Drain Pins
	  - sam_gpioread: Now the actual line level from the pin is read back.
	    This is extremely important for Open-Drain Pins, which can be used
	    bidirectionally
	  - Re-Implemented twi_reset-function and enhanced it so it can be
	    called from inside the driver (see next point)
	  - Glitch-Filter: Added a configuration option to enable the twi-built-
	    in glitch filter
	  - Added a "Single Master Mode": In EMC Testing the TWI-Bus got stuck
	    because the TWI-Master detected a Multi-Master access (but there is
	    no second master). With the option "Single Master" we detect these
	    events and automatically trigger a twi_reset. We also do an
	    automatic recovery if a slave got stuck (SDA stays low).
	  With the above changes I²C-Bus reliability in harsh environments (eg.
	  EMC) is greatly improved. The small change in the GPIO-Driver was
	  necessary because otherwise you cannot read back the correct line
	  status of Open-Drain Outputs and this is needed by the twi_reset
	  function.  From Michael Spahlinger (2016-06-24)
Gregory Nutt's avatar
Gregory Nutt committed
	* arch/arm/src/stm32f7:  BUGFIX:PLLs IS2 and SAI P Calculation. From
	  David Sidrane (2016-06-24).
	* arch/arm/src/stm32f7: USB support.  From Lok Tep (2016-06-27).
	* configs/olimex-stm32-e407:  Add support for Olimex STM32 E407
	  board.  From Mateusz Szafoni (2016-06-27).
	* drivers/ioexpander: Shadow-Mode: The output- and configuration
	  registers of the IO-Expander are held in the microcontrollers memory
	  and only written to the IO-Expander.  This reduces bus traffic and
	  is more error-proof than the normal read-modify-write operation. Retry
	  Mode: If enabled and an error occurs while writing to the IO-Expander
	  the current transmission is automatically repeated once. From Michael
	  Spahlinger (2016-06-27).
	* libc/hex2bin:  Move the portable library portion of apps/system/hex2bin
	  to nuttx/libc/hex2bin where it can be shared with the OS internals
	  (2016-06-27).
Gregory Nutt's avatar
Gregory Nutt committed
	* configs/nucleo-144: Added USB OTG device to Nucleo-144.  From David
	  Sidrane (2016-06-27).
	* arch/arm/src/stm32l4:  STM32 CAN fixes need to be backported to
	  STM32L4 as well (2016-06-27).
	* ARM stack check: Fix double fault on IDLE task with stack size = 0.
	  From David Sidrane (2016-06-27).
	* configs/nucleo-144: Added bbsram test to Nucleo-144.  From David
	  Sidrane (2016-06-27).
	* arch/arm/src/stm32f7: Added PWR, RTC, and BBSRAM support for stm32f7.
	  From David Sidrane (2016-06-27).
	* Build system: Fixed build of SAMV71-XULT/nsh.  With the changes from
	  26f7b8c the build process of the default configuration did not succeed
	  anymore.  From Michael Spahlinger (2016-06-28).
	* sched/semaphore: Need to set errno to EINVAL on errors in sem_post()
	  and sem_wait(). From Paul Alexander Patience (2016-06-28).
	* Build system: This change fixes a build problem that only occurs when
	  reconfiguring from Linux to Windows or vice-versa.  It is a problem
	  that was present but not usually experienced until two things happened:
	  (1) The pre_config target was added to run before the menconfig
	  operation and (2) the context target was added before the pre_config
	  target in order to set up the correct symbolic links (in the apps/platform
	  directory) needed by the pre_config target.
	  But then now if you start with a Linux system and run 'make menuconfig'
	  to switch to Linux, the context target will execute first and set up
	  POSIX style symbolic links before doing the menuconfig.  Then after the
	  menuconfig, the make will fail on Windows if you are using a Windows
	  native toolchain because that native toolchain cannot follow the Cygwin-
	  style symbolic links.
	  The fix here is to also execute the clean_context AFTER executing
	  menuconfig.  A lot more happens now:  It used to be that doing 'make
	  menuconfig' only did the menuconfig operation.  No it does context,
	  pre_config, menuconfig, clean_context.  Not nearly as snappy as it used
	  to be (2016-06-28).
	* arch/arm/src/efm32, lcp43, stm32, stm32l4: disable interrupts with
	  NVIC_IRQ_CLEAR.  From Paul Alexander Patience (2016-06-28).
	* arch/arm/src/stm32f7: STMF7xxx RTC: (1) Remove proxy #defines, (2)
	  Ensure the LSE(ON) etal are set and remembered in a) A cold start
	  (RTC_MAGIC invalid) of the RTC, and b) A warm start (RTC_MAGIC valid)
	  of the RTC but a clock change.  The change was needed because in bench
	  testing a merge of the latest's STM32  53ec3ca (and friends) it became
	  apparent that the sequence of operation is wrong in the reset of the
	  Backup Domain in the RCC code.  PWR is required before the Backup
	  Domain can be futzed with. !!!This Code should be tested on STM32 and
	  if needed rippled to the STM32 families.  From David Sidrane
	  (2016-06-28).
	* arch/arm/src/stm32f7: Added STMF7xxx RTC.  From David Sidrane
	  (2016-06-28).
	* arch/arm/src/stm32: STM32 BBSRAM fixed (and formatted) flags.  From
	  David Sidrane (2016-06-28).
	* arch/arm/src/stm32f7: STM32F7 BBSRAM fixed (and formatted) flags.
	  From David Sidrane (2016-06-28).
	* arch/arm/src/stm32f7: Added STM32F7 DBGMCU.  From David Sidrane
	  (2016-06-28).
	* arch/arm/src/samv7: SAMV7: CAN Message Filtering fixed: (1) stdfilters
	  didn't work because the filter was never enabled (wrong number of bits
	  to shift), and (2) Filters were never used because the configuration
	  register cannot be written without using the initialization mode.
	  Both bugs are fixed by this change. Filtering has been tested with
	  both standard and extended identifiers and is now working properly.
	  From Michael Spahlinger (2016-06-29).
	* configs/Kconfig and dummy/: Add logic to support custom board
	  directories that include a Kconfig file.  During the context phase
	  of the build, any Kconfig file in the custom board directory is copied
	  into configs/dummy, replacing the existing Kconfig file with the
	  target Kconfig file (2016-06-29).
	* arch/arm/src/stm32l4: Port support for both RX FIFOs from STM32 CAN.
	  From Paul Alexander Patience (2016-06-29).
Gregory Nutt's avatar
Gregory Nutt committed
	* Remove all inclusion of header files from the apps/include directory.
	  This caused a lot of reshuffling of logic:  binfmt pcode support,
	  usbmonitor is now a kernel thread, TZ/Olson database moved to
	  libc/zoneinfo (2016-06-29).
	* drivers/mtd: Several MTD FLASH drivers nullify the freed 'priv'
	  structure and failed to return NULL as stated in the comments.
	  Result, will operate on a NULL pointer later.  Noted by David Sidrane
	  (2016-06-30).
	* arch/arm/src/kinetis:  Add basic support for the K64 family.  I
	  leveraged the changes from https://github.com/jmacintyre/nuttx-k64f
	  and merged into the existing kinetis code  with a lot of changes and
	  additions (like pin multiplexing definitions).  (2016-07-01).
	* configs/freedom-k64f: Add support for the NXP Freedom-K64F board.
	  This is primarily the work of Jordan Macintyre.  I leveraged this
	  code from https://github.com/jmacintyre/nuttx-k64f but with
	  significant corrections (LEDs, buttons, README, etc) and extensions
	  and updates to match more recent BSPs (2016-07-01).
	* libc/signal: Add raise() (2016-07-04).