Commit Graph

26126 Commits

Author SHA1 Message Date
Cynthia Rempel
df533f10c0 Stop a resource leak
Stops a resource leak in the event that the system cannot malloc
2013-08-26 09:18:37 +02:00
Sebastian Huber
7cba8ae676 smp: Fix warnings 2013-08-23 12:56:35 +02:00
Sebastian Huber
ec987ec00a sptests/spintrcritical20: PR2140: New test 2013-08-23 12:56:19 +02:00
Sebastian Huber
396f6442e1 psxtests/psxfatal0[12]: Update due to API changes 2013-08-23 12:54:03 +02:00
Sebastian Huber
07332ae4db score: _Thread_queue_Enqueue_with_handler()
Add thread parameter to _Thread_queue_Enqueue_with_handler() to avoid
access to global _Thread_Executing.
2013-08-23 12:54:03 +02:00
Sebastian Huber
f4804efa50 Filesystem: Remove superfluous free() 2013-08-23 10:06:46 +02:00
Sebastian Huber
630365b927 Filesystem: Avoid usage of uninitialized variable
This is a cosmetic fix.  There was no bug.
2013-08-23 10:06:34 +02:00
Sebastian Huber
dbdfc78fc7 libblock: PR2040: Avoid NULL pointer access
This partly reverts commit 08b9d53460.

Avoid a NULL pointer access and perform the source segment erase if
necessary.
2013-08-23 09:24:10 +02:00
Sebastian Huber
38ec8afe72 libtests/flashdisk01: Update screen file 2013-08-23 09:24:00 +02:00
Chris Johns
6e4c01e3a2 posix: Update to the pthread_once changes.
Implement the reeview changes.
Add a POSIX Fatal error domain.
Fix confdefs.h to correctly handle the internal POSIX mutexes.
2013-08-23 14:56:36 +10:00
Ric Claus
c9b66f5ed3 bsps/arm: Add more CP15 cache functions 2013-08-22 14:20:47 +02:00
Sebastian Huber
1a246d7e05 arm: Make barrier operations more visible 2013-08-22 14:20:35 +02:00
Sebastian Huber
389ffb280f dosfs: Use unprotected chain operations
This area is protected by the FAT file system instance lock.
2013-08-21 15:02:59 +02:00
Sebastian Huber
269dd12420 smp: Documentation 2013-08-21 09:07:49 +02:00
Sebastian Huber
2cfbf23a1f smp: Delete RTEMS_BSP_SMP_SIGNAL_TO_SELF 2013-08-21 09:07:37 +02:00
Sebastian Huber
518d82b6d3 smp: Disable restart of threads other than self 2013-08-20 11:03:38 +02:00
WeiY
0432dff73f add compare_and_swap check in check-atomic.m4 2013-08-20 10:42:43 +02:00
Sebastian Huber
99b35052ae smp: Add Deterministic Priority SMP Scheduler 2013-08-20 10:17:35 +02:00
Sebastian Huber
48c4a556a2 smp: Generalize Simple SMP scheduler 2013-08-20 10:14:05 +02:00
Sebastian Huber
aea4a91993 smp: Optimize Simple SMP scheduler
Add Thread_Control::is_in_the_air field if configured for SMP.  This
helps to simplify the extract operation and avoids superfluous
inter-processor interrupts.  Move the processor allocation step into the
enqueue operation.

Add and use _Scheduler_simple_smp_Get_highest_ready().  Add and use
_Scheduler_SMP_Get_lowest_scheduled().
2013-08-20 10:14:04 +02:00
Sebastian Huber
fc2ad63203 smp: _Scheduler_simple_smp_Allocate_processor()
Rename _Scheduler_simple_smp_Allocate_processor() to
_Scheduler_SMP_Allocate_processor().
2013-08-20 10:14:04 +02:00
Sebastian Huber
6ba15488ee smp: Rename _Scheduler_simple_smp_Start_idle()
Rename _Scheduler_simple_smp_Start_idle() to
_Scheduler_SMP_Start_idle().
2013-08-20 10:14:04 +02:00
Sebastian Huber
9d83f58ab8 smp: Replace Scheduler_simple_smp_Control
Replace Scheduler_simple_smp_Control with Scheduler_SMP_Control.  Rename
_Scheduler_simple_smp_Instance() to _Scheduler_SMP_Instance().
2013-08-20 10:14:04 +02:00
Sebastian Huber
0405082e0f score: Add _Priority_bit_map_Is_empty() 2013-08-20 10:14:04 +02:00
Sebastian Huber
c1a356e9f8 score: _Priority_bit_map_Handler_initialization()
Delete _Priority_bit_map_Handler_initialization() and rely on BSS
initialization.  Move definition of _Priority_Major_bit_map and
_Priority_Bit_map to separate file.  Move definition of __log2table also
to this file.
2013-08-20 10:14:03 +02:00
Sebastian Huber
a78e575ba5 score: _Scheduler_priority_Ready_queue_initialize()
Move workspace allocation to _Scheduler_priority_Initialize().
2013-08-20 10:14:03 +02:00
Sebastian Huber
e00b04383b score: _Scheduler_priority_Ready_queue_first()
Remove superfluous check since a ready thread must exist.
2013-08-20 10:14:03 +02:00
Sebastian Huber
f20b3d568d score: Add _Scheduler_priority_Get_ready_queues()
Add and use _Scheduler_priority_Get_ready_queues()
2013-08-20 10:14:03 +02:00
Sebastian Huber
0c551f76e5 score: Add _Scheduler_priority_Get_scheduler_info
Add and use _Scheduler_priority_Get_scheduler_info().
2013-08-20 10:14:02 +02:00
Sebastian Huber
e5ca54c996 score: PR2136: Fix _Thread_Change_priority()
Add call to _Scheduler_Schedule() in missing path after
_Thread_Set_transient() in _Thread_Change_priority().  See also
sptests/spintrcritical19.

Add thread parameter to _Scheduler_Schedule().  This parameter is
currently unused but may be used in future SMP schedulers.

Do heir selection in _Scheduler_Schedule().  Use
_Scheduler_Update_heir() for this in the particular scheduler
implementation.

Add and use _Scheduler_Generic_block().
2013-08-20 10:14:02 +02:00
WeiY
6931037e1d correct memory model in smpatomic test case 2013-08-19 14:35:38 +02:00
Nick Withers
01b0755035 Expose rtems_verror() 2013-08-15 04:57:56 +10:00
Pavel Pisa
2a2f559957 bsp/csb336: Memory map update and jump to start at image start provided.
CSB336 i.MX1/i.MXS memory map organization

 - SDRAM starts at address 0x08000000 but 2 MB are reserved
   for boot-block/loader (or other use) before RTEMS image
   origin/load address (that is kept from previous setup)

 - Caching of 30 MB of SDRAM used for RTEMS (start at 0x08200000)
   is changed to writeback mode which provides higher throughput.

 - The first 1 MB of RTEMS dedicated SDRAM is remapped to address 0
   to provide area for ARM CPU exceptions table.

 - Internal registers and rest of the Flash (above 1 MB) are mapped
   one to one. Registers region is extended to 2 MB to cover
   eSRAM found on i.MX1 chip variant.

 - The first two megabytes of SDRAM unused by RTEMS are mapped
   with attributes to allow specific purposes.

   - the first MB (at address 0x08000000) is nocached to allow
     directly set some values read by booot-block after warm reset

   - the second MB (at address 0x08100000) is set for write-through
     caching.  That allows to use memory for LCD frame-buffer without
     need to flush cache after each redraw.

Jump to start provided at address 0x08200000 allows
to load application image even as plain binary file
and start it by jump to image start address.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2013-08-14 16:25:58 +02:00
Karel Gardas
526f895efe bsp/lm3s69xx: add macros for UART CTS/RTS pin configuration 2013-08-14 16:25:55 +02:00
Sebastian Huber
d473dc0b22 bsps: Fix clock driver defines 2013-08-14 13:27:34 +02:00
Sebastian Huber
66c00789ef libblock: Add missing initializer 2013-08-14 12:14:31 +02:00
Sebastian Huber
ec98c997e8 posix: Typo 2013-08-14 11:55:51 +02:00
Sebastian Huber
6ccdc5ce8b rtems: Include missing header file 2013-08-14 11:10:45 +02:00
Sebastian Huber
540e860331 documentation: Directives allowed from an ISR
Update list.
2013-08-14 11:10:45 +02:00
Sebastian Huber
9de9b7d237 libblock: Add SMP support 2013-08-14 11:10:45 +02:00
Sebastian Huber
4180a9bb04 filesystem: Add SMP support 2013-08-14 11:10:44 +02:00
Chris Johns
b7f2060973 bsp: Fix CLOCK_DRIVER_USE_FAST_IDLE and CLOCK_DRIVER_ISRS_PER_TICK.
Use the value rather than being defined. This allows inverted
logic to be used.
2013-08-14 11:53:28 +10:00
Chris Johns
03acc5915e posix: Change pthread_once to be SMP safe.
Change pthread_once from using disabled pre-emption to using a
pthread mutex making it SMP safe. GCC using a posix threading
model uses pthread_once.

The pthread mutex requires at least 1 mutex is configured so
confdefs.h has been updated to account for the internal
mutex.
2013-08-14 10:21:41 +10:00
Chris Johns
40398c45dc posix: Handle recursive attributes correctly.
The recursive field in the pthread_mutexattr_t is now not used. The
code in pthread_mutexattr_settype only sets the type field and not
the recursive field.
2013-08-14 09:29:56 +10:00
Sebastian Huber
2606fee394 powerpc: Fix _CPU_Context_validate() 2013-08-13 14:48:42 +02:00
Sebastian Huber
c32c80ea04 bsps/arm: Use proper default priority for GIC
Some GIC implementations do not have the complete range of priorities.
The upper bits are RAZ/WI in this case.
2013-08-13 14:48:26 +02:00
Zhongwei Yao
39a6e4ea69 Fix a bug in spfreechain01 test case. 2013-08-11 19:22:47 +02:00
Sebastian Huber
806f84c8ee smptests/smpswitchextension01: Fix start sequence
Start the toggler after the context is initialized.
2013-08-09 23:02:45 +02:00
Sebastian Huber
4e3b7e26a2 bsps/i386: SMP and per-CPU thread dispatch disable
Interrupt support for SMP and the per-CPU thread dispatch disable level.
2013-08-09 23:02:45 +02:00
Sebastian Huber
55b1aee441 bsps/i386: Revert most SMP related changes
The commit partially restores the _ISR_Handler code to the original
version in commit b8fc2de1ce.  A list of
reverted changes follows.

commit c236082873
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Tue Jul 30 15:54:53 2013 +0200

    smp: Provide cache optimized Per_CPU_Control

    Delete _Per_CPU_Information_p.

This commit was completely reverted.

commit 39e51758c8
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Fri Jun 14 14:00:38 2013 +0200

    smp: Add and use _CPU_SMP_Get_current_processor()

    Add and use _SMP_Get_current_processor() and
    rtems_smp_get_current_processor().

    Delete bsp_smp_interrupt_cpu().

    Change type of current processor index from int to uint32_t to match
    _SMP_Processor_count type.

This commit was completely reverted.

commit e94aa61b68
Author: Till Straumann <strauman@slac.stanford.edu>
Date:   Fri Aug 5 00:15:50 2011 +0000

    2011-08-04	Till Straumann <strauman@slac.stanford.edu>

    	* shared/irq/irq_asm.S: BUGFIX (introduced by SMP changes
    	which moved code around, apparently): *must* store i8259
    	mask to frame *before* switching to IRQ stack. The code
    	retrieves the mask after switching back to original stack.
    	Also, the IRQ stack has no reserved space for the mask;
    	storing it there could overwrite memory!

This commit was completely reverted.

commit 01f2692e33
Author: Jennifer Averett <Jennifer.Averett@OARcorp.com>
Date:   Mon Aug 1 13:41:50 2011 +0000

    2011-08-01	Jennifer Averett <Jennifer.Averett@OARcorp.com>

    	PR 1802
    	* shared/irq/irq_asm.S, shared/irq/irq_init.c, shared/smp/smp-imps.c,
    	shared/smp/smp-imps.h: Add SMP support for i386.
    	* shared/smp/getcpuid.c: New file.

The parts modifying the code of _ISR_Handler were reverted.

commit 66729db311
Author: Joel Sherrill <joel.sherrill@OARcorp.com>
Date:   Wed Mar 16 20:05:17 2011 +0000

    2011-03-16	Jennifer Averett <jennifer.averett@OARcorp.com>

    	PR 1729/cpukit
    	* shared/irq/irq_asm.S: Add next step in SMP support. This adds an
    	allocated array of the Per_CPU structures to support multiple cpus vs
    	a single instance of the structure which is still used if SMP support
    	is disabled. Configuration support is also added to explicitly enable
    	or disable SMP. But SMP can only be enabled for the CPUs which will
    	support it initially -- SPARC and i386. With the stub BSP support, a
    	BSP can be run as a single core SMP system from an RTEMS data
    	structure standpoint.

This commit was completely reverted.
2013-08-09 23:02:45 +02:00