Newer
Older
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
* fs/vfs: file_seek() is an internal OS interface and should not errors
via the errno (2017-09-28).
* fs/vfs: file_read() is an internal OS interface and should not errors
via the errno (2017-09-28).
* fs/vfs: file_write() and file_pwrite() are internal OS interfaces and
should not report errors via the errno (2017-09-28).
* STM32L4 FLASH, DFSDM: option bytes, JEXTSEL bits, ADC1 output to DFSDM
chips change
- STM32L4 FLASH: add function for modifying device option bytes
- STM32L4 DFSDM: add JEXTSEL bits, ADC1 output to DFSDM chips change
ST's documentation hints that ADC output can be routed to DFSDM on
some STM32L4X3 chips, but I got confirmation from tech support that
this is just a documentation error so remove this from Kconfig
From Juha Niskanen (2017-09-29).
* This commit adds support for routing tables in files in a file
system. This might be useful for customized, per-unit routing tables.
There are two issues with it however:
1. Reading from file system on a per packet basis could be slow. I
think it probably should have a small, in-memory cache of most
frequently used routes for good problem.
2. Currently the delroute logic is disabled due to a problem with
the design. NuttX does not currently support truncate().
Therefore, it is not possible to delete entries from the routing
table file.
In this current implementation, that leaves the last entry intact at
the end of the file. An alternative design might include a tag on
each record to indicate if the record is valid or not. That would
work but would add complexity to the other routing table functions
(2017-09-29).
* net/route: Add support for an in-memory routing table cache in order
to improve performance when the routing table is retained in a file.
The cache holds the most recently used routing table entries and so can
eliminate some file access. Flush the in-memory cache when any entry is
deleted from the routing table. When a router matching an IP address is
found, add the routing table entry to the cache (2017-09-29).
* fs/vfs: null check for path on open and buf on write. Null path
check is depend on CONFIG_DEBUG_FEATURES and CONFIG_DEBUG_ASSERTIONS,
added null checking so it's always performed Added null checking on buf
for write(). From Xiao Qin (2017-09-29).
* net/route: File read/write logic should be able to handle short reads
and writes (2017-09-29).
* drivers/syslog: syslog internal functions should not set the errno
variable: ramlog_putc(), syslog_dev_putc(), syslog_dev_write(),
syslog_force() (2017-09-29).
* net/sockets: psock_sendto() is an internal OS interface an should not
set the errno variable (2017-09-29).
* net/sockets: psock_send() is an internal OS interface an should not
set the errno variable (2017-09-29).
* psock_send() no longer sets errno, so send() must now set it
(2017-09-30).
* net/: Versions of psock_send() and pock_sendto() should not set
errno. That is taken care of at a higher level in the send()/sendto()
implementation as appropriate (2017-09-30).
* net/: psock_accept() is an internal interface and should not set the
errno (2017-09-30).
* net/: psock_bind() is an internal interface and should not set the
errno (2017-09-30).
* net/: psock_connect() is an internal interface and should not set the
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
errno nor should it be a cancellation point (2017-09-30).
* net/: psock_listen() is an internal interface and should not set the
errno (2017-09-30).
* net/: psock_getsockopt() is an internal interface and should not set
the errno (2017-09-30).
* net/: psock_getsockopt() and psock_socket() are an internal interfaces
and should not set the errno (2017-09-30).
* net/: psock_accept() is not a cancellation point (2017-09-30).
* net/: psock_recvfrom() is an internal interface and should not set the
errno nor should it be a cancellation point (2017-09-30).
* net/ and fs/: net_vfcntl(), file_fcntl(), file_dup(), and file_dup2()
are all internal OS interfaces and should not modify the errno value
(2017-09-30).
* net_dupsd() and net_dupsd2() are internal OS functions and should not
set the errno variable (2017-09-30).
* psock_ioctl() and netdev_ioctl() are internal OS functions and should
not set the errno variable (2017-09-30).
* psock_close() and net_close() are internal OS functions and should not
set the errno variable (2017-09-30).
* SAMv7, STM32, STM32 L4: DAC and ADC drivers are not permitted to set
the errno (2017-09-30).
* SIM LPC31xx: Serial and console drivers are not permitted to set the
errno (2017-09-30).
* STM32, STM32 F7: LTDC and DMA2D drivers are not permitted to set the
errno (2017-09-30).
* drivers/serial: 16550 UART driver IOCTL method must not set errno; it
must return a negated errno value (2017-09-30).
* drivers/lcd: ILI9341 initialize method not permitted to set errno
(2017-09-30).
* drivers/sensors: LIS331DL driver not permitted to set errno
(2017-09-30).
* drivers/wireless: CC1101 driver not permitted to set errno
(2017-09-30).
* configs/z80sim and xtrs: Serial driver lower halfs ioctl methods
should return a negated errno value, not set the errno variable
(2017-10-30).
* compiler.h, limits.h, types.h: Update SDCC/z80 files to include
support for long long, inline, __FILE__, and __func__ (2017-10-01).
* z80 Make.defs: Fixes dependency generation with newest SDCC compiler
(2017-10-01).
* include/: Add stdnoreturn.h (2017-10-01).
* tools/configure.sh: Add special support so that you can start with a
windows native configuration and install on a different host (and vice
versa). (2017-10-01).
* stm32_hrtim: add support for capture, chopper, deadtime and dump
registers. From Mateusz Szafoni (2017-10-01).
* tools/configure.c: Duplicate new functionaity added to configure.sh
(2017-10-01).
* tools/configure.sh: Another fix for the script. The last change only
worked for Windows Cygwin; for Linux, it needed to remove some
additional things from the defconfig file (2017-10-01).
* configs/z80sim: convert other configurations to default to Linux
(2017-10-01).
* tools/: configure.sh and configure.c should redirect stdout to
/dev/null but should not suppress stderr output (2017-10-01).
* stdnoreturn.h: Add definitions for the C11 noreturn keyword. Also
Remove C++11 dependency. Applies to C too (2017-10-02).
* net/route: Add logic to mark a route as most-recently-used in the
route cache (2017-10-02).
* commit b2ea300b6fb7672cdb682a0957b5dd2cff63804d broke the STM32L4 port
for people not using the L496xx or L4A6xx. That was because
stm32l4_sdmmc.h is included from the stm32l4.h global header, and this
header fires an #error for other chips. I see that ALL stm32l4 have the
same SDMMC except the stm32l4x2, which has none. From Sebastien Lorquet
(2017-10-02).
* net/route: Fix an error in cache list management (2017-10-02).
* Add support for Micron MT25Q series MT25Q128. From Sebastien Lorquet
(2017-10-02).
* binfmt/: Don't schedule starthook if there are no constructors
(2017-10-02).
* binfmt/: exec_module(), load_module(), unload_module(), and
schedule_unload() are internal OS functions and must not alter the errno
variable (2017-10-02).
* stm32f103-minimum: Add ADC support on stm32f103-minimum board. From
Alan Carvalho de Assis (2017-10-02).
* syscall/: The non-standard interface exec() is now enshrined as a
official NuttX API. I really dislike doing this but I think that this
is probably the only want to load programs in the protected mode. It is
currently used by some example code under apps/ that generate their own
symbol tables for linking. Other file execution APIs relay on a symbol
table provided by the OS. In the protected mode, the OS cannot provide
any meaning symbol table for execution of code in the user-space blob so
that is they exec() is really needed in that build case. And, finally,
the interface is completely useless and will not be supported in the
KERNEL build mode where the contrary is true: An application process
cannot provide any meaning symbolic information for use in linking a
different process (2017-10-03).
* STM32L4 RTC, PM: small fixes to subseconds handling, ADC
power-management hooks
- STM32L4 ADC: add PM hooks from Motorola MDK
- STM32L4 RTC: add up_rtc_getdatetime_with_subseconds
- STM32 RTC: workaround for potential subseconds race condition. In
all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed
to lock the values in the higher-order calendar shadow registers
until RTC_DR is read. However many old chips have in their errata
this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD
and likely others): "When reading the calendar registers with
BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after
reading the RTC_SSR register. This happens if the read operation is
initiated one APB clock period before the shadow registers are
updated. This can result in a non-consistency of the three
registers. Similarly, RTC_DR register can be updated after reading
the RTC_TR register instead of being locked."
- STM32L4 RTC: correct RTC_SSR and RTC_TR read ordering. In all
recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to
lock the values in the higher-order calendar shadow registers until
RTC_DR is read. Change the register read ordering to match this and
don't keep a workaround for a hypothetical race condition (not in
any L4 errata, lets for once assume ST's silicon works as it is
documented...)
- STM32L4 PM: remove useless #ifdefs and old non-L4 STM32 code
From Juha Niskanen (2017-10-03).
* sched/semaphore: Rename sem_reset() to nxsem_reset() so that it is
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
clear this is an internal OS function (2017-10-03).
* sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it
is clear this is an internal OS function (2017-10-03).
* libc/semaphore: Add nxsem_init() which is identical to sem_init()
except that it never modifies the errno variable. Changed all
references to sem_init in the OS to nxsem_init() (2017-10-03).
* sched/semaphore: Rename all internal private functions from sem_xyz
to nxsem_xyz. The sem_ prefix is (will be) reserved only for the
application semaphore interfaces (2017-10-03).
* libc/semaphore: Add nxsem_getvalue() which is identical to
sem_getvalue() except that it never modifies the errno variable.
Changed all references to sem_getvalue in the OS to nxsem_getvalue()
(2017-10-03).
* libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and
nxsem_setprotocola which are identical to sem_getprotocol() and
set_setprotocol() except that they never modifies the errno variable.
Changed all references to sem_setprotocol in the OS to
nxsem_setprotocol(). sem_getprotocol() was not used in the OS
(2017-10-03).
* sched/semaphore: Add nxsem_destroy() which is identical to
sem_destroy() except that it never modifies the errno variable. Changed
all references to sem_destroy() in the OS to nxsem_destroy() (2017-10-03).
* sched/semaphore: Add nxsem_post() which is identical to sem_post()
except that it never modifies the errno variable. Changed all
references to sem_post in the OS to nxsem_post() (2017-10-03).
* sched/semaphore: Add the function nxsem_wait(). This is a new
internal OS interface. It is functionally equivalent to sem_wait()
except that (1) it is not a cancellation point, and (2) it does not set
the per-thread errno value on return. In all OS functions (not
libraries), change sem_wait() to nxsem_wait(). This will prevent the OS
from creating bogus cancellation points and from modifying the per-task
errno variable. This commit also backs out most of commit
b4747286b19d3b15193b2a5e8a0fe48fa0a8638c. That change was added because
sem_wait() would sometimes cause cancellation points inappropriately.
But with these recent changes, nxsem_wait() is used instead and it is
not a cancellation point (2017-10-04).
* sched/semaphore: sem_timedwait() is a cancellation point and, hence,
cannot be called from within the OS. Created nxsem_timedwait() that is
equivalent but does not modify the errno and does not cause
cancellation. All calls to sem_timedwait() change to calls to
nxsem_timedwait() in the OS (2017-10-05).
* sched/semaphore: sem_trywait() modifies the errno value and, hence,
should not be used within the OS. Use nxsem_trywait() instead
(2017-10-05).
* This change renames all internal, private NuttX signal-related
functions to use the prefix nxsig_ so that they cannot be confused with
application interfaces that begin, primarily, with sig_. This is
analogous to similar renaming that was done previously for semaphores
(2017-10-05).
* drivers/input/cypress_mbr3108: Add missing variable for nxsem_wait
return value. From Jussi Kivilinna (2017-10-06).
* fs/vfs and net/socket: fcntl() is not return success fail for
F_SETFL. Reported by Jussi Kivilinna (2017-10-06).
* This commit adds internal versions of the signal interfaces:
- sigtimedwait() -> nxsig_timedwait()
- sigwaitinfo() -> nxsig_waitinfo()
- nanosleep() -> nxsig_nanosleep()
Replace all usage of sigwaitinfo(), sigtimedwait(), and nanosleep()
with the OS internal counterparts nxsig_waitinfo(), nxsig_timedwait(),
and nxsig_nanosleep(). The internal OS versions differ from the
standard application interfaces in that they do not create
cancellation points and they do not modify the application's errno
variable (2017-10-06).
* Adds new OS internal functions nxsig_sleep() and nxsig_usleep. These
differ from the standard sleep() and usleep() in that (1) they don't
cause cancellation points, and (2) don't set the errno variable (if
applicable). All calls to sleep() and usleep() changed to calls to
nxsig_sleep() and nxsig_usleep() (2017-10-06).
* drivers/serial/tcdrain: tcdrain() was recently added to the NuttX C
library. But there is a problem. The specification of tcdrain()
requires that it be a cancellation point. In order to do this, tcdrain
was moved from the C library into the OS and the addition cancellation
point hooks were added. In non-FLAT builds, access via system calls is
also now supported (2017-10-06).
* net/Kconfig: Remove improper use of comma in syntax (2017-10-06).
* mm/: Heap semaphore logic needs to use nxsem_* interfaces when
available, but the standard semaphores only when implementing a
user-space heap. Not this does introduce and issue: the memory
management functions them become cancellation points because of the use
of sem_wait (2017-10-07).
* syscall/: Fix some backward conditional compilation (2017-10-07).
* sched/signal: Add nxsig_kill() which is functionally equivalent to
kill() except that it does not modify the errno variable. Replace all
usage kill() in the OS proper with nxsig_kill() (2017-10-07).
* graphics/vnc/server: Fix an error in the VNC server introduced with
recent big set of changes (2017-10-07).
* sched/signal: Add nxsig_queue() which is functionally equivalent to
sigqueue() except that it does not modify the errno variable. Replace
all calls to sigqueue() in the OS proper with calls to nxsig_queue() to
avoid accessing the errno variable (2017-10-07).
* sched/signal: Add internal OS interface nxsig_procmask(). This
internal interface is equivalent to the standard sigprocmask() used by
applications except that it does not modify the errno value. Also fixes
a problem in that the original sigprocmask() was not setting the errno.
Replace all calls to sigprocmask() in the OS proper with calls to
nxsig_procmask(). (2017-10-07).
* sama5d4-ek: Remove a really old defconfig example file that is so far
out of date that it can only be misleading (2017-10-07).
* Fix some build problems after recent separation of internal OS from
application interfaces. The build problem only occurs in the PROTECTED
and KERNEL builds where separate libraries are built for the
applications and for use within the OS. In these cases, the correct
interfaces must be used. This commit fixes a few of these, so I can get
through build testing, but there are many more that need fixin'
(2017-10-08).
* SDCC Fixes: Change some prototypes and some assumptions about the
size of unsigned int to get to a clean SDCC compile (2017-10-08).
* Fix some problems in the previous commits: Forgot to update sigset()
after change to prototype. Also there was a stray semicolon in the
change signal() (2017-10-08).
* libc/stdio: Build the lib_noflush() and lib_snoflush() stubs even if
CONFIG_FILE_DESCRIPTORS=0. They may still be needed (2017-10-08).
* configs/z80sim: Fix a naming problem. Also, don't try to build the
serial driver if CONFIG_NFILE_DESCRIPTOR=0 (2017-10-08).
* libc and libnx: When the libraries are built into two libraries, a
user space library and a OS space library (as in the PROTECTED and
KERNEL build). Then the user space library must not use the OS internal
interfaces; similarly, the OS must avoid using the userspace interfaces
so that it does not muck the errno value or create spurious cancellation
points (2017-10-08).
* Misc STM32 Fixes
- stm32_hrtim.c: fix burst mode prescaler update
- stm32f334-disco: add flash mode support for powerled driver +
cosmetics
From Mateusz Szafoni (2017-10-08).
* powerled.h: Add fault field to state structure. From Mateusz Szafoni
(2017-10-08).
* libc/termios: Adds tcflow() (2017-10-09).
* RNDIS: Use CONFIG_USBDEV_MAXPOWER instead of hardcoded value. Use
LPWORK for network operations by default. From Sakari Kapanen
(2017-10-09).
* sched/mqueue: Rename all OS internal functions declared in
sched/mqueue/mqueue.h to begin with nxmq_ vs. mq_. The mq_ prefix is
reserved for standard application interfaces. Rename all private static
functions for use the nxmq_ vs. mq_ naming (2017-10-09).
* task: Add new cancellation point interface,
check_cancellation_point() (2017-10-09).
* STM32, STM32L4 serial changes:
- stm32: serial: add interface to get uart_dev_t by USART number,
stm32_serial_get_uart
- stm32: serial: do not stop processing input in SW flow-control mode
- stm32l4: serial: do not stop processing input in SW flow-control
mode
- stm32l4: serial: suspend serial for Stop mode
From Juha Niskanen (2017-10-09).
* Misc STM32 Fixes
- stm32_powerled.c: cosmetics
- stm32_hrtim.c: cosmetics
- stm32/Kconfig: add HRTIM configuration and add DAC external
trigger configuration
- stm32f334-disco: Add powerled example configuration. From Mateusz
Szafoni (2017-10-09).
* drivers/power: Add powerled to Kconfig. From Mateusz Szafoni
(2017-10-09).
* BCM2708: Add enough infrastructrue (more stubs) to get a clean
compilation of the Pi Zero configuration (with many undefined things at
link time). This includes several register definition header files
(some from Alan Carvalho de Assis), basic interrupt handling logic,
boot-up files, GPIO support, build and configuration logic, basic board
support at configs/pizero (2017-10-09).
* sched/mqueue: Add internal function nxmq_send() and nxmq_timedsend()
that are equivalent to mq_send() and mq_timedsend() except that they do
not create cancellation points and do to not modify the errno variable.
Change all calls to mq_send() and mq_timedsend() in the OS to calls to
nxmq_send() and nxmq_timedsend(), making appropriate changes for
differences in return values (2017-10-10).
* sched/mqueue: Add nxmq_receive() and mxmq_timedreceive() which are
functionally equivalent to the standard mq_receive and mq_timedreceive()
except that (1) they do not create cancellation points, and (2) the do
not modify the application's errno variable. Change all calls to
mq_receive() and mq_timedreceive() in the OS to calls to nxmq_receive()
and nxmq_timedreceive(), making appropriate changes for differences in
return values (2017-10-10).
* Fix a few places where there was a semicolon following the 'if'
condition, making the following logic unconditional (2017-10-10).
* The INA219 is a combined voltage and current sensor that can measure
up to 26 volts and a current that depends on an external shunt
resistor. Connection happens via i2c/smbus and the chip features a
power supply rail that is independent from the measured voltage, so it
can measure low voltages.
This commit adds a driver for this chip. Right now it measures bus
voltage and current, and does not use the internal calibrated current
reading, nor the available power measurement. From Sebastien Lorquet
(2017-10-10).
* configs/clicker2-stm32: Adds SD card, automount, and syslog file
support and fixes a few minor issues
- Moves defines for xbee from clicker2-stm32.h to stm32_xbee.h
- Adds support for uSD click boards and automount support
- Fixes minor guard clause
- Bring-up automounter before MMCSD
- MRF24J40 interrupt should only fire on falling edge.
- Adds file syslog support for logging to file on SD card
From Anthony Merlino (2017-10-11).
* Z80: Makefile fix for use with current SDCC (2017-10-11).
* fs/vfs: Change the return value of internal function fs_getfilep().
It no longer sets the errno variable but, rather, returns errors in the
same manner as other internal OS functions (2017-10-11).
* Adds OS internal functions nx_send(), ns_recv(), and nx_recvfrom()
which are functionally equivalent to send(), recv(), and recvfrom()
except that they do not set the errno variable and do not cause
cancellation points (2017-10-11).
* Adds OS internal function nx_write() which is functionally equivalent
to write() except that it does not set the errno variable and do not
cause cancellation points (2017-10-11).
* sched/task: task_exithook.c fails to link if signals are disabled
because was unconditionally trying to send the SIGCHLD signal to the
parent in certain configurations. Noted by Jeongchan Kim (2017-10-11).
* arch/arm/src/samv7: Correct an error in RX DMA setup. From Manish
Kumar Sharma (2017-10-11).
* net/socket: psock_send/psock_sendto: remove assert check for null
psock and buf input pointers. Removes check as 'psock == NULL'
altogether because that checked for later in psock_send and
psock_sendto. Change null check for 'buf' so that it is handled same as
in recvfrom.c (return -EINVAL instead of assert). From Jussi Kivilinna
(2017-10-11).
* fs/vfs: Add new internal OS interface nx_read(). nx_read() is
functionally equivalent to read() except that it does not modify the
errno variable and it is not a cancellation point. Changed all
references to read() in the OS to nx_read() (2017-10-11).
* sched/signal: Add logic to wake up a thread that is waiting on a
signal if it is canceled (2017-10-12).
* nxsig_timedwait: Add logic to suppress the wait if there is a pending
cancellation (2017-10-12).
* stm32 SPI: Add missing include required when CONFIG_SPI_CALLBACK is
enabled. From Anthony Merlino (2017-10-12).
* STM32L4 RTC fixes:
- STM32L4 RTC: init mode was never exited because nested locking in
rtc_synchwait() disabled backup domain access
- STM32L4 RTC: Use backup register magic value instead of INITS
bit. The INITS (bit 4) of RTC_ISR register cannot be used to
reliably detect backup domain reset. This is because we can operate
our device without ever initializing the year field in the RTC
calendar if our application does not care about correct date being
set. Hardware also clears the bit when RTC date is set back to year
2000.
- STM32L4 RTC: put back the SSR race condition workaround. ST has
confirmed that the issue has not been fixed, and that it applies to
STM32L4 too (was not in errata sheets due to documentation bug) See
discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution
- STM32F4, STM32L4, STM32F7 RTC: add more CONFIG_RTC_NALARMS > 1 to
reduce code size
- STM32L4: rename stm32l4_rtcc.c to stm32l4_rtc.c to better match
STM32F7
- STM32, STM32L4, STM32F7 RTC: stray comment and typos in
chip/stm32_rtcc.h
- STM32L4 RTC: change maximum alarm time from 24h to one month
From Juha Niskanen (2017-10-13).
* TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a situation
where a NULL pointer may be dereferenced. In this configuration, the
TCP connection's 'semi-permanent' callback, s_sndcb was nullified in
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
tcp_close_disconnect. However, other logic in tcp_lost_connection()
attempt to use that callback reference after it was nullifed. Fixed in
tcp_lost_connectino() by adding a NULL pointer change before the
access. This was reported by Dmitriy Linikov in Bitbucket Issue 72
(2017-10-13).
* stm32f7 BBSRAM: stm32_bbsram: avoid assert in stm32_bbsram_savepanic.
If panic happens before stm32_bbsram is initialized,
stm32_bbsram_savepanic caused additional assert panic. Function has null
pointer check, so drop DEBUGASSERT. From Jussi Kivilinna (2017-10-13).
* FS FAT: Fix hard-fault when listing contents of FAT root. From Jussi
Kivilinna (2017-10-13).
* configs/stm32f4discovery: Add a USB MSC configuration. From Alan
Carvalho de Assis (2017-10-13).
* 6LoWPAN: Correct a bug in handling uncompressed frames (IPv6
dispatch) (2017-10-13).
* 6LoWPAN: Fix a whole in the logic of the previous commit. It turns
out that g_uncomp_hdrlen has other usages so it cannot be modified as I
was doing. Instead, I needed to add a separate localt variable,
protosize, to keep track of the two usages of g_uncomp_hdrlen
(2017-10-13).
* configs/: The nx and nxtext examples no longer supports single user
mode (2017-10-14).
* The lcdrw example has been removed because it violates the portable OS
interface (2017-10-14).
* All configurations that use NXIMAGE or NXHELLO must select
NX_MULTIUSER. All configuratinos that use examples/nxterm must enable
CONFIG_LIB_BOARDCTL (2017-10-14).
* configs/stm32f103-minimum: Add support for LM75 in the
stm32f103-minimum board. From Alan Carvalho de Assis (2017-10-14).
* configs/: All configurations that use NXLINES must select
NX_MULTIUSER. All configurations that use the NX server need to have
larger POSIX messages (2017-10-14).
* boardctl(): Remove the BOARDIOC_GRAPHICS_SETUP command (2017-10-15).
* Initial ADC support for the STM32F33XX
- stm32_adc.h: add JEXTSEL definitions and hrtim trigger configuration
- stm32_adc.c: move STM32F33 ADC logic to a separate file
From Mateusz Szafoni (2017-10-15).
* configs/sim: Update touchscreen driver initialization to use only
multiple-user NX server logic (2017-10-15).
* configs/sim: Convert the traveler configuration so that it uses the
framebuffer driver (2017-10-16).
* task_delete(): Do not permit user applications to delete kernel
threads (2017-10-16).
* kthread_create(): Rename kernel_thread() to kthread_create() for
better naming consistency with task_create() and kthread_delete()
(2017-10-16).
* All other STM32: SHIFTR_SUBFS_MASK was correct in STM32F0 only
- STM32L1: use correct EXTI line definitions (2017-10-17).
* STM32 RTC fixes:
- RTC: canceling an alarm marks it as inactive
- STM32L4, STM32F4, STM32F7 RTC: fix reading alarm value that is
more than 24h in future
- STM32F0 RTC: fix backup register count in stm32_rtcc.h
From Juha Niskanen (2017-10-17)
* BCM2708: Add system timer register definitions and a partial
implementation of the tickless mode timer (2017-10-17).
* BCM2708: Add support for AUX interrupts. Add some build configuration
and support logic for low-level serial output (2017-10-17).
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
* drivers/usbdev: Correct input flow control logic when watermarks are
not enabled. Problem noedt by and change based on suggestion by Juha
Niskanen (2017-10-18).
* BCM2708: Add hooks to support both Mini- and PL011 UARTs (2017-10-18).
* BCM2708: Fleshes out GPIO interrupt logic (2017-10-18).
* fs/vfs: Fix after recent changes. write() was return negative values
in errno. Noted by Jussi Kivilinna (2017-10-18).
* drivers/usbdev: Move test for NULL pointer before the pointer is
deferences. Noted by Juha Niskanen (2017-10-18).
* net/: Fix some build issues noted when both IPv4 and IPv6 are
enabled. From Anthony Merlino (2017-10-18).
* photon: Support SPI1 and SPI3. From Anthony Merlino (2017-10-18).
* BCM2708: Allow pass parameters with AUX interrupts; Add mini-UART
break capability. BCM2708: Add Mini-UART logic. Still missing UART
configuration logic (2017-10-18).
* Alexey T, Bitbuck Issue 73: Lower part of STM32 CAN driver
arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and clears
TXFP bit in the CAN_MCR register (it means transmission order is defined
by identifier and mailbox number).
This creates situation when order frames are put in upper part of CAN
driver (via can_write) and order frames are sent on bus can be
different (and I experience this in wild). Since CAN driver API
pretends to be "file like" I expect data to be read from fd the same
order it is written. So I consider described behaviour to be a bug.
I propose either to set TXFP bit in the CAN_MCR register (FIFO
transmit order) or to use only one mailbox (2017-10-19).
* The timer frequencies (BOARD_TIMx_FREQUENCY) are incorrectly defined
in configs/stm3240g-eval/include/board.h. Since the APB prescalers are
set to divide by 4 and 2 respectively, the frequencies should be
"2xAPBx" as said in the comment. The correct frequencies are already
defined but as STM32_APBx_TIMx_CLKIN. From Mattias Edlund (2017-10-19).
* drivers/ioexpander: The IRQ subsystem now supports passing a void *
parameter to IRQ handlers. Use that method to support multiple pc9555
devices, by passing a pointer to the device to the board defined irq
handler. Now the CONFIG_ for multiple PCA devices just allocates device
structures dynamically instead of statically when not enabled.
The same interrupt handler is entered with the device structure
parameter in all situations, multiple or single PCA. One should still
be careful if multiple PCA devices share the same IRQ. From Sebastien
Lorquet (2017-10-19).
* libc/match: Use of exp() vs expf() in logf() caused function to be
slow. From Alan Carvalho de Assis (2017-10-19).
* drivrs/mtd/filemtd.c: add block device MTD interface. Block MTD
interface allows using block device directly as MTD instead of having to
use file-system in between. NOTE that this provides the opposite
capability of FTL which will let you use an MTD interface directly as a
block device. From Jussi Kivilinna (2017-10-19).
* There was a reference counting problem in the TPC logic of
net_clone(). net_clone() which is the common logic underlying dup() and
dup2() for sockets. When net_clone() calls net_start_monitor() and
net_start_monitor() returns a failure (because the underlying TCP
connection) then net_clone() must back out the reference count on the
structure. Problem noted by Pascal Speck and this implementation of the
solution is based on his suggestion (2017-10-19).
* There was a possible recursion that could eventually overflow the
stack. The error occurred when closing the socket with inet_close()
while a socket callback was still queued. When the socket callback was
executed by devif_conn_event(), this resulted in a call to
psock_send_eventhandler() with TCP_CLOSE flag set which then called
tcp_lost_connection(). tcp_shutdown_monitor() then called
tcp_callback() again, which again called psock_send_eventhandler(), and
so on.... Noted by Pascal Speck. Solution is also similar to a
solution proposed by Pascal Speck (2017-10-19).
* nucleo-f334r8/adc: change serial console to USART2 (STLINK COM). From
Mateusz Szafoni (2017-10-19).
* stm32f33xxx_adc.c: fix some warnings and compilation error when extsel
not in use. From Mateusz Szafoni (2017-10-19).
* net/tcp: Same change to tcp_send_buffered.c probably also applies to
tcp_send_unbuffered.c (2017-10-19).
* net/tcp: Same change to tcp_send_buffered.c probably also applies to
tcp_sendfile.c (2017-10-19).
* tcp_lost_connection() is called from two places in tcp_sendfile.c
(2017-10-19).
* net/tcp: Same change to tcp_send_buffered.c probably also applies to
sixlowpan_tcpsend.c and inet_recvfrom.c (2017-10-19).
* drivers/sensor: Add driver for the APDS-9960 gesture sensor. From
Alan Carvalho de Assis (2017-10-20).
* include/nuttx/sensors/ioctl: deduplicate SNIOC_CFGR. From Jussi
Kivilinna (2017-10-20).
* drivers/sensors/hts221: power-on sensor for loading calibration data.
From Jussi Kivilinna (2017-10-20).
* arch/arm/src/stm32f7/i2c: fix I2C_M_NORESTART handling. From Jussi
Kivilinna (2017-10-20).
* drivers/sensors/apds9960.c: Use work_queue to read/process data when
receive an IRQ. From Alan Carvalho de Assis (2017-10-20).
* STM32L1, STM32L4 RTC: add periodic interrupts, update L1 RTC
implementation
- STM32L4 RTC: add support experimental CONFIG_RTC_PERIODIC
- STM32 RTC: separate STM32L1 RTC into a separate file
STM32L1 RTC is very close to F4 or L4 versions, with two alarms and
periodic wakeup support so backported L4 peripheral to L1.
- RTC: Add periodic alarms to upper and lower halves
From Juha Niskanen (2017-10-20).
* stm32_adc.c: clear pending interrupts. From Mateusz Szafoni
(2017-10-20).
* drivers/bch: The character driver to block device access now supports
an IOCTL to get the geomtry of the underlying block device (2017-10-20).
* fs/fat: Remove mkfatfs from the OS. This is a user-space application
and belongs in apps, not in the OS (2017-10-20).
* configs/nucleo-f334r8: add logic for zero latency high priority
interrupts example. From Mateusz Szafoni (2017-10-22).
* Misc STM32 chagnes
- STM32 HRTIM: Fix warnings related with RCC
- STM32F33xxx ADC: Add some publicly visable interfaces and some
code to support injected channels
- STM32F33xxx DMA: Add public interface to handle with DMA interrupts
From Mateusz Szafoni (2017-10-22).
* stm32f103-minimum: Add an ADPS-9960 example configuration. From Alan
Carvalho de Assis (2017-10-23).
* net/icmp: This change adds support for semi-standard IPPROTO_ICMP
AF_INET datagram sockets. This replaces the old ad hoc, nonstandard way
of implementing ping with a more standard, socket interface (2017-10-23).
* net/inet: Add check for protocol before handing out TCP and UDP
sockets (2017-10-23).
* arch/arm/common/up_checkstack: fix assert panic when both TLS and
interrupt stack are enable. From Jussi Kivilinna (2017-10-23).
* net/icmp: Correct some comments, typings, spacing problems from last
big ICMP socket change (2017-10-23).
* configs/: All defconfig filess that include
CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and
deselect CONFIG_DISABLE_POLL (2017-10-24).
* net/icmpv6: This commit adds support for semi-standard IPPROTO_ICMP6
sockets. This is a replacement for the non-standard ICMPv6 ping support
that violated the portable POSIX OS interface (2017-10-24).
* mm/mm-heap: memalign: fix heap corruption caused by using unaligned
chuck size. Unaligned nodes generated by memalign later cause heap
corruptions when nodes are shrink further (for example, 24 bytes -> 8
bytes, when alignment is 16 bytes). From Jussi Kivilinna (2017-10-24).
* lm3s8962: NX configuration needs CONFIG_NXSTART_EXTERNINIT=y
(2017-10-24).
* sched/: move POSIX thread specific data from pthread TCB to common
TCB structure. This change allows using
pthread_getspecific/pthread_setspecific from main thread. Patch also
enables using pthread data with config option CONFIG_DISABLE_PTHREAD=y.
From Jussi Kivilinna (2017-10-25).
* net/local: fix typo in config macro name. From Juha Niskanen
(2017-10-25).
* Olimex stm32-h407 serial support for the on-board UEXT connector
(fixed style & defconfig). Add USART6 for UEXT connector. Add
nsh_uext configuration and README update. From Jan PobÅÃslo (2017-10-26).
* configs/nucleo-l496zg/nsh: enable I2C4 bus with i2ctool. From Jussi
Kivilinna (2017-10-26).
* arch/arm/stm32f7: i2c: restore bus frequency after I2C reset. Copy
frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C
driver. From Jussi Kivilinna (2017-10-26).
* arch/stm32l4: port STM32F7 I2C driver to STM32L4. STM32L4 I2C driver
is in work-in-progress state (plentiful of TODOs and #warnings) and lags
many features found in more up-to-date STM32 I2C drivers. The peripheral
on STM32F7 and STM32L4 are identical except for L4's 'wakeup from stop
mode' flag and STM32F7's I2C driver is in more 'ready to use' state.
Commit ports the STM32F7 I2C driver to STM32L4. The I2C clock
configuration is kept the same as before (I2CCLK = PCLK1 80 Mhz)
instead of switching to STM32F7 arch default that is I2CCLK=HSI.
Further work would be to add configuration option for choosing I2C
clock source instead of current hard-coded default. From Jussi
Kivilinna (2017-10-26).
* drivers/sensors/lis2dh: fixes for self-test. From Jussi Kivilinna
(2017-10-26).
* include/nuttx/fs/: Move prototype of foreach_mountpoint out of
include/nuttx/fs/fs.h to fs/mount/mount.h (2017-10-26).
* fs/mount: Implements procfs /proc/fs/blocks and /proc/fs/usage files,
replacing the NSH df command. Also implements procfs /proc/fs/mount
file, replacing the NSH mount command when there are no arguments
(2017-10-26).
* Correct a problem that was causing an apparent directory to be
reported as a file instead of a directory by opendir. This happened
after adding these three new procfs entries: fs/block, fs/mount, and
fs/usage. Of course, there is no directory fs in this case, only three
files that have fs/ in their relative pathnames. The logic was
detecting that fs was the name of the enty to report, but it was then
declaring that fs was a file (because fs/block is of type file). This
was fixed by adding a check for matching lenghts. i.e., if strlen(fs)
!= strlen(fs/block), then report fs as a directory instead of a file
(2017-10-26).
* fs/procfs: Missing some conditional logic for cases where mountpoint
procfd entries excluded (2017-10-27).
* drivers/can/mcp2515.c: Fix the MCP2515 Bit Rate Prescale
calculation. Fix BRP for SET_BITTIMING ioctl as well. From Alan
Carvalho de Assis (2017-10-27).
* sensors/lis2dh: Fix use of obsolete dbg macro. From Jussi Kivilinna
(2017-10-27).
* nucleo-f334r8: Add highpri example configuration. From Mateusz
Szafoni (2017-10-28).
* STM32 F33xx: Add ADC DMA support to STM32F33 configuration. From
Mateusz Szafoni (2017-10-28).
* drivers/net: Remove the old, unfinished Crystal LAN driver. I don't
even have the hardware that it goes with anymore (2017-10-28).
* configs/mx1ads: This commit removes board support for the mx1ads
board. That board support was never completed and I no longer even have
the hardware. The unfinished board support is still available in the
Obsoleted repository if anyone would ever like to resurrect it
(2017-10-28).
* STM32 ADC: Added support for ADC's IO_ENABLE_TEMPER_VOLT_CH ioctl on
STM32F10XX and STM32F20XX. From Dmitriy Linikov (2017-10-30).
* STM32 F2: Fixed build for STM32F20XX platforms when
CONFIG_STM32_DMACAPABLE is enabled. From Dmitriy Linikov (2017-10-30).
* fs/userfs: This completes coding of the UserFS client and of the
UserFS feature in general. This feature is being merged to main now
because I believe it is innocuous. It is, however, untesed. The next
step will be to develop a test case to verify the feature. Uses Unix
domain local sockets instead of message queues. Easier to transfer big
data in local sockets than message queues (2017-10-30).
* Fix DEBUGASSERT() issues with nxhello on lc823450-xgevk
- sched/task: Remove DEBUGASSERT in task_exitstatus() and
task_groupexit()
- graphics: Change DEBUGASSERT condition in nx_runinstance()
From Masayuki Ishikawa (2017-10-31).
* Fix GPIO operation of STMPE811 driver.
1. STMPE811_GPIO_DIR was defined for register name and later was
redefined to be the pin direction mask for `stmpe811_gpioconfig`. I
decided to change register name to be STMPE811_GPIO_DIR_REG, and keep
pin direction mask STMPE811_GPIO_DIR, so that any external code that
already use this driver will be unchanged.
2. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0
for input, but `stmpe811_gpioconfig` set the opposite.
3. The call to `stmpe811_gpiowrite` from inside of
`stmpe811_gpioconfig` leaded to deadlock.
From Dmitriy Linikov (2017-10-31).
* sim/userfs: Add a configuration for testing the UserFS using
apps/examples/userfs (2017-10-31).
* Fixes a memory leak that is caused because the client message queue is
not unlinked after the client disconnects from the NX server. From
Masayuki Ishikawa (2017-10-31).
* drivers/wireless/ieee80211: Fix typos and spelling errors as needed
for Photon build. From Anthony Merlino (2017-11-01).
* net/icmpv6: Add some header file necessary for correct build. From
Anthony Merlinoo (2017-11-01).
* libc/userfs: Correct return value from dispatchers. Should return
zero on success, not the number of bytes sent (2017-11-01).
* net/ipforward: Fixes typo that caused build error when IP forwarding
was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as well. From
Anthony Merlino (2017-11-01).
* ieee802154: Simplifies notify() and rxframe() calls to a single
notify() call. dataind's and all other "notifs" are now "primitives"
which aligns with standard terminology From Anthony Merlino (2017-11-01).
* fs/userfs: Correct check for response type (2017-11-01).
* net/local: This commit modifies the Unix domain local socket design.
Local sockets are built on top of pipes. The Local socket
implementation maintained file descriptors to interrupt with the pipes.
File descriptors have the bad property that they are valid only while
running on the thread within the task that created the local socket.
As a policy, all internal OS implementations must use "detached" files
which are valid in any context and do not depend on the validity of a
file descriptor at any point in time. This commit converts the usage
of file descriptors to detached files throughout the local socket
implementation (2017-11-02).
* fs/userfs: There are some deadlock issues that make the UserFS
un-usable at the current time. Added to the TODO list; also feature is
now marked EXPERIMENTAL (2017-11-02).
* drivers/serial/serial.c: Optimize wait time in tcdram() for buffer
emptying. According to the specification, the close function must wait
until all data has been written before it closes the file (except
O_NONBLOCK is set). The maximum waiting time for this is not specified.
To be able to edit the file list of the process, the close function
has to lock the file list semaphore. After that the close function of
the serial driver is called.
Waiting for the complete transmission of all data is done in the
serial driver. This causes the semaphore to remain locked until all
data has been sent. However, no other thread of the process can edit
the file list for that time (open, close, dup2, etc.). This is not
optimal in a multithreaded environment. Therefore, we have to keep
the waiting time within the driver as short as possible. From Frank
Benkert (2017-11-02).
* drivers/loop: Don't use file descriptors... Use the internal file
system interfaces so that the loop device can be shared across threads
(2017-11-02).
* drivers/mtd/filemtd.c: Don't use file descriptors... Use the internal
file system interfaces so that the loop device can be shared across
threads (2017-11-02).
* mac802154: Fixes a warning for unused variable and returns -1 from
macnet_notify() if event is not used. From Anthony Merlino (2017-11-03).
* drivers/lcd/max7219.c: Add support to MAX7219 LED Matrix as LCD
interface. From Alan Carvalho de Assis (2017-11-04).
* configs/stm32f103-minimum: Add board support for MAX7219 LED Matrix
controller. From Alan Carvalho de Assis (2017-11-04).
* stm32f334-disco, nucleo-f334r8: add missing ram_vectors configuration
in linker script. From Mateusz Szafoni (2017-11-04).
* Kconfigs: Add CONFIG_LCD_UPDATE that works like CONFIG_NX_UPDATE but
can be enabled without enabling the graphics subsystem (2017-11-04).
* SAMv71-XULT: Remove non-functional framebuffer configuration
(2017-11-05).
* stm32f103-minimum: Remove warning when selecting MMCSD support, Add
board_usbmsc_initialize to stm32f103-minimum. From Alan Carvalho de
Assis (2017-11-05).
* nucleo-f334r8/highpri: missing ADC trigger configuration. From
Mateusz Szafoni (2017-11-05).
* stm32f334-Disco: beginning of lower-half driver for SMPS (buck-boost
onboard converter). From Mateusz Szafoni
* Misc. STM32 Fixes:
- STM32 HRTIM: add helper macros
- STM32F33xxx ADC: injected channels support, fix some definitions,
add interface to disable interrupts
From Mateusz Szafoni (2017-11-05).
* fs/userfs: This commit converts the underlying IPC used by the
UserFS from Unix domain local sockets to UDP LocalHost loopback
sockets. The problem with the local sockets is that they do require
operations on the top level psuedo-file system inode tree. That tree
must be locked during certain traversals such as enumerate mountpoints
or enumerating directory entries.
This conversion is unfortunate in the sense that Unix local domain
sockets are relatively lightweight. LocalHost UDP sockets are much
heavier weight since they rely on the full UDP stack. If anyone is
up for a complete redesign, then using some shared memory and a POSIX
message queue would be lightweight again.
This commit also fixes several bugs that were not testable before the
inode tree deadlock. I cannot say that the logic is 100% stable but
it does not have basic functionality (2017-11-05).
* fs/userfs: Fix return value from dup method. In order to return a
pointer, the parameter must be a pointer to a pointer (2017-11-06).
* configs/stm32f429i-disco/ltdc: This configuration has been deleted
because it violated the portable POSIX OS interface. It used
apps/examples/ltdc and include ltdc.h and dma2d.h which were also
removed for the same reason (2017-11-06).
* arch/arm/include/stm32 and stm32f7: Remove ltdc.h and dma2d.h.
Those header files in that location permitted inclusion into
application space logic and, hence, facilitated and encouraged calling
into the OS and violating the portable POSIX OS interface. The
definitions in those header files were move the appropriate location in
the counterpart, architecture specific files at arch/arm/src/stm32 and
stm32f7 dma2d.h and ltdc.h (2017-11-06).
* lpc43xx Ethernet: Fix some backward logic setting full-duplex and
100mbps when autoconfiguration is disabled. Noted by Anonymous in
Issue #76 (2017-11-06).
* sched/sched/sched_cpuselect.c: For SMP, In order to find the cpu
with the lowest priority thread, we have to remember the already found
lowest priority. Noted by Anonymous in Issue #75 (2017-11-06).
* Add IPL2 support for LC823450
- arch/arm/src/lc823450: Add IPL2 support
- configs/lc823450-xgevk: Add IPL2 support
From Masayuki Ishikawa (2017-11-07).
* drivers/audio: Add WM8774 support. From Masayuki Ishikawa
(2017-11-08).
* lc823450-xgevk audio support
- arch/arm/src/lc823450: Add IPL2 support
- configs/lc823450-xgevk: Add IPL2 support
- libc/audio: Fix compilation error in lib_buffer.c
- arch/arm/src/lc823450: Add I2S support
- configs/lc823450-xgevk: Add WM8774 support
From Masayuki Ishikawa (2017-11-08).
* drivers/usbdev/rndis.c: fix packet receiving logic. The logic didn't
take single-byte termination frames in account. From Sakari Kapanen
(2017-11-08).
* net/icmpv6/icmpv6_radvertise.c: Add option to manually specify router
prefix. From Sakari Kapanen (2017-11-08).
* net/icmpv6/icmpv6_radvertise.c: set the prefix length to
preconfigured value (2017-11-08).
* STM32 L4 RCC: restore backup-registers after backup-domain reset.
From Jussi Kivilinna (2017-11-08).
* STM32 L4: Build stm32l4_idle.c only if CONFIG_ARCH_IDLE_CUSTOM is
not enabled. From Jussi Kivilinna (2017-11-08).
* drivers/power/bq2429x.c: Add BATIO_OPRTN_SYSON for enabling BATFET
after SYSOFF. From Jussi Kivilinna (2017-11-08).
* lc823450 auto LED support
- arch/arm/src/lc823450: Add auto LED for CPU activity
- configs/lc823450-xgevk: Add auto LED support
From Masayuki Ishikawa (2017-11-09).
* tools/configure.sh: This commit adds a -m option for macOS. For
anyone not aware, Apple renamed OSX to macOS recently; thus the 'm'
instead of 'o'. This does not change the other uses of *_OSX to macOS.
From jeditekunum (2017-11-09).
* tools/configure.c: Update functionality to match last change to
tools/configure.sh (2017-11-10).
* STM32L4 serial PM interface improvements: Check rx/tx buffers for
pending data in pmprepare. Remove adhoc PM interfaces and move serial
suspend functionality behind CONFIG_PM. From Jussi Kivilinna
(2017-11-10).
* procfs: Fix uptime being clse to maximum 32-bit value in certain
config. From Juha Niskanen (2017-11-10).
* libc: Add support for readv() and write(). Also includes some
cosmetic changes to some unrelated files (2017-11-11).
* libc/signal: Add support for sigwait() (2017-11-11).
* sched/signal/sig_nanosleep.c and libc/time/lib_nanosleep.c:
Implement clock_nanosleep(). nanosleep() is now reduced to a libc
wrapper around clock_nanosleep() (2017-11-11).
* Changes from review of clock_nanosleep(): Misplaced right bracket,
but return value in one failure case (2017-11-11).
* include/netinet/tcp.h: Add trivial standard tcp.h header file
(2017-11-12).
* Trivial re-ordering of socket option bit numbers to match order
presented on OpenGroup.org (2017-11-12).
* arch/arm/src/stm32/stm32f33xx_adc.c: Eliminate warnings about
cj_channels and j_chanlist being set but not used (2017-11-12).
* configs/stm32l476-mdk: Add support for the on-board LEDs (2017-11-12).
* include/netinet/tcp.h: Add trivial standard tcp.h header file
(2017-11-12).
* configs/stm32l476-mdk: Repartition bring-up logic so that it is more
like other board directories. Add support for USERLED driver. Add
bring-up initialization logic for the USERLED driver (2017-11-12).
* drivers/usbdev/rndis.c: Fix some issues in rndis.c Introduce
rndis_transmit() and change rndis_rxdispatch() to avoid packet
corruption. Introduce max packet size for dual speed whichis mainly
used for high speed mode. Fix adjusting MTU warning on Linux host. Fix
data corruption if a packet size excceds MTU. NOTE: Max packet size is
not configured dynamically. This should be fixed in the future
version. Change HPWORK to ETHWORK. NOTE: In the commit 07b98ccbb5,
max packet size of bulkout was assumed to be 64. In this commit,
priv->epbulkout->maxpacket is used instead. From Masayuki Ishikawa
(2017-11-13).
* configs/stm32f4discovery: RNDIS support on STM32F4Discovery
- Add rndis configuration. NOTE: STM32F4Discovery + DM-STF4BB
- Add stm32_netinit.c to avoid a compilation error
- Add rndis initialization in stm32_bringup.c
NOTE: MAC address for the host side starts 0xaa. This assignment
scheme should be fixed later. From Masayuki Ishikawa (2017-11-13).
* configs/: apps/system/free has been deleted because it violates the
portable POSIX OS interface. Remove CONFIG_SYSTEM_FREE=y from all
defconfig files (2017-11-13).
* fs/procfs/fs_procfsprogrem: Add /proc/progmem. This is an
alternative way to get the information that was previoulsy available in
apps/system/free. apps/system/free was removed beause it made illegal
calls into the OS violating the portable interface. This new procfs
entry provides the same information with no such violation (2017-11-13).
* Nucleo-F746ZG: Use the serial console over /dev/ttyACM0 by default.
The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is
better to use the serial over the /dev/ttyACM0 that is created
automatically when the board is plugged in the computer. From Alan
Carvalho de Assis (2017-11-13).
* SAMA5/SAMv7: It is necessary to disable pre-emption and interrupts
around a loop that copies TX data into the hardware in order to avoid a
TX data underrun condition. From Anthony Merlino (2017-11-13).
* fs/profcs: Add file to show user space heap. This replaces the NSH
free command (2017-11-13).
* fs/procfs: Optimization of previous commits. /proc/umm and
proc/progmem are deleted. /proc/kmm is renamed /proc/meminfo and
contains the output that was in all three files previously (2017-11-13).
* configs/stm32f439i-disco: Add an fb configuration (2017-11-13).
* configs/stm32f429i-disco/fb: Fix a compile issue. Disable all NX
features in the fb configuration. NX is not needed (2017-11-13).
* configs/stm32f429i-disco/fb: Refactor initialization logic so that
it is a little more like other boards. Remove double initialization of
framebuffer or LCD drivers (whichever is enabled) (2017-11-13).
* configs/stm32f429i-disco: Add logic to auto-mount procfs. Enable
procfs in all configurations that use NSH (2017-11-13).
* configs/stm32f429-disco/fb: Enable support for the STMPE811
touchscreen controller and also for the apps/exmaples/touchscreen test
(2017-11-14).
* Remove CONFIG_GRAN_SINGLE. It adds no technical benefit (other than
some minor reduction in the number of interface arguments) but adds a
lot of code complexity. Better without it (2017-11-14).
* mm/mm_gran: Add a function to get information about the state of the
granuale allocator (2017-11-14).
* fs/procfs: Add logic to show the state of the page allocator in
/proc/meminfo (2017-11-14).
* mm/mm_gran: Fix some issues found during test of the new gran_info()
interface (2017-11-14).
* configs/stm32429i-disco/src: Fix a compile error when
CONFIG_BOARD_INITIALIZE is defined (2017-11-14).
* configs/lc823450-xgevk: Fix compilation errors on Cygwin. From
Masayuki Ishikawa (2017-11-15).
* mm/mm_gran: Combine some common logic into a function (also fixes a
subtle bug) (2017-11-15).
* Build system: Fix CONFIG_BUILD_KERNEL logic directories that have
ubin and kbin subdirectories. Conditional logic was fine for
CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless
dependencies if CONFIG_BUILD_KERNEL (2017-11-15).
* arch/arm/src/lpc43: Add LPC43xx CAN driver. From Alexander Vasiljev
(2017-11-15).
* arch/arm/src/lpc43: UART_RX pins should be configured with input
buffers enabled. Otherwise it cannot be read. From Alexander Vasiljev
(2017-11-15).
* STM32F429i-Disco: Convert NxWM configuration to use LTDC framebuffer
driver instead of SPI serial. Also reduce number of layers from 4 to 1
in fb configuration. Only one layer is used (2017-11-15).
* configs/stm32f429i-disco/ide: Remove the uVision IDE setup that goes
along with the ltdc configuration that was removed on 2017-10-28
(2017-11-16).
* configs/stm3220g-eval/ide: Remove the uVision IDE setup. This has
not been used for years and it a maintenance problem for me (2017-11-16).
* arch/arm/src/xmc4: Fix XMC4xxx USIC UART sginal to be high level when
in idle. From Alan Carvalho de Assis (2017-11-16).
* arch/arm/src/xmc4: Kconfig was not selecting XMC4_USIC for USIC1.
From Alan Carvalho de Assis (2017-11-16).
* configs/xmc4500-relax: Add config for UART3 on RXD P0.0 and TXD P0.1
pins. From Alan Carvalho de Assis (2017-11-16).
* STM32 F72xx and F73xx: Add register definition header files and
clocking logic. From Bob Feretich (2017-11-17).
* STM32F7: Fix typos in two RCC register definition header files.
From Bob Feretich (2017-11-17).
* STM32F7: Completes architecture support for the STM32 F72x and F73x
families. Adds support for the Nucleo-144 boards with STM32F722. From
Bob Feretich (2017-11-18).
* configs/sim: Disable NX graphics support in the fb configuration.
* libnx: Changes to allow the font subsystem to be built without
enabling the entire graphics system (CONFIG_NX). Adds CONFIG_NXFONTS
and CONFIG_NXGLIB. NX and NXFONTS are still pretty heavily entangled.
Needed to duplicate some Kconfig setting for NXFONTs if it can be
configured and built independently of NX. Also includes some
build-related fixes (2017-11-18).
* configs/mcb1700: Add support for Keil MCB1700 board. From Alan
Carvalho de Assis (2017-11-18).
* configs/open1788/pdcurses: Add a configuration for testing pdcurses
(2017-11-19).
* C library: Fix sscanf character conversion (%c): do not add '\0' at
the end as for strings, cause, for example, parsing one character will
fill two bytes: character itself and zero one '\0' after it, so will
overflow one byte variable argument and corrupt memory for variables
allocated after it. From Oleg Evseev (2017-11-19).
* arch/arm/src/xmc4:xmc4_uart_configure() expects the channel# not
uartbase as an input parameter. From Alan Carvalho de Assis
(2017-11-20).
* configs/open1788: Add support for the discrete joystick driver.
Update the pdcurses configuration to use apps/examples/djoystick
(2017-11-20).
* net/icmpv6: icmpv6_input() needs to set d_len to 0 after consuming
echo reply, otherwise, garbage will get sent out. From Anthony Merlino
(2017-11-20).
* configs/open1788: Enable discrete joystick input. This is
sufficient to get through all menuing that does not require text input
(2017-11-20).
* net/sixlowpan: Fix an endian-ness problem in 6LoWPAN address
decompression. From Anthony Merlino (2017-11-20).