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
13104
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
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. Very many just and
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).
13133
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
13240
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
* 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 coherernt cache setup to earlier in
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).