summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* score: Add _Watchdog_Preinitialize()Sebastian Huber2015-06-138-9/+32
| | | | | | Add an assert to ensure that the watchdog is the proper state for a _Watchdog_Initialize(). This helps to detect invalid initializations which may lead to a corrupt watchdog chain.
* score: Delete unused state WATCHDOG_REMOVE_ITSebastian Huber2015-06-135-26/+4
|
* sptests/sptasknopreempt01: New testSebastian Huber2015-06-126-0/+130
| | | | Update #2365.
* pc386/console/fb*.c: Use atomics to avoid dependency on pthreadsJoel Sherrill2015-06-113-44/+45
| | | | closes #2364.
* rtems: Do not switch off the FP attributeSebastian Huber2015-06-111-4/+0
| | | | This is necessary after commit 335e5caa9a9e0f28acf94fe4c2871017fcd71794.
* Revert "timecounter: No _Timecounter_Tick_simple() for SMP"Sebastian Huber2015-06-111-6/+0
| | | | | | | | | This reverts commit 46ae1d7a2b49b8f973dd6ba44fbbd38383798524. The _Timecounter_Tick_simple() function actually doesn't switch to the next timehand, so it is all right to use the simple timecounter approach even on SMP configurations. The use of simple timecounters is not recommended however since they impose a performance penalty.
* timecounter: No _Timecounter_Tick_simple() for SMPSebastian Huber2015-06-091-0/+6
|
* cpukit/rtems: Fix doc for rtems_clock_get_ticks_per_secondGedare Bloom2015-06-091-1/+1
| | | | closes #2357.
* doc: fix typo. closes #2361.Gedare Bloom2015-06-091-1/+1
|
* timecounter: Synchronize with FreeBSDkib2015-06-091-42/+82
| | | | | | | | | | | | | | | | When updating/accessing the timehands, barriers are needed to ensure that: - th_generation update is visible after the parameters update is visible; - the read of parameters is not reordered before initial read of th_generation. On UP kernels, compiler barriers are enough. For SMP machines, CPU barriers must be used too, as was confirmed by submitter by testing on the Freescale T4240 platform with 24 PowerPC processors. Submitted by: Sebastian Huber <sebastian.huber@embedded-brains.de> MFC after: 1 week
* timecounter: Synchronize with FreeBSDian2015-06-091-5/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a mechanism for making changes in the kernel<->driver PPS interface without breaking ABI or API compatibility with existing drivers. The existing data structures used to communicate between the kernel and driver portions of PPS processing contain no spare/padding fields and no flags field or other straightforward mechanism for communicating changes in the structures or behaviors of the code. This makes it difficult to MFC new features added to the PPS facility. ABI compatibility is important; out-of-tree drivers in module form are known to exist. (Note that the existing api_version field in the pps_params structure must contain the value mandated by RFC 2783 and any RFCs that come along after.) These changes introduce a pair of abi-version fields which are filled in by the driver and the kernel respectively to indicate the interface version. The driver sets its version field before calling the new pps_init_abi() function. That lets the kernel know how much of the pps_state structure is understood by the driver and it can avoid using newer fields at the end of the structure that it knows about if the driver is a lower version. The kernel fills in its version field during the init call, letting the driver know what features and data the kernel supports. To implement the new version information in a way that is backwards compatible with code from before these changes, the high bit of the lightly-used 'kcmode' field is repurposed as a flag bit that indicates the driver is aware of the abi versioning scheme. Basically if this bit is clear that indicates a "version 0" driver and if it is set the driver_abi field indicates the version. These changes also move the recently-added 'mtx' field of pps_state from the middle to the end of the structure, and make the kernel code that uses this field conditional on the driver being abi version 1 or higher. It changes the only driver currently supplying the mtx field, usb_serial, to use pps_init_abi(). Reviewed by: hselasky@
* timecounter: Synchronize with FreeBSDian2015-06-091-9/+10
| | | | Use sbuf_printf() for sysctl strings instead of stack buffers and snprintf().
* timecounter: Synchronize with FreeBSDhselasky2015-06-091-8/+6
| | | | | | | | Add mutex support to the pps_ioctl() API in the kernel. Bump kernel version to reflect structure change. PR: 196897 MFC after: 1 week
* sptests/sptimecounter03: New testSebastian Huber2015-06-096-0/+144
|
* score: Fix compiler memory barriers for atomic opsSebastian Huber2015-06-091-6/+18
|
* bsps/sparc: tlib clock driver timecounter supportSebastian Huber2015-06-091-38/+56
|
* sptests/spcontext01: Add second volatile clobberSebastian Huber2015-06-091-1/+10
| | | | | Do a volatile clobber in the context switch extension to cover the path through _Thread_Do_dispatch() invoked after interrupt processing.
* sparc: Add SPARC_USE_SAFE_FP_SUPPORTSebastian Huber2015-06-094-4/+114
| | | | | | | | | | | | | | | | | | | | | | | | The SPARC ABI is a bit special with respect to the floating point context. The complete floating point context is volatile. Thus from an ABI point of view nothing needs to be saved and restored during a context switch. Instead the floating point context must be saved and restored during interrupt processing. Historically the deferred floating point switch is used for SPARC and the complete floating point context is saved and restored during a context switch to the new floating point unit owner. This is a bit dangerous since post-switch actions (e.g. signal handlers) and context switch extensions may silently corrupt the floating point context. The floating point unit is disabled for interrupt handlers. Thus in case an interrupt handler uses the floating point unit then this will result in a trap. On SMP configurations the deferred floating point switch is not supported in principle. So use here a safe floating point support. Safe means that the volatile floating point context is saved and restored around a thread dispatch issued during interrupt processing. Thus post-switch actions and context switch extensions may safely use the floating point unit. Update #2270.
* score: Add Thread_Control::is_fpSebastian Huber2015-06-096-29/+17
| | | | | | | | Store the floating-point unit property in the thread control block regardless of the CPU_HARDWARE_FP and CPU_SOFTWARE_FP settings. Make sure the floating-point unit is only enabled for the corresponding multilibs. This helps targets which have a volatile only floating point context like SPARC for example.
* sptests/spcontext01: Improve outputSebastian Huber2015-06-032-10/+20
|
* rtems: Change CONTEXT_FP_SIZE defineSebastian Huber2015-06-031-1/+5
| | | | | | | Define CONTEXT_FP_SIZE to zero in case hardware and software floating point support is disabled. The problem is that empty structures have a different size in C and C++. In C++ they have a non-zero size leading to an overestimate of the workspace size.
* smptests/smpscheduler02: Reduce required CPU countSebastian Huber2015-06-031-41/+50
|
* smptests/smpmrsp01: Reduce required CPU countSebastian Huber2015-06-031-8/+13
|
* smptests/smpscheduler03: Use proper lockSebastian Huber2015-06-031-9/+9
|
* score: Remove assertSebastian Huber2015-06-031-6/+0
| | | | | | With the introduction of fine grained locking there is no longer a one-to-one connection between the Giant lock nest level and the thread dispatch disable level.
* posix: Fix _POSIX_Timer_Insert_helper() lockingSebastian Huber2015-06-031-5/+9
| | | | Close #2358.
* sparc: Disable FPU in interrupt contextAlexander Krutwig2015-05-303-2/+66
| | | | Update #2270.
* sparc: Remove superfluous FP enableSebastian Huber2015-05-302-22/+7
| | | | | | | The FP context save/restore makes only sense in the context of FP threads. Update #2270.
* sparc: Avoid new window for FP save/restoreSebastian Huber2015-05-301-54/+48
| | | | Update #2270.
* tmtests/tm26: Fix context switch to FP taskSebastian Huber2015-05-291-3/+0
| | | | | | | It is wrong to restore the floating point context here. The _Context_Switch() ends up in _Thread_Handler() which will call _Thread_Restore_fp(). In _Thread_Do_dispatch() the FP restore is after the context switch.
* Revert "tmtests/tm26: Avoid NULL pointer access"Sebastian Huber2015-05-291-0/+3
| | | | | | | There is no NULL pointer access. Please note that _Thread_Get_executing() != executing variable in Low_task(). This reverts commit 5611839a7e2e371dd1f327c336c785095f634e55.
* sparc: Improve _CPU_Context_validate()Alexander Krutwig2015-05-291-46/+49
| | | | | | | Write the pattern only once to the entry register window and the floating point registers. Update #2270.
* tmtests/tm26: Avoid NULL pointer accessSebastian Huber2015-05-291-3/+0
|
* posix: Fix clock_gettime()Sebastian Huber2015-05-291-2/+0
| | | | | The _TOD_Get_zero_based_uptime_as_timespec() returns already the right value.
* bsps/powerpc: Fix potential integer overflowSebastian Huber2015-05-291-1/+1
| | | | Update #2356.
* MAINTAINERS: added selfBen Gras2015-05-281-0/+2
|
* beagle bsp: RTC support for BBBragunath2015-05-285-0/+309
|
* dosfs: avoid buffer-overread. closes #2292.Gedare Bloom2015-05-271-2/+2
|
* libtests/i2c01: Avoid stack overflowSebastian Huber2015-05-271-0/+2
|
* score: Replace _API_Mutex_Is_locked()Sebastian Huber2015-05-274-35/+31
| | | | Replace _API_Mutex_Is_locked() with _API_Mutex_Is_owner().
* sapi: Fix workspace size estimateSebastian Huber2015-05-271-2/+1
| | | | | Reserve a full minimum block to account for the heap protection enabled via RTEMS_DEBUG.
* sapi: Fix workspace size estimateSebastian Huber2015-05-271-4/+15
|
* sapi: Simplify confdefs.hSebastian Huber2015-05-271-1/+0
| | | | | The _Configure_From_workspace() already takes care that zero size allocations contribute nothing to the workspace size estimate.
* jffs2: Move into separate librarySebastian Huber2015-05-2711-10/+34
| | | | | | | In case the zlib compression was used, then the librtemscpu.a depended on libz.a. To avoid a GCC patch or complicated link flags move the JFFS2 support into a separate library to use a simple "-ljffs2 -lz" to link the executable.
* generic_or1k: Fix a typo in a commentHesham ALMatary2015-05-261-1/+1
|
* generic_or1k: Use the correct bsp_specs fileHesham ALMatary2015-05-262-11/+6
|
* i386/pc386: default graphics driver changed from VGA to VESA basedJan Dolezal2015-05-263-23/+29
| | | | | | | basic VGA driver can be enabled during configure phase by exporting variable USE_VGA=1 so that it is available in configure environment cirrus driver is enabled the same way by exporting variable USE_CIRRUS_GD5446=1
* i386/pc386/VESA framebuffer driver: modified and extended initialization optionsJan Dolezal2015-05-264-40/+172
| | | | | | | | driver is not initialized by default initialization is possible through multiboot command line option or through the string variable (see fb_default_mode.h) set in user's module allowing the driver to evaluate this variable after the two modules are linked together
* Merge branch 'master' of ssh://dispatch.rtems.org/data/git/rtemsJoel Sherrill2015-05-267-50/+102
|\
| * sparc: Add static assertionSebastian Huber2015-05-261-0/+5
| |