RTEMS
|
Information Required to Build RTEMS for a Particular Member of the SPARC Family. More...
#include <rtems/score/basedefs.h>
Go to the source code of this file.
Macros | |
#define | SPARC_HAS_BITSCAN 0 |
#define | SPARC_NUMBER_OF_REGISTER_WINDOWS 8 |
#define | SPARC_LEON3FT_B2BST_NOP |
#define | SPARC_HAS_FPU 1 |
#define | CPU_MODEL_NAME "w/FPU" |
#define | CPU_NAME "SPARC" |
#define | SPARC_PSR_CWP_MASK 0x07 /* bits 0 - 4 */ |
#define | SPARC_PSR_ET_MASK 0x00000020 /* bit 5 */ |
#define | SPARC_PSR_PS_MASK 0x00000040 /* bit 6 */ |
#define | SPARC_PSR_S_MASK 0x00000080 /* bit 7 */ |
#define | SPARC_PSR_PIL_MASK 0x00000F00 /* bits 8 - 11 */ |
#define | SPARC_PSR_EF_MASK 0x00001000 /* bit 12 */ |
#define | SPARC_PSR_EC_MASK 0x00002000 /* bit 13 */ |
#define | SPARC_PSR_ICC_MASK 0x00F00000 /* bits 20 - 23 */ |
#define | SPARC_PSR_VER_MASK 0x0F000000 /* bits 24 - 27 */ |
#define | SPARC_PSR_IMPL_MASK 0xF0000000 /* bits 28 - 31 */ |
#define | SPARC_PSR_CWP_BIT_POSITION 0 /* bits 0 - 4 */ |
#define | SPARC_PSR_ET_BIT_POSITION 5 /* bit 5 */ |
#define | SPARC_PSR_PS_BIT_POSITION 6 /* bit 6 */ |
#define | SPARC_PSR_S_BIT_POSITION 7 /* bit 7 */ |
#define | SPARC_PSR_PIL_BIT_POSITION 8 /* bits 8 - 11 */ |
#define | SPARC_PSR_EF_BIT_POSITION 12 /* bit 12 */ |
#define | SPARC_PSR_EC_BIT_POSITION 13 /* bit 13 */ |
#define | SPARC_PSR_ICC_BIT_POSITION 20 /* bits 20 - 23 */ |
#define | SPARC_PSR_VER_BIT_POSITION 24 /* bits 24 - 27 */ |
#define | SPARC_PSR_IMPL_BIT_POSITION 28 /* bits 28 - 31 */ |
#define | LEON3_ASR17_PROCESSOR_INDEX_SHIFT 28 |
#define | SPARC_SWTRAP_SYSCALL 0 |
#define | SPARC_SWTRAP_IRQDIS 9 |
#define | SPARC_SWTRAP_IRQEN 10 |
#define | SPARC_SWTRAP_IRQDIS_FP 11 |
#define | nop() |
#define | sparc_get_psr(_psr) |
Macro to obtain the PSR. More... | |
#define | sparc_set_psr(_psr) |
Macro to set the PSR. More... | |
#define | sparc_get_tbr(_tbr) |
Macro to obtain the TBR. More... | |
#define | sparc_set_tbr(_tbr) |
Macro to set the TBR. More... | |
#define | sparc_get_wim(_wim) |
Macro to obtain the WIM. More... | |
#define | sparc_set_wim(_wim) |
Macro to set the WIM. More... | |
#define | sparc_get_y(_y) |
Macro to obtain the Y register. More... | |
#define | sparc_set_y(_y) |
Macro to set the Y register. More... | |
#define | sparc_flash_interrupts(_psr) |
SPARC flash processor interrupts. More... | |
#define | sparc_get_interrupt_level(_level) |
SPARC obtain interrupt level. More... | |
Functions | |
static uint32_t | sparc_disable_interrupts (void) |
SPARC disable processor interrupts. More... | |
static void | sparc_enable_interrupts (uint32_t psr) |
SPARC enable processor interrupts. More... | |
void | sparc_syscall_exit (uint32_t exitcode1, uint32_t exitcode2) RTEMS_NO_RETURN |
SPARC exit through system call 1. More... | |
static uint32_t | _LEON3_Get_current_processor (void) |
Information Required to Build RTEMS for a Particular Member of the SPARC Family.
This file contains the information required to build RTEMS for a particular member of the SPARC family. It does this by setting variables to indicate which implementation dependent features are present in a particular member of the family.
Definition in file sparc.h.
#define CPU_MODEL_NAME "w/FPU" |
#define nop | ( | ) |
#define sparc_flash_interrupts | ( | _psr | ) |
SPARC flash processor interrupts.
This method is invoked to temporarily enable all maskable interrupts.
[in] | _psr | is the PSR returned by sparc_disable_interrupts. |
#define sparc_get_interrupt_level | ( | _level | ) |
SPARC obtain interrupt level.
This method is invoked to obtain the current interrupt disable level.
[in] | _level | is the PSR returned by sparc_disable_interrupts. |
#define sparc_get_psr | ( | _psr | ) |
#define sparc_get_tbr | ( | _tbr | ) |
#define sparc_get_wim | ( | _wim | ) |
#define sparc_get_y | ( | _y | ) |
#define SPARC_HAS_BITSCAN 0 |
#define SPARC_HAS_FPU 1 |
#define SPARC_LEON3FT_B2BST_NOP |
#define SPARC_NUMBER_OF_REGISTER_WINDOWS 8 |
#define SPARC_PSR_CWP_BIT_POSITION 0 /* bits 0 - 4 */ |
#define SPARC_PSR_CWP_MASK 0x07 /* bits 0 - 4 */ |
#define SPARC_PSR_EC_BIT_POSITION 13 /* bit 13 */ |
#define SPARC_PSR_EC_MASK 0x00002000 /* bit 13 */ |
#define SPARC_PSR_EF_BIT_POSITION 12 /* bit 12 */ |
#define SPARC_PSR_EF_MASK 0x00001000 /* bit 12 */ |
#define SPARC_PSR_ET_BIT_POSITION 5 /* bit 5 */ |
#define SPARC_PSR_ET_MASK 0x00000020 /* bit 5 */ |
#define SPARC_PSR_ICC_BIT_POSITION 20 /* bits 20 - 23 */ |
#define SPARC_PSR_ICC_MASK 0x00F00000 /* bits 20 - 23 */ |
#define SPARC_PSR_IMPL_BIT_POSITION 28 /* bits 28 - 31 */ |
#define SPARC_PSR_IMPL_MASK 0xF0000000 /* bits 28 - 31 */ |
#define SPARC_PSR_PIL_BIT_POSITION 8 /* bits 8 - 11 */ |
#define SPARC_PSR_PIL_MASK 0x00000F00 /* bits 8 - 11 */ |
#define SPARC_PSR_PS_BIT_POSITION 6 /* bit 6 */ |
#define SPARC_PSR_PS_MASK 0x00000040 /* bit 6 */ |
#define SPARC_PSR_S_BIT_POSITION 7 /* bit 7 */ |
#define SPARC_PSR_S_MASK 0x00000080 /* bit 7 */ |
#define SPARC_PSR_VER_BIT_POSITION 24 /* bits 24 - 27 */ |
#define SPARC_PSR_VER_MASK 0x0F000000 /* bits 24 - 27 */ |
#define sparc_set_psr | ( | _psr | ) |
#define sparc_set_tbr | ( | _tbr | ) |
#define sparc_set_wim | ( | _wim | ) |
#define sparc_set_y | ( | _y | ) |
|
inlinestatic |
|
inlinestatic |
SPARC enable processor interrupts.
This method is invoked to enable all maskable interrupts.
[in] | psr | is the PSR returned by sparc_disable_interrupts. |
void sparc_syscall_exit | ( | uint32_t | exitcode1, |
uint32_t | exitcode2 | ||
) |
SPARC exit through system call 1.
This method is invoked to go into system error halt. The optional arguments can be given to hypervisor, hardware debugger, simulator or similar.
System error mode is entered when taking a trap when traps have been disabled. What happens when error mode is entered depends on the motherboard. In a typical development systems the CPU relingish control to the debugger, simulator, hypervisor or similar. The following steps are taken:
This function never returns.
[in] | exitcode1 | Primary exit code stored in CPU g2 register after exit |
[in] | exitcode2 | Primary exit code stored in CPU g3 register after exit |