14#ifndef ZEPHYR_INCLUDE_ARCH_NIOS2_ARCH_H_ 
   15#define ZEPHYR_INCLUDE_ARCH_NIOS2_ARCH_H_ 
   28#define ARCH_STACK_PTR_ALIGN  4 
   42#define ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \ 
   44        Z_ISR_DECLARE(irq_p, 0, isr_p, isr_param_p); \ 
   49        unsigned int key, tmp;
 
   52            "rdctl %[key], status\n\t" 
   54            "and %[tmp], %[key], %[tmp]\n\t" 
   55            "wrctl status, %[tmp]\n\t" 
   56            : [
key] 
"=r" (
key), [tmp] 
"=r" (tmp)
 
   73#if (ALT_CPU_NUM_OF_SHADOW_REG_SETS > 0) || \ 
   74                (defined ALT_CPU_EIC_PRESENT) || \ 
   75                (defined ALT_CPU_MMU_PRESENT) || \ 
   76                (defined ALT_CPU_MPU_PRESENT) 
   78            "andi %[key], %[key], 1\n\t" 
   79            "beq %[key], zero, 1f\n\t" 
   80            "rdctl %[key], status\n\t" 
   81            "ori %[key], %[key], 1\n\t" 
   82            "wrctl status, %[key]\n\t" 
   88            "wrctl status, %[key]" 
  123typedef struct __esf z_arch_esf_t;
 
  125FUNC_NORETURN 
void z_SysFatalErrorHandler(
unsigned int reason,
 
  126                                         const z_arch_esf_t *esf);
 
  128FUNC_NORETURN 
void z_NanoFatalErrorHandler(
unsigned int reason,
 
  129                                          const z_arch_esf_t *esf);
 
  162#define NIOS2_BADADDR_CAUSE_MASK \ 
  163        (BIT(NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR) | \ 
  164         BIT(NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR) | \ 
  165         BIT(NIOS2_EXCEPTION_MISALIGNED_TARGET_PC) | \ 
  166         BIT(NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION) | \ 
  167         BIT(NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION) | \ 
  168         BIT(NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION) | \ 
  169         BIT(NIOS2_EXCEPTION_ECC_DATA_ERR)) 
  188        __asm__ 
volatile(
"nop");
 
Per-arch thread definition.
 
#define ALWAYS_INLINE
Definition: common.h:124
 
Public interface for configuring interrupts.
 
void arch_irq_disable(unsigned int irq)
 
uint64_t sys_clock_cycle_get_64(void)
 
uint32_t sys_clock_cycle_get_32(void)
 
void arch_irq_enable(unsigned int irq)
 
static ALWAYS_INLINE void arch_nop(void)
Definition: arch.h:186
 
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition: arch.h:47
 
static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
Definition: arch.h:62
 
nios2_exception_cause
Definition: arch.h:131
 
@ NIOS2_EXCEPTION_ECC_DATA_CACHE_WRITEBACK_ERR
Definition: arch.h:155
 
@ NIOS2_EXCEPTION_UNKNOWN
Definition: arch.h:132
 
@ NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION
Definition: arch.h:148
 
@ NIOS2_EXCEPTION_ECC_TLB_ERR
Definition: arch.h:151
 
@ NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION
Definition: arch.h:149
 
@ NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR
Definition: arch.h:144
 
@ NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST
Definition: arch.h:134
 
@ NIOS2_EXCEPTION_TLB_MISS
Definition: arch.h:145
 
@ NIOS2_EXCEPTION_ILLEGAL_INST
Definition: arch.h:138
 
@ NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR
Definition: arch.h:142
 
@ NIOS2_EXCEPTION_UNIMPLEMENTED_INST
Definition: arch.h:137
 
@ NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION
Definition: arch.h:150
 
@ NIOS2_EXCEPTION_ECC_FETCH_ERR
Definition: arch.h:152
 
@ NIOS2_EXCEPTION_MISALIGNED_TARGET_PC
Definition: arch.h:140
 
@ NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION
Definition: arch.h:147
 
@ NIOS2_EXCEPTION_DIVISION_ERROR
Definition: arch.h:141
 
@ NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR
Definition: arch.h:139
 
@ NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST
Definition: arch.h:143
 
@ NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION
Definition: arch.h:146
 
@ NIOS2_EXCEPTION_TRAP_INST
Definition: arch.h:136
 
@ NIOS2_EXCEPTION_ECC_REGISTER_FILE_ERR
Definition: arch.h:153
 
@ NIOS2_EXCEPTION_INTERRUPT
Definition: arch.h:135
 
@ NIOS2_EXCEPTION_ECC_DATA_ERR
Definition: arch.h:154
 
@ NIOS2_EXCEPTION_RESET
Definition: arch.h:133
 
static uint32_t arch_k_cycle_get_32(void)
Definition: arch.h:174
 
static uint64_t arch_k_cycle_get_64(void)
Definition: arch.h:181
 
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition: arch.h:94
 
static k_spinlock_key_t key
Definition: spinlock_error_case.c:15
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
 
Software-managed ISR table.