diff --git a/arch/arm/src/phy62xx/phy6222_irq.h b/arch/arm/src/phy62xx/phy6222_irq.h deleted file mode 100644 index 92d215aec38..00000000000 --- a/arch/arm/src/phy62xx/phy6222_irq.h +++ /dev/null @@ -1,371 +0,0 @@ -/**************************************************************************** - * arch/arm/src/phy62xx/phy6222_irq.h - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/* This file should never be included directly but, rather, only indirectly - * through nuttx/irq.h - */ - -#ifndef __ARCH_ARM_SRC_PHY62XX_PHY6222_IRQ_H -#define __ARCH_ARM_SRC_PHY62XX_PHY6222_IRQ_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#ifndef __ASSEMBLY__ -# include -# include -#endif - -#include - -/**************************************************************************** - * Pre-processor Prototypes - ****************************************************************************/ - -/* Configuration ************************************************************/ - -/* If this is a kernel build, - * how many nested system calls should we support? - */ - -#ifndef CONFIG_SYS_NNEST -# define CONFIG_SYS_NNEST 2 -#endif - -/* IRQ Stack Frame Format *************************************************** - * - * The following additional registers are stored by the interrupt handling - * logic. - */ - -#define REG_R13 (0) /* R13 = SP at time of interrupt */ -#define REG_PRIMASK (1) /* PRIMASK */ -#define REG_R4 (2) /* R4 */ -#define REG_R5 (3) /* R5 */ -#define REG_R6 (4) /* R6 */ -#define REG_R7 (5) /* R7 */ -#define REG_R8 (6) /* R8 */ -#define REG_R9 (7) /* R9 */ -#define REG_R10 (8) /* R10 */ -#define REG_R11 (9) /* R11 */ - -/* In the kernel build, we may return to either privileged or unprivileged - * modes. - */ - -#ifdef CONFIG_BUILD_PROTECTED -# define REG_EXC_RETURN (10) /* EXC_RETURN */ -# define SW_XCPT_REGS (11) -#else -# define SW_XCPT_REGS (10) -#endif - -/* The total number of registers saved by software */ - -#define SW_XCPT_SIZE (4 * SW_XCPT_REGS) - -/* On entry into an IRQ, the hardware automatically saves the following - * registers on the stack in this (address) order: - */ - -#define REG_DUMMY0 (SW_XCPT_REGS + 0) /* DUMMY */ -#define REG_DUMMY1 (SW_XCPT_REGS + 1) /* DUMMY */ -#define REG_R0 (SW_XCPT_REGS + 0 + 2) /* R0 */ -#define REG_R1 (SW_XCPT_REGS + 1 + 2) /* R1 */ -#define REG_R2 (SW_XCPT_REGS + 2 + 2) /* R2 */ -#define REG_R3 (SW_XCPT_REGS + 3 + 2) /* R3 */ -#define REG_R12 (SW_XCPT_REGS + 4 + 2) /* R12 */ -#define REG_R14 (SW_XCPT_REGS + 5 + 2) /* R14 = LR */ -#define REG_R15 (SW_XCPT_REGS + 6 + 2) /* R15 = PC */ -#define REG_XPSR (SW_XCPT_REGS + 7 + 2) /* xPSR */ - -#define HW_XCPT_REGS (10) -#define HW_XCPT_SIZE (4 * HW_XCPT_REGS) - -#define XCPTCONTEXT_REGS (HW_XCPT_REGS + SW_XCPT_REGS) -#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS) - -/* Alternate register names */ - -#define REG_A1 REG_R0 -#define REG_A2 REG_R1 -#define REG_A3 REG_R2 -#define REG_A4 REG_R3 -#define REG_V1 REG_R4 -#define REG_V2 REG_R5 -#define REG_V3 REG_R6 -#define REG_V4 REG_R7 -#define REG_V5 REG_R8 -#define REG_V6 REG_R9 -#define REG_V7 REG_R10 -#define REG_SB REG_R9 -#define REG_SL REG_R10 -#define REG_FP REG_R11 -#define REG_IP REG_R12 -#define REG_SP REG_R13 -#define REG_LR REG_R14 -#define REG_PC REG_R15 - -/* The PIC register is usually R10. It can be R9 is stack checking is enabled - * or if the user changes it with -mpic-register on the GCC command line. - */ - -#define REG_PIC REG_R10 - -/**************************************************************************** - * Public Types - ****************************************************************************/ - -#ifndef __ASSEMBLY__ - -/* This structure represents the return state from a system call */ - -#ifdef CONFIG_LIB_SYSCALL -struct xcpt_syscall_s -{ - uint32_t excreturn; /* The EXC_RETURN value */ - uint32_t sysreturn; /* The return PC */ -}; -#endif - -/* The following structure is included in the TCB and defines the complete - * state of the thread. - */ - -struct xcptcontext -{ - /* The following function pointer is non-zero if there - * are pending signals to be processed. - */ - - void *sigdeliver; /* Actual type is sig_deliver_t */ - - /* These are saved copies of LR, PRIMASK, and xPSR used during - * signal processing. - * - * REVISIT: Because there is only one copy of these save areas, - * only a single signal handler can be active. This precludes - * queuing of signal actions. As a result, signals received while - * another signal handler is executing will be ignored! - */ - - uint32_t saved_pc; - uint32_t saved_primask; - uint32_t saved_xpsr; -#ifdef CONFIG_BUILD_PROTECTED - uint32_t saved_lr; - - /* This is the saved address to use when returning from a user-space - * signal handler. - */ - - uint32_t sigreturn; -#endif - -#ifdef CONFIG_LIB_SYSCALL - /* The following array holds the return address and the exc_return value - * needed to return from each nested system call. - */ - - uint8_t nsyscalls; - struct xcpt_syscall_s syscall[CONFIG_SYS_NNEST]; -#endif - - /* Register save area */ - - uint32_t regs[XCPTCONTEXT_REGS]; -}; -#endif - -/**************************************************************************** - * Inline functions - ****************************************************************************/ - -#ifndef __ASSEMBLY__ - -/* Name: up_irq_save, up_irq_restore, and friends. - * - * NOTE: This function should never be called from application code and, - * as a general rule unless you really know what you are doing, this - * function should not be called directly from operation system code either: - * Typically, the wrapper functions, enter_critical_section() and - * leave_critical section(), are probably what you really want. - */ - -/* Get/set the PRIMASK register */ - -static inline uint8_t getprimask(void) inline_function; -static inline uint8_t getprimask(void) -{ - uint32_t primask; - __asm__ __volatile__ - ( - "\tmrs %0, primask\n" - : "=r" (primask) - : - : "memory"); - - return (uint8_t)primask; -} - -static inline void setprimask(uint32_t primask) inline_function; -static inline void setprimask(uint32_t primask) -{ - __asm__ __volatile__ - ( - "\tmsr primask, %0\n" - : - : "r" (primask) - : "memory"); -} - -/* Disable IRQs */ - -static inline void up_irq_disable(void) inline_function; -static inline void up_irq_disable(void) -{ - __asm__ __volatile__ ("\tcpsid i\n"); -} - -/* Save the current primask state & disable IRQs */ - -typedef void (*gpiowr_t)(int id, unsigned int en); -#if 0 -static inline irqstate_t up_irq_save(void) inline_function; -static inline irqstate_t up_irq_save(void) -{ - unsigned short primask; - - /* Return the current value of primask register and set - * bit 0 of the primask register to disable interrupts - */ - - ((gpiowr_t)0x0000b319)(12, 1); - - __asm__ __volatile__ - ( - "\tmrs %0, primask\n" - "\tcpsid i\n" - : "=r" (primask) - : - : "memory"); - - return primask; -} -#endif -/* Enable IRQs */ - -static inline void up_irq_enable(void) inline_function; -static inline void up_irq_enable(void) -{ - __asm__ __volatile__ ("\tcpsie i\n"); -} - -/* Restore saved primask state */ -#if 0 -static inline void up_irq_restore(irqstate_t flags) inline_function; -static inline void up_irq_restore(irqstate_t flags) -{ - /* If bit 0 of the primask is 0, then we need to restore - * interrupts. - */ - - __asm__ __volatile__ - ( - "\tmsr primask, %0\n" - : - : "r" (flags) - : "memory"); - ((gpiowr_t)0x0000b319)(12, 0); -} -#endif -/* Get/set IPSR */ - -static inline uint32_t getipsr(void) inline_function; -static inline uint32_t getipsr(void) -{ - uint32_t ipsr; - __asm__ __volatile__ - ( - "\tmrs %0, ipsr\n" - : "=r" (ipsr) - : - : "memory"); - - return ipsr; -} - -/* Get/set CONTROL */ - -static inline uint32_t getcontrol(void) inline_function; -static inline uint32_t getcontrol(void) -{ - uint32_t control; - __asm__ __volatile__ - ( - "\tmrs %0, control\n" - : "=r" (control) - : - : "memory"); - - return control; -} - -static inline void setcontrol(uint32_t control) inline_function; -static inline void setcontrol(uint32_t control) -{ - __asm__ __volatile__ - ( - "\tmsr control, %0\n" - : - : "r" (control) - : "memory"); -} - -#endif /* __ASSEMBLY__ */ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ - -#ifndef __ASSEMBLY__ -#ifdef __cplusplus -#define EXTERN extern "C" -extern "C" -{ -#else -#define EXTERN extern -#endif - -#undef EXTERN -#ifdef __cplusplus -} -#endif -#endif - -#endif /* __ARCH_ARM_SRC_PHY62XX_PHY6222_IRQ_H */