X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fasm-blackfin%2Fentry.h;h=ef74d686af89f708699ac9dc3ebcd275cd59d491;hb=29f8f58ff40c67f7f2e11afd1715173094e52ac2;hp=607a5b8e98a43604ee813edfced3b2a8d98f6574;hpb=2770bcb21c82835a5351176e5b2a9221d7fc8ef9;p=u-boot diff --git a/include/asm-blackfin/entry.h b/include/asm-blackfin/entry.h index 607a5b8e98..ef74d686af 100644 --- a/include/asm-blackfin/entry.h +++ b/include/asm-blackfin/entry.h @@ -1,7 +1,7 @@ /* - * U-boot - entry.h Routines for context saving and restoring + * entry.h - routines for context saving and restoring (for interrupts/exceptions) * - * Copyright (c) 2005 blackfin.uclinux.org + * Copyright (c) 2005-2007 Analog Devices Inc. * * See file CREDITS for list of people who contributed to this * project. @@ -18,44 +18,14 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301 USA */ #ifndef __BLACKFIN_ENTRY_H #define __BLACKFIN_ENTRY_H - -#include -#include -#include - -/* - * Stack layout in 'ret_from_exception': - * - */ - -/* - * Register %p2 is now set to the current task throughout - * the whole kernel. - */ - #ifdef __ASSEMBLY__ -#define LFLUSH_I_AND_D 0x00000808 -#define LSIGTRAP 5 - -/* process bits for task_struct.flags */ -#define PF_TRACESYS_OFF 3 -#define PF_TRACESYS_BIT 5 -#define PF_PTRACED_OFF 3 -#define PF_PTRACED_BIT 4 -#define PF_DTRACE_OFF 1 -#define PF_DTRACE_BIT 5 - -#define NEW_PT_REGS - -#if defined(NEW_PT_REGS) - #define SAVE_ALL_INT save_context_no_interrupts #define SAVE_ALL_SYS save_context_no_interrupts #define SAVE_CONTEXT save_context_with_interrupts @@ -64,16 +34,6 @@ #define RESTORE_ALL_SYS restore_context_no_interrupts #define RESTORE_CONTEXT restore_context_with_interrupts -#else - -#define SAVE_ALL_INT save_all_int -#define SAVE_ALL_SYS save_all_sys -#define SAVE_CONTEXT save_context -#define RESTORE_ALL restore_context -#define RESTORE_CONTEXT restore_context - -#endif - /* * Code to save processor context. * We even save the register which are preserved by a function call @@ -285,101 +245,5 @@ sp += 4; .endm -#if !defined(NEW_PT_REGS) -/* - * a -1 in the orig_r0 field signifies - * that the stack frame is NOT for syscall - */ -.macro save_all_int -/* reserved and disable the single step of SYSCFG, by Steven Chen 03/07/10 */ - [--sp] = r0; - r0.l = 0x30; /* Errata for BF533 */ - r0.h = 0x0; - syscfg = r0; /* disable single step flag in SYSCFG */ - r0 = [sp++]; - [--sp] = syscfg; /* store SYSCFG */ - - [--sp] = r0; /* Reserved for IPEND */ - [--sp] = fp; - [--sp] = usp; - [--sp] = r0; - - [--sp] = r0; - r0 = [sp + 8]; - [--sp] = a0.x; - [--sp] = a1.x; - [--sp] = a0.w; - [--sp] = a1.w; - [--sp] = rets; - [--sp] = astat; - [--sp] = seqstat; - [--sp] = retx; /* current pc when exception happens */ - [--sp] = ( r7:5, p5:0 ); - [--sp] = r1; - [--sp] = r2; - [--sp] = r4; - [--sp] = r3; -.endm - -.macro save_all_sys - [--sp] = r0; - [--sp] = r0; - [--sp] = a0.x; - [--sp] = a1.x; - [--sp] = a0.w; - [--sp] = a1.w; - [--sp] = rets; - [--sp] = astat; - [--sp] = seqstat; - [--sp] = retx; /* current pc when exception happens */ - [--sp] = ( r7:5, p5:0 ); - [--sp] = r1; - [--sp] = r2; - [--sp] = r4; - [--sp] = r3; -.endm - -.macro restore_all - r3 = [sp++]; - r4 = [sp++]; - r2 = [sp++]; - r1 = [sp++]; - ( r7:5, p5:0 ) = [sp++]; - retx = [sp++]; - seqstat = [sp++]; - astat = [sp++]; - rets = [sp++]; - a1.w = [sp++]; - a0.w = [sp++]; - a1.x = [sp++]; - a0.x = [sp++]; - sp += 4; /* orig r0 */ - r0 = [sp++]; - - sp += 4; - fp = [sp++]; - sp +=4; /* Skip the IPEND */ - - syscfg = [sp++]; - -.endm - #endif - -#define STR(X) STR1(X) -#define STR1(X) #X - -#if defined(NEW_PT_REGS) - -#define PT_OFF_ORIG_R0 208 -#define PT_OFF_SR 8 - -#else - -#define PT_OFF_ORIG_R0 0x54 -#define PT_OFF_SR 0x38 /* seqstat in pt_regs */ - -#endif -#endif - #endif