Commit Graph

1554 Commits

Author SHA1 Message Date
Joel Sherrill
4fab260dd1 libcpu/sparc/.../access_le.c: Add include file to fix warning 2013-09-23 08:24:32 -05:00
Sebastian Huber
f55215a837 bsps: Fix cache manager support 2013-09-10 08:51:06 +02:00
Sebastian Huber
d157a4fd4d bsps/arm: Fix ARM CP15 opcode for get functions 2013-09-05 09:37:17 +02:00
Sebastian Huber
1215fd4d94 sapi: SMP support for chains
Add ISR lock to chain control for proper SMP protection.  Replace
rtems_chain_extract() with rtems_chain_explicit_extract() and
rtems_chain_insert() with rtems_chain_explicit_insert() on SMP
configurations.  Use rtems_chain_explicit_extract() and
rtems_chain_explicit_insert() to provide SMP support.
2013-08-30 11:16:28 +02:00
Ric Claus
2bd440ed58 bsp/xilinx-zynq: Add cache support 2013-08-26 09:53:06 +02:00
Ric Claus
c9b66f5ed3 bsps/arm: Add more CP15 cache functions 2013-08-22 14:20:47 +02:00
Sebastian Huber
d473dc0b22 bsps: Fix clock driver defines 2013-08-14 13:27:34 +02:00
Sebastian Huber
c6c998b000 bsps/powerpc: Per-CPU thread dispatch disable
Interrupt support for per-CPU thread dispatch disable level.
2013-08-09 23:02:43 +02:00
Sebastian Huber
d19cce29dc score: Per-CPU thread dispatch disable level
Use a per-CPU thread dispatch disable level.  So instead of one global
thread dispatch disable level we have now one instance per processor.
This is a major performance improvement for SMP.  On non-SMP
configurations this may simplifiy the interrupt entry/exit code.

The giant lock is still present, but it is now decoupled from the thread
dispatching in _Thread_Dispatch(), _Thread_Handler(),
_Thread_Restart_self() and the interrupt entry/exit.   Access to the
giant lock is now available via _Giant_Acquire() and _Giant_Release().
The giant lock is still implicitly acquired via
_Thread_Dispatch_decrement_disable_level().

The giant lock is only acquired for high-level operations in interrupt
handlers (e.g. release of a semaphore, sending of an event).

As a side-effect this change fixes the lost thread dispatch necessary
indication bug in _Thread_Dispatch().

A per-CPU thread dispatch disable level greatly simplifies the SMP
support for the interrupt entry/exit code since no spin locks have to be
acquired in this area.  It is only necessary to get the current
processor index and use this to calculate the address of the own per-CPU
control.  This reduces the interrupt latency considerably.

All elements for the interrupt entry/exit code are now part of the
Per_CPU_Control structure: thread dispatch disable level, ISR nest level
and thread dispatch necessary.  Nothing else is required (except CPU
port specific stuff like on SPARC).
2013-08-09 23:02:38 +02:00
Pavel Pisa
98bcf4ff6e bsp/csb336: implement bsp_interrupt_vector_enable/disable.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2013-08-09 09:01:51 +02:00
Sebastian Huber
f031df0e63 score: Rename tod.h to todimpl.h 2013-08-01 16:45:45 +02:00
Pavel Pisa
02632e83e0 bsp/csb336: mc9328mxl correct AITC access in bsp_interrupt_dispatch.
The original version is missing void and result is that (*x >> 16) is
optimized to ldh rX,[rY]. But it is not allowed/supported to access
bus/address range used by AITC by other than 32 bit wide accesses
and 16-bit access results in the data abort exception.
The corrected version works on real hardware and is even
more readable.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2013-07-26 11:55:47 +02:00
Sebastian Huber
88c74ab115 score: Merge tod implementation into one file
Delete TOD_MICROSECONDS_PER_SECOND, TOD_MICROSECONDS_TO_TICKS() and
TOD_MILLISECONDS_TO_TICKS().
2013-07-26 11:55:47 +02:00
Sebastian Huber
0c3edbf0cf Include missing <rtems/score/threaddispatch.h> 2013-07-26 11:55:47 +02:00
Peter Dufault
b3a84034e2 bsp/mpc55xx: Fix prototype 2013-07-24 15:49:53 +02:00
Sebastian Huber
39046f766f score: Merge sysstate API into one file 2013-07-24 11:11:21 +02:00
Sebastian Huber
c8d78ee510 bsp/mpc55xx: Add MPC5668G support 2013-07-15 11:57:13 +02:00
Sebastian Huber
4fe3ad2f99 bsps/powerpc: Add ppc_count_leading_zeros() 2013-07-09 16:42:00 +02:00
Sebastian Huber
56435e646c powerpc: Fix Altivec support
Use the right context.
2013-06-26 10:31:43 +02:00
Sebastian Huber
e18db9f0cf termios: Update due to API changes
Termios notifies now the driver about an inactive transmit with the
length argument set to zero.
2013-06-25 17:03:21 +02:00
Sebastian Huber
7d0e88f240 bsps/powerpc: Delete clock_4xx.c 2013-06-24 10:53:58 +02:00
Sebastian Huber
ade27c69eb bsps: Move bsp_generic_fatal_code to new file
Add bsp_generic_fatal().
2013-06-21 10:26:10 +02:00
Sebastian Huber
5f91272e9b bsps/powerpc: Delete bsp_exceptions_in_RAM
Delete ppc_exc_vector_base.  Add and use
ppc_exc_initialize_with_vector_base().
2013-06-21 10:26:09 +02:00
Sebastian Huber
9a037da966 bsps/arm: Set vector base address if necessary 2013-06-20 10:15:10 +02:00
Sebastian Huber
49cdf40afa score: Add and use _Thread_Dispatch_is_enabled()
Delete _Thread_Dispatch_in_critical_section() and
_Thread_Is_dispatching_enabled().
2013-06-14 16:26:06 +02:00
Sebastian Huber
18e2fbe70d smp: Fix PowerPC context switch 2013-06-07 17:06:43 +02:00
Sebastian Huber
db42c079a0 bsps/arm: Add SMP support 2013-05-31 15:20:33 +02:00
Sebastian Huber
ffbeb6f6a3 smp: Add PowerPC support 2013-05-31 15:20:32 +02:00
Sebastian Huber
e3be691598 score: Remove idle field of Per_CPU_Control
This field is unused except for special case simulator clock drivers.
In these places use an alternative.  Add and use
_Thread_Set_global_exit_status() and _Thread_Get_global_exit_status().
2013-05-31 15:20:31 +02:00
Sebastian Huber
5b391f857b bsps/arm: Use Write-Allocate cache for ARMv7 2013-05-31 15:20:31 +02:00
Sebastian Huber
1dcf5febf2 bsps/arm: Merge ARMv7 MMU section definitions 2013-05-31 15:20:31 +02:00
Sebastian Huber
33c98fd5ed bsps/arm: Remove superfluous parameter 2013-05-06 15:06:52 +02:00
Sebastian Huber
fd51f7e8d2 bsps/arm: Support ARMv7 VMSA sections and control 2013-05-03 17:30:55 +02:00
Sebastian Huber
88cf23f8c9 bsps/arm: Add arm_cp15_set_exception_handler() 2013-05-03 17:30:55 +02:00
Sebastian Huber
037e8ae506 bsps/arm: Add arm_cp15_set_trans*_table_entries() 2013-05-03 17:30:55 +02:00
Sebastian Huber
544615d22c bsps/arm: Add arm_cp15_mmu_disable() 2013-05-03 17:30:55 +02:00
Sebastian Huber
d2d0296138 bsps/arm: Add arm_cp15_get_min_cache_line_size() 2013-05-03 17:30:54 +02:00
Sebastian Huber
024a57205d bsp/mpc55xx: Avoid empty enum 2013-04-29 09:28:58 +02:00
Sebastian Huber
62aa3186bc bsp/mpc55xx: Add MMU tag translate initializer 2013-04-25 15:31:41 +02:00
Peng Fan
76de8a8e6b D-cache clean&&invalidate for Tiny6410 2013-04-17 16:38:48 +02:00
Sebastian Huber
ef8e851975 bsp/mpc55xx: Typo 2013-04-17 16:38:33 +02:00
Sebastian Huber
db21e1dd6c bsp/mpc55xx: eDMA API changes 2013-04-08 16:42:38 +02:00
Sebastian Huber
4e3deaf7c1 bsp/mpc55xx: Add alternative register layout 2013-04-08 16:42:38 +02:00
Sebastian Huber
db0ed4c5b2 bsp/mpc55xx: Add PCR index enumeration 2013-04-08 16:42:38 +02:00
Sebastian Huber
30158371e6 bsp/mpc55xx: New fatal errors 2013-04-08 16:42:37 +02:00
Sebastian Huber
602d5ba27c bsps: Fix warnings 2013-04-08 16:42:36 +02:00
Sebastian Huber
faad192675 mpc83xx: Add and use mpc83xx_reset()
The inline version makes it possible to use this code in different
memory areas.
2013-03-14 10:56:48 +01:00
Gedare Bloom
fad2d38a9f RTEMS: Delete ChangeLog files.
This commit deletes all RTEMS ChangeLog files. These files have been abandoned
since converting to git version control. The historical data may be recovered
by checking out any commit before this one. Most of the contents of these
ChangeLog files can also be found in the git log.

Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
2013-03-08 15:55:06 -05:00
Sebastian Huber
ef921556c4 bsp/mpc55xx: Add register type definition 2013-02-25 17:33:17 +01:00
Sebastian Huber
c8bd3cda93 libchip/serial: Add const qualifier 2013-02-11 14:44:46 +01:00