Commit Graph

26316 Commits

Author SHA1 Message Date
Ralf Kirchner
db5a84d0ad bsp/arm: Correct cache misalignment handling
Correct misalignment handling and prepare for locking.
2014-04-17 13:25:11 +02:00
Ralf Kirchner
92e2757b0b bsp/arm: Correct L2 cache flushing
Correct misalignment handling and prepare for locking.
2014-04-17 13:25:11 +02:00
Ralf Kirchner
cbd9e634ee bsp/arm: Remove arm erratum 764369 from L2 cache
Arm erratum 764369 only applies to the level 1 cache.
2014-04-17 13:25:11 +02:00
Ralf Kirchner
9ee2ec56b5 bsp/arm: Consistenly same handling for flushing
It is importeant to consistently apply the same handling for flushing within
level 2 and level 1 cache handling. In this case now both handling use clean and invalidate.
2014-04-17 13:25:11 +02:00
Ralf Kirchner
e331e69a47 bsp/arm: RTEMS_SMP to arm erratum 764369 detection
Move the RTEMS_SMP conditional compilation to the detection method of arm erratum 764369
2014-04-17 13:25:11 +02:00
Ralf Kirchner
707b617294 bsp/arm: Erratum 764369 after enabling SCU
Execute the SCU part of the workaround of arm erratum 764368 after the SCU was enabled.
2014-04-17 13:25:11 +02:00
Ralf Kirchner
d9e7d1e414 bsp/arm: Correct detection of arm erratum 764368 2014-04-17 13:25:10 +02:00
Ralf Kirchner
924b47a548 bsp/arm: Cleanup L1 cache 2014-04-17 13:25:10 +02:00
Ralf Kirchner
a38d4a37bc libchip: Correct error handling in dwmac driver
By fault an rtems_status_code has been expected instead of an errno error number.
2014-04-17 13:24:08 +02:00
Ralf Kirchner
1613a01bb0 libchip: Reduce tx interrupts
Reduce number of packet transmitted interrupts by using the interrupt mechanism only
if we run out of DMA descriptors.
Under normal conditions regaining DMA descriptors, mbufs and clusters is handled
via a counter.
2014-04-17 13:24:07 +02:00
Ralf Kirchner
f28b8d4595 libchip: Cleanup 2014-04-17 13:24:07 +02:00
Ralf Kirchner
18fe64a2ca libchip: Improve handling of DMA suspends
Reset the corresponding DMA status bit
2014-04-17 13:24:07 +02:00
Ralf Kirchner
6ac39691a2 bsp/altera-cyclone-v: Cleanup 2014-04-17 13:24:07 +02:00
Ralf Kirchner
782182eba4 bsp/altera-cyclone-v: Change console baud rate
The baud rate of the altera cyclone-V U-Boot can not be changed at the
u-Boot console prompt. Thus we use the same baud rate as the U-Boot for
the BSP.
2014-04-17 13:24:07 +02:00
Sebastian Huber
320faf8e68 score: Clarify TLS support 2014-04-17 08:06:40 +02:00
Sebastian Huber
10e613ba52 doc: Typo 2014-04-17 08:06:39 +02:00
Sebastian Huber
f8300293ae doc: rtems_task_set_scheduler() 2014-04-17 08:06:39 +02:00
Sebastian Huber
babb1a2ce8 doc: rtems_task_get_scheduler() 2014-04-17 08:06:39 +02:00
Sebastian Huber
d1f2f222d2 doc: rtems_scheduler_get_processor_set() 2014-04-17 08:06:39 +02:00
Sebastian Huber
89c1a21f9c doc: rtems_scheduler_ident() 2014-04-17 08:06:38 +02:00
Sebastian Huber
ed859d514a doc: rtems_task_set_affinity() 2014-04-17 08:06:38 +02:00
Sebastian Huber
2be51ccf6e doc: rtems_task_get_affinity() 2014-04-17 08:06:38 +02:00
Sebastian Huber
4a93980a14 doc: rtems_get_current_processor() 2014-04-17 08:06:38 +02:00
Sebastian Huber
6809383d76 doc: rtems_get_processor_count() 2014-04-17 08:06:38 +02:00
Sebastian Huber
0e98970264 sapi: Fix CONFIGURE_UNLIMITED_OBJECTS
POSIX keys and key value pairs support now the unlimited option.
2014-04-17 08:06:37 +02:00
Sebastian Huber
2c1e7ffbcb sapi: Error case for CONFIGURE_UNLIMITED_OBJECTS 2014-04-17 08:06:37 +02:00
Sebastian Huber
561c7b2cfe rtems: Add const qualifier 2014-04-16 15:36:40 +02:00
Sebastian Huber
b3613c3a37 smptests/smpload01: Reduce timeout value
Use events instead of suspend/resume.
2014-04-16 12:34:07 +02:00
Sebastian Huber
2e06be4d4f score: Documentation 2014-04-16 09:10:52 +02:00
Sebastian Huber
33d0666d02 score: Critical fix for SMP
The _Scheduler_SMP_Allocate_processor() and _Thread_Dispatch() exchange
information without locks.  Make sure we use the right load/store
ordering.
2014-04-16 09:07:33 +02:00
Sebastian Huber
b80f920860 bsp/qoriq: SMP support for IRQ support 2014-04-16 09:07:33 +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
598f39cd87 libchip: SMP support for NS16550 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
c5831a3f9a score: Add clustered/partitioned scheduling
Clustered/partitioned scheduling helps to control the worst-case
latencies in the system.  The goal is to reduce the amount of shared
state in the system and thus prevention of lock contention.  Modern
multi-processor systems tend to have several layers of data and
instruction caches.  With clustered/partitioned scheduling it is
possible to honour the cache topology of a system and thus avoid
expensive cache synchronization traffic.

We have clustered scheduling in case the set of processors of a system
is partitioned into non-empty pairwise-disjoint subsets.  These subsets
are called clusters.  Clusters with a cardinality of one are partitions.
Each cluster is owned by exactly one scheduler instance.
2014-04-15 10:41:44 +02:00
Sebastian Huber
27270b0d6c rtems: Add task get/set scheduler 2014-04-15 09:29:35 +02:00
Sebastian Huber
1b67535d86 rtems: Add scheduler get processors 2014-04-15 09:29:35 +02:00
Sebastian Huber
b427a92adf rtems: Add scheduler identification 2014-04-15 09:29:31 +02:00
Sebastian Huber
133d54c55e score: Add scheduler name 2014-04-15 08:37:12 +02:00
Sebastian Huber
0712d172d0 score: Task get/set affinity
Make rtems_task_get_affinity() and rtems_task_set_affinity() available
on non-SMP configurations.  Allow larger CPU sets.
2014-04-15 08:37:12 +02:00
Sebastian Huber
69aa33490b score: Simplify thread control initialization
The thread control block contains fields that point to application
configuration dependent memory areas, like the scheduler information,
the API control blocks, the user extension context table, the RTEMS
notepads and the Newlib re-entrancy support.  Account for these areas in
the configuration and avoid extra workspace allocations for these areas.

This helps also to avoid heap fragementation and reduces the per thread
memory due to a reduced heap allocation overhead.
2014-04-15 08:37:12 +02:00
Sebastian Huber
e1598a616d score: Static scheduler configuration
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
2014-04-15 08:37:11 +02:00
Sebastian Huber
dc18190be4 score: Add and use RTEMS_ZERO_LENGTH_ARRAY 2014-04-15 08:37:11 +02:00
Joel Sherrill
589bbcb0ed sp74.doc: Correct minor typos 2014-04-14 16:05:52 -05:00
Sebastian Huber
2ca0a7be22 capture: Use ISR lock for SMP support 2014-04-14 08:37:04 +02:00
Sebastian Huber
53e008b6fd score: SMP initialization changes
Add and use _CPU_SMP_Start_processor().  Add and use
_CPU_SMP_Finalize_initialization().  This makes most
_CPU_SMP_Initialize() functions a bit simpler since we can calculate the
minimum value of the count of processors requested by the application
configuration and the count of physically or virtually available
processors in the high-level code.

The CPU port has now the ability to signal a processor start failure.
With the support for clustered/partitioned scheduling the presence of
particular processors can be configured to be optional or mandatory.
There will be a fatal error only in case mandatory processors are not
present.

The CPU port may use a timeout to monitor the start of a processor.
2014-04-14 08:37:04 +02:00
Sebastian Huber
198c143335 score: Add _Per_CPU_Get_snapshot() 2014-04-14 08:37:04 +02:00
Sebastian Huber
67a7a2cc98 sparc: Use __leon__ multilib define 2014-04-14 08:37:04 +02:00
Gedare Bloom
73b9af2d25 sparc64/niagara: add bsp_fatal_handler to terminate execution
Terminates the execution of niagara BSP when running in gem5.
2014-04-12 14:23:11 -04:00
Sebastian Huber
cb5eaddf95 rtems: Rename rtems_smp_get_current_processor()
Rename rtems_smp_get_current_processor() in
rtems_get_current_processor().  Make rtems_get_current_processor() a
function in uni-processor configurations to enable ABI compatibility
with SMP configurations.
2014-04-11 08:52:54 +02:00