Newer
Older
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
are currently missing in ARMv7-R. This commit adds those missing
Kconfig entries. Actual implmenetation for those functions will be
added in the subsequent patches. From Heesub Shin (2016-11-06).
* arch/arm/src/armv7-r: add cache handling functions. This commit
adds functions for enabling and disabling d/i-caches which were
missing for ARMv7-R. From Heesub Shin (2016-11-06).
* arch/arm/src/armv7-r: fix typo in mpu support. s/ARMV7M/ARMV7R/g.
From Heesub Shin (2016-11-06).
* arch/arm/src/armv7-r: fix CPSR corruption after exception handling.
A sporadic hang with consequent crash was observed when booting. It
seemed to be caused by the corrupted or wrong CPSR restored on return
from exception. NuttX restores the context using code like this:
msr spsr, r1
GCC translates this to:
msr spsr_fc, r1
As a result, not all SPSR fields are updated on exception return.
This should be:
msr spsr_fsxc, r1
On some evaluation boards, spsr_svc may have totally invalid value at
power-on-reset. As it is not initialized at boot, the code above may
result in the corruption of cpsr and thus unexpected behavior.
From Heesub Shin (2016-11-06).
* arch/arm/src/armv7-r: fix to restore the Thumb flag in CPSR. Thumb
flag in CPSR is not restored back when the context switch occurs while
executing thumb instruction. From Heesub Shin (2016-11-06).
* sched/wqueue: When queuing new LP work, don't signal any threads
if they are all busy. From Heesub Shin (2016-11-06).
* sched/wqueue: Signal sent from work_signal() may interrupt the low
priority worker thread that is already running. For example, the worker
thread that is waiting for a semaphore could be woken up by the signal
and break any synchronization assumption as a result. It also does not
make any sense to send signal if it is already running and busy. This
commit fixes it. From Heesub Shin (2016-11-06).
* arch/arm/src/stm32f7: STM32F7 SD/MMC driver depends on
CONFIG_SDIO_DMA which is only defined in stm32/Kconfig. Changed to
CONFIG_STM32F7_SDMMC_DMA and defined in stm32f7/Kconfig (2016-11-07).
* arch/arm/src/stm32: Add PWM driver support for STMF37xx. The
changes have been tested successfuly for TIM4 and TIM17 (different
IPs). From Marc Rechté (2016-11-07).
* sched/semaphore: sem_trywait() no longer modifies the errno value
UNLESS an error occurs. This allows these functions to be used
internally without clobbering the errno value. From Freddie Chopin
(2016-11-09).
* arch/arm/src/stm32l4: Change the way to configure quadrature encoder
prescalers. From Sebastien Lorquet (2016-11-09).
* libc/unisted: Patch brings strtol() and related functions more
conformant with POSIX. Corner cases like strtol(-2147483648, NULL, 10)
now pass clang -fsanitize=integer without warnings. From Juha Niskanen
(2016-11-10).
* drivers/sensors and configs/stm32f103-minimum: Add Vishay VEML6070
driver and support for STM32F103-Minimum board. From From Alan
Carvalho de Assis(2016-11-13).
* Misoc LM32: Corrects a bug that never occured in qemu on simulation or
real fpga. The error was that the r1 register was being modified out of
context switching and not restoring it. From Ramtin Amin (2016-11-14)
* arch/arm/src/samv71: A problem occurred with the SAMV7 USBDEVHS driver
if the USB cable is unplugged while a large amount of data is send over
an IN endpoint using DMA. If the USB cable is plugged in again after a
few seconds it is not possible to send data over this IN endpoint again,
all other endpoints work as expected.
The problem occurs because if the USB cable is unplugged while an DMA
transfer is in flight the transfer is canceled but the register
SAM_USBHS_DEVDMACTRL is left in an undefined state. The problem was
fixed the problem by resetting the register SAM_USBHS_DEVDMACTRL to a
known state. Additionally all pending interrupts are cleared.
From Stefan Kolb (2016-11-14).
* configs/esp32-core: ESP32 Core v2: Add configuration to supporting
linking NuttX for execution out of IRAM (2016-11-14).
* libc/unistd: sleep() was returning remaining nanoseconds (kind of),
instead the remaining seconds. From Eunbong Song (2016-11-15).
* sched/irq: Fixes for the SMP case: (1) Change order for SMP case in
enter_critical_section: (1) Disable local interrupts BEFORE taking
spinlock and (2) If SMP is enabled, if any interrupt handler calls
enter_critical_section(), it should take the spinlock. (2016-11-15).
* arch/xtensa: Add EXPERIMENTAL hooks to support lazy Xtensa co-
processor state restore in the future (2016-11-16).
* Add some experimental changes to enter/leave_critical_section to
deal with the case where interrupts are disabled only on the local
CPU (2016-11-16).
* sched/irq: Add logic to handled nested calls to
enter_critical_section() from interrupts handlers (with SMP)
(2016-11-16).
* drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call.
This calls directly from the timer driver into application code. That
is non-standard, non-portable, and cannot be supported (2016-11-17).
*drivers/timer: Add timer driver hooks to support signal notification
of timer expiration. Commented out because invasive interface changes
would also be required to complete the implementation (2016-11-17).
* arch/arm/src/armv7-m: Fix double allocation of MPU region in mmu.h
(2016-11-17).
* timer driver: Use signal to notify of timer expiration. Add generic
argument so that there can be additional usage. From Sebastien Lorquet
(2016-11-17).
* All timer lower half drivers. Port Sebastien's changes to all all
other implementations of the timer lower half. Many changes and
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
untested. Expect some problems. (2016-11-17).
* sched/irq: irq_csection() has a bad assumption in the SMP case. It
assumed that the state of certain variables. That was true on entry
into the interrupt handler, but might change to the execution of logic
within the interrupt handler (2016-11-18).
* config/ nucleo-l476rg: Add support for timers to nucleo l476. From
Sebastien Lorquet (2016-11-18).
* drivers/net: Add option to use low-priority work queue to all drivers
in drivers/net. Not yet added to all architecture-specific network
drivers (2016-11-18).
* sched/wdog: Most interrupt handling logic interacts with tasks via
standard mechanism such as sem_post, sigqueue, mq_send, etc. These all
call enter_critical_section and are assumed to be safe in the SMP case.
But certain logic interacts with tasks in different ways. The only one
that comes to mind are wdogs. There is a tasking interface that to
manipulate wdogs, and a different interface in the timer interrupt
handling logic to manage wdog expirations.
In the normal case, this is fine. Since the tasking level code calls
enter_critical_section, interrupts are disabled an no conflicts can
occur. But that may not be the case in the SMP case. Most
architectures do not permit disabling interrupts on other CPUs so
enter_critical_section must work differently: Locks are required to
protect code.
So this change adds locking (via enter_critical section) to wdog
expiration logic for the the case if the SMP configuration
(2016-11-18).
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
* SAM3/4: Add delay between setting and clearing the endpoint RESET bit
in sam_ep_resume(). We need to add a delay between setting and
clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay the
USB controller will (may?) not reset the endpoint. If the endpoint is
not being reset, the Data Toggle (DTGLE) bit will not to be cleared
which will cause the next transaction to fail if DTGLE is 1. If that
happens the host will time-out and reset the bus. Adding this delay
may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c, however this
has not been verified yet. From Wolfgang ReiÃnegger (2016-11-18).
* SAM3/4: Remove unused 'halted' flag in UDP driver. From Wolfgang
ReiÃnegger (2016-11-18).
* SAM3/4: Remove 'stalled' flag in UDP driver. The flag is not necessary.
The state of the endpoint can be determined using 'epstate' instead.
From Wolfgang ReiÃnegger (2016-11-18).
* USBMSC: Fix length of mode6 sense reply packet. From Wolfgang
ReiÃnegger (2016-11-18).
* configs/dk-tm4c129x: Typo fix. From Wolfgang ReiÃnegger (2016-11-18).
* Typo fix in sam_udp.c. From Wolfgang ReiÃnegger (2016-11-18).
* STM32: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul A.
Patience (2016-11-19).
* vfork(): Fix a race condition in the SMP case. Existing logic
depended on the fact that the child would not run until waitpid was
called because the child had the same priority as the parent. BUT
in the SMP case that is not true... the child may run immediately on
a different CPU (2016-11-19).
* arch/: Add option to use low-priority work queue to all Ethernet
drivers in arch that support CONFIG_NET_NOINTS (2016-11-19).
* sched/clock: Correct calculation for the case of Tickless mode with
a 32-bit timer. In that case, the calculation was returning
millisecond accuracy. That is not good when the timer accuracy is < 1
msec. From Rajan Gill (2016-11-19).
* sched/task: task_restart() test not supported on SMP systems. This is
not fully implemented (2016-11-19).
* This commit adds a new internal interfaces and fixes a problem with
three APIs in the SMP configuration. The new internal interface is
sched_cpu_pause(tcb). This function will pause a CPU if the task
associated with 'tcb' is running on that CPU. This allows a different
CPU to modify that OS data stuctures associated with the CPU. When the
other CPU is resumed, those modifications can safely take place. The
three fixes are to handle cases in the SMP configuration where one CPU
does need to make modifications to TCB and data structures on a task
that could be running running on another CPU. Those three cases are
task_delete(), task_restart(), and execution of signal handles. In
all three cases the solutions is basically the same: (1) Call
sched_cpu_pause(tcb) to pause the CPU on which the task is running,
(2) perform the necessary operations, then (3) call up_cpu_resume() to
restart the paused CPU (2016-11-20).
* task_restart: Make sure new task starts with pre-emption disabled and
not in a critical section (2016-11-21).
* Fix a typo in a spinlock macro (2016-11-21).
* Spinlocks: Added capability to provide architecture-specific memory
barriers. This was for i.MX6 but does not help with the SMP problems.
It is still a good feature (2016-11-21).
* Remove a assertion condition that appears to rarely cause false-alarm
assertions. Teported by Petteri Aimonen (2016-11-21).
* The examples/qencoder app was trying to init the encoder by a direct
call into the board, cheating in a local header to declare the normally
unavailable function prototype. From Sebastien Lorquet (2016-11-22).
* configs: All QE encoder files. Last change made timer hard-coded to 3.
Make configurable (2016-11-22).
* configs: Remove all traces of the no-longer existent ARCHBUTTONS
example. Remove all button configurations that depended on the
obsoleted ARCHBUTTON example (2016-11-22).
* nucleo-l476rg: Add better selection of timer (2016-11-22).
* implementation of dumpgpio for stm32l4, was required for pwm debug.
From Sebastien Lorquet (2016-11-22).
* SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting
for g_cpu_irqlock and CPU0 is waitin for g_cpu_paused (2016-11-22).
* Misoc: Add timer driver. From Ramtin Amin (2016-11-22).
* Misoc: Add commits and warnings about missing caculation of the timer
reload value (2016-11-22).
* SAM3/4: Name of method is now setcallback, not sethandler (2016-11-22).
* sam4s-xplained-pro/nsh: Configuration uses old, improper timer interface.
CONFIG_TIMER disabled in configuration. (2016-11-22).
* sam4s-xplained-pro: Remove obsolete timer initialization logic
(2016-11-22).
* Misoc LM32: Make system timer configurable via CONFIG_USEC_PER_TICK.
From Ramtin Amin (2016-11-23).
* LPC43xx: Add timer driver; configs/bambino-200e: Add support for timer
driver. From Alan Carvalho de Assis (2016-11-23).
* SMP: Fix backward condition in test (2016-11-23).
* ARMv7-A SMP: Add a little logic to signal handling (2016-11-24).
* Misoc LM32: Add signal handling logic. From Ramtin Amin (2016-11-24).
* SMP: Add spin_trylock(). Use this in conditions where other CPUs need
to stopped but we cannot call enter_critical_section (2016-11-24).
* Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik (2016-11-25).
* SMP: Fix yet another potential deadlock (2016-11-25).
* Enable CONFIG_RTC in the hymini-stm32v/nsh2 (kitchensink) config.
From Maciej Wójcik (2016-11-26).
* This adds support for keeping i.MX6 inter-processor communication data
in a non-cached address region (2016-11-26).
* i.MX6: Disable non-cached region support. Add SCU register definitions
(2016-11-26).
* i.MX6: Add some controls to enable SMP cache coherency in SMP mode
(2016-11-26).
* ARMv7-A: Fix some SCU SMP logic (2016-11-26).
* ARMv7-A/i.MX6: Modify handling of the SMP cache coherency
configuration so that it is identical to the steps from the TRM.
Makes no differenct, however (2016-11-27).
* The Smoothie project needs to compile C++ inside config/boardname/src/
to use with High Priority Interruption, then I modified the board
configs Makefile to support it. It works fine for the first time
compilation, but if we execute "touch config/boardname/src/Pin.cxx"
and execute "make" it will not detect that Pin.cxx was modified. I
think there is some other place I should modify, but I didn't find
it. From Alan Carvalho de Assis (2016-11-27).
* ARMv7-A/i.MX6 SMP: Move SMP coherent cache setup to earlier in
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
initialization of CPUn, n>0 (2016-11-27).
* ARMv7 GIC: SGIs are non-maskable but go through the same path as other,
maskable interrupts. Added logic to serialize SGI processing when
necessary (2016-11-27).
* sched_note: Extend OS instrumentation to include some SMP events
(2016-11-27).
* sched_note: Add spinlock instrumentation; In SMP configurations,
select to log only notes from certain CPUs (2016-11-28).
* Misoc LM3: Add Misoc Ethernet driver. Integrate network support into
configs/misoc/hello. Remove configs/misoc/include/generated directory.
I suppose the the intent now is that this is a symbolic link? DANGER!
This means that you cannot compile this code with first generating
these files a providing a symbolic link to this location! From Ramtin
Amin (2016-11-28).
* Add tools/showsize.sh (2016-11-28).
* configs/misoc: Add a sample directory containing generated sources.
This is really only useful for performing test builds. You really
must generate the Misoc architecture for a real-life build. From
Ramtin Amin (2016-11-28).
* sched_note: Permit spinlock and critical section notes in in-memory
buffer iff sched_not_get() interfaces is disabled (2016-11-28).
* STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence,
up to three interfaces. From Marc Rechté (2016-11-29).
* Back out a debug change that was included in commit (2016-11-29).
* i.MX6: Don't output the alphabet if CONFIG_DEBUG_FEATURES is not set
(2016-11-29).
* Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin
(2016-11-29).
* drivers/net/: Adapt all Ethernet drivers to work as though
CONFIG_NET_MULTIBUFFER were set. Remove all references to
CONFIG_NET_MULTIBUFFER (2016-11-29).
* stm32_otghshost: if STM32F446 increase number of channels to 16. From
Janne Rosberg (2016-11-30).
* usbhost_composite: fix end offset in usbhost_copyinterface(). From
Janne Rosberg (2016-11-30).
* usbhost_cdcacm: add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to supported
class and proto. From Janne Rosberg (2016-11-30).
* LPC43 SD/MMC: Correct some git definitions on SMMC control register
in lpc43_sdmmc.h. From Alan Carvalho de Assis (2016-11-30).
* STM32L4: Correct USART1/2 definitions. Use default mbed UART4
settings. From Sebastien Lorquet (2016-12-01).
* boardctl: Add new boardctl() command ,BOARDIOC_NX_START, to start the
NX server as a kernel thread (2016-12-01).
* GPDMA driver for the LPC43xx. The GPDMA block is basically the same
as the LPC17xx. Only the clock configuration is different and LPC43xx
has four different DMA request sources, where LPC17xx has only two.
From Alan Carvalho de Assis (2016-12-01).
* Remove RGMP and RGMP drivers (2016-12-02).
* i.MX6: Add an untested SPI driver taken directly from the i.MX1 port
(2016-12-02).
* Eliminate CONFIG_NO_NOINTS. There is no longer any support for
interrupt level processing of the network stack. Lots of files changed
-> lots of testing needed (2016-12-03).
* Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa
(2016-12-04).
* Add support for the SAM5CMP-DB board. From Masayuki Ishikawa
(2016-12-04).
* SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki
Ishikawa (2016-12-04).
* C Library: Allow option to enable IP address conversions even when the
IP address family is not supported (2016-12-04).
* SSD1306: Fix errors in SPI mode configuration. From Gong Darcy
(2016-12-04).
* SAMA5 does not build when executing from SDRAM before board
frequencies are not constant. Rather, the bootloader configures the
clocking and we must derive the clocking from the MCK left by the
bootloader. This means lots more computations. This is untested on
initial commit because I don't have a good PWM test setup right now
(2016-12-04).
* Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount
/proc on startup (2016-12-05).
* SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup
in board bring-up logic (2016-12-05).
* Remove all references to BOARDIOC_PWMSETUP and board_pwm_setup()
(2016-12-05).
* Remove all references to BOARDIOC_ADCSETUP and board_adc_setup()
(2016-12-05).
* Added Timers 2-5 and control of SAI and I2S PLLs. From David Sidrane
(2016-12-05).
* Added support for stmf469 SAI and I2S PLL configuration and STM446
fixes. From David Sidrane (2016-12-05).
* Expanded otgfs support to stm32F469 and stm32f446. Added missing bits
definitions, Used stm32F469 and stm32f446 bit definitions, Removed
unsed header file. From David Sidrane (2016-12-05).
* Remove BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the
board initialization logic just like every other device driver
(2016-12-06).
* STM32F7: Allow the config to override the clock edge setting. From
David Sidrane (2016-12-06).
* For Cortex-A9, should also set ACTLR.FW in SMP mode to enble TLB and
cache broadcasts. Does not fix SMP cache problem (2016-12-07).
* sched notes: Add additional note to see if/when CPU is started in SMP
mode (2016-12-07).
* EFM32: Fix a compilation error. From Pierre-noel Bouteville
(2016-12-07).
* pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop()
(2016-12-08).
* BUGFIX:STM32F427 was rebooting. Over reached family. From David
Sidrane (2016-12-08).
* Add pthread_setcanceltype() and pthread_testcancel() (2016-12-09).
* Added STM32F469 RAM size and deliberated STM32F446 size. From David
Sidrane (2016-12-09).
* Typo in stm32f76xx77xx_pinmap.h edited online with Bitbucket. From
David Sidrane (2016-12-09).
* stm32_allocateheap.c edited online with Bitbucket. From David Sidrane
(2016-12-09).
* LPC43xx SD card: Correct pin configuration options needed for SD card
pins. From Alan Carvalho de Assis (2016-12-09).
* pthread_mutex_destroy(): Fix an error in destroying a mutex which can
occur after a pthread has been canceled while holding the mutex
(2016-12-09).
* Add support for cancellation points (2016-12-09).
* Forgot to add some files in the last commit (2016-12-10).
* Correct some default font IDs. From Pierre-Noel Bouteville
(2016-12-10).
* task_delete() now obeys all cancellation point semantics (2016-12-10).
* Add task_setcancelstate(), task_setcanceltype(), and task_testcancel().
These are non-standard interfaces analogous to the correponding pthread_
interfaces that provide cancellation controls for tasks (2016-12-10).
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
* i.MX6 interrupt handling: Additional logic needed to handle nested
interrupts when an interrupt stack is used (2016-12-13).
* SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to
CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node
acknowledges the message sent. This will also occur if the device is
not connected to the can-bus. The CAN-Standard declares, that the Chip
has to retry a given message as long as it is not sent successfully (or
it is not cancelled by the application). Every time the chip tries to
resend the message an Acknowledge-Error-Interrupt is generated. At high
baud rates this can lead in extremely high CPU load just for handling
the interrupts (and possibly the error handling in the application). To
prevent this Interrupt-Flooding we disable the ACKE once it is seen as
long we didn't transfer at least one message successfully. From Frank
Benkert (2016-12-13).
* i.MX6: Remove non-cached, inter-cpu memory region. Not a useful
concept (2016-12-13).
* minnsh Configurations: Remove minnsh configurations and support logic:
up_getc() and lowinstream. This was an interesting exercise to see
just how small you could get NuttX, but otherwise it was not useful:
(1) the NSH code violated the OS interface layer by callup up_getc and
up_putc directly, and (2) while waiting for character input, NSH would
call up_getc() which would hog all of the CPU. Not a reasonable
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
solution other than as a proof of concept (2016-12-13).
* Calypso Boards: Remove all Calypso board configurations (2016-12-13).
* Calypso: Remove Calypso architecture support and support for Calypso
SERCOMM driver (2016-12-13).
* ESP32 core v2: Two changes (1) flushes the UART TX buffer in the esp32
serial shutdown routine. The ROM bootloader does not flush the FIFO
before handing over to user code, so some of this output is not
currently seen when the UART is reconfigured in early stages of
startup. And changes the openocd config file's default flash voltage
from 1.8V to 3.3V. This is not necessary right now, but may save some
hard-to-debug moments down the track (3.3V-only flash running at 1.8V
often half-works and does weird things...). From Angus Gratton
(2016-12-14).
* Xtensa ESP32: Add missing ENTRY() and RET() macros in C callable
assembly language. At one time I though the that the ESP32 support the
CALL0 ABI. I was mistaken so there may be a few more like this
(2016-12-14).
* Xtensa ESP32: Fix a couple of bugs associated with handling of CPU
interrupts (2016-12-14).
* Xtensa ESP32: Fix several build-related issues associated with vector
section (2016-12-15).
* Xtensa ESP32: Fix missing CALL0 ABI condition (2016-12-15).
* Xtensa EPS32: Make sure that all C callable assembly functions includes
ENTRY prologue and RET epilogue (2016-12-15).
* Xtensa ESP32: Fix windowspill register handling + Use r6, not r2 when
passing paramters with call4 (2016-12-16).
* Xtensa ESP32: Use r6, not r2 when passing paramters with call4
(2016-12-16).
* Xtensa ESP32: Correct a logic problem the prevented dumping the IDLE
thread's stack on an assertion (2016-12-16).
* Xtensa ESP32: Fix some missing SMP logic (2016-12-16).
* Xtensa ESP32: Basically a redesign of the interrupt dispatch logic
(2016-12-16).
* Xtensa ESP32: Level 1 interrupts should return via RFE (2016-12-17).
* Xtensa ESP32: One register getting clobber on context save (2016-12-17).
* STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane
(2016-12-17).
* CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be
initalized with correct functions if CONFIG_SERIAL_DMA is lit
(2016-12-17).
* Xtensa ESP32: Using wrong register to disable interrupts (2016-12-17).
* Xtensa ESP32: Fix clobbered a9 in co-processor context save/restore
(2016-12-17).
* Xtensa ESP32: Need to clone some logic for synchronous context switch.
Window spill logic in the conmon restores logic is inappropriate in
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
* sscanf(): Add scansets to the scanf function. Enabled
CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec (2016-12-17).
* Xtensa ESP32: Fix context save logic when called in window ABI
configuration. Add an IDLE stack. Don't depend on the mystery stack
received from the bootloader (2016-12-18).
* Xtensa ESP32: Need to spill registers to memory as the last dying
action before switching to a new thread (2016-12-18).
* ESP32 Serial: Add logic to prevent infinite loops in interrupt handler
(2016-12-18).
* Xtensa ESP32: Automatically mount /proc at start-up (2016-12-19).
* Xtensa ESP32: Corrects timer initialization and timer input frequency
(2016-12-19).
* Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu
(2016-12-20).
* Xtensa ESP32: Missing prologue/epilogue macros on C callable function
(2016-12-20).
* Xtensa ESP32: Update APP CPU startup logic to match current Expressif
example code. Fix errors APP CPU startup (2016-12-20).
* fs/procfs: Fix procfs status for SMP case (2016-12-20).
* Xtensa ESP32: Clock frequency is different if running from IRAM or is
booting from FLASH. This is a booltloader issue (2016-12-20).
* Xtensa ESP32: Basic port is function in both single CPU and dual CPU
SMP configurations. There is an NSH configuration for each CPU
configuration (2016-12-21).
* STM32 F4: Merge in support for the Olimex STM32 P407 board (2016-12-21).
* Xtensa ESP32: Add an OS test to verify the port (2016-12-22).
* Xtensa ESP32: Corrects a problem with dispatching to signal handlers:
Cannot vector directly to the signal handling function as in other ABIs
under the Xtensa Window ABI. In that case, we need to go through a
tiny hook when performs the correct window call (call4) otherwise
registers will be scrambled in the signal handler (2016-12-22).
* SAMV7 CAN: Make delete_filter functions more robust. From Frank
Benkert (2016-12-23).
* Xtensa ESP32: Add stack checking logic (2016-12-23).
* sched note: record ID enumeration now results on constant values; ID
values do not change with configuration. This makes writing
post-processing software much easier (2016-12-24).
* STM32 F3: Forgot to update chip.h for STM32F303x[BC]'s 4 ADCs
(2016-12-24).
* STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane
(2016-12-24).
Gregory Nutt
committed
* termios.h: Fix CRTSCTS define to include input and output flow.
From Lorenz Meier (2016-12-26).
* SMP: Enforce this rule: Tasks which are normally restored when
sched_unlock() is called must remain pending (1) if we are in a
critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs
still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In
those cases, the release of the pending tasks must be deferred until
those conditions are met (2016-12-26).
7.20 2017-xx-xx Gregory Nutt <gnutt@nuttx.org>
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
* i.MX6 SMP/NSH configuration: Enable examples/smp test (2016-12-27).
* SMP: There were certain conditions that we must avoid by preventing the
release of the pending tasks while withn a critical section. But this
logic was incomplete; there was no logic to prevent other CPUs from
adding new, running tasks while on CPU is in a critical section. This
commit corrects this. This is matching logic in sched_addreadytorun to
avoid starting new tasks within the critical section (unless the CPU is
the holder of the lock). The holder of the IRQ lock must be permitted
to do whatever it needs to do (2016-12-27).
* i.MX6: Fix clearing GPT status register. From Masayuki Ishikawa
(2016-12-28).
* SMP: Make checks for CPU lock set more robust. There are certains
conditions early in initialization on during interrupt handling where
things need to be done a little differently (2016-12-28).
* sched_cpulocked: Avoid use of spinlock. That has been reported to
cause a deadlock (2016-12-28).
* SMP: Fix a gap where we may try to make modifications to the task lists
without being in a critical sections. That permits concurrent access to
the tasks lists and many subtle problems. This fix just remains in the
critical section throughout the operation (and possible until the task
is restore in the event of a context switch). Makes a big difference in
stability (2016-12-28).
* SMP: Move sharable function to common file as irq_cpu_locked(). Use
irq_cpu_locked() in sched_unlock(). Use irq_cpu_locked() in
sched_removereadytorun() and sched_setpriority(). Use irq_cpu_locked()
in sched_mergepending() (2016-12-29).
* Add configuration support for builds with Ubuntu under Windows 10
(2017-01-01).
* Add support for Tom Thumb small mono-space font. From Alan Carvalho de
Assis (2017-01-03).
* Alternative way to encode font spacing for Tom Thumb font (2017-01-04).
* Graphics: Initial separation of font cache from graphics/nxterm. Now in
libnx/nxfronts where it can be shared with other grapics applications
(2017-01-05).
* Font cache: Fix a reference counting issue: count not be initialized
when font cache created. Fix initialization of a semaphore. Enforce
mutually exclusive access to the font cache Replace fixed-size array
with variable size link list. Font cache in libnx needs to use
context-specific memory allocators (2017-01-06).
* Add debug assertion in libdtoa to catch attempts to use floating point
output formats from within an interrupt handler. That will cause
assertions or crashes downstream because __dtoa will attempt to allocate
memory. From Pierre-noel Bouteville (2017-01-06).
* procfs: Correct to snprintf-related errors in fs_procfsproc.c.
Resolves issue #24 (2017-01-07).
* STM32F429i Discovery: Add support for NxWM on STM32F429i-Disco board.
From Alan Carvalho de Assis (2017-01-07).
* STM32F429i-DISCO: Enable keyboard input in nxwm configuration
(2017-01-07).
* STM32F428i-DISCO: Change NxWM cursor character from 137 (graphics
block) to 95 (underscore). NxWM is configured to use a 7-bit character
set so 137 is not a valid character code (2017-01-07).
* NX server: Correct message queue names. Should not be at /dev, but
rather relative to /var/mqueue (2017-01-08).
* NxWM configurations. If using a 7-bit character set, then the cursor
character cannot be 137 (graphic block). Use 95 (underscore) instead
(2017-01-08).
* packed_struct replaced by begin_packed_struct and end_packed_struct.
From Aleksandr Vyhovanec (2017-01-09).
* sched_note: Fix spinlock instrumentation. From Masayuki Ishikawa
(2017-01-12).
* SMP: Fix an error in critical section logic when performing a context
switch from an interrupt handler. The g_cpu_irqset bit was not being
set for the CPU so other CPUs did not know about the critical section
(2017-01-13).
* Kinetis: Added support for CHIP_MK60FN1M0VLQ12 chip. From Maciej
Skrzypek (2017-01-13).
* Kinetis: Fixed wrong MCG VDIV calculation on new NXP K60. From Maciej
Skrzypek (2017-01-13).
* Kinetis Serial: Fixed compile error when UART5 is selected. From Maciej
Skrzypek (2017-01-13).
* Kinetis: Need to set HAVE_UART_DEVICE when UART4 is selected. From
Maciej Skrzypek (2017-01-13).
* Kinetis MCG: Wrong FRDIV set in MCG_C1. From Maciej Skrzypek
(2017-01-13).
* Kinetis: New K60 has no Flex memory. From Maciej Skrzypek (2017-01-13).
* In all implementations of _exit(), use enter_critical_section() vs.
disabling local interrupts (2017-01-13).
* i.MX6: Corrects behavior of last SMP patch with i.MX6 (2017-01-13).
* SMP Signals: Fix some SMP signal delivery logic. Was not handling some
critical sections correctly and was missing logic to signal tasks
running on other CPUs (2017-01-14).
* STM32F103 Minimum: Add support for nRF24 on STM32F103-Minimum board.
From Alan Carvalho de Assis (2017-01-15).
* Kinetis: Add support for K64/K66 RTC lower half driver. From Neil
Hancock (2017-01-17).
* Networking: Fixed some issues that prevented ipv6 to work with ipv4
enabled. From Pascal Speck (2017-01-18).
* STM32 Oneshot: Fix logic so that it can support multiple oneshot timers
(2017-01-18).
* STM32L4: Port fix for multiple oneshot timers from STM32. Also fixes a
few issues with original STM32 implementation (2017-01-xx).
* SAM3/4: Add support for ATSAM4S4C. From Wolfgang ReiÃnegger (2017-01-18).
* Math library: Leverage optimized ARM functions from BSD license ARM file
(2017-01-19).
* Math library optimatizations for FPU only apply to ARMv8 which is not
yet supported (2017-01-20).
* Move optimized ARM memcpy functions from arch/arm/src/ to
libc/machine/. This is necessary for the PROTECTED and KERNEL build
modes. Otherwise, memcpy() will be built in to kernel space and not
accessible to applications (2017-01-20).
* libc: Fix ARMv7-A/R memcpy assembly (2017-01-20).
* ARM memcpy(): Use DWord vs. HWord offset. ARM 32-bit instructions must
be aligned to DWord boundaries and this gives us more range in the jump
tables (2017-01-20).
* Fix a compile error: in sched_cpuload.c:Line136, the variables ts and
secs are not defined if CONFIG_CPULOAD_ONESHOT_ENTROPY = 0. However,
these variables are used regardless of CONFIG_CPULOAD_ONESHOT_ENTROPY at
lines~180:onwards. From rg (2017-01-22).
* CPU load: Correct computation of the nominal period to use when the
source is a oneshot timer (2017-01-22).
* Kernel Modules: Module initializer may now return a symbol table
(2017-01-22).
* Modules: Extend the module interface so that we can access symbols
exported by the module (2017-01-22).
* Shared Libraries: In the FLAT build mode, kernel modules may be used to
provide minimal shared library functionality (2017-01-22).
* Shared libraries: Add a non-standard dllfnc.h function to set the
symbol table (2017-01-23).
* Olimex-stm32-p407: Add a NSH protected build configuration; Enable
procfs/ in all configurations (2017-01-23).
* SMP: Fix timer related issues: Round robin and sporadic scheduling
were only being performed for tasks running on the CPU that processes
the system timer interrupt. Similary, CPU load measurements were only
be processed for running on the CPU that receives the sampling interrupt
(2017-01-23).
* STM32 F7: Added missing ARCH_HAVE_RESET for F7. From David Sidrane
(2017-01-23).
* STM32: Add missing STM32_BKP_BASE. From David Sidrane (2017-01-23).
* Configurations that enable OSTEST must not disable signals (2017-01-24).
* Add missing sched_note_*() calls to sam4cm SMP functions (2017-01-24).
* Fix return falue if x is NaN. From Aleksandr Vyhovanec (2017-01-25).
* MMCSD_SDIO: Only wait for card ejected if card detection is supported.
From Alan Carvalho de Assis (2017-01-26).
* LPC43 pinset definitions: Add more 1 bit to pinset to reach
SFSCLK0-SFSCLK3. Remove PINCONFIG_DIGITAL. From Alan Carvalho de Assis
(2017-01-26).
* sched/modules: Add support for dependencies between modules (2017-01-27).
* Back out use on inline functions to access 16-bit registers. The inline
functions were a work-around for misbehaving compiler years and years
ago. The mon standard macro-ized version should work just fine
(2017-01-27).
* Olimex STM32 P407: Add support for on-board microSD slot. Does not
work... Currently all commands to the SD card timeout (2017-01-28).
* libc/modlib: Add build a configuration logic for a shared module
library (2017-01-29).
* Module names are not needed in libc/modlib when the module library is
used only for shared library support (2017-01-29).
* Shared Libs: Implement module based shared libraries for the PROTECTED
mode build (2017-01-29).
* Typos withim mtd/ with Macronix MX25L. In NuttX/drivers/mtd/Make.defs
letters X between M and 25 are missing. Noted by Oleg Evseev
(2017-01-x30x).
* SAME70-Xplained: Clone some recent SAMV71-XULT changes (2017-01-30).
* Add capabilities() method to SDIO interface. Remove
CONFIG_SDIO_WIDTH_D1_ONLY. That should not be a global propertie, but
rather a capability/limitation of single slot when there may be multiple
slots (2017-01-31).
* Removed dmasupported() method from the SDIO interface. That is now a
bit in the capability set (2017-01-31).
* STM32F7 SDMMC: Add support for single bit operation on SDMMC2
(2017-01-31).
* STM32F103-Minimum: Fix a compile error.
CONFIG_STM32_TICKLESS_ONESHOT_TIMER is only defined in TICKLESS mode.
Somebody has been hand editing .config files (2017-01-31).
* Timer logic: Add private function prototypes to eliminate a warning;
Functions should not be inline because the may recurse (2017-01-31).
* STM32F7 SDMMC: Make sure that all SDMMC configuration variables begin
with STM32F7_; Eliminate CONFIG_SDMMC1/2_DMA altogether. Does not
appear to be used (2017-01-31).
* STM32F429-DISCO: Move some board initialization logic that is not
usuable because it lacks the configuration options to make it so
(2017-01-31).
* Cancellation points: Fix some backward logic in conditional compilation
(2017-02-02).
* Soft links: Add an implementation of readlink() (2017-02-03).
* inode_find: Now takes struct inode_desc_s type as input. That
structure includes some data storage. It was used within inode_find(),
but that means that the life of the data was the life of inode_find().
That data must persist longer. It is now provided by the caller so that
the life of the data persists for the entire life of the caller
(2017-02-05).
* tools/noteinfo.c: A hack tool that I use to analyze some sched_note
output. Needs a home and may be useful to others (2017-02-05).
* Pseudo File System: Add support for soft links in the top-level psuedo
file system (2017-02-05).
* Updates to Kinetis SDHC driver. From Marc Rechté (2017-02-06).
* SDIO interface: Handle all possible DMA combinations in all SDIO drivers
(2017-02-07).
* up_timer_initialize() is named incorrectly. The prefix should be the
architecture name, not up_ since it is private to the architecture.
up_timerisr() is similarly misnamed and should also be private since it
is used only with the xyz_timerisr.c files (2017-02-07).
* MCG defines are based on the MCG feature configuration. We define the
bits as a common set of names. This means that an index may be added to
a name i.e. LOCK is LOCK0 as that is the superset name. From David
Sidrane (2017-02-07).
* Fixes illdefined BOARD_FR_DIV with BOARD_FRDIV from MCG. Original
BOARD_FR_DIV was never used - that is a good thing because the value ws
defined shifted and the code also shifted it. From David Sidrane
(2017-02-07).
* Added MCG settings that are defiend on the K64 SoC. Added
BOARD_MCG_C2_FCFTRIM and BOARD_MCG_C2_LOCRE0 to configure the MCG_C2
register cleanup of some comments. From David Sidrane (2017-02-07).
* Better granualarity and erro checking of the board's MCG settings.
Allow for complete MCG_C2 definition from the boart.h file. Moved
#ifdef out of code by setting default values. Allow for individule bit
setting in MCG_C2 for BOARD_EXTCLOCK_MCG_C2, BOARD_MCG_C2_FCFTRIM,
BOARD_MCG_C2_LOCRE0. Added range and sanity checking. From David
Sidrane (2017-02-07).
* Cosmetic changes from review of last PR (2017-02-07).
* C library: Remove comments blocks before empty sections (2017-02-08).
* C Library: Add a very limited, first step implementation of setvbuf().
This is a collaborative effort. Alan Carvalho de Assis did the initial
prototype (2017-02-08).
* setvbuf: Add support for configuration of line buffering (2017-02-08).
* Bamboo-200E: Add netnsh configuration. From Alan Carvalho de Assis
(2017-02-08).
* Remove comment about being based on a Newlib implementation. That is
not true. This is an original work (2017-02-08).
* USBMSC: Always set LUN readonly flag. From Wolfgang ReiÃnegger
(2017-02-08).
* drivers/lcd: ssd1306_configspi() must have global scope (2017-02-09).
* SIM: Add readlink and setvbuf to nuttx-names.dat (2017-02-09).
* setvbuf: Add support for disabling I/O bufferin (2017-02-09).
* setvbuf: Fix some compile errors in first build of logic to
enable/disable buffering (2017-02-09).
* C Library: Clean-up buffer selections in Kconfig (2017-02-09).
* sem_open(): Fix a compiler error introduced with the setvbuf() changes
(2017-02-xx).
* MMC/SD SDIO: Some drivers need to start DMA before sending CMD24 and
some AFTER. From Alan Carvalho de Assis (2017-02-09).
* Kinetis SDHC driver fixes. From Marc Rechté (2017-02-09).
* Bambino-200E: Use .elf extension on all executables. From Alan Carvalho
de Assis (2017-02-09).
* Kinetis: Add support for K66 family. From David Sidrane (2017-02-09).
* Created a kinetis MCG versioning scheme pulled in by Kinetis chip.h
The motivations is to version the IP blocks of the Kinetis K series
family of parts.
This added versioning and configuration features for the Kinetis MCG IP
block.
It is envisioned that in the long term as a chip is added. The author
of the new chip definitions will either find the exact configuration in
an existing chip define and add the new chip to it Or add the MCG
feature configuration #defines to the chip ifdef list in
arch/arm/include/kinetis/kinetis_mcg.h In either case the author should
mark it as "Verified to Document Number:" taken from the reference manual.
The version KINETIS_MCG_VERSION_UKN has been applied to most all the
SoCs in the kinetis arch prior to this commit.
The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12, All K64 and K66
which not have Verified MCG configurations.
From David Sidrane (2017-02-09).
* Kinetis chip Adding K66 and inlcuding MCG versioning. This includes
arch/arm/include/kinetis/kinetis_mcg.h to bring in the MCG versioning
and defines the KINETIS_K66 family for the added SoCs:
--------------- ------- --- ------- ------- ------ ------ ------ -----
PART NUMBER CPU PIN PACKAGE TOTAL PROGRAM EEPROM SRAM GPIO
FREQ CNT FLASH FLASH
--------------- ------- --- ------- ------- ------ ------ ------ -----
MK66FN2M0VMD18 180 MHz 144 MAPBGA 2 MB â â KB 260 KB 100
MK66FX1M0VMD18 180 MHz 144 MAPBGA 1.25 MB 1 MB 4 KB 256 KB 100
MK66FN2M0VLQ18 180 MHz 144 LQFP 2 MB â â KB 260 KB 100
MK66FX1M0VLQ18 180 MHz 144 LQFP 1.25 MB 1 MB 4 KB 256 KB 100
From David Sidrane (2017-02-09).
* Kinetis: MCG defines are based on the MCG feature configuration. We
define the bits as a common set of names. This means that an index may
be added to a name i.e. LOCK is LOCK0 as that is the superset name.
From David Sidrane (2017-02-09).
* Fixes ill defined BOARD_FR_DIV with BOARD_FRDIV from MCG. Original
BOARD_FR_DIV was never used - that is a good thing because the value was
defined shifted and the code also shifited it. From David Sidrane
(2017-02-09).
* STM32: Fixes the bkp reference counter issue. From David Sidrane
(2017-02-09).
* STM32F7: Fixes the bkp reference counter issue. From David Sidrane
(2017-02-09).
* C Library: Add setbuf() which is a trivial wrapper around setvbuf()
(2017-02-09).
* tools/mkconfig.c: Add logic to keep all of the buffering options in sync
(2017-02-xx).
* VFS rename: Fix issues with rename to subdirectories and some softlink
issues (2017-02-11).
* Add logic to VFS rename: If target of rename exists and is a directory,
then the source file should be moved 'under' the target directory.
POSIX also requires that if the target is a file, then that old file
must be deleted (2017-02-11).
* rename: An inode with no operations should be treated like a directory
for the purposes of rename (2017-02-12).
* rename(): Correct more issues. (1) Move to the root directory in the
pseudo file system, (2) Fix path naming calculation when the path is the
root directory of a mounted file system, and (3) dont't do the rename if
the source and destination of the rename are the same (2017-02-12).
* Add basic fstat() support (2017-02-x12x).
* Add fstat support to binfs (2017-02-12).
* fstat: Add fstat() support to romfs (2017-02-12).
* fstat: Add fstat() support to unionfs (2017-02-12).
* I found an issue inside the cp15_coherent_dcache function in file,
arch/arm/src/armv7-r/cp15_coherent_dcache.S.
The "mcr CP15_BPIALLIS(r0)" instruction is used for invalidating entire
branch predictor. But the problem is, since this is the generic code
and can be called on any armv7-r architecture based CPU's. It is a
problem, if this instruction is called in uni processor configuration.
Because, BPIALLIS (c7, 0, c1, 6) instruction is only added as part of
the "Multiprocessing Extensions" (As per ARM® Architecture Reference
Manual /ARMv7-A and ARMv7-R edition)
So in my opinion, this instruction should be under SMP configuration. In
non-SMP configuration this instruction could become undefined.
From Manohara HK (2017-02-13).
* fstat: Add fstat() support to tmpfs (2017-02-13).
* fstat: Add fstat() support to nxffs (2017-02-13).
* fstat: Add fstat() support to nfs (2017-02-13).
* NFS: Use clock_gettime() instead of deprecated gettimeofday()
(2017-02-13).
* fstat: Add fstat() support to FAT. From Alan Carvalho de Assis
(2017-02-13).
* ROMFS: stat() and fstat() should always indicate that directories are
executable (2017-02-13).
* Kinetis SDHC - Enable clock after selected. From David Sidrane
(2017-02-14).
* Kinetis SPI and I2C are 0 based. The K whole family line has max 4 or
each. But the supported parts have the maximums listed below:
K46 and K66 3 SPI SPI0-SPI2
K46 and K66 4 I2C I2C0-I2C3
From David Sidrane (2017-02-10).
* Add support for NXP Freedom-k66f development board. From David Sidrane
(2017-02-14).
* Kinetis: Define Alternate addresses for IP blocks in both AIPS0 &
AIPS1. Added ALT version of RNGA, FTM2, DAC0 as a facility to later
define secondary access via AIPS1 to these peripherals. From David
Sidrane (2017-02-14).
* Kinetis: Add support for K66. From David Sidrane (2017-02-14).
* procfs: stat() left several fields in uninitialized state (2017-02-xx).
* hostfs: Add support for fstat() (2017-02-xx).
* procfs: Add support for fstat() (2017-02-14).
* smartfs: Add support for fstat() (2017-02-14).
* Kinetis Freedom K66F: Add Ethernet support. From David Sidrane
(2017-02-14).
* LPC43 serial: Correct conditional logic that selects /dev/ttySN.
Problem noted by Alan Carvalho de Assis (2017-02-14).
* Add usbnsh config to Bambino 200E board. From Alan Carvalho de Assis
(2017-02-14).
* procfs: Most stat() implementations were not initializating the
st_atime, st_ctime, and st_mtime fields (2017-02-15).
* Kinetis Support RMII clock source select. This defined the RMII clock
source select bits and allows the selection to be made via Kconfig.
From David Sidrane (2017-02-15).
* Kinetis PWM: Add FTM3 to PWM. From David Sidrane (2017-02-15).
* Kinetis:Freedom-K66F uses ENET_1588_CLKIN as RMII clock. From David
Sidrane (2017-02-15).
* Fix for SAMv7 SPI: DLYBS value wass calculated, but never written to any
registers. This led to incorrect timings on the bus. From Michael
Spahlinger (2017-02-16).
* C library: Add swab() (2017-02-16).
* C library: Add strtoimax and strtoumax (2017-02-16).
* C library: Add ffs(), rindex(), an index(). Add strings.h. Move
strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they belong in
strings.h.h, not string.h. bzero, bcmp, and bcopy are legacy functions;
the contemporary counterparts should be used instead (2017-02-16).
* Allow board to configure HSE clock in bypass-mode. This is needed to
enable HSE with Nucleo-F746ZG board. From Jussi Kivilinna (2017-02-17).
* C library: Add fstatfs(); fix a reference counting error in fstat()
(2017-02-17).
* Update cwchar. Add cwctype (2017-02-17).
* Add setbuf and setvbuf to cstdio (2017-02-17).
* Port STM32L4 SAI driver from MDK (2017-02-17).
* STM32L4: Bring power management logic from Motrola MDK into NuttX
(2017-02-18).
* STM32L4: Bring LPTIM driver in from the Motorola MDK (2017-02-18).
* drivers/sensors: Add driver for the ST L3GD20 3 axis gyro. From
raiden00 (2017-02-19).
* config/stm32f429i-disco: add support for the L3GD20 driver. From
raiden00 (2017-02-19).
* STM32L4 COMP: Port from Motorola MDK (2017-02-19).
* Add twr-k64f120m config and fix some ENET related problems. From Marc
Rechté (2017-02-xx).
* STM32 F7: stm32_allocateheap: allow use DTCM memory for heap. STM32F7
has up to 128KiB of DTCM memory that is currently left unused. This
change adds DTCM to main heap if CONFIG_STM32F7_DTCMEXCLUDE is not
enabled. From Jussi Kivilinna (2017-02-20).
* This should resolve issue #30: Audio Tone Generator and PWM Multiple
Output Channel options. I don't actually have a setup to verify it,
however (2017-02-20).
* drivers/tone.c: 50% duty needs to be expressed a a fixed precision
number (2017-02-21).
* Kinetis: Created a kinetis SIM versioning scheme pulled in by Kinetis
chip.h.
The motvations is to version the IP blocks of the Kinetis K series
family of parts.
This added versioning and configuration features for the Kinetis SIM IP
block.
It is envisioned that in the long term as a chip is added. The author
of the new chip definitions will either find the exact configuration in
an existing chip define and add the new chip to it Or add the SIM
feature configuration #defines to the chip ifdef list in
arch/arm/include/kinetis/kinetis_sim.h In either case the author should
mark it as "Verified to Document Number:" taken from the reference
manual.
The version KINETIS_SIM_VERSION_UKN has been applied to most all the
SoCs in the kinetis arch prior to this commit.
The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12, All K64 and K66
which not have Verified SIM configurations.
From David Sidrane (2017-02-21).
* Created a kinetis PMC versioning scheme pulled in by Kinetis chip.h.
The motivation is to version the IP blocks of the Kinetis K series
family of parts. This added versioning and configuration features for
the Kinetis PMC IP block. It is envisioned that in the long term as a
chip is added. The author of the new chip definitions will either find
the exact configuration in an existing chip define and add the new chip
to it Or add the PMC fature configuration #defines to the chip ifdef
list in arch/arm/include/kinetis/kinetis_pmc.h In either case the
author should mark it as "Verified to Document Number:" taken from the
reference manual.
The version KINETIS_PMC_VERSION_UKN has been applied to most all the
SoCs in the kinetis arch prior to this commit.
The exceptions are the CONFIG_ARCH_CHIP_MK60FN1M0VLQ12,
CONFIG_ARCH_CHIP_MK20DXxxxVLH7 All K64 and K66 have been verified PMC
configurations. From David Sidrane (2017-02-xx).
* Kinetis: kinetis_clockconfig uses the correct ACKISO. ACKISO is located
in the PMC_REGSC on the majority of the Kinetis SoCs. With the exception
of the MK40DXxxxZVLQ10 where ACKISO is located in LLWU_CS (2017-02-22).
* Kinetis: Refactor you use SIM_SOPT2_PLLFLLSEL, added warning. The
warning has been added because: SIM_SOPT2_PLLFLLSEL is a clock selection
that may feed many clock subsystem: USB, TPM, SDHCSRC, LPUARTSRC.
Therefore, there needs to be a global board level setting to select the
source for SIM_SOPT2_PLLFLLSEL and then derive all the sub selections
and proper fractions/divisors for each modules clock. From David
Sidrane (2017-02-22).
* Add support to QEncoder on STM32F103Minimum board. From Alan Carvalho
de Assis (2017-02-23).
* Olimex STM32 p407: Add external SRAM support. Unfortunately not usable
or testable unless you also disable the serial console (2017-02-23).
* drivers/spi/Kconfig: There is too much SPI in the configuration menu;
SPI Driver Support menu is empty. From Maciej Wójcik (2017-02-23).
* Kinetis: SIM add paramiterized SIM_CLKDIVx_xxFRAC|DIV macros. The makes
for cleaner board definitions. From David Sidrane (2017-02-xx).
* kinetis_enet.c add #define for number of loops for auto negotiation to
complete. From Marc Rechté (2017-02-23).
* STM32F4 Discovery: Fix issues with QEncoder support. From Alan Carvalho
de Assis (2017-02-23).
* sigtimedwait: When timer expires, up_unblock_task() is called. This is
okay in the single CPU case because interrupts are disable in the timer
interrupt handler. But it is insufficient in the SMP case. enter_ and
leave_critical_section() must be called in order to manage spinlocks
correctly (2017-02-23).
* Fix QEncoder driver, based on STM32L4 driver. From Alan Carvalho de
Assis (2017-02-xx).
* STM32 QEncoder. Enable clocking to the timer on QE setup; disable clock
on QE teardown (2017-02-23).
* Kinetis: Extend clockconfig to support SOPT2_PLLFLLSEL and
SIM_CLKDIV3. A board.h file can now specify the: 1)
BOARD_SOPT2_PLLFLLSEL to select the output of the SIM_SOPT2 MUX from:
MCGFLLCLK, MCGPLLCLK, USB1PFD, and IRC48MHZ. 2) If it defines
BOARD_SIM_CLKDIV3_FREQ then it must define BOARD_SIM_CLKDIV3_PLLFLLFRAC
and BOARD_SIM_CLKDIV3_PLLFLLDIV which wil be used to cpnfigure
SIM_CLKDIV3 [PLLFLLFRAC, PLLFLLDIV]. From David Sidrane (2017-02-23).
* Kinetis serial: Added configurable 1|2 stop bits. HAVE_SERIAL_CONSOLE
-> HAVE_UART_CONSOLE to be consistent with HAVE_LPUART_CONSOLE naming.
From David Sidrane (2017-02-23).
* Kinetis: Add LPUART serial driver and Clock configuartaion to
freedom-k66f board. Pin out LPUART0 for testing. Define
BOARD_SOPT2_PLLFLLSEL ti select MCGPLLCLK. Define
BOARD_SIM_CLKDIV3_FREQ etal to provide BOARD_LPUART0_FREQ. From David
Sidrane (2017-02-25).
* QEncoder: Add mechanism to assure that architecture-specific IOCTL
commands do not overlap (2017-02-25).
* include/nuttx/analog: Add an ioctl.h header file to coordinate analogic
driver IOCTL commands (2017-02-25).
* CAN: Add infrastructure to assure that all CAN IOCTL commands are
uniquely numbered (2017-02-25).
* Wireless and TSC: Add infrastructure to assure that all IOCTL commands
are uniquely numbered (2017-02-25).
* Add basic support for the STM32F334 and Nucleo F334R8 board. From
Mateusz Szafoni (2017-02-16).
* SAM3/4: GPIO bit numbering typo fixes. From Wolfgang ReiÃnegger
(2017-02-26).
* Add SDCard support over SPI on STM32F103-Minimum board. From Alan
Carvalho de Assis (2017-02-26).
* option to enable Memory Card debug output was hidden with SD cards
connected through SPI. From Maciej Wójcik (2017-02-27).
* Kinetis serial: Fixed up_rxint - did not disable the RX interuppts.
There was an OR where and AND NOT was needed. From David Sidrane
(2017-02-27).
* Kinetis:Add the configuring SIM_CLKDIV2[USBFRAC, USBDIV] in
kinetis_clockconfig. If a board.h provides BOARD_SIM_CLKDIV2_FREQ it
will configure the SIM_CLKDIV2 based on the additional provided
BOARD_SIM_CLKDIV2_USBFRAC and BOARD_SIM_CLKDIV2_USBDIV. The reason for
doing this globaly is that the output the SIM_CLKDIV2 divisor may be
also used for other IP blocks in future configurations (as is done for
SIM_CLKDIV3). From David Sidrane (2017-02-27).
* Kinetis: Refactor clocking in kinetis_usbdev. (1) Removed
SIM_CLKDIV2[USBFRAC, USBDIV] setting as it is now, done in
kinetis_clockconfig, (2) Use BOARD_USB_CLKSRC to select the clock source
to the USB block, (3) Removed CONFIG_TEENSY_3X_OVERCLOCK from the driver
as the board.h will now provide BOARD_SIM_CLKDIV2_USBDIV and
BOARD_SIM_CLKDIV2_USBFRAC to the kinetis_clockconfig. From David
Sidrane (2017-02-27).
* Kinetis: Use BOARD_xxxx to drive system clocking: (1) Shifted the clock
speed of MK20DX128VLH5 to 48 Mhz to be able to uses USB. (2) Set
BOARD_OUTDIV3 to 0 - there is no BOARD_OUTDIV3 on a MK20DX128VLH5 or