Commit Graph

14426 Commits

Author SHA1 Message Date
Sebastian Huber
c693a3a506 powerpc: PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE
In 64-bit mode, the linker must have the ability to restore the TOC
pointer after an external function call.

Update #3082.
2017-08-22 16:27:03 +02:00
Sebastian Huber
c8aeb76c44 bsp/qoriq: 64-bit MMU support
Update #3082.
2017-08-22 16:27:03 +02:00
Sebastian Huber
77c8101686 bsp/qoriq: 64-bit support for interrupt controller
Update #3082.
2017-08-22 16:27:03 +02:00
Sebastian Huber
5f42a0e478 bsp/qoriq: Enable 64-bit mode for exceptions
Update #3082.
2017-08-22 16:27:02 +02:00
Sebastian Huber
f14da4517f bsp/qoriq: 64-bit support for spin table
Update #3082.
2017-08-22 16:27:02 +02:00
Sebastian Huber
0ae1916bcf bsp/qoriq: Copy FDT later
We need a ready to use TOC section before we can call bsp_fdt_copy().

Update #3082.
2017-08-22 16:27:02 +02:00
Sebastian Huber
43cc2b4daf bsp/qoriq: Add basic 64-bit support
Update #3082.
2017-08-22 16:27:02 +02:00
Sebastian Huber
c6994af7a7 bsp/qoriq: Use LA to load an address
Add 64-bit support for LA.

Update #3082.
2017-08-22 16:27:02 +02:00
Sebastian Huber
0e26c19a07 bsps/powerpc: Add 64-bit CRT init/fini support
Update #3082.
2017-08-22 16:27:01 +02:00
Sebastian Huber
d50124d51b bsps/powerpc: Rename ppc_exc_wrap_async_normal_end
Rename ppc_exc_wrap_async_normal_end to ppc_exc_interrupt_end to avoid a
bit of obfuscation.

Update #3082.
2017-08-22 16:27:01 +02:00
Sebastian Huber
50382788b3 bsps/powerpc: Add 64-bit SET_SELF_CPU_CONTROL
Update #3082.
2017-08-22 16:27:01 +02:00
Sebastian Huber
60d077f0ba bsps/powerpc: Add 64-bit linker sections
Update #3082.
2017-08-22 16:27:01 +02:00
Sebastian Huber
241d2f2ff1 bsps: Fix integer types in bsp_fdt_copy()
Update #3082.
2017-08-22 16:27:01 +02:00
Sebastian Huber
d8012bbd65 bsps: Add BSP_FDT_BLOB_COPY_TO_READ_ONLY_LOAD_AREA 2017-08-22 16:27:01 +02:00
Sebastian Huber
ec25c6ef74 bsps: Fix integer to/from pointer
Update #3082.
2017-08-22 16:27:00 +02:00
Sebastian Huber
a6f84b2753 powerpc: Add 64-bit context/interrupt support
Update #3082.
2017-08-22 16:26:19 +02:00
Sebastian Huber
7837728b13 powerpc: 64-bit _CPU_Context_Initialize() support
Update #3082.
2017-08-22 14:19:00 +02:00
Sebastian Huber
5e1a831e2b libchip/serial: Fix integer types
Update #3082.
2017-08-22 14:18:59 +02:00
Sebastian Huber
b98e407f63 libchip/ata: Fix integer to/from pointer
Update #3082.
2017-08-22 14:18:58 +02:00
Sebastian Huber
ca9490ca36 bsp/imx: Fix UART interrupt
Update #3090.
2017-08-04 14:46:44 +02:00
Sebastian Huber
694c31f990 bsp/imx: New BSP
Update #3090.
2017-08-04 14:24:56 +02:00
Sebastian Huber
ffe7c0e749 bsps/arm: Add ARMv7-AR Generic Timer clock driver
Update #3090.
2017-08-04 14:22:33 +02:00
Sebastian Huber
ef04443b19 bsps/arm: Add ARMv7-AR Generic Timer support
Update #3090.
2017-08-04 14:22:32 +02:00
Sebastian Huber
30be024aa4 Optional Clock_driver_support_shutdown_hardware()
Make Clock_driver_support_shutdown_hardware() optional.  This avoids
the atexit() support on memory constrained targets.
2017-08-04 14:22:32 +02:00
Sebastian Huber
a8694035ae bsps/powerpc: Add PPC_EXC_INTERRUPT_FRAME_SIZE
Use a specific define for the interrupt exception frame size.

Update #3082.
2017-08-01 11:43:57 +02:00
Sebastian Huber
23cb9afeb6 bsps/powerpc: Rename ppc_exc_wrap_async_normal
Rename ppc_exc_wrap_async_normal to ppc_exc_interrupt to avoid a bit of
obfuscation.

Update #3082.
2017-08-01 11:38:32 +02:00
Sebastian Huber
b7be94390b bsps/powerpc: Do not set ouput format and arch
There is no need to explicitly set the output format and architecture in
the linker script.  This enables the usage of this linker script with
the ELFv2 ABI (64-bit).

Update #3082.
2017-07-31 14:39:51 +02:00
Sebastian Huber
65ee42ce8e bsp/qoriq: Simplify fatal exceptions
Avoid use of small-data area, since it is not supported in the ELFv2 ABI
by GCC.

Update #3082.
2017-07-31 14:39:47 +02:00
Sebastian Huber
2d0a8058a8 bsps/powerpc: Fix format specifiers 2017-07-31 13:43:29 +02:00
Joel Sherrill
dd6992fd7c Remove Edison BSP.
Intel has obsoleted this hardware and the BSP was never completed.

closes #3086.
2017-07-28 14:17:32 -05:00
Joel Sherrill
9cb874d667 beagle/i2c/bbb-i2c.c: Eliminiate set but not used warning 2017-07-28 14:17:32 -05:00
Sebastian Huber
8966e8a3a0 bsp/qoriq: Fix pre-processor expansion
Update #3082.
Update #3085.
2017-07-28 15:40:36 +02:00
Sebastian Huber
5d0fa04792 bsp/t32mppc: Set PPC_PER_CPU_CONTROL_REGISTER 2017-07-28 15:03:47 +02:00
Sebastian Huber
585706a4ec bsp/t32mppc: Add SMP support 2017-07-28 14:43:22 +02:00
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