| NuttX-7.22 |
| ---------- |
| |
| The 122nd release of NuttX, Version 7.22, was made on September 9, 2017, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.22.tar.gz and |
| apps-7.22.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/nuttx/downloads |
| https://bitbucket.org/nuttx/apps/downloads |
| |
| Both may be needed (see the top-level nuttx/README.txt file for build |
| information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - pthreads: Move functions from sched/pthreads to libc/pthreads. These |
| functions just coordinate other OS interface calls but are not a |
| fundamental OS interfaces and, hence, do not belong within the OS: |
| pthread_yield(), pthread_once(), pthread_cond_init(), |
| pthread_cond_destroy(), pthread_barrier_init(), |
| pthread_barrier_destroy(), and pthread_barrier_wait(). |
| - Add power-related debug output. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - RAMTRON: Add support for splitting block writes in chunks. Some |
| Re-RAMs like MB85AS4MT have a write buffer size limitation. From |
| Boris Astardzhiev. |
| - MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou. |
| |
| * Graphics/Display Drivers: |
| |
| - SSD1306 LCD Driver: (1) Separate lcd_dev_s setup to separate object. |
| g_oleddev takes 1 KiB because framebuffer and was allocated to .data |
| section because of lcd_dev_s function pointer setup. Move lcd_dev_s |
| setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2) |
| Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was |
| writing one extra byte (with value 0) past target buffer when pixlen |
| is multiple of 8. When pixlen was not multiple of 8, last byte of |
| buffer was fully cleared, instead of modifying only the (pixlen % 8) |
| bits of last byte. (3) Add support for board power control. |
| ThingseeOne has regulator for controlling display power on/off. Patch |
| adds support for board based power control to SSD1306 driver. (4) Add |
| DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna. |
| |
| * Networking/Network Drivers: |
| |
| - Sockets: Support listening sockets in the getsockname() function. |
| From Roland Takacs. |
| - IP Forwarding: At the IP level, network may be configured to forward |
| IP packets that are not destined for the target through a different |
| network device, decrementing the packet TTL. |
| - IP forwarding: Add optional support to forward broadcast and |
| multicast packets. Add missing ICMP support. |
| - ICMPv6: Add 6LoWPAN and IP forwarding support. |
| - ICMPv6: Support source link-layer address option in RA. From |
| Masayuki Ishikawa. |
| - TUN Driver: Add definitions that will permit TUN-only networking. |
| - Socket I/F: Created a socket interface used to provide socket support. |
| Each address family has an interface that describes how to perform |
| socket operations on that address family. Currently only a couple of |
| methods are defined in the socket interface call table |
| - Remove CONFIG_NET_MULTILINK. This increases code size by a little, |
| but greatly reduces the complexity of the network code. |
| - Network procfs: Add support for routing tables at proc/net/route. |
| - Network procfs: Add support for network procfs statistics for the |
| PF_IEEE802154 address family. |
| - Network Driver Backlog: Remove driver based backlog support. This |
| affects the entire network, but is used by only one driver. The only |
| supported RX backlog is now via common read-ahead buffering. |
| |
| * Wireless Networking/Wireless Drivers: |
| |
| - IEEE 802.15.4 MAC / MRF24J60 Driver: Extensive updates for |
| association/beacon-enabled networks. From Anthony Merlino. |
| - IEEE 802.15.4 MAC / MRF24J60 Driver: Hook in setdevmode from newly |
| added radio attribute setting. From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Supports get request for coordinator address. From |
| Anthony Merlino. |
| - IEEE 802.15.4 MAC: Notify radio layer of changes in devmode. From |
| Anthony Merlino. |
| - IEEE 802.15.4: Add special attribute that can be used to perform a |
| regdump of the radio. From Anthony Merlino. |
| - IEEE 802.15.4 loopback driver: Better simulation addressing: short |
| and extended addresses, panid, and IP address conversion. |
| - IEEE 802.15.4 Network Driver: Add logic to setup the network mask, |
| update the MAC-based IPv6 addressing when the network is brought up. |
| The idea is that addressing changes are supposed to occur only while |
| the network is down but won't take effect until the network is up |
| again. |
| - PktRadio: Add an infrastructure to support networking on generic |
| (non-IEEE 802.15.4) packet radios. |
| - PktRadio Loopback Driver: Add a PktRadio loopback network driver to |
| testing testing with 6LoWPAN and PktRadios on the simulator. |
| - Spirit Network Driver: The Spirit1 radio (SPSGRF-915) is the first |
| generic PktRadio Network driver. Based on STMicros STack packets |
| with 8-bit addressing. We need to use the STack packets in order to |
| provide the source address and automatic ACKing. |
| - Network procfs: Fix so that PktRadio address are shown correctly. |
| - Networking: Add support for some packet radio IOCTL commands. |
| - 6LoWPAN: Added handling for TCP and ICMPv6 packets. |
| - 6LoWPAN: Add configurable support for 6LoWPAN star topology. With |
| this change, the endpoints which are the 'points' of the star will |
| forward all traffic to the coordinator. The coordinator is assumed to |
| be the 'hub' of the star. This function also used IPv6 forwarding. |
| - 6LoWPAN: The original, Contiki-based design used only a single buffer |
| for reassemblying larger packets. This could be a problem issue for |
| hub configurations which really need the capability concurrently |
| reassemble multiple incoming streams concurrently. These was also a |
| design issue in that the reassembly buffer could be corrupted by |
| outgoing packets. The design was extended to support multiple |
| reassembly buffers, each associated with the reassembly tag and source |
| address. This assures that there can be be no corruption of the |
| reassembly once it has started. |
| - 6LoWPAN PktRadio: Now radio agnostic. All IEEE 802.15.4 dependencies |
| have been removed or isolated so that 6LoWPAN can be used with any |
| kind of packet radio. This involved things like: (1) generalizing |
| the representation of radio MAC meta-data, (2) changes to handle |
| variable-length radio addresses, (3) removal of all explicit IEEE |
| 802.15.4 types, references, and interfaces, (4) a new radio driver |
| interface to return 'capabilities' of the driver. |
| - ICMPv6: Update so that ICMPv6 can be used with 6LoWPAN. |
| - IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC |
| addresses. |
| - PF_IEEE802154 Address Family: Add support for the PF_IEEE802154 |
| address family socket type. This socket is similar to the PF_PACKET, |
| "raw" packet address family except that: (1) it supports only |
| SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4 |
| MAC-based radios. This address family permits simple access to IEEE |
| 802.15.4 IOCTLs and frame-level network transfers. |
| |
| * Other Common Device Drivers: |
| |
| - Dynamically configurable USB composite devices: We developed a huge |
| Changeset over a year ago to make USB Composite configuration |
| dynamical and be able to instantiate the CDC/ACM multiple times inside |
| this device. We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically. |
| I've changed the interface for some USB-Functions to receive also the |
| dynamic configuration. From Frank Benkert. |
| - Franks' change remained on a branch until all issues were resolved. |
| the current version in Master is complete and ready for use. |
| - power: battery_charger: Add ioctl for charging input current. From |
| Juha Niskanen. |
| - SMPS driver: Add generic upper-half driver for SMPS. From Mateusz |
| Szafoni. |
| - LED Driver: Add support for inverted LEDS. From Jeff. |
| - LED Driver: Add lightness correction for RGB LED driver. From Jeff. |
| - LTC4151 Driver: Add driver for LTC4151 current and voltage monitor. |
| From Giorgio Groß. |
| - Serial TERMIOS: tcdrain() implementation based on a new term ioctl. |
| From Sebastien Lorquet. |
| - Serial TERMIOS: Add support for TCFLUSH. From Sebastien Lorquet. |
| - syslog: Add option to use the CLOCK_MONOTONIC for time stamping. From |
| Jussi Kivilinna. |
| - HC-SR04 Driver: Add support to HC-SR04 distance sensor. From Alan |
| Carvalho de Assis. |
| - COMP Driver: Add poll support. From Pekka Ervasti. |
| - BQ2429X Driver: Add driver for TI BQ2429X battery charger. From Juha |
| Niskanen. |
| - ADC Driver: Add poll support. From Juha Niskanen. |
| - BCH Driver: Add poll support. From Jussi Kivilinna. |
| - RTC Driver: Extend the RTC framework with an alarm read ioctl |
| (RTC_RD_ALARM). Through it consumer could get configuration settings |
| about previously scheduled hardware alarms (active status, hours, |
| minutes, seconds). From Boris Astardzhiev. |
| |
| * Simulation |
| |
| - sim/ipforward: Add an IP forwarding configuration using TUN devices |
| and apps/examples/tun. |
| - Console: Add non blocking read to devconsole driver. From Simon |
| Piriou. |
| - Networking: Poll for TX frames to speed up driver. From Simon Piriou. |
| - pf_ieee802154: Add configuration for testing PF_IEEE802154 address |
| family sockets. |
| - ARM Simulator: Adds necessary functionality to build Simulator under |
| ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not |
| save/restore floating point registers. From Nickolay Semyonov. |
| |
| * MicroChip/Atmel SAML21 Drivers: |
| |
| - SAML21 I2C driver. Developed for and contributed with permissin from |
| Filament company. From Alan Carvalho de Assis. |
| - SAMD/L21 USB Driver: Add a USB driver. Developed for Filament Inc. |
| by Offcode, LTD. From Janne Rosberg. |
| |
| * MicroChip/Atmel SAMv7 Boards: |
| |
| - SAMV71-XULT: Add support for the MRF24J40 radio and create a |
| mrf24j40-starhub configuration. |
| - SAME70-Xplained: Add MRF24J40 support. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis USB Improvements: usbdev clean up ensuring proper use of HW. |
| Rework suspend and resume logic so they perform properly. Made attach |
| and detach functions optional. As they do not make sense for a bus |
| powered device. From David Sidrane. |
| - Kinetis SPI driver: From David Sidrane. |
| - Kinetis: I2C driver added I2C3, reference counting and reset. |
| Refactored the driver to support reference counting and reset added |
| I2C3. From David Sidrane. |
| - Kinetis RTC: Implementation of the alarm read function. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - configs/teensy-3.x USB: Define USBOTG-FS Read from FLASH access in |
| board config. Allow the board config to define the USBOTG-FS to have |
| Read access to FLASH. From David Sidrane. |
| - configs/teensy-3.x: Removed call to khci_usbattach. The call is not |
| need by the driver if CONFIG_USBDEV_BUSPOWERED=y. On a USB powered device if we are running we are attached. From David Sidrane. |
| - freedom-k66f: Use SPI driver. Initialize SPI1 on connector J6. No |
| real use, as of yet. From David Sidrane. |
| |
| * NXP Freescale LPC43xx: |
| |
| - LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. From |
| Alan Carvalho de Assis. |
| |
| * NXP Freescale LPC4xx Boards: |
| |
| - configs/Bambino: Add protected mode configuration to Bambino board. |
| From Alan Carvalho de Assis. |
| |
| * On Semiconductor LC823450 |
| |
| - LC823450: Initial support for ON Semiconductor LC823450. From Masayuki |
| Ishikawa. |
| - LC823450: eMMC/SD and USB support for LC823450. From Masayuki Ishikawa. |
| |
| * On Semiconductor LC823450 Boards |
| |
| - LC823450-XGEVK: LC823450-XGEVK board support. From Masayuki |
| Ishikawa. |
| - LC823450-XGEVK: Add eMMC/SD and USB support. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32 L4: Add support for the STM32L475 family. |
| - STM32 L4 RCC: Enable ADC clock source. From Juha Niskanen. |
| - STM32: Allow clock frequencies > 168 MHz on stm32f427/429. We need |
| to enable the power overdrive for this case. This change allows the |
| required bits to be set in proper sequence. It also modifies the |
| local register access operations to allow more than 16-bit registers. |
| From Sebastien Lorquet . |
| - STM32 F4: Add support for STM32F433RC. From Alan Carvalho de Assis. |
| - STM32 F7: Add new configuration option for enabling flash ART |
| Accelerator and flash prefetcher. From Jussi Kivilinna. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 TIM: Add the set counter function for stm32 timers. From |
| Sergey Ustinov. |
| - STM32 HRTIM: Update HRTIM definitions. Add HRTIM driver. From |
| Mateusz Szafoni. |
| - STM32 HRTIM: Add HRTIM character driver. From Mateusz Szafoni. |
| - STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer |
| logic, enable DAC triggering. From Mateusz Szafoni. |
| - STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni. |
| - STM32 HRTIM: Add burst mode configuration. From Mateusz Szafoni. |
| - STM32 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to STM32. |
| - STM32 DAC: Add support for HRTIM triggering. Separate dma buffer |
| configuration for channels. From Mateusz Szafoni. |
| - STM32 DAC: Conditional logic for timer triggering, fix TSEL |
| configuration when HRTIM, DMA request remapping, Add DMA buffers |
| initialization logic. From Mateusz Szafoni. |
| - STM32 DAC: Support external triggering for DMA transfer. From Mateusz |
| Szafoni. |
| - STM32 L1 TIM: Add base address for TIM11. From Juha Niskanen. |
| - STM32 F4 FLASH: Enable/disable the flash write protection on any |
| sector. I have verified it to work on the STM32 F427. From Sebastien |
| Lorquet. |
| - STM32 F4 Clocking: To use an external oscillator module (not just a |
| crystal) with the STM32F4, one needs to enable the HSEBYP bit in the |
| RCC_CR register. This change allows an integrator to define |
| STM32_RCC_CR_HSEBYP in their board.h file if they want this |
| configuration. From Jeff. |
| - STM32 F4 USB: I'm working on bringing up USB full-speed support on |
| STM32F405. My board does not include a USB power switch, VBus |
| sensing, over current detection, or ID pin. This commit add a |
| config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable |
| VBus sensing and control. I also sneaked in a change to disable the |
| configgpio call for the ID pin, which is only used in OTG mode which |
| isn't supported yet. The only pins that need to be initialized should |
| be OTGFS_DP and OTGFS_DM. From Jeff. |
| - STM32 FLASH: Add CONFIG_STM32_STM32F469 support. From David Sidrane. |
| - STM32 COMP: Add default INM configuration and some missing COMP |
| 1,3,5,7 code. From Mateusz Szafoni. |
| - STM32 F33: Add missing SYSCFG CFGR3 definitions. From Mateusz Szafoni. |
| - STM32 L4 Serial: Allow configuring Rx DMA buffer size. From Juha |
| Niskanen. |
| - STM32 L4 COMP: Input minus pin extended selection. From Juha Niskanen. |
| - STM32 L4 COMP: Bind to upper half comp driver. From Pekka Ervasti. |
| - STM32 L4 DAC: Port from STM32. Add ADC register definitions. From |
| Juha Niskanen. |
| - STM32 L4 DAC: Add option for routing DAC output to ADC. Actually |
| write something to the DAC DMA buffer. From Juha Niskanen. |
| - STM32 L4 DAC: Separate DMA buffer configuration for channels. From |
| Juha Niskanen. |
| - STM32 L4 ADC: Implement peripheral. From Juha Niskanen. |
| - STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to |
| internal SRAM. From Titus von Boxberg. |
| - STM32 F7 I2C4: I2C4_SDA can also be on GPIO PB7. From Titus von |
| Boxberg. |
| - STM32 F7 LTDC: Option for DSI output, inconsistency: the stm32f746 |
| does not feature a DSI interface. compilable with LTDC_INTERFACE and |
| LTDC_USE_DSI. From Titus von Boxberg. |
| - STM32 F7 Clocking: Added functions for DSI clock source selection. |
| From Titus von Boxberg. |
| - STM32 F7 Clocking: Enable APB2 DSI clock. From Titus von Boxberg. |
| - STM32 F7 LTDC: No board specific dithering values used; corrected |
| dithering init. Corrected LIPOS/LIPCR calculation. Change only |
| polarity bits in LTDC_GCR. From Titus von Boxberg. |
| - STM32 F7 Reset: Added function for reset. From Titus von Boxberg. |
| - STM32 F7 DMA: DMA add dcache alignment check in stm32_dmacapable. In |
| the case dcache write-buffed mode is used (not write-through) buffer |
| alignment is required for DMA transfers because a) |
| arch_invalidate_dcache could lose buffered writes data and b) |
| arch_flush_dcache could corrupt adjacent memory if the maddr and the |
| mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE |
| boundaries. From David Sidrane. |
| - STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA. There is no |
| documentation for the STM32F7 that limits DMA on 1 bit vrs 4 bit |
| mode. From David Sidrane. |
| - STM32 F7 SDMMC: SDMMC add dcache alignment check in |
| dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not |
| used. |
| - STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to |
| STM32F7. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minimum: Add GPIO device driver example. From Alan |
| Carvalho de Assis. |
| - STM32F103-Minimum: Add small hello example for STM32F103-Minimum |
| board. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR |
| Flash. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash |
| partition is enabled and (2) Update the README.txt file with info |
| needed to get SmartFS working. From Alan Carvalho de Assis. |
| - Nucleo-F334R8: Add HRTIM initialization. From Mateusz Szafoni. |
| - Nucleo-F334R8: UART2 is default serial port (STLINK Virtual Port). |
| From Mateusz Szafoni. |
| - Clicker2-STM32: Add a configuration that was used with the MRF24J60 |
| for 6loWPAN testing. |
| - Clicker2-STM32: Allow both IEEE 802.15.4 MAC character and network |
| devices to be registered. |
| - Clicker2-STM32: Add configurations to support the endpoint and hub |
| roles in a star topology. |
| - Clicker2-STM32: Add support for per-function-call stack checking. |
| From Anthony Merlino. |
| - Clicker2-STM32: Configure EDBG SPI CS just to make that it is |
| disabled. |
| - STM32F4 Discovery: Add logic to register the button driver and the |
| user led driver if so configured. From Jan Pobrislo. |
| - STM32F4-Discovery: Add a configuration for testing libc++. From Alan |
| Carvalho de Assis. |
| - B-L475E-IOT01A: Add support for the STMicro B-L475E-IOT01A board. |
| From Simon Piriou. |
| - B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module. Add |
| a configuration for testing sprit radio. |
| - B-L475E-IOT01A: Add configurations to support a star topology. |
| - B-L475E-IOT01A: Add basic support for external Macronix QuadSPI flash |
| memory. From Simon Piriou. |
| - B-L475E-IOT01A: Enable UDP broadcast test in the spirit-starhub |
| configuration. |
| - STM32F334-DISCO: Add STM32F334-DISCO basic support. From Mateusz |
| Szafoni. |
| - STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev. |
| - STM32L476-Disco: Add a knsh configuration that may be used to test |
| the PROTECTED build mode. |
| - STM32F769I-DISCO: Initial port to STM32F769I-DISCO. From Titus von |
| Boxberg. |
| |
| * C Library/Header Files: |
| |
| - Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will |
| always be unique. |
| - Math Library: Port gamma() and lgamma() from FreeBSD to NuttX. From |
| Alan Carvalho de Assis. |
| - C++: Compilation with recent C++ compiler needs an overloaded delete |
| operator that includes a size_t size argument. New sized delete |
| operators are only for C++14 and above. |
| |
| * Build/Configuration System: |
| |
| - Initial clang compile. From Goran Mekic. |
| - Add CLANG definitions in Kconfig and Toolchain.defs. |
| - drivers/wireless/ieee802154: Moved radios to individual |
| sub-directories. From Anthony Merlino. |
| - Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou. |
| - Add Gwenhael's change to Makefile.win and update README.txt to |
| described the new make target. |
| - All defconfig files are now in the compressed format created with |
| 'make savedefconfig.' The original .config file can be reconstituted |
| using 'make olddefconfig.' |
| - Build System: It is no longer necessary to have a unique Make.defs |
| file for each configuration. A board may share a common Make.defs |
| file in the scripts directory. Duplicate Make.defs files removed; |
| common Make.defs file moved to the scripts/ sub-directory for each |
| board. |
| - Networking: Move INET socket interface out of net/sockets to its own |
| directory net/inet. |
| |
| * Tools: |
| |
| - testbuild.sh: Added -x to fail build on errors for continuous |
| integration (CI). On CI we want to know ASAP of a failure. From |
| David Sidrane. |
| - Improve configure.sh behavior: (1) enable to call from top directory. |
| (2) enable to designate direct path for config. (3) install .gdbinit |
| if the target has. From Hidetaka Takano. |
| - Update tools/configure.c to same functionality as configure.sh. Add |
| an array of optional file names. Currently, .gdbinit is the only |
| optional file but other things like IDE-specific project files might |
| need to be copied as well. |
| - tools/configure.sh will now copy Eclipse project files if they are |
| present in the board directory file. |
| - Update configure.sh, configure.bat, configure.c: With compressed |
| format, part of the installation requires that we run 'make |
| olddefconfig' to restore the uncompressed defconfig format. Also, |
| while I was at it, I also added options to select host platform on |
| configure command line. |
| - tools/refresh.sh: Now runs make savedefconfig before copying the new |
| defconfig file in place; Also, added a new option --defaults. Since |
| the number of defaults that you now have to answer is so large, the |
| option lets you just accept the default values. So it works just like |
| --silent but still prompts you for the decision to save or discard the |
| new defconfig file. |
| - tools/refresh.sh: Update so that it can find the Make.defs file in |
| the new location. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH Library: Add a Telnetd command. This is needed when network |
| initialization is deferred. In that case, telnet daemon cannot be |
| started until the network is finally initialized. The telnetd command |
| was added just for that case: So that the telnet daemon can be |
| started from the NSH command line after the network is configured. |
| - NSH Library: Misc changes needed for PktRadio support. |
| - NSH Library: Extend ifconfig command so that it can set variable |
| length packet radio address. |
| - NSH Library: Update addroute and delroute command. The would support either |
| IPv4 or IPv6, but not both. Allow expression of the netmask in IPv4 CIDR or |
| IPv6 slash notation. This really reduces the pain of using the commands, |
| especially for IPv6. |
| - NSH Library: Add a route command that will dump the content of routing table. |
| |
| * Examples/Tests: apps/examples: |
| |
| - examples/udp: Add configurable network device name; Add option to |
| suppress network initialization which is not needed if started by NSH |
| or for 6LoWPAN. |
| - examples/udp: Fix registration as a built-in program; Change some |
| naming to make room for a second target. Current one endpoint is the |
| target and one is the host. This will (eventually) allow two targets |
| to be both endpoints of the test. Change build so that both server |
| and client can be on a target, rather than one on the target one on |
| the host PC. Server IP address may not be provided on the command line. |
| - examples/udp: Port numbers need to be configurable to work with |
| 6LoWPAN. Need to bind the client socket to a port number. This was |
| not required before so is a apparently a change in the UDP packet |
| dispatch logic. |
| - examples/udp: Enable testing with the broadcast address. |
| - examples/nettest: Support target boards on both ends of the test. |
| Separate out network initialization so that it may be used by both a |
| target server and a target client. Fix client/server naming |
| confusion; Add command line option to select the server address on the |
| target. Add support for both endpoints on target boards vs. one on a |
| target and one on the host PC. |
| - examples/nettest: The send buffer size is now a configuration option. |
| - examples/nettest: Loopback option should be available in Kconfig for |
| PktRadio. |
| - examples/keypadtest: REMOVED and warehoused in the Obsoleted |
| repository. This was just a bad clone of apps/examples/hidkbd for a |
| keypad driver that was removed years ago. It also uses illegal |
| function calls into the OS. So it has no purpose: It is redundant, it |
| uses illegal interfaces, and is a test for non-existent code. |
| - examples/ipforward: Add an IP forwarding example using only TUN |
| devices. Test extended to test forwarding of ICMPv6 multicast messages. |
| - Implement powermonitor example for ltc4151 current and voltage |
| monitor. From Giorgio Groß. |
| - examples/pf_ieee802154: Add for testing PF_IEEE802154 sockets. Add |
| PANID to command line options; Cannot bind to address zero... There is |
| no counterpart to INADDR_ANY for these radios (not now at least). |
| - examples/dac: Add DAC example. From Juha Niskanen. |
| |
| * Network Utilities: apps/netutils: |
| |
| - netutils/telnetc: This a port of libtelnet to NuttX. |
| - netutils/telnetd and users of telnetd: Add support for IPv6. |
| - netutils/thttpd: Remove the netstats demo. This depends on an |
| illegal function call and cannot be supported. That example could be |
| replaced with logic that uses the procfs network entries as was done |
| for NSH which had the same issue. But I am too lazy to implement that. |
| - netutils/netlib: Add support for PktRadio IOCTL commands. |
| - netutils/netlib: Add a helper to decode short addresses. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - wireless/ieee802154/i8sak: Rewrote i8sak to be test CLI for IEEE |
| 802.15.4 MAC layer. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Updates to i8sak for |
| association/beacon-enabled changes to IEEE 802.15.4. From Anthony |
| Merlino. |
| - wireless/ieee802154/i8sak: Add option to make it easy to send large |
| frame for testing purposes. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Add scan command. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Add coordinfo command allowing you to |
| poll various attributes related to the coordinator. From Anthony |
| Merlino. |
| - wireless/ieee802154/i8sak: Add a option to retry on failures to the |
| assoc command (usually meaning that the coordinator is not yet up). |
| - iwireless/ieee802154/8sak: Add reset command to reset the MAC layer. |
| Adds option to assoc command -t to specify how long to wait for a |
| response from the Coordinator. From Anthony Merlino. |
| - ieee802154/i8sak: Adds command to trigger regdump of radio. From |
| Anthony Merlino. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/composite: Update to apps/system/composite associated with |
| big changes to the composite device logic. From Frank Benkert. |
| - apps/system/composite: Remove CDC/ACM and MSC configuration logic. |
| This belongs in the OS composite initialization. Add and argument so |
| that you can select the USB composite configuration to be attached. |
| Restore USB tracing; remove unused field in a structure. Remove |
| configuration settings that are no longer used. Fix configuration |
| selecting.. was setting the port number, not the configure ID. Also |
| add a configuration option to select the default configuration. |
| - apps/system/composite: Add a configuration option to the boardctl() |
| calls to support multiple composite device configurations dynamically. |
| - apps/system/composite: Remove references to USBMSC. There still |
| dependencies on CDC/ACM in the serial USB trace output. |
| - apps/system/telnet: Add Telnet Chat daemon and client from |
| libtelent. |
| |
| * Platform-Specific Support (apps/platform) |
| |
| Bugfixes. Only the most critical bugfixes are listed here (see the |
| ChangeLog for the complete list of bugfixes and for additional, more |
| detailed bugfix information): |
| |
| * Core OS: |
| |
| - Fix ELF loader up_checkarch on ARM arch. From Cristian Condurache. |
| - pthread_mutex_unlock(): Missing check for the case where |
| pthread_mutex_lock() is called when the mutex is not locked. In that |
| case, it would increment the underlying semaphore above 1. This is |
| the fix for a problem noted by initialkjc@yahoo.com. |
| - sig_timedwait(): Pending signal structure used after it has been |
| releasd. From anonymous Bitbucket Issue 59. |
| - mm_mallinfo: do heap end debug assert check with heap semaphore held. |
| From Jussi Kivilinna. |
| - sched/: Fix return value in sched_setaffinity(). From Masayuki |
| Ishikawa. |
| - Work Queues: work_queue() must cancel existing work prior to queuing |
| new work, otherwise the work queue list structure can become |
| corrupted. Problem noted by Pascal Speck. |
| - waitpid(): Corrects two problems when CONFIG_SCHED_HAVE_PARENT + |
| CONFIG_SCHED_CHILD_STATUS are enabled: (1) Was erroring out if the |
| waited for task had already exited, and (2) was not freeing resources |
| when a wait was completed. From Boris Astardzhiev. |
| |
| * File System/Block and MTD Drivers: |
| |
| - VFS poll(): Fix timeout calculation. From Jim Paris. |
| - VFS poll(): Fix poll for regular files and block devices. Open Group |
| documentation says that poll (and select) support regular files and |
| that 'Regular files shall always poll TRUE for reading and writing'. |
| From Jussi Kivilinna. |
| - VFS epoll(): Fix epoll_wait function. From Simon Piriou. |
| - Smart FS: Fix wrong freeing of device structure and use-after-free |
| issues on error paths. From Jussi Kivilinna. |
| - MTD FLASH drivers: The byte write method of several drivers had a |
| cloned error: It was not locking the bus while performing byte write |
| operations. |
| - MTD M2PX: If we READ while a write/erase is pending, the command is |
| ignored and the write/erase continues. If we don't catch this situation |
| we will return garbage to the user because the flash will not execute |
| the command. So READ MUST wait for write completion, and before that, |
| the bus must be locked since it's a precondition to calling |
| waitwritecomplete(). From Sebastien Lorquet. |
| - MTD FLASH drivers: Clone Sebastien Lorquet's m25px change to at25, |
| is25xp, ramtron, and sst25xx. |
| - MTD W25: Add missing locking and fix SPI_SELECT usage for |
| w25_unprotect. From Jussi Kivilinna. |
| - MTD W25: Wait for BUSY flag to clear in w25_readid and |
| w25_unprotect. W25Q128 datasheet says that all instructions expect |
| 'Read Status Register' and 'Erase/Program Suspend' are ignored when |
| BUSY flag in status register is '1'. Therefore wait for busy flag to |
| clear in w25_readid() and w25_unprotect(). From Jussi Kivilinna. |
| - Automounter: FS_AUTOMOUNTER should depend on SCHED_LPWORK. From |
| Nickolay Semyonov. |
| |
| * Networking/Network Drivers: |
| |
| - TCP Listen: Throw error when error happens in the tcp_listen |
| function. From Roland Takacs. |
| - Network Device Management: Do not search net device when all-zeros |
| address is used. From Roland Takacs. |
| - Network Device Management: Fix a error in netdev_register(); it was |
| not handling device names properly when TUN is the only network device. |
| - Network Device Management: Fix netdev_dev_lladdrsize(). In some |
| configurations, it could return the wrong size for the address of a |
| packet radio. |
| - Network Device Management: Fix typo for 802.11 devices in |
| netdev_register(). Was being masked before because depended on |
| CONFIG_NET_MULTLINK. |
| - TUN Driver: Use critical section instead of semaphore in |
| tun_ifdown(). From Masayuki Ishikawa. |
| - TUN Driver: Do all polling on worker thread. Otherwise, the stack |
| gets very deep. |
| - TUN Driver: Currently cannot support TAP mode unless Ethenet is |
| enabled. |
| - netdb: Fixed buffer size used for sending DNS queries should depend |
| on the configured DNS name size. From Ritjaina. |
| - UDP networking: The TTL (time to live) was not being set in the IPv4 |
| or IPv6 header unless the UDP socket was bound. |
| - UDP Networking: Fix a copy-paste error that could effect networking |
| when both IPv4 and IPv6 are enabled. |
| - UDP Networking: When upd_input() cannot process a packet, it returns |
| ERROR so that network drivers may try calling ipv4_input() later. In |
| this case, it must also set d_len to zero. Otherwise, all network |
| drivers will assume that there is also an outgoing packet. This |
| results in a gratuitous ARP. |
| - TCP Networking: Correct some issues that prevent TCP from working |
| correctly when both IPv4 and IPv6 are enabled. |
| - TCP Networking: TCP disconnection callbacks are not retained in a |
| list. This will support multiple callbacks per lower-level TCP |
| connection structure. That is necessary for the cae where a socket is |
| dup'ed and shares the same lower-level connection structure. NOTE: |
| There still needs to be a call to tcp_start_monitor() when the socket |
| is dup'ed. |
| - TCP Networking: Start the network monitor for a socket when a TCP |
| socket is dup'ed. |
| - TCP Networking: If one of the dup'ed socket's is closed, then network |
| monitor resources associated with that one socket must be recovered. |
| Also, in the event that socket is being used on one thread, but then |
| closed on another, any threads waiting for events from the socket |
| should be informed of the closure. That latter requirement is not |
| implemented because current data structures do not support it. |
| - TCP Networking: Fix a race condition. The accept() operation is |
| performed with the network locked. However, the network is unlocked |
| BEFORE the connected state is set. Therefore, a context switch may |
| occur and the socket may no longer be connected when it is marked so. |
| Noted by Pascal Speck. |
| - Network routing tables: Fix a compilation error when IPv6 and |
| routing are enabled. |
| - Network procfs: Fix some spacing when both IPv6 and IPv4 are enabled. |
| - Network Local Sockets: Fix accept for local stream sockets. From |
| Jussi Kivilinna. |
| - Network Local Sockets: Fix server lc_waitsem overflow. From Jussi |
| Kivilinna. |
| - IPv6 Networking: Remove comparisons to the address with all ones |
| set. IPv6 does not support broadcast addresses and certainly not in |
| that form. Replace with multicast addresses beginning with 0xff02. |
| - ICMPv6 Networking: Fix a compilation issue with |
| CONFIG_NET_ICMPv6_AUTOCONF=y. From Masayuki Ishikawa. |
| - Networking: Fix net_lock returning ERROR when instead of real error |
| code on failure. From Jussi Kivilinna. |
| - IGMPv2 Networking: Remove special support for interrupt level |
| processing (there is none) and fix some timer cancellation logic. In |
| many files, correct comments. There is no interrupt level processing |
| in the networking layer. |
| |
| * Wireless/Wireless Drivers: |
| |
| - IEEE 802.15.4 MAC: Need counting protection on the logic that |
| releases the notification resources. Otherwise, notification handlers |
| may be operating with a stale pointer. |
| - IEEE 802.15.4 MAC: Improves internal timer logic to handle work |
| serially. Before, the MAC timer used a watchdog to schedule work with |
| the high priority worker queue. However, since everything in the MAC |
| is supposed to be serialized through the use of the high priority work |
| queue, but the timer uses a watchdog, there are some unintended |
| consequences. To simplify, we now use the delayed work feature of the |
| work queue. From Anthony Merlino. |
| - IEEE 802.15.4 Network Driver: Update RX statistics in network driver. |
| - IEEE 802.15.4 MRF24J40 Driver: Minor timing fix. Matches recommended |
| value in datasheet. Splits up driver into multiple files to make it |
| easier to navigate. Fixes issue with non-beacon enabled mode. From |
| Anthony Merlino. |
| - IEEE 802.15.4 MRF24J40 Driver: Fix a bug causing radio to cease |
| transmitting. From Anthony Merlino. |
| - IEEE 802.15.4 MRF24J40 Driver: Fixes issues with sleeping for beacon |
| enabled networking. From Anthony Merlino. |
| - EEE 802.15.4 MRF24J40 Driver: Fix math error for calculating sleep |
| count values. From Anthony Merlino. |
| - IEEE 802.15.4: Fix timing issues for beacon enabled coordinators and |
| endpoints. From Anthony Merlino. |
| - iIEEE 802.15.4: Fix issue with association on beacon-enabled |
| networking. From Anthony Merlino. |
| - 6LoWPAN: Correct a few addressing issues. Also reserve two bytes at |
| the end of the frame for the FCS. |
| - 6LoWPAN: Fixes needed when extended addressing is enabled; broke short |
| addressing. Loopback driver needs to initialize the MAC meta data; |
| Address decompression logic must have the MAC address to handle the |
| most common compression cases. Fix a src/dest address confusion and |
| other addressing problems. |
| - 6LoWPAN: Add missing IPv6 address creation to HC1 decode logic. Fix a |
| typo in an index that prevented use with HC1 and extended addresses. |
| - 6LoWPAN: TCP logic was not obeying MTU packet size limitations. |
| - 6LoWPAN: Major re-architecting of TCP logic to properly handle TCP |
| stuff like ACKs and TDP windowing which were not properly covered in |
| the initial design. |
| - 6LoWPAN: HC06, copy TCP header as though it were data. TCP packet |
| reassembly now seems to work OK. |
| - 6LoWPAN: Fix duplicate and bad memcpy in loopback driver. |
| - 6LoWPAN: Fix a misconception about HC06 16-bit IPv6 address |
| compression. |
| - 6LoWPAN: TCP send logic was returning a failure in one case when, in |
| fact, the send was successful. |
| |
| * Common Drivers: |
| |
| - USB MSC: Use struct instead of pointer to the struct as sizeof |
| argument in memset in usbmsc.c. Otherwise it leads to error: argument |
| to sizeof in memset call is the same pointer type struct usbmsc_lun_s |
| * as the destination. From Oleg Evseev. |
| - USB MSC: Add missing logic to define endpoints. The composite |
| changes broke the the non-composite, USB MSC only case because it omitted the critical setup when USB MSC was not part of the composite. |
| - USB CDC/ACM. Fix several known problems resulting from merge of USB |
| composite device. That merge now breaks some of the non-composite USB |
| devices. |
| - Button Driver: Interrupts weren't enabled since nothing updates them |
| after btn_poll() marks the file descriptor structure as being polling. |
| From Jan Pobrislo. |
| - ADC Driver: Fix some data alignment issues in the ADC driver. |
| - I2C Drivers: Handle I2C_TRANSFER return value consistently. Some I2C |
| peripherals transfers return zero on success, others number of |
| completed transfers. Make drivers robust against this. From Juha |
| Niskanen. |
| - COMP Driver: Fix compilation errors when poll disabled. From Mateusz |
| Szafoni. |
| |
| * Simulation: |
| |
| - Simulation: Fix mkdir issue in GNU target. From Simon Piriou. |
| - Simulation: x86 stack needs to be aligned to 16-byte boundaries. |
| - Simulation: Fix building 32-bit simulation on 32-bit X86. From Jussi |
| Kivilinna. |
| |
| * ARM: |
| |
| - ARM: The older ARM7 and ARM9 configurations were determining CFLAGS |
| based on the GCC version 4.x.x or not. That needx to be extended for |
| 5.x.x and 6.x.x which also behave like 4.x.x. |
| |
| * ARMv7-M: |
| |
| - Fixed ARMv7-M Toolchain setting. Cortex-M4 only have Single |
| Precision FPU. From Hidetaka Takano. |
| - ARMv7-M syscall logic: Clear bit 0 in PC settings. Bit 0 is the |
| thumb mode indication and should not be set in the PC. This extra bit |
| has not caused problems in the past, but seeing it set in the PC is |
| unnerving. |
| |
| * Espressif ESP32: |
| |
| - Fix ESP32 gpio enable reg and default UART pin. Modify default UART |
| pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim. |
| |
| * Microchip/Atmel SAMD21 Drivers: |
| |
| - SAMD21: Fix some SPI-related issues. From Matt Thompson. |
| - SAMD21 SPI: I was having issues with the bus freezing up .. slaves |
| holding SDL low.. so I rewrote a good portion of the interrupt logic |
| based on the application notes from Atmel. One major improvement is |
| using the RXNACK flag in the STATUS register, which indicates that no |
| device responded to an address packet. Assuming that the chip will |
| always give an interrupt status, I believe it's possible to eliminate |
| the timer as well. From Matt Thompson. |
| - SAMD/L21: Need to preserve errno value across syslog() call. |
| - SAMD21: Changes needed to get USB working. From Matt Thompson. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMv7 TWIHS: TWIHS driver add reference counting. From David Sidrane. |
| - SAMv7 CAN: We discovered a problem with the samv7 mcan driver which |
| results, under some circumstances, in a very high CPU load. The |
| problem occurs, and is easily reproducible, if the device is connected |
| to a CAN network with a wrongly configured CAN speed (baud rate). In |
| our tests we set the CAN speed of the device to 1000000 and the speed |
| of the other CAN nodes to 500000. The device is restarted and sends a |
| CANopen "boot up message" to the CAN network. This results in huge |
| amount of errors messages on the CAN bus, probably because of the CAN |
| feature for acknowledging error messages. The error messages can't be |
| read by the device because of the misconfigured CAN speed, instead the |
| CAN chip reports lots of errors, which are reported to the application |
| which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). The CAN |
| errors are reported from the CAN chip via interrupts and thus the |
| interrupt load is very high in this scenario. To fix the problem the |
| driver now disables each RX error interrupt after it is occurred. The |
| RX error interrupts are turned back on if at least one CAN message is |
| received successfully. From Stefan Kolb. |
| - SAMv7 CAN: I discovered while working on the SAMV7 mcan driver that |
| the implementation of the CAN error handling is suboptimal. In the |
| current implementation the many errors are implemented as pending |
| errors. But those errors are not pending, the errors occurred and are |
| gone directly afterwards. This commit changes the described behavior |
| and simplifies the handling of CAN errors. From Stefan Kolb. |
| |
| * Microchip/Atmel SAMv7 Boards: |
| |
| - SAMv71-XULT: Fix MRF24J40 interrupt GPIO number. |
| |
| * NXP/Freescale Kinetis: |
| |
| - Kinetis MPU: Disable MPU when not in protected mode. The hardware |
| reset state of the the MPU precludes any bus masters other than DMA |
| access to memory. Unfortunately USB and SDHC have their own DMA and |
| will not have access to memory in the default reset state. This change |
| disabled the MPU if present on system startup. From David Sidrane. |
| - Kinetis MPU: Fixed warning for kinetis_mpudisable. Missing header |
| file added. From David Sidrane. |
| - Kinetis SIM: Ensure isolation of clock dividers for 0 value case. |
| This fixes a bug were a SoC does not have a clockdivN register and |
| passes a 0 for the init value. This prevents overflow of the 0 |
| decremented to -1 (0xffffffff) spilling over to other clockdivN |
| fields. From David Sidrane. |
| |
| * NXP/Freescale i.MX6 Drivers: |
| |
| - i.MX6: Fix a wrong parameter passed when calling irq_attach() in |
| imx_serial.c. From Masayuki Ishikawa. |
| - Based on Masayuki's change, I review all serial driver vector |
| attachment. I Found one additional error and updated all relevant |
| drivers to current interrupt parameter passing. |
| |
| * STMicro STM32: |
| |
| - STM32 F410 Kconfig: Fix peripherals available on the STM32 F410. |
| This also adds a select for STM32_HAVE_DAC1 present on this STM32 |
| flavor. From Gwenhael Goavec-Merou. |
| - STM32 L4 DMA: Correct USART3_RX bad channel definition. From Juha |
| Niskanen. |
| - STM32 L4 PWR: Correct PWR_SR2 REGLPS and REGLPF bits, add port I |
| registers. Also remove duplicate section from Kconfig. From Juha |
| Niskanen. |
| - STM32 F7: do not enable read-modify-write on DTCM. "AN 4667 - STM32F7 |
| Series system architecture and performance" recommends to disable |
| read-modify-write on DTCM: "If the DTCM-RAM is used as data location |
| and the variables used are byte or/and halfword types, since there is |
| no ECC management in this RAM on the STM32F7 Series, it is recommended |
| to disable the read-modify-write of the DTCM-RAM in the DTCM interface |
| (in the DTCMCR register) to increase the performance." From Jussi |
| Kivilinna. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu |
| Nevalainen.. |
| - STM32 ADC: Invalidate dma buffer before use. Missing invalidation |
| caused old samples being fetched from cache. From Jussi Kivilinna. |
| - STM32, STM32L4, STM32F7 ADC: Fix channel 18 sample time. From Juha |
| Niskanen. |
| - STM32 DAC: Fix some configuration logic. When STM32_NDAC is greater |
| than 1, then second channel is always DAC1OUT2. From Mateusz Szafoni. |
| - STM32 DAC: Fix compilation when DMA disabled for channel. From |
| Mateusz Szafoni. |
| - STM32 F0: Fix some funny shifts in DAC header files. From Juha |
| Niskanen. |
| - STM32 F1 RTC fixes: (1) Compile issues because of missing RTC_MAGIC |
| #defines, (2) missing functionality based on RTC_MAGIC in RTC based on |
| stm32_rtcounter.c, (3) IRQ setup from up_rtc_initialize was later |
| reset in up_irqinitialize, (4) write access to backup registers |
| without enabling access to backup domain, (5) possible races in |
| set/cancel alarm. tested with STM32F103C8 only. device now wakes up |
| from forced STANDBY mode by alarm. From Leif Jakob. |
| - STM32/STM32 L4 PWM: While attempting to output a 70 MHz square wave |
| from the timer output of a STM32 clocked at 140 MHz, found that the |
| reload calculation was off by one. This correction does allow the |
| output up to 70 MHz. I am not sure this affects most users |
| generating slow PWM but for frequencies close to the PCLK, the |
| difference becomes significant. From JM. |
| - STM32 L4 I2C: Set I2C SDA and SCL pins to open drain mode. From Pekka |
| Ervasti. |
| - STM32 L4 I2C: I2C4 was writing to wrong RCC registers. From Juha |
| Niskanen. |
| - STM32 L4 DAC: Report transfer as completed in DMA callback. Without |
| this even O_NONBLOCK writes block the calling task if DAC was using |
| DMA. From Juha Niskanen. |
| - STM32 L4 COMP: comparators share RCC enable bit with SYSCFG. From |
| Juha Niskanen. |
| - STM32 L4 ADC: Correct EXTSEL macros. From Juha Niskanen. |
| - STM32 L4 TIM: TIM15,16,17 are always in APB2. From Juha Niskanen. |
| - STM32 F7 I2C: Set I2C4 SDA and SCL pins to open drain mode. From Juha |
| Niskanen. |
| - STM32 F4 RTCC: ISR register and write protection fix. From Eetu |
| Nevalainen. |
| - STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier |
| between writing to DMA TX descriptor and restarting DMA TX. Avoid |
| calling work_queue on pollwork if it's already queued, just skip a |
| poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to |
| PB13 not to PG14. From savinz. |
| - STM32 F7: Added missing config option for register value debugging. |
| From Titus von Boxberg. |
| - STM32 F7: No FSMC, only FMC for STM32F7. From Titus von Boxberg. |
| - STM32 F7: HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular |
| FMC RAM type. From Titus von Boxberg. |
| - STM32 F7: STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is |
| not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S. |
| From Titus von Boxberg. |
| - STM32F7: Some STM32F7 builds failed in build testing due to undefined |
| STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was |
| not including chip/stm32_memorymap.h. |
| - STM32 F7: dcache write-buffed mode is used (not write-through) buffer |
| alignment is required for DMA transfers because a) |
| arch_invalidate_dcache could lose buffered writes data and b) |
| arch_flush_dcache could corrupt adjacent memory if the buffer and the |
| bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries. From David |
| Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minumum SPI: SPIDEV_WIRELESS used when this has |
| changed to SPIDEV_CONTACTLESS. From Nicolas Estibals. |
| - configs/: a few more places where SPIDEV_WIRELELSS should be |
| SPIDEV_CONTACTLESS. |
| - STM32F103-Minumum: Fix a BUG when reading from output pin. We need |
| a different read_ops to read from output pin. This patch fixes the |
| issue. From Alan Carvalho de Assis. |
| - STM32F103-Minumum: Use separated read_ops for GPIO interrupt pins. |
| From Alan Carvalho de Assis. |
| - STM32F103-Minumum: Fix compiler error in MCP2415 logic. |
| - STM32F746G-DISCO: Fix for compilation of STM32F746G-DISCO. From Ivan |
| Ucherdzhiev. |
| - STM32F746G-DISCO: Fix for stm32f746g-disco board for button support |
| with interrupt. This change is tested with buttons app example and it |
| is working with interrupts (signals). I tried the test with polling |
| but at this point it doesn't work. From Ivan Ucherdzhiev. |
| |
| * Build System |
| |
| - Fix -Werror=implicit-fallthrough on gcc7. From Julien Lecoeur. |
| - configs/Board.mk: Remove comment form end of line. In windows native |
| build, it appears to be trying to make that an extra parameter to the |
| AR command. From Jeff. |
| - configs/Board.mk: Remove quotes from CONFIG_ARCH_FAMILY. Causes |
| problems with Windows native build. From Jeff. |
| - Makefile.win would only create uboot images for ARM. MIPS support |
| also needed. From Lwazi Dube. |
| |
| * C Library/Header Files: |
| |
| - C++: Fix C++ __guard implementation for ARM. The standard C++ ABI |
| that most platforms follow defines __guard to be 64 bits. The existing |
| implementation of libxx_cxa_guard.cxx follows this. However, the |
| 32-bit ARM C++ ABI defines it as 32 bits instead, and changes the |
| meaning slightly so only the lowest bit is used. This matters because |
| GCC creates guard symbols without regards to what libxx_cxa_guard.cxx |
| says. So on ARM, gcc allocates 4 bytes, but __cxa_guard_release |
| writes 8 bytes, zeroing out another unlucky variable nearby. Fix it |
| by special-casing 32-bit ARM in libxx_cxa_guard. From Jim Paris. |
| - C++: In cwchar it uses CONFIG_LIBC_WCHAR to only export the wc/mb |
| functions. When a build does not want to use wide or multibyte char |
| CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the |
| wc/mb functions when defined. Regardless of the stat of |
| CONFIG_LIBC_WCHAR the non mb/wc definitions such as mbstate_t, |
| wint_t, wctype_t need to be exported. From David Sidrane. |
| - C Library: Fix an error in mkstemp() the could result in an infinite |
| loop. From Alan Carvalho de Assis. |
| - C Library: (1) Fix an error in mkstemp() the could result in an |
| infinite loop. (2) Fix for wrong output in some cases. For Example: |
| (a) input: "FILEXX", output: "FILE00" and repeats same output for |
| further invocations of mkstemp(). But, the output has to be FILE01, |
| FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000", |
| for next invocation "FILE200000" and so on. But it's good, if the |
| output goes like FILE000001, FILE000002, ..., FILE000101, ... From |
| Lokesh B V. |
| - C Library: gethostbyname_r: Fix check for space in buffer. |
| - C Library: inet_ntop() was printing negative values for fields >127. |
| - Math Library: Fix wrong output in modf() API. The sign of integral |
| part given by the modf() should be same as sign of input. But for |
| inputs between 0 and 1, the sign of integral part was not same as |
| sign of input. From Lokesh B V. |
| - Math Library: Fix wrong output in ceil() API. Ex:for input x = 1.0, |
| the output should be 1.0, but the output was 2.0. From Lokesh B V. |
| |
| * Tools |
| |
| - tools/testbuild.sh: Fix missing $ before variable name. |
| - tools/mkdeps.c: Eliminate a warning. MAX_PATH may already be defined |
| in included system files. From Jeff. |
| |
| * Applications: apps/ |
| |
| - All apps/ Makefiles: Add .PRECIOUS: apps/libapps.a to every |
| Makefile. Hopefully this will end awkward problems when you Control-C |
| out of a build and libapps.a is deleted. |
| - platform/Makefile: More attempts to fix for Windows native build. |
| Backslash as a delimiter causes problems in pattern substitutions. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH network initialization: Fix some ieee 802.15.4 initialization |
| logic. It should not set the saddr or panid; those cannot be |
| hard-coded but must come from the coordinator. Re-factor a function |
| that has gotten too big and too complex. Do not set the IP address |
| for 6loWPAN. The 6loWPAN stack uses IP address that derive from the |
| ieee 802.15.4 addressing and cannot be (safely) configured by the user. |
| - NSH Library: Fix copy-paste typo in nsh_usbconsole.c. From Oleg |
| Evseev. |
| - NSH Library: fix size of 6LoWPAN extended address. |
| - NSH Library: Fix build break in nsh_command.c with IPv4/IPv6 dual |
| stack. From Masayuki Ishikawa. |
| - NSH Library: Correct parsing of ifconfig so that you can specify the |
| HW address without specifying the IP address. |
| |
| * Examples/Tests: apps/examples: |
| |
| - examples/smart: Fix some compilation errors. Obviously this test has |
| not been used in a LONG time. |
| - examples/udp: Renaming some files to prevent name collision in |
| libapps.a. Fix naming of a configuration setting. |
| - examples/nettest: Renaming some files to prevent name collision in |
| libapps.a |
| - examples/nximage: Remove unused global variable. |
| - examples/nsh: Remove APPNAME, PRIORITY, and STACKSIZE settings from |
| Makefile to avoid showing nsh in Builtin Apps. From Masayuki Ishikawa. |
| |
| * Network Utilities: apps/netutils: |
| |
| - netutils/tftpc: Missing header file causes errors in some |
| configurations. |
| - netutils/tftpc: TFTPC depends on CONFIG_NET_IPv4. |
| - netutils/netlib: Fixes to work when only USRSOCK is enabled. |
| - netutils/netlib: Fix netlib_nodaddrconv() so that its return type is |
| the same as other address conversion functions. |
| - netutils/netlib: If only PF_IEEE802154 socket family is enabled, then |
| must use SOCK_DGRAM. |
| - netutils/ftpc: Fix some memory leaks. From Boris Astardzhiev. |
| - netutils/thttpd: Fix a malformed if condition detected by GCC 6.x.x. |
| - netutils/dhcpd: Prevent buffer overflow in dhcpd_addoption. offset |
| represents distance from start of option buffer. So this should be |
| changed current option pointer minus start of buffer. From EunBong |
| Song. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - wireless/ieee802154/i8sak: Need to increment the next_saddr after |
| each successful association. |
| |
| * System Utilities (apps/system) |
| |
| - correct copy-paste typo in comments in composite_main.c From Oleg |
| Evseev. |
| - system/dhcpc: The DHCPC renew command did not build correctly due to |
| naming problems. Noted by Masayuki Ishikawa. |
| - system/dhcpc: Fix warning about renew_main.o appear twice in rule. |
| |
| * Tools (apps/tools): |
| |
| - tools/mkkconfig.bat: Use %cd% instead of %~dp0 for usage of APPSDIR |
| in this batch file. |
| - tools/mkkconfig.bat: Remove quotes in echo. These were begin |
| Echo'ed and generating double quots in the output. From Jeff. |
| - Windows build fixes: tools/mkkconfig.bat - switch APPSDIR path to |
| use forward slashes for kconfig-frontends. interpreters/ficl - |
| Reorder some targets that causes GNUwin32 make to behave badly. From |
| Jeff. |