Commit Graph

34104 Commits

Author SHA1 Message Date
Sebastian Huber
4ecab5865e bsp/xilinx-zynqmp: Simplify configure.ac
Use NULL-pointer protection also for Qemu variant.
2019-10-23 14:19:47 +02:00
Christian Mauderer
9620dfa49e bsp/atsam: Use PIO for SC16IS752.
This allows to mix SC16IS752 chips with other interrupts.
2019-10-23 10:41:34 +02:00
Christian Mauderer
d60b6d7c33 bsp/atsam: Add additional PIO helper. 2019-10-23 10:41:34 +02:00
Christian Mauderer
d4b92da208 bsps/atsam: Improve case for level triggered IRQs.
For level triggered interrupts currently the handler would have been
called two times (assuming no one cleared the mask in a handler which
would have been bad because the handler couldn't process all other that
got cleared by accident). This patch allows the handler only to return
if nothing is left to do.
2019-10-23 10:41:34 +02:00
Pragnesh Patel
a7f5e42cc5 riscv: add freedom E310 Arty A7 bsp
Added support for Sifive Freedom FE310 soc on Arty A7 FPGA board.
Update #3785.

Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
2019-10-23 08:11:50 +02:00
Chris Johns
32c9b83109 libdebugger/arm: Clean up the building on arm variants. 2019-10-19 15:54:40 +11:00
Chris Johns
2fdbdbc8b1 arm/beanglebone: Fix i2c build error. 2019-10-19 15:53:50 +11:00
Sebastian Huber
e71f0a5358 ttest01: Check init/final run output
Update #3199.
2019-10-11 08:55:53 +02:00
Sebastian Huber
b5e61f95ac libtest: Add more action events
This allows more control over the initialization and finalization run.

Update #3199.
2019-10-11 08:55:53 +02:00
Mikail Yayla
5a1df5e73e ttest01: Add test outputs all test cases 2019-10-11 08:55:53 +02:00
Sebastian Huber
feb27f9031 ttest01: Add more test cases
Update #3199.
2019-10-11 08:55:49 +02:00
Sebastian Huber
b406d071ec libtest: Do all output in test runner
This ensures that lines are output atomically if they are produced by
different other contexts, e.g. interrupts, other processors, other
threads.

Update #3199.
2019-10-11 08:55:49 +02:00
Sebastian Huber
f88025aebe ttest01: Adjust SPDX-License-Identifier
Update #3199.
2019-10-11 08:55:46 +02:00
Sebastian Huber
698732a6c4 Add CC-BY-SA-4.0 license text
Retrieved from:

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt

This license is inteded for code which is shared with the documentation,
e.g code examples.  Such code should be dual licensed BSD-2-Clause or
CC-BY-SA-4.0 with the following license identifier:

SPDX-License-Identifier: BSD-2-Clause OR CC-BY-SA-4.0
2019-10-11 08:38:55 +02:00
Hesham Almatary
43a6991a42 Add myself to the MAINTAINERS 2019-10-10 14:25:52 +01:00
Joel Sherrill
667501a314 termios: Add Capability to Generate SIGINTR and SIGQUIT
This patch adds the ability for termios to send SIGINTR on receipt
of VINTR and SIGQUIT for VKILL and return -1/EINTR from read() on
a termios channel. Importantly, this patch does not alter the default
behavior or force POSIX signal code in just because termios is used.
The application must explicitly enable the POSIX behavior of generating
a signal upon receipt of these characters. This is discussed in the
POSIX standard:

   https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html

Closes #3800.
2019-10-08 14:25:41 -05:00
Joel Sherrill
ff4a4a862b termios04/init.c: Remove dead copy of change_iflag() 2019-10-04 09:13:28 -05:00
Joel Sherrill
7685b48f40 cpukit/headers.am: Regenerate 2019-10-04 09:12:55 -05:00
Sebastian Huber
8d989c56ff score: Install timecounter according to quality
This makes it possible to install higher quality timecounter in
plug-and-play systems and helps to override the clock driver provided
timecounter in some test scenarios.
2019-10-02 07:01:36 +02:00
Sebastian Huber
47e5c1d7cd score: Remove strange timecounter init step
The double call of the timecounter get method was added to FreeBSD in
2002 without a comment.  It is not clear why this is needed.
2019-10-02 07:01:36 +02:00
Sebastian Huber
2763f530d3 score: Remove superfluous timecounter members 2019-10-02 07:01:36 +02:00
Sebastian Huber
6ae25220d6 Revert "record: Add wrappers for malloc() functions"
It was accidentally committed.

This reverts commit a314544a27.
2019-10-02 06:40:30 +02:00
Sebastian Huber
1b84d2b360 libtests/ttest01: Fix typos 2019-10-02 06:38:07 +02:00
Sebastian Huber
be3d697450 bsp/erc32: Improve pseudo-SMP support
Add support for _SMP_Send_message() to the own processor.  This is
required by the smpmulticast01 test program.
2019-10-01 09:55:07 +02:00
Sebastian Huber
a314544a27 record: Add wrappers for malloc() functions
Introduce new library librtemsrecordwrap.a which contains wrappers for
operating system functions which produce entry/exit events.

The wrappers can be selected during link time via the GNU ld --wrap
option.

Update #3665.
2019-10-01 09:55:07 +02:00
Sebastian Huber
1ea7e3a76e MAINTAINERS: Remove Martin Galvan
Remove Martin Galvan due to inactivity from the Write After Approval
list.
2019-10-01 09:55:07 +02:00
Sebastian Huber
d488050953 dosfs: Fix format with media block sizes > 512 2019-10-01 09:55:07 +02:00
Sebastian Huber
c1eb577486 libtests/record01: Fix test failure
Update #3665.
2019-10-01 09:55:07 +02:00
Sebastian Huber
aeb981ea1b psxtests/psxualarm: Fix test failure
Update #3794.
2019-10-01 09:16:31 +02:00
Sebastian Huber
de6348a9f1 _kernel_time.h: Compatibility to future Newlib 2019-10-01 08:13:56 +02:00
Joel Sherrill
8798372261 Correct initial POSIX signals mask
+ Modify POSIX thread create extension to ensure expected
	  initial signal mask is provided to system threads, initial
	  tasks and threads, and inheritied by tasks and threads.
	+ Adds psxsignal07 to verify functionality when using a POSIX
	  Initialization thread and POSIX threads.
	+ Adds psxsignal08 to verify functionality when using a Classic API
	  Initialization task and Classic API tasks.

Closes #3794.
2019-09-24 16:27:57 -05:00
Sebastian Huber
33ed4123c0 rtems: Add rtems_interrupt_server_entry_move()
The use case for this function is the libbsd.  In FreeBSD, the interrupt
setup and binding to a processor is done in two steps.  Message
based interrupts like PCIe MSI and MSI-X interrupts can be implemented
through interrupt server entries.  They are setup at the default
interrupt server and may optionally move to an interrupt server bound to
a specific processor.
2019-09-20 09:22:46 +02:00
Vijay Kumar Banerjee
a4e96cfb0a bsps/beagle: register i2c device at initialization 2019-09-19 21:27:16 +02:00
Sebastian Huber
c1a1f2c8da Add rtems_version_control_key_is_valid() 2019-09-11 07:28:34 +02:00
Vaibhav Gupta
5e5867a32a Add psxfenv01 test to psxtests
Note that this test requires a functional fenv implementation. Some
targets have multilib variants where the fenv implementation is not
100% passing.
2019-09-10 13:47:29 -05:00
Sebastian Huber
eaa415b2c7 rtems: Make rtems_version_control_key() safer
Return the empty string instead of a NULL pointer if no version key is
available.
2019-09-09 07:04:53 +02:00
Sebastian Huber
c331bdc777 record: Allow tracing of ISR disable/enable
Directly use the CPU port API in boot_card() to allow tracing of the
higher level interrupt disable/enable routines, e.g.
_ISR_Local_disable() and _ISR_Local_enable().  Currently, there is no
configuration option to enable this.  Below is a patch.  It may be used
to investigate some nasty low level bugs in the system.

Update #3665.

diff --git a/cpukit/include/rtems/score/isrlevel.h b/cpukit/include/rtems/score/isrlevel.h
index c42451d010..46d361ddc2 100644
--- a/cpukit/include/rtems/score/isrlevel.h
+++ b/cpukit/include/rtems/score/isrlevel.h
@@ -40,6 +40,10 @@ extern "C" {
  */
 typedef uint32_t   ISR_Level;

+uint32_t rtems_record_interrupt_disable( void );
+
+void rtems_record_interrupt_enable( uint32_t level );
+
 /**
  *  @brief Disables interrupts on this processor.
  *
@@ -56,8 +60,7 @@ typedef uint32_t   ISR_Level;
  */
 #define _ISR_Local_disable( _level ) \
   do { \
-    _CPU_ISR_Disable( _level ); \
-    RTEMS_COMPILER_MEMORY_BARRIER(); \
+    _level = rtems_record_interrupt_disable(); \
   } while (0)

 /**
@@ -72,10 +75,7 @@ typedef uint32_t   ISR_Level;
  *  _ISR_Local_disable().
  */
 #define _ISR_Local_enable( _level ) \
-  do { \
-    RTEMS_COMPILER_MEMORY_BARRIER(); \
-    _CPU_ISR_Enable( _level ); \
-  } while (0)
+  rtems_record_interrupt_enable( _level )

 /**
  *  @brief Temporarily enables interrupts on this processor.
@@ -98,9 +98,8 @@ typedef uint32_t   ISR_Level;
  */
 #define _ISR_Local_flash( _level ) \
   do { \
-    RTEMS_COMPILER_MEMORY_BARRIER(); \
-    _CPU_ISR_Flash( _level ); \
-    RTEMS_COMPILER_MEMORY_BARRIER(); \
+    rtems_record_interrupt_enable( _level ); \
+    _level = rtems_record_interrupt_disable(); \
   } while (0)

 /
2019-09-06 08:09:34 +02:00
Chris Johns
02ed0b802b Add a parallel bootstrap command. 2019-09-05 14:25:27 +10:00
Sebastian Huber
0b3dcb3b37 arm: Fix default exception handler
Keep the stack pointer properly 8-byte aligned.
2019-09-03 10:34:13 +02:00
Sebastian Huber
e41e9961df record: Add system events
Update #3665.
2019-09-02 07:47:48 +02:00
Sebastian Huber
1c72ad73ae record: Add system events
Add system events for memory allocation/free.

Update #3665.
2019-08-30 15:03:14 +02:00
Sebastian Huber
8ace7eada4 record: Add system events
Add system events to identify the target system.  Add system events to
transfer blocks of memory and register sets.

Update #3665.
2019-08-30 11:18:47 +02:00
Sebastian Huber
1e18f645f3 record: Initialize records earlier
The _Record_Initialize() function depends only initialized read-only
data.  Call it as the first initialization step to allow tracing of the
complete system initialization.

Update #3665.
2019-08-30 08:57:31 +02:00
Sebastian Huber
11f196d646 record: Simplify configuration
Update #3665.
2019-08-30 08:57:28 +02:00
Sebastian Huber
d78082ce76 record: Introduce _Record_Drain()
This allows its use in crash dump procedures.

Update #3665.
2019-08-30 08:46:17 +02:00
Sebastian Huber
58bd67bb35 record: Add more system events
Reduce the system dependencies to allow tracing of very low level
functions, for example the interrupt disable/enable.

Introduce general purpose RTEMS_RECORD_CALLER and RTEMS_RECORD_LINE
events.

Update #3665.
2019-08-29 10:07:02 +02:00
Sebastian Huber
807ea677b2 score: Add RTEMS_RETURN_ADDRESS() 2019-08-28 15:22:27 +02:00
Sebastian Huber
956a2ef78d record: Add variants for critical sections
Update #3665.
2019-08-28 15:22:27 +02:00
Sebastian Huber
3eb8d78369 record: Introduce <rtems/recordserver.h>
This helps to get rid of the <rtems/rtems/tasks.h> dependency in
<rtems/record.h>.

Update #3665.
2019-08-28 15:22:06 +02:00
Sebastian Huber
a2684c2b8d record: Use BSS section instead of per-CPU data
The .rtemsrwset section is used for the per-CPU data.  This section has
loadable content.  Place the ring buffers in the BSS section to avoid
large executable image sizes.

Not using the per-CPU data makes it possible to initialize the record
support earlier.

Update #3665.
2019-08-28 08:58:14 +02:00