Commit Graph

28257 Commits

Author SHA1 Message Date
Sebastian Huber
a1b4af4bba score: Add scheduler <sys/lock.h> support 2015-07-30 09:11:18 +02:00
Sebastian Huber
40188718f2 score: Add self-contained futex implementation 2015-07-30 09:11:18 +02:00
Sebastian Huber
7237b3e076 score: Add self-contained semaphore implementation 2015-07-30 09:11:18 +02:00
Sebastian Huber
214d8edd18 score: Add self-contained mutex implementation
This mutex implementation uses a thread priority queue with a simple
priority inheritance mechanism (similar to the object based mutexes).
The storage space must be supplied by the user (16 bytes on 32-bit
targets).
2015-07-30 09:11:18 +02:00
Sebastian Huber
12f93fbb13 score: Add thread queue for self-contained objects 2015-07-30 09:11:17 +02:00
Sebastian Huber
0e3c59d65c score: Use a plain ticket lock for thread locks
This enables external libraries to use thread locks since they are
independent of the actual RTEMS build configuration, e.g. profiling
enabled or disabled.
2015-07-30 09:11:13 +02:00
Sebastian Huber
10e32a2634 score: Add potpourri lock statistics
These SMP lock statistics are used for all lock objects that lack a
storage space for the statistics.  Examples are lock objects used in
external libraries which are independent of the actual RTEMS build
configuration.
2015-07-30 08:06:01 +02:00
Sebastian Huber
e421936bbb score: Provide struct _Thread_queue_Heads
Use a leading underscore in the structure name to allow forward
declarations in standard header files provided by Newlib and GCC.
2015-07-30 08:06:01 +02:00
Sebastian Huber
48274706a7 score: Rename struct Thread_Control
Add a leading underscore to the structure name to allow forward
declarations in standard header files provided by Newlib and GCC.
2015-07-30 08:06:00 +02:00
Michael Davidsaver
74ef2c101a tftpDriver: close() false error
closes #2376.
2015-07-29 10:56:14 -05:00
Sebastian Huber
21789a2117 score: Rename _POSIX_Absolute_timeout_to_ticks()
Rename _POSIX_Absolute_timeout_to_ticks() to
_TOD_Absolute_timeout_to_ticks() and move it to the score directory.
Delete empty <rtems/posix/time.h>.
2015-07-28 14:54:51 +02:00
Sebastian Huber
f7d95581c8 m68k: Include proper header file 2015-07-24 10:47:25 +02:00
Sebastian Huber
9c53910190 score: Add comment 2015-07-24 09:13:31 +02:00
Sebastian Huber
9780fa937c monitor: Sort alphabetically 2015-07-24 09:09:18 +02:00
Sebastian Huber
d70f530842 monitor: Add current CPU of thread 2015-07-24 09:09:18 +02:00
Sebastian Huber
0910e9d438 monitor: Print the wait queue to ease debugging 2015-07-24 09:09:18 +02:00
Sebastian Huber
1f199799b2 monitor: Print addresses like identifiers
This avoids the "0x0xabc" output and is more compact.
2015-07-24 09:09:18 +02:00
Sebastian Huber
975e19187d monitor: Remove notepad support 2015-07-24 09:09:18 +02:00
Sebastian Huber
98a41f419c arm: Include proper header file 2015-07-23 20:34:19 +02:00
Sebastian Huber
08135c85d8 i2c: Fix return status of i2c dev read/write 2015-07-23 09:00:31 +02:00
Sebastian Huber
19078dc6e6 doc: Add SMP section to CPU Arch Supplement 2015-07-23 08:36:30 +02:00
Sebastian Huber
e709aa8522 score: Move wait flag update to tq extract
This makes it possible to use _Thread_queue_Extract_locked() for barrier
operations which extract all threads on the queue in one critical
section.
2015-07-23 08:01:14 +02:00
Sebastian Huber
d7665823b2 score: Introduce Thread_queue_Heads
Move the storage for the thread queue heads to the threads.  Each thread
provides a set of thread queue heads allocated from a dedicated memory
pool.  In case a thread blocks on a queue, then it lends its heads to
the queue.  In case the thread unblocks, then it takes a free set of
threads from the queue.  Since a thread can block on at most one queue
this works.  This mechanism is used in FreeBSD.  The motivation for this
change is to reduce the memory demands of the synchronization objects.
On a 32-bit uni-processor configuration the Thread_queue_Control size is
now 8 bytes, compared to 64 bytes in RTEMS 4.10 (other changes reduced
the size as well).
2015-07-23 08:01:13 +02:00
Sebastian Huber
e273501233 score: Introduce Thread_queue_Queue
Separate the thread queue heads and lock from the operations.  This
enables the support for light weight objects which only support one
queuing discipline.
2015-07-23 08:00:19 +02:00
Sebastian Huber
579f16efd7 bsps/arm: Update due to API changes 2015-07-21 09:29:56 +02:00
Premysl Houdek
b2c252b5ca bsp/tms570 Use bitfields instead of hard-coded values
Signed-off-by: Premysl Houdek <kom541000@gmail.com>
2015-07-20 20:45:40 +10:00
Premysl Houdek
d6c67ad526 bsp/tms570: skipped 32bit field definitions and corrected single bit fields
there is no need to define access macros for field covering
whole registers. In addition, BSP_FLD32 does not work right
for field 32bit length.

Signed-off-by: Premysl Houdek <kom541000@gmail.com>
2015-07-20 20:45:26 +10:00
Joel Sherrill
3f923fd22e Update date 2015-07-17 09:42:35 -05:00
Sebastian Huber
9154c3f99a doc: Add thread dispatch details for SMP 2015-07-17 11:57:38 +02:00
Sebastian Huber
3bb342ca92 doc: Clarify interrupts disable problems on SMP 2015-07-17 11:57:08 +02:00
Sebastian Huber
b56ddbbd84 doc: Fix SMP task variables section 2015-07-17 09:21:46 +02:00
Sebastian Huber
e5a79e54d9 bsp/mpc83xx: Update due to header guard change
Close #2373.
2015-07-17 07:59:35 +02:00
Joel Sherrill
db01d0cc61 sparc64/rtems/score/cpu.h: Delete dead declaration 2015-07-16 11:15:53 -07:00
Joel Sherrill
7e14385b46 sh/shared/startup/bspstart.c: Add include of percpu.h 2015-07-16 11:15:52 -07:00
Premysl Houdek
069560a5f9 bsp/tms570: source changes reflecting new headers.
Signed-off-by: Premysl Houdek <kom541000@gmail.com>
2015-07-16 11:15:52 -07:00
Pavel Pisa
602e395b4d bsp/tms570: fix get time resolution after infrastructure change to timecounter.
The update fixes breakage of TMS570 support after Alexander Krutwig
switch of RTEMS time read to timecounter mechanism

bsps: Convert clock drivers to use a timecounter

Mechanism to specify odd (non 1 Mhz) time base update frequencies
implemented after objections of  Martin Galvan.

Code is adjusted to convert RTEMS configuration parameter
microseconds_per_tick to such odd base if
TMS570_PREFERRED_TC_FREQUENCY is specified appropriately.

Signed-off-by: Premysl Houdek <kom541000@gmail.com>
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
2015-07-16 09:31:09 -07:00
Premysl Houdek
bea49c9477 bsp/tms570: New/generated header files for TMS570 SoC peripherals registers.
The header files are generated by script make_header.py.
Current script's version can be found at:

https://github.com/AoLaD/rtems-tms570-utils/tree/headers/headers/python

Registers offsets and fields have been extracted from reference manual.

Signed-off-by: Premysl Houdek <kom541000@gmail.com>
2015-07-16 09:31:09 -07:00
Joel Sherrill
4784214a6a remaining bsp.h: Fix by hand to LIBBSP_@CPU@_@BSP_FAMILY@_BSP_H
These files were left after running the script in the previous patch.
2015-07-16 08:43:51 -07:00
Joel Sherrill
9cff822a26 Most bsp.h: Switch to LIBBSP_@CPU@_@BSP_FAMILY@_H for guard
This was done by the following script run from libbsp:

find * -name bsp.h | xargs -e grep -l "#ifndef.*_BSP_H" | while read b
do
  echo $b
  cpu=`echo $b | cut -d'/' -f1 | tr '[:lower:]' '[:upper:]' `
  bsp=`echo $b | cut -d'/' -f2 | tr '[:lower:]' '[:upper:]' `
  g="LIBBSP_${cpu}_${bsp}_BSP_H"
  # echo $g
  sed -e "s/ifndef _BSP_H/ifndef ${g}/" \
      -e "s/define _BSP_H/define ${g}/" \
  -i $b

done
2015-07-16 08:40:05 -07:00
Sebastian Huber
93f5adb644 powerpc: Do not use the ATB for e500 multilib
The e500v1 has no support for the ATB.

Update #2369.
2015-07-15 10:52:40 +02:00
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