Set CPU_ENABLE_ROBUST_THREAD_DISPATCH to TRUE. In this case the
interrupts are always enabled during a context switch even after
interrupt processing (see #2751). Remove the CPSR from the context
control since it contains only volatile bits.
Close#2954.
Adding modified FreeBSD headers to synchronize RTEMS termios with
FreeBSD. Modify termios to support dedicated input and output baud for
termios structure. Updated BSPs to use dedicated input and output baud
in termios structure. Updated tools to use dedicated input and output
baud in termios structure. Updated termios testsuites to use dedicated
input and output baud in termios structure.
Close#2897.
Use r8 instead of r5 to slightly optimize _CPU_Context_switch(). It is
not a big deal, however, we already assume r12 is used by
_CPU_Context_switch(). Treat r5 the in same way.
The driver already was developed with SMP in mind however SMP was
disabled waiting for final fixups and testing.
The new function to control the affinity of the ISR was added
but does not work for now since the LEON BSP does not reroute
IRQs between CPUs during run-time:
grspw_isr_affinity()
In shared interrupt systems it might be a problem to handle the interrupt
regardless of the interrupt is enabled. Now the same approach to the
DMA RX/TX interrupt in the ISR is taken.
This patch introduces some new options to let the user control when
the ISR shall disable DMA RX/TX interrupt. The ISR can be set in three
modes when a RX/TX DMA interrupt is asserted:
1) ISR will always clear both RX/TX DMA interrupt enable. (DEFAULT).
2) ISR will never never RX or TX DMA interrupt enable, ISR will
leave RX/TX DMA interrupt enable untouched.
3) ISR will clear the interrupt enable(s) causing the interrupt,
this allows separate RX and TX IRQ handling.
This patch is backwards compatible since default mode 1) is activated
when the grspw_dma_config.flags DMAFLAGS2_IRQD field is 0.
Added new function:
* grspw_dma_ctrlsts() - Read value of DMA CTRL/STS reg.
* grspw_dma_enable_int() - re-enable interrupt, used when
implementing a custom work-task.
Following changes:
* possible for user to create work-tasks and assign custom message queues.
* possible for user to override default ISR message to implement custom
handling of DMA error, DMA RX/TX and link error from ISR.
* work-task now checks message to determine which work to perform rather than
looking at registers only, this makes it possible for user to implement
custom handling.
* exported work-queue message definitions and separated them so that a user
can assign custom DMA RX/TX handling of a specific DMA channel.
* added a work-task event callback to let user add custom handling or
monitoring of DMA Stop, DMA error, Link Error or work-task exits etc.