path: root/cpu-supplement/ephiphany.rst
blob: bbb0cf74921f5829b5a216c02cd75354431e042b (plain) (tree)














.. comment SPDX-License-Identifier: CC-BY-SA-4.0

.. COMMENT: COPYRIGHT (c) 1988-2002.
.. COMMENT: On-Line Applications Research Corporation (OAR).
.. COMMENT: All rights reserved.

Epiphany Specific Information

This chapter discusses the`Epiphany Architecture dependencies in this port of
RTEMS. Epiphany is a chip that can come with 16 and 64 cores, each of which can
run RTEMS separately or they can work together to run a SMP RTEMS application.

**Architecture Documents**

For information on the Epiphany architecture refer to the *Epiphany
Architecture Reference*

Calling Conventions

Please refer to the *Epiphany SDK* Appendix A: Application Binary

Floating Point Unit

A floating point unit is currently not supported.

Memory Model

A flat 32-bit memory model is supported, no caches. Each core has its own 32
KiB strictly ordered local memory along with an access to a shared 32 MiB
external DRAM.

Interrupt Processing

Every Epiphany core has 10 exception types:

- Reset

- Software Exception

- Data Page Fault

- Timer 0

- Timer 1

- Message Interrupt

- DMA0 Interrupt

- DMA1 Interrupt

- WANT Interrupt

- User Interrupt

Interrupt Levels

There are only two levels: interrupts enabled and interrupts disabled.

Interrupt Stack

The Epiphany RTEMS port uses a dedicated software interrupt stack.  The stack
for interrupts is allocated during interrupt driver initialization.  When an
interrupt is entered, the _ISR_Handler routine is responsible for switching
from the interrupted task stack to RTEMS software interrupt stack.

Default Fatal Error Processing

The default fatal error handler for this architecture performs the following

- disables operating system supported interrupts (IRQ),

- places the error code in ``r0``, and

- executes an infinite loop to simulate a halt processor instruction.

Symmetric Multiprocessing

SMP is not supported.