Commit Graph

742 Commits

Author SHA1 Message Date
Sebastian Huber
320faf8e68 score: Clarify TLS support 2014-04-17 08:06:40 +02:00
Sebastian Huber
487b94e7ad bsps/powerpc: SMP support for SPR functions
These registers are local to a processor, there is no need to use SMP
locks here.
2014-04-16 09:07:33 +02:00
Sebastian Huber
509040f0af bsps/powerpc: SMP support for one TSEC driver 2014-04-15 10:43:05 +02:00
Sebastian Huber
10b0c3f9d3 bsps/powerpc: PR757: Fix PPC_IRQ_TRACE for ppc601
We could probably also remove the ppc601 support entirely.
2014-04-01 14:10:23 +02:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber
155024265f bsps/powerpc: Add support for interrupt profiling 2014-03-14 08:46:50 +01:00
Sebastian Huber
dedc1393f3 bsps/powerpc: Fix GET_INTERRUPT_MASK macro
Use _PPC_INTERRUPT_DISABLE_MASK introduced with
801b5d8032.
2014-03-12 16:40:49 +01:00
Sebastian Huber
ae88aa7927 sapi: Use one SMP lock for all chains
This partially reverts commit 1215fd4d94.

In order to support profiling of SMP locks and provide a future
compatible SMP locks API it is necessary to add an SMP lock destroy
function.  Since the commit above adds an SMP lock to each chain control
we would have to add a rtems_chain_destroy() function as well.  This
complicates the chain usage dramatically.  Thus revert the patch above.
A global SMP lock for all chains is used to implement the protected
chain operations.

Advantages:

* The SAPI chain API is now identical on SMP and non-SMP
  configurations.

* The size of the chain control is reduced and is then equal to the
  Score chains.

* The protected chain operations work correctly on SMP.

Disadvantage:

* Applications using many different chains and the protected operations
  may notice lock contention.

The chain control size drop is a huge benefit (SAPI chain controls are
66% larger than the Score chain controls).  The only disadvantage is not
really a problem since these applications can use specific interrupt
locks and unprotected chain operations to avoid this issue.
2014-03-11 10:58:09 +01:00
Sebastian Huber
e7549ff4a1 rtems: Use size_t for cache line size
A cache line cannot have a negative size.
2014-02-28 08:59:02 +01:00
Sebastian Huber
33cb8bf64d score: Add RTEMS_FATAL_SOURCE_BSP
Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC
into new fatal source RTEMS_FATAL_SOURCE_BSP.  This makes it easier to
figure out the code position given a fatal source and code.
2014-02-19 09:59:39 +01:00
Sebastian Huber
801b5d8032 powerpc: Change interrupt disable implemetation
Instead of SPRG0 (= special purpose register 272) use the new global
symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask.
The benefit is that it is now possible to disable interrupts without
further run-time initialization in boot_card().

At least on Freescale e500 cores this leads also to a faster execution
since the mfmsr and mfspr instruction require four cycles to complete.
The instructions to load the mask value can execute while the mfmsr is
in progress.
2014-02-19 09:59:38 +01:00
Sebastian Huber
022851aba5 Add thread-local storage (TLS) support
Tested and implemented on ARM, m68k, PowerPC and SPARC.  Other
architectures need more work.
2014-02-04 10:06:35 +01:00
Chirayu Desai
e626c60af4 libcpu/powerpc/mpc5xx: use THREAD_DISABLE_DISPATCH_LEVEL in asm 2013-12-06 13:26:58 -05:00
Sebastian Huber
057c294afd bsps/powerpc: Unconditionally clear reservations 2013-12-03 12:58:47 +01:00
Sebastian Huber
39a4574652 powerpc: Add r2 to CPU context
The r2 may be used for thread-local storage.
2013-11-18 14:56:43 +01: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
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
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
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
18e2fbe70d smp: Fix PowerPC context switch 2013-06-07 17:06:43 +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
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
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
39de53882c bsps/powerpc: Add and use ppc_cpu_is_specific_e200 2013-02-06 15:35:54 +01:00
Sebastian Huber
302061471c bsps/powerpc: Fix e200 check 2013-02-06 15:35:54 +01:00
Sebastian Huber
93d4d06574 bsp/mpc55xx: Add mpc55xx_mmu_apply_config() 2013-02-06 15:35:54 +01:00
Sebastian Huber
036788d57b bsps/powerpc: Add option for write-through cache 2013-01-28 16:45:42 +01:00
Sebastian Huber
aeff597721 bsps/powerpc: Add probe handler to I2C driver 2013-01-09 16:45:25 +01:00
Sebastian Huber
339646e887 bsps/powerpc: Fix compiler warnings 2013-01-09 16:45:25 +01:00
Sebastian Huber
3af7e23e7f bsp/gen83xx: Add GPR_1 to register map 2012-12-21 15:40:27 +01:00
Sebastian Huber
a640b204c0 bsp/gen83xx: Fix RCWLR_CEVCO defines 2012-12-21 15:40:27 +01:00
Sebastian Huber
191929cd22 bsps/powerpc: Install missing <bsp/vectors.h> 2012-12-07 09:38:40 +01:00
Sebastian Huber
3ce66aabb5 bsp/mpc55xx: Set PPC_EXC_CONFIG_USE_FIXED_HANDLER 2012-12-03 13:17:11 +01:00