Commit Graph

11903 Commits

Author SHA1 Message Date
Sebastian Huber
18e2fbe70d smp: Fix PowerPC context switch 2013-06-07 17:06:43 +02:00
Sebastian Huber
8bed60314e bsp/lm3s69xx: Typos 2013-06-03 10:03:44 +02:00
Sebastian Huber
94c17afd9c bsp/qoriq: Add missing #ifdef RTEMS_SMP 2013-06-03 10:03:10 +02:00
Sebastian Huber
db42c079a0 bsps/arm: Add SMP support 2013-05-31 15:20:33 +02:00
Sebastian Huber
f2f211c543 smp: Add ARM support 2013-05-31 15:20:32 +02:00
Sebastian Huber
bd39add8fa bsp/qoriq: Add SMP support 2013-05-31 15:20:32 +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
17e09f8e0b bsps: Use _Objects_Information_table
Eliminate copy and paste.  Use the _Objects_Information_table since this
will take into account that more than one internal thread may exist,
e.g. MPCI thread or idle threads of secondary processors.
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
2f6108f93b smp: Simplify SMP initialization sequence
Delete bsp_smp_wait_for().  Other parts of the system work without
timeout, e.g. the spinlocks.  Using a timeout here does not make the
system more robust.

Delete bsp_smp_cpu_state and replace it with Per_CPU_State.  The
Per_CPU_State follows the Score naming conventions.  Add
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to
change and observe states.

Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer.

Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive()
functions provided by the CPU port.  Use these functions in
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state().

Add prototype for _SMP_Send_message().

Delete RTEMS_BSP_SMP_FIRST_TASK message.  The first context switch is
now performed in rtems_smp_secondary_cpu_initialize().  Issuing the
first context switch in the context of the inter-processor interrupt is
not possible on systems with a modern interrupt controller.  Such an
interrupt controler usually requires a handshake protocol with interrupt
acknowledge and end of interrupt signals.  A direct context switch in an
interrupt handler circumvents the interrupt processing epilogue and may
leave the system in an inconsistent state.

Release lock in rtems_smp_process_interrupt() even if no message was
delivered.  This prevents deadlock of the system.

Simplify and format _SMP_Send_message(),
_SMP_Request_other_cores_to_perform_first_context_switch(),
_SMP_Request_other_cores_to_dispatch() and
_SMP_Request_other_cores_to_shutdown().
2013-05-29 11:06:07 +02:00
Sebastian Huber
8cacceb7b9 smp: Delete bsp_smp_secondary_cpu_initialize()
Do not call bsp_smp_secondary_cpu_initialize() in
rtems_smp_secondary_cpu_initialize().  This allows more flexibilty in
the BSP low-level code.  Specify context requirements for a call to
rtems_smp_secondary_cpu_initialize().
2013-05-29 11:06:07 +02:00
Sebastian Huber
baf8f4dabc smp: Simplify main CPU initialization
Call _SMP_Handler_initialize() later and move bsp_smp_initialize() into
_SMP_Handler_initialize().  Change bsp_smp_initialize() prototype to
match integer types of calling context.
2013-05-29 11:06:07 +02:00
Sebastian Huber
9344677cf4 bsp/qoriq: Avoid NULL pointer access 2013-05-27 12:49:14 +02:00
Sebastian Huber
9984acd10c bsps/arm: Add CLOCK_DRIVER_USE_FAST_IDLE option 2013-05-27 12:49:14 +02:00
Sebastian Huber
0d671d709f bsps/arm: Move .fast_text section
Move the .fast_text section after the .vector section.  The .fast_test
section is normally not empty in case some functions should execute from
an internal SRAM.  This would be also the area for the .vector section.
The vector table must be the first content of such an area.
2013-05-27 12:49:13 +02:00
Sebastian Huber
cab410f7d9 bsps: Update due to linker changes
In case the VMA and LMA regions differ, the LMA start address is now no
longer aligned with the alignment of the input sections:

http://sourceware.org/bugzilla/show_bug.cgi?id=15222
2013-05-27 12:49:13 +02:00
Sebastian Huber
6c2eedc7dd smp: Add maximum_processors field to config
Delete rtems_configuration_get_smp_maximum_processors().  Delete
rtems_configuration_smp_maximum_processors variable.  Add
maximum_processors field to rtems_configuration_table if RTEMS_SMP is
defined.  Add rtems_configuration_get_maximum_processors().
2013-05-16 11:44:12 +02:00
Daron Chabot
5e45d363f2 Add c++ guard to header. 2013-05-16 11:16:46 +02:00
Sebastian Huber
cfd8d7a3d7 arm: Support VFP-D32 and Neon 2013-05-10 12:10:14 +02:00
Sebastian Huber
a94d46c84b bsp/xilinx-zynq: New BSP 2013-05-06 15:06:52 +02:00
Sebastian Huber
12d182c435 bsps/arm: Fix register usage 2013-05-06 15:06:52 +02:00
Sebastian Huber
e37d57bc81 bsps/arm: Add shared GIC tmtests/tm27 support 2013-05-06 15:06:52 +02:00
Sebastian Huber
33c98fd5ed bsps/arm: Remove superfluous parameter 2013-05-06 15:06:52 +02:00
Sebastian Huber
f2e9d0df8a bsp/raspberrypi: Use shared start code 2013-05-06 15:06:52 +02:00
Sebastian Huber
86b79fba5f bsp/lm3s69xx: Fix initialization value 2013-05-06 15:06:51 +02:00
Eugeniy Meshcheryakov
9bc1913e09 bsp/lm3s69xx: Use interrupts for UART receive
This makes continuous UART polling unnecessary.
2013-05-06 09:38:33 +02:00
Eugeniy Meshcheryakov
847e2cac7c bsp/lm3s69xx: More access macros for UART data register
Add mask for receive error bits and getter macro for
the data field.
2013-05-06 09:38:22 +02:00
Alan Cudmore
9159711ffe bsp/raspberrypi: Enable unaligned access 2013-05-06 09:37:12 +02:00
Sebastian Huber
a91dc98b5a bsp/realview-pbx-a9: New BSP 2013-05-03 17:30:56 +02:00
Sebastian Huber
9ce658030a bsps/arm: Copy vector table only if necessary 2013-05-03 17:30:56 +02:00
Sebastian Huber
27690ec38e bsps/arm: Move .vector section
The .vector section contains read-write data (several mode stacks).
Move it to the read-write data area.
2013-05-03 17:30:56 +02:00
Sebastian Huber
ecf7dd9564 bsps/arm: Move CP15 start initialization 2013-05-03 17:30:55 +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
962e0fac18 bsps/arm: Add and use bsp_translation_table_base 2013-05-03 17:30:54 +02:00
Sebastian Huber
fb0584fff8 bsps/arm: Move implementation to inline functions 2013-05-03 17:30:54 +02:00
Joel Sherrill
5aa4ed9917 i386: PR2010: Remove pc386 BSPs using soft-float
i386 soft-float is no longer supported by gcc. Dropping
all references to soft-float in the pc386 BSP.
2013-05-01 10:12:52 -05:00
Sebastian Huber
024a57205d bsp/mpc55xx: Avoid empty enum 2013-04-29 09:28:58 +02:00
Eugeniy Meshcheryakov
f22bba3cb4 bsp/lm3s69xx: New BSP variants
Add support for LM3S3749.
2013-04-26 11:03:59 +02:00
Sebastian Huber
5fa0e5c5ec libcsupport: Rename open_dev_console()
Rename open_dev_console() to rtems_libio_post_driver().  Rename
rtems_libio_supp_helper to rtems_libio_post_driver_helper.
2013-04-26 10:57:08 +02:00
Sebastian Huber
a290fbe946 libcsupport: Make LibIO helper const
Add and use rtems_libio_helper function type.  Add and use
rtems_libio_helper_null() instead of NULL pointer.
2013-04-26 10:57:08 +02:00
Sebastian Huber
62aa3186bc bsp/mpc55xx: Add MMU tag translate initializer 2013-04-25 15:31:41 +02:00
Sebastian Huber
92d80383ff bsp/mpc5200: New BSP variant BRS6L 2013-04-23 09:59:57 +02:00
Sebastian Huber
7a44d06c82 bsp/mpc5200: Change SDRAM initialization
Change SDRAM initialization according to application note AN3221.
2013-04-23 09:59:57 +02:00
Sebastian Huber
d4a4811450 bsp/mpc5200: Set SDELAY register 2013-04-23 09:59:57 +02:00