Commit Graph

28267 Commits

Author SHA1 Message Date
Nick Withers
e2fcb7dc64 powerpc: Fix _CPU_Counter_read()
The mftb is not available on Book E processors.  Use SPR 268 instead.

Close #2369.
2015-07-15 09:02:32 +02:00
Sebastian Huber
c5d0ca91cf libcsupport: Workaround for GCC 5.1 and later
Disable an optimization which would lead to a recursive calloc() call in
calloc().
2015-07-15 08:46:36 +02:00
Chris Johns
083e6d6b4b libnetworking: Send the hostname if set in the network configuration.
This allows a suitably configured DHCP server with DDNS to enter
the name into the DNS table making it addressiable via it's host name.
2015-07-14 08:15:52 +10:00
Sebastian Huber
f5d4570fe6 score: Simplify _Thread_Lock_set()
Exploit the fact that the current thread lock must be the default thread
lock and interrupts are disabled if we call _Thread_Lock_set().
2015-07-13 08:56:57 +02:00
Sebastian Huber
9341773152 score: Typo 2015-07-13 08:56:57 +02:00
Sebastian Huber
c2596dfbd0 bsps/powerpc: Fix small-data area issue
Update #2369.
2015-07-09 10:00:26 +02:00
Sebastian Huber
8406d94283 libmisc: Use SMP application by default on SMP 2015-07-08 10:10:28 +02:00
Sebastian Huber
b9a7dc3b04 doc: Clarify SMP configuration defines 2015-07-08 10:10:27 +02:00
Sebastian Huber
b171982439 bsps/powerpc: Provide debug and trace symbols 2015-07-08 10:07:59 +02:00
Sebastian Huber
3e02a472ba bsp/qoriq: Enable branch prediction for T series 2015-07-08 10:07:59 +02:00
Sebastian Huber
994d7e12b5 bsp/qoriq: Use -O2 for T series 2015-07-08 10:07:59 +02:00
Sebastian Huber
4c6843168d powerpc: Add BUCSR register defines 2015-07-08 10:07:59 +02:00
Jan Sommer
e77f625401 RaspberryPi: Use rtems_configuration_get_microseconds_per_tick to set clock counter
timer interrupt was hard coded to 10 ms per tick.
    Fix uses the setting of CONFIGURE_MICROSECONDS_PER_TICK to compute the correct start value for the counter
    See for more information: http://permalink.gmane.org/gmane.os.rtems.user/22691
2015-07-07 16:01:28 -05:00
Sebastian Huber
635ed82a12 bsp/qoriq: Update due to API changes 2015-07-01 11:13:50 +02:00
Sebastian Huber
372bee84a1 score: Simplify _SMP_ticket_lock_Release()
Add a SMP lock statistics pointer to SMP_lock_Stats_context and drop the
SMP lock statistics parameter from _SMP_ticket_lock_Release().
2015-07-01 08:28:01 +02:00
Sebastian Huber
f59f2fe93e score: Accept NULL pointer in _Freechain_Put()
With this a _Freechain_Put( _Freechain_Get() ) works always.
2015-07-01 08:24:45 +02:00
Sebastian Huber
fdb45d6b26 score: Freechain handler API changes
Replace the extend function with an allocator since this fits better
to the current use case.
2015-07-01 08:24:31 +02:00
Sebastian Huber
cb2b8f02dd doc: Fix interrupt level ARM documentation 2015-06-26 21:39:16 +02:00
Sebastian Huber
d84408a9aa doc: Update ARM documentation 2015-06-26 21:28:06 +02:00
Sebastian Huber
32005a7284 bsp/mpc55xxevb: Fix configure script
This was the only configure.ac file with bspopts.h present in
AC_CONFIG_FILES().  This somehow prevented the generation of this file
leading to build errors for this BSP.
2015-06-26 09:40:24 +02:00
Sebastian Huber
27f08f5b72 bsps/arm: Update due to API changes 2015-06-26 09:40:03 +02:00
Sebastian Huber
d811daca69 score: Hide SMP lock profiling impl if disabled
The problem is that empty structures have a different size in C and C++.
2015-06-26 09:22:41 +02:00
Sebastian Huber
5f31bbe105 libmisc: Simplify <rtems/stackchk.h>
Drop the <rtems/score/percpu.h> include since this file exposes a lot of
implementation details.
2015-06-26 09:16:29 +02:00
Sebastian Huber
96316d1b50 score: Simplify <rtems/score/scheduler.h>
Drop the <rtems/score/percpu.h> include since this file exposes a lot of
implementation details.
2015-06-26 09:16:29 +02:00
Sebastian Huber
48fed9a56e score: Simplify <rtems/system.h>
Drop the <rtems/score/percpu.h> include since this file exposes a lot of
implementation details.
2015-06-26 09:16:25 +02:00
Sebastian Huber
270ccc5907 score: Fix extern "C" in <rtems/score/heap.h> 2015-06-25 14:10:57 +02:00
Sebastian Huber
bd67d7d2f8 score: Simplify <rtems/score/thread.h>
Avoid Thread_Control typedef in <rtems/score/percpu.h>.  This helps to
get rid of the <rtems/score/percpu.h> include in <rtems/score/thread.h>
which exposes a lot of implementation details.
2015-06-25 13:55:34 +02:00
Sebastian Huber
0b268b8bdb score: Move default _ISR_Is_in_progress() 2015-06-25 13:55:32 +02:00
Sebastian Huber
8042107a6e score: Move SMP CPU_USE_DEFERRED_FP_SWITCH check 2015-06-25 11:28:59 +02:00
Sebastian Huber
a3fc33f8fa score: Assert proper node size 2015-06-24 14:24:27 +02:00
Sebastian Huber
df8341ae30 bsp/gen5200: Simplify interrupt write support 2015-06-24 08:46:32 +02:00
Sebastian Huber
cdf30f0550 rtems: Add rtems_interrupt_local_disable|enable()
Add rtems_interrupt_local_disable|enable() as suggested by Pavel Pisa to
emphasize that interrupts are only disabled on the current processor.
Do not define the rtems_interrupt_disable|enable|flash() macros and
functions on SMP configurations since they don't ensure system wide
mutual exclusion.
2015-06-22 08:40:26 +02:00
Sebastian Huber
f9090ac82d tmtests/tm27: Use scheduler lock 2015-06-19 21:38:52 +02:00
Sebastian Huber
f22af606d4 sptests/sp37: Fix type and simplify 2015-06-19 21:21:27 +02:00
Sebastian Huber
1cfe012543 nfsclient: Use an interrupt lock 2015-06-19 14:24:27 +02:00
Sebastian Huber
9d8389021c arm: Implement _CPU_ISR_Get_level() for ARMv7-M 2015-06-15 20:45:56 +02:00
Joel Sherrill
e0938c2754 user/conf.t: Fix names for CONFIGURE_UNLIMITED_OBJECTS and CONFIGURE_UNLIMITED_ALLOCATION_SIZE
closes #2368.
2015-06-15 13:22:31 -05:00
Joel Sherrill
e6b31b27fb Remove use ticks for statistics configure option.
This was obsolete and broken based upon recent time keeping changes.

Thie build option was previously enabled by adding
USE_TICKS_FOR_STATISTICS=1 to the configure command line.

This propagated into the code as preprocessor conditionals
using the __RTEMS_USE_TICKS_FOR_STATISTICS__ conditional.
2015-06-15 13:20:17 -05:00
Sebastian Huber
80fca28198 score: Add _Watchdog_Preinitialize()
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.
2015-06-13 15:51:21 +02:00
Sebastian Huber
258d580c42 score: Delete unused state WATCHDOG_REMOVE_IT 2015-06-13 14:49:23 +02:00
Sebastian Huber
0562060f07 sptests/sptasknopreempt01: New test
Update #2365.
2015-06-12 13:59:47 +02:00
Joel Sherrill
becbedac78 pc386/console/fb*.c: Use atomics to avoid dependency on pthreads
closes #2364.
2015-06-11 08:06:33 -07:00
Sebastian Huber
aa2a62ce34 rtems: Do not switch off the FP attribute
This is necessary after commit 335e5caa9a.
2015-06-11 10:47:38 +02:00
Sebastian Huber
f718e790e1 Revert "timecounter: No _Timecounter_Tick_simple() for SMP"
This reverts commit 46ae1d7a2b.

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.
2015-06-11 09:56:18 +02:00
Sebastian Huber
46ae1d7a2b timecounter: No _Timecounter_Tick_simple() for SMP 2015-06-09 21:31:27 +02:00
Gedare Bloom
6f55315ff2 cpukit/rtems: Fix doc for rtems_clock_get_ticks_per_second
closes #2357.
2015-06-09 13:54:26 -04:00
Gedare Bloom
fecc911b41 doc: fix typo. closes #2361. 2015-06-09 11:46:23 -04:00
kib
e1d61fe2aa timecounter: Synchronize with FreeBSD
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
2015-06-09 14:56:02 +02:00
ian
7e1a9ac5b5 timecounter: Synchronize with FreeBSD
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@
2015-06-09 14:56:02 +02:00
ian
cb6fde65c1 timecounter: Synchronize with FreeBSD
Use sbuf_printf() for sysctl strings instead of stack buffers and snprintf().
2015-06-09 14:56:02 +02:00