Commit Graph

14264 Commits

Author SHA1 Message Date
Sebastian Huber
b52513b3a4 bsp/atsam: Optimize SPI DMA transfer setup 2016-12-14 13:09:29 +01:00
Sebastian Huber
f104bd342f bsp/atsam: Simplify SPI DMA transfer setup 2016-12-14 13:09:29 +01:00
Sebastian Huber
49b6931842 bsp/atsam: Simplify SPI DMA initialization 2016-12-14 13:09:29 +01:00
Sebastian Huber
d0452eb965 bsp/atsam: Simplify SPI interrupt handler 2016-12-14 13:09:29 +01:00
Sebastian Huber
c78928fcac bsp/atsam: Remove superfluous irq field 2016-12-14 13:09:29 +01:00
Sebastian Huber
9035630f00 bsp/atsam: Remove duplicate SPI register field 2016-12-14 13:09:28 +01:00
Sebastian Huber
62e1e0ff03 bsp/atsam: Simplify SPI initialization 2016-12-14 13:09:28 +01:00
Sebastian Huber
3afa95bae0 bsp/atsam: Hide details of SPI driver 2016-12-14 13:09:28 +01:00
Sebastian Huber
1505eca59c bsp/atsam: Align SPI API with PIO_Configure() 2016-12-14 13:09:28 +01:00
Sebastian Huber
5dd02e9569 bsp/atsam: Avoid to power on/off the SPI module 2016-12-14 13:09:27 +01:00
Sebastian Huber
f74e2959de bsp/atsam: Speed up SPI DMA transfer start 2016-12-14 13:09:27 +01:00
Sebastian Huber
0396f60e59 bsp/atsam: Optimize transfer setup checks 2016-12-14 13:09:27 +01:00
Sebastian Huber
3417070dc9 bsp/atsam: No timeout for SPI DMA transfers 2016-12-14 13:09:27 +01:00
Chris Johns
c6eead1353 libdl: Add C++ exception support to loaded modules.
This has been tested on SPARC, i386, PowerPC and ARM.

Closes #2767.
2016-12-14 09:07:16 +11:00
Sebastian Huber
6a9282d9bb Rename is_internal to always_set_to_false
Update #2825.
2016-12-12 08:03:14 +01:00
Sebastian Huber
b6606e8d99 score: Remove fatal is internal indicator
The fatal is internal indicator is redundant since the fatal source and
error code uniquely identify a fatal error.  Keep the fatal user
extension is internal parameter for backward compatibility and set it to
false always.

Update #2825.
2016-12-09 08:47:51 +01:00
Chris Johns
28fda6279b testsuite: Add test states to the testsuit configuration files.
Change the testsuite configuration files to hold state information about
a test. The states are:

 exclude        - Do not build the test
 expected-fail  - The test is expected to fail
 indeterminate  - The test may pass or may fail

A message is printed just after the test's BEGIN message to indicate
there is a special state for the test. No state message means the test
is expected to pass.

This support requires tests are correctly written to the use standard
support to begin and end a test.
2016-12-07 17:22:41 +11:00
Sebastian Huber
f65dcc712a score: Fix ARM and PowerPC context initialization
Update #2751.
2016-12-02 13:11:13 +01:00
Chris Johns
e629076003 libdebugger: Build for ARM's without a CP15. 2016-12-02 15:39:56 +11:00
Joel Sherrill
de7b174e38 Remove sparc/sis BSP.
closes #2810.
2016-11-29 09:29:03 -06:00
Chris Johns
8fd465e67e arm/zynq: Wait for the UART TX FIFO to empty on reset. 2016-11-29 08:50:40 +11:00
Sebastian Huber
6a1b9e4152 sparc: Optimize _ISR_Handler()
Use _Thread_Do_dispatch() instead of _Thread_Dispatch().  Restore the
PSR[EF] state of the interrupted context via new system call
syscall_irqdis_fp in case floating-point support is enabled.
2016-11-28 16:08:43 +01:00
Martin Erik Werner
9bf9068bb8 or1k: Avoid multiple iterations over cache
Previously, if the cache range operations were called with a range that
was larger than the cache size, this would lead to multiple iterations
over the cache, which is unnecessary.

Limit this so that if the range is larger than the cache size, the
operations will only iterate over the whole cache once.
2016-11-28 07:30:44 +01:00
Martin Erik Werner
a59dd5cc6f or1k: Remove secondary functions in cache manager
Move the code of the _CPU_OR1K_Cache_{enable,disable}_* functions into the
equivalent exported _CPU_cache_{enable,disable}_* functions instead, and
then delete them, in order to reduce the code indirection and aid
readability.

This does not touch the currently unused prefetch, writeback, and lock
functions.
2016-11-28 07:30:44 +01:00
Martin Erik Werner
3b4ddafe99 or1k: Avoid excessive ISR toggle in cache manager
Previously _ISR_Local_{disable,enable}() was executed twice for each
cache line operation, and since operations over the entire cache were
implemented by calling the single-line operations in a loop, this made
those operations rather costly.

Fix the double-toggle by calling _OR1K_mtspr() directly, and removing
the now-unused corresponding _CPU_OR1K_Cache_* functions.

Fix the entire-operations by moving the ISR toggle outside of the
loop, and by calling _OR1K_mtspr() directly instead of the single-line
operations.

Also implement range functions, since otherwise the cache manager falls
back on looping over the single-line operations.
2016-11-28 07:30:44 +01:00
Martin Erik Werner
4dcaa48e4a or1k: Indent & comment fix in cache.c
* Fix indentation of variable declarations.

* Change commented-out asm -> __asm__ to meet c99 standard if
  uncommented.
2016-11-28 07:30:44 +01:00
Martin Erik Werner
e639c026b9 or1k: Add functions for entire cache operations
Add functions for flushing and invalidating whole cache.

Since we don't have system calls that can operate on anything more than
a single cache line, these simply retrieves the cache size and iterates
over the full size, invalidating each line.

The current implementation assumes that there's only one level of cache.

These changes were contributed by Antmicro under contract by ÅAC
Microtec AB.

Close #2602
2016-11-28 07:30:44 +01:00
Sebastian Huber
562b0a014a bsps/arm: Add Cortex-M DWT CPU counter 2016-11-24 11:54:28 +01:00
Sebastian Huber
4b5ff47d15 score: Fix interrupt profiling
Callers of _Thread_Do_dispatch() must have a valid
Per_CPU_Control::Stats::thread_dispatch_disabled_instant.

Call _Profiling_Outer_most_interrupt_entry_and_exit() with the interrupt
stack to not exceed Per_CPU_Control::Interrupt_frame.

Update #2751.
2016-11-24 08:46:20 +01:00
Sebastian Huber
01ac1db824 powerpc: Fix interrupt profiling for e6500 2016-11-24 08:46:20 +01:00
Sebastian Huber
3142727602 bsp/lpc23xx_tli800: Disable tar01 test
Close #2824.
2016-11-23 07:47:00 +01:00
Sebastian Huber
f730c25b70 powerpc/mpc5xx: Rename CPU_Interrupt_frame
The MPC5XX support uses a legacy interrupt/exception infrastructure.

Close #2819.
2016-11-21 11:19:37 +01:00
Sebastian Huber
7ce60b378d powerpc: Use Per_CPU_Control::isr_dispatch_disable
Update #2751.
2016-11-18 07:30:35 +01:00
Sebastian Huber
c11ac2d59d sparc: Use Per_CPU_Control::isr_dispatch_disable
Update #2751.
2016-11-18 07:30:34 +01:00
Sebastian Huber
d5e073cde7 score: Allow interrupts during thread dispatch
Use a processor-specific interrupt frame during context switches in case
the executing thread is longer executes on the processor and the heir
thread is about to start execution.  During this period we must not use
a thread stack for interrupt processing.

Update #2809.
2016-11-18 07:30:34 +01:00
Sebastian Huber
2599c8e63e powerpc: Add up to date CPU_Interrupt_frame
Rename ppc_exc_min_frame to CPU_Interrupt_frame.  Move it and the
corresponding defines to <rtems/score/cpuimpl.h>.

Update #2809.
2016-11-18 07:30:33 +01:00
Sebastian Huber
bf4fdb1f1d powerpc: Move legacy CPU_Interrupt_frame
The only remaining user of CPU_Interrupt_frame on PowerPC is the mpc5xx
support.  Move it to here.

Update #2809.
2016-11-18 07:30:33 +01:00
Sebastian Huber
40d592eb3e bsps/powerpc: Avoid use of CPU_Interrupt_frame
This type is not relevant for the code since only a pointer is passed
around.

Update #2809.
2016-11-18 07:30:33 +01:00
Sebastian Huber
c539a865f4 sparc: Move CPU_Interrupt_frame related defines
Move CPU_Interrupt_frame related defines to <rtems/score/cpuimpl.h>.

Update #2809.
2016-11-18 07:30:33 +01:00
Sebastian Huber
427dcee837 sparc: Rename CPU_Minimum_stack_frame
Rename SPARC-specific CPU_Minimum_stack_frame to
SPARC_Minimum_stack_frame.  Rename SPARC-specific
CPU_MINIMUM_STACK_FRAME_SIZE to SPARC_MINIMUM_STACK_FRAME_SIZE.

Update #2809.
2016-11-18 07:30:32 +01:00
Sebastian Huber
d18560ae05 sparc64: Rename CPU_Minimum_stack_frame
Rename SPARC64-specific CPU_Minimum_stack_frame to
SPARC64_Minimum_stack_frame.  Rename SPARC64-specific
CPU_MINIMUM_STACK_FRAME_SIZE to SPARC64_MINIMUM_STACK_FRAME_SIZE.

Update #2809.
2016-11-18 07:30:32 +01:00
Sebastian Huber
8ef8a32d00 bsps/mips: Use <libcpu/isr_entries.h>
Avoid duplicate mips_vector_isr_handlers() declarations.
2016-11-18 07:30:32 +01:00
Sebastian Huber
04bd261726 arm: Use TPIDRPRW for current per-CPU control
Use the previously unused TPIDRPRW register to get the per-CPU control
of the current processor.  This avoids instructions in
GET_SELF_CPU_CONTROL which are not available in Thumb mode.
2016-11-18 07:30:31 +01:00
Christian Mauderer
bb5d97f3eb bsp/atsamv: Make size of nocache-memory configurable. 2016-11-17 15:18:03 +01:00
Sebastian Huber
38a1449fd4 powerpc: Add _CPU_Get_current_per_CPU_control()
Add _CPU_Get_current_per_CPU_control() on SMP configurations.  Use SPRG0
for the current per-CPU control.  This reduces the code size by three
instructions and is slightly faster.

Update #2805.
2016-11-10 09:58:37 +01:00
Sebastian Huber
1f5bee3d85 score: Add and use Thread_Control::is_idle
Update #2797.
2016-11-09 15:27:30 +01:00
Sebastian Huber
6cb234f079 bsp/qoriq: Remove duplicate qoriq_gpio definition
Close #2800.
2016-11-07 09:31:35 +01:00
Tim Cussins
11ae6f94f8 virtex4, virtex5 bsp.h: Use BSP_INTERRUPT_STACK_SIZE not user space CONFIGURE_INTERRUPT_STACK_SIZE
closes #2801.
2016-11-03 12:49:12 -05:00
Joel Sherrill
0df50a6c99 m68k/mrm332/make/custom/mrm332-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
c27986335c m68k/mcf5225x/make/custom/mcf5225x-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00