Newer
Older
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
- 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 enpoints 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 purpse: 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 Utilies: 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 Utilies: 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 tht 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 Unitilities (apps/system)
- apps/system/composite: Update to apps/system/composite assocated 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 deamon and 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 dont 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.
- Nework 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 tht 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 mutiple 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.
* Expressif 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 "bootup 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 cant 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 then DMA
access to memory. Unfortunately USB and SDHC have there 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
(inthe 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 greather
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 ouput has to be FILE01,
FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000",
for next invocation "FILE200000" and so on. But it's good, if the
ouput 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 ouput 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 ouput in ceil() API. Ex:for input x = 1.0,
the output should be 1.0, but the ouput 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 subsitutions.
* 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 Utilies: 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 Utilies: apps/wireless:
- wireless/ieee802154/i8sak: Need to increment the next_saddr after
each successful association.
* System Unitilities (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.