Commit Graph

14592 Commits

Author SHA1 Message Date
Sebastian Huber
cd7991b8df bsps/powerpc: Fix warning 2017-07-28 13:50:12 +02:00
Sebastian Huber
9379c705a8 bsps/sparc64: Fix warning 2017-07-28 13:40:45 +02:00
Sebastian Huber
0684f3592b bsp/i386: Fix warning 2017-07-28 13:10:19 +02:00
Sebastian Huber
fd3437c1af bsp/gen5200: Fix warnings 2017-07-28 13:06:55 +02:00
Sebastian Huber
a9f5812505 bsp/qoriq: Fix warning 2017-07-28 13:06:41 +02:00
Sebastian Huber
0db7c550ac bsp/qoriq: New BSP names
Due to the FDT support we can now reduce the BSP variants.  Use the
processor core to define the BSP variants.

Update #3082.
Update #3085.
2017-07-28 10:12:36 +02:00
Sebastian Huber
b615e9b3ee bsp/qoriq: Simplify initialization
Do not flush/invalidate the caches. Instead enable the cache during the
low-level initialization and perform an explicit cache flush for the
read-only and fast-text sections.

Update #3082.
Update #3085.
2017-07-28 10:12:28 +02:00
Sebastian Huber
146adb1edf sparc: Add lazy floating point switch
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 was
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 (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT).

In uniprocessor configurations, a lazy floating point context switch is
used.  In case an active floating point thread is interrupted (PSR[EF] == 1)
and a thread dispatch is carried out, then this thread is registered as the
floating point owner.  When a floating point owner is present during a
context switch, the floating point unit is disabled for the heir thread
(PSR[EF] == 0).  The floating point disabled trap checks that the use of the
floating point unit is allowed and saves/restores the floating point context
on demand.

Update #3077.
2017-07-25 11:41:12 +02:00
Sebastian Huber
600d88dfd7 INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT.

Update #3077.
2017-07-25 11:41:11 +02:00
Sebastian Huber
a400d06f48 sparc: Rename SPARC_USE_SAFE_FP_SUPPORT
Rename SPARC_USE_SAFE_FP_SUPPORT in SPARC_USE_SYNCHRONOUS_FP_SWITCH.
Update comment.

Update #3077.
2017-07-25 11:41:11 +02:00
Sebastian Huber
671efc50a3 bsp/leon2: Add at697f variant 2017-07-25 11:41:10 +02:00
Sebastian Huber
9f84bdb09a bsp/leon2: Use hard-float by default 2017-07-25 11:41:09 +02:00
Sebastian Huber
7ed8ad0adb bsps/sparc: Fix cache support
Fix infinite loop in rtems_invalidate_multiple_instruction_lines().
Implement this function.

Close #3080.
2017-07-19 15:55:44 +02:00
Sebastian Huber
734444ce62 libchip: Fix format warning 2017-07-19 14:38:00 +02:00
Sebastian Huber
dcc3ccc0a0 bsps: Fix warning
Update #3071.
2017-07-19 14:38:00 +02:00
Daniel Cederman
4debaca6d2 bsps/sparc: Add leon3 BSP variants
Rename NGMP to GR740 and add configs for UT699, UT700, and GR712RC

The UT699 requires -mcpu=leon as it does not support the CAS instruction
provided by -mcpu=leon3. It also requires -mfix-ut699 for errata fixes.

UT700 and GR712RC requires the -mfix-ut700 and -mfix-gr712rc flags that
have been recently added to GCC's master and 7-branch.

Remove -msoft-float from the leon3 config to make the more common case
of using the FPU the default.

Update #3057.
2017-07-17 07:43:20 +02:00
Daniel Cederman
2f8704b6c8 sparc: Add assembly workaround for LEON3FT B2BST errata
This patch adds NOP instructions to prevent instruction sequences
that are sensitive to the LEON3FT B2BST errata. See GRLIB-TN-0009:
"LEON3FT Stale Cache Entry After Store with Data Tag Parity Error"
for more information.

The sequences are only modified if __FIX_LEON3FT_B2BST is defined.

The patch works in conjunction with the -mfix-ut700, -mfix-gr712rc,
and -mfix-ut699 GCC flags that prevents the sensitive sequences from
being generated.

Update #3057.
2017-07-17 07:41:38 +02:00
Sebastian Huber
e19da87ad7 bsps: Include missing header file
Update #3071.
2017-07-12 10:56:20 +02:00
Sichen Zhao
f6115d7cd2 bsp/beagle: Add FDT support for Beaglebone Black 2017-07-12 08:38:20 +02:00
Sebastian Huber
af207fa9f6 Add interrupt vector set/get affinity
Close #3071.
2017-07-12 08:00:13 +02:00
Sebastian Huber
ccc87c8b9e Add interrupt server move
Update #3071.
2017-07-12 07:46:55 +02:00
Sebastian Huber
d1841406b3 Add interrupt server set affinity
Update #3071.
2017-07-12 07:46:52 +02:00
Sebastian Huber
a961e1980c Add interrupt server suspend/resume
This mechanism can be used to safely move the interrupt server from one
scheduler instance to another for example.

Update #3071.
2017-07-12 07:46:49 +02:00
Sebastian Huber
e7ee719f79 Create one interrupt server per processor
This allows load balancing of interrupt processing in SMP
configurations.

Update #3071.
2017-07-12 07:46:40 +02:00
Sebastian Huber
c29eb085f2 bsps/sparc: Fix ambapp_int_set_affinity()
Update #3059.
2017-07-11 14:15:47 +02:00
Sebastian Huber
76d119857f score: Introduce _SMP_Get_online_processors()
Update #3059.
2017-07-07 07:55:03 +02:00
Sebastian Huber
3dfe55ee15 score: Use <sys/bitset.h> for Processor_mask
Implement the Processor_mask via <sys/bitset.h>.  Provide
_Processor_mask_To_uint32_t() to enable its use in device specific
routines, e.g. interrupt affinity register in an interrupt controller.

Update #3059.
2017-07-06 15:29:16 +02:00
Sebastian Huber
5bfeab951c Add rtems_interrupt_server_handler_iterate() 2017-06-26 08:23:33 +02:00
Joel Sherrill
ec230fc77f i386/shared/comm/i386-stub-glue.c: Fix duplicate const warning 2017-06-21 12:50:30 -05:00
Joel Sherrill
91774269db lpc176x/misc/restart.c: Fix duplicate const warning 2017-06-21 12:50:30 -05:00
Sebastian Huber
c6810c824c bsps: Improve interrupt vector enable/disable API
Change bsp_interrupt_vector_enable() and bsp_interrupt_vector_disable()
to not return a status code.  Add bsp_interrupt_assert() and use it to
validate the vector number in the vector enable/disable implementations.
2017-06-20 07:42:25 +02:00
Sebastian Huber
b361cb6c4d bsps/powerpc: Fix warning
Close #3051.
2017-06-16 06:22:55 +02:00
Sichen Zhao
369372c3ee Fix beagle i2c file bbb-i2c.c comment issues 2017-06-15 15:01:31 -05:00
Sichen Zhao
8f550d2fa1 Add the i2c driver for Beaglebone Black
Update ticket #2891 and my GSOC project
add c/src/lib/libbsp/arm/beagle/i2c/bbb-i2c.c
modify c/src/lib/libbsp/arm/beagle/include/i2c.h
modify c/src/lib/libbsp/arm/beagle/include/bbb-gpio.h
modify c/src/lib/libcpu/arm/shared/include/am335x.h
modify c/src/lib/libbsp/arm/beagle/Makefile.am
Now can read the EEPROM by i2c, the test application link is: https://github.com/hahchenchen/GSOC-test-application
2017-06-14 12:11:31 -05:00
Sichen Zhao
7741545bfc Remove beagle old i2c code
modify c/src/lib/libbsp/arm/beagle/Makefile.am
modify c/src/lib/libbsp/arm/beagle/include/i2c.h
delete c/src/lib/libbsp/arm/beagle/misc/i2c.c
2017-06-14 11:47:58 -05:00
Alexei Pososin
fd10817a83 Remove excessive locking from cache operations.
According to manual, the used operations (Clean Line by PA, Clean and
Invalidate Line by PA, Cache Sync) are atomic and do not require
locking.

Update #3007.
2017-06-14 15:37:58 +02:00
Sebastian Huber
3f884b455f bsp: Fixes due to header file changes
Update #2833.
2017-06-13 11:38:39 +02:00
Sebastian Huber
0af8bb6c37 bsp: Include missing <sys/param.h>
Update #2833.
2017-06-12 15:40:53 +02:00
Sebastian Huber
74a13c86ea bsp/beatnik: Fixes due to header file changes
Update #2833.
2017-06-12 15:30:54 +02:00
Sebastian Huber
7b0c74ffb0 i386: Support thread-local storage (TLS)
Update #2468.
2017-06-12 08:01:58 +02:00
Sebastian Huber
f256685aa3 bsp/psim: Include missing <sys/param.h> 2017-06-09 07:55:16 +02:00
Sebastian Huber
6081ef31ae if_fxp: Include missing <inttypes.h>
Fix format warnings.
2017-06-09 07:54:45 +02:00
Sebastian Huber
32b4a0c427 Simplify TLS support in context switch
There is no need to save the thread pointer in _CPU_Context_switch()
since it is a thread invariant.  It is initialized once in
_CPU_Context_Initialize().
2017-06-09 07:30:41 +02:00
Christian Mauderer
ce3ac00cfc bsps/arm: Fix ARMv7-M interrupt suppport
Enable/disable vector routines now check for a valid vector.  Without
these guards, the enable/disable vector routines will not work with the
interrupt server.
2017-06-07 13:22:12 +02:00
Sebastian Huber
787f51f5b3 Do not include <sys/ioctl.h> in kernel-space
Update #2833.
2017-06-07 13:02:08 +02:00
Sebastian Huber
93531e9b08 Move RTEMS-specific Termios API content
Remove obsolete support for OFILL, OFDEL, NLDLY, CRDLY, BSDLY, VTDLY,
and FFDLY which is not present on FreeBSD and not implemented in Linux.

Update #2833.
2017-06-07 12:57:39 +02:00
Sebastian Huber
cf54965493 network: Include missing <inttypes.h>
Update #2833.
2017-06-07 07:44:12 +02:00
Sebastian Huber
3623c400ff ada-tests/spatcb01: New test
Update #2289.
2017-06-02 10:31:56 +02:00
Sebastian Huber
7203b70be0 bsp/motorola_powerpc: Fix for Binutils 2.28+
There are mismatched sections in the bootloader input:

ld: Warning: ticker.exe uses hard float, ticker.ralf uses soft float
ld: ticker.exe: compiled normally and linked with modules compiled with -mrelocatable
ld: failed to merge target specific data of file ticker.exe

Suppress this error explicitly.
2017-06-01 19:08:47 +02:00
Sebastian Huber
697a6ca05a bsps/powerpc: Set output format in linker script
Set the proper output format in the linker script for the bootloader.
Otherwise the generic linker is used since Binutils 2.28 which does not
understand the PowerPC-specific relocations.
2017-06-01 19:00:38 +02:00