| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- /* spr-regs.h: special-purpose registers on the FRV
 
-  *
 
-  * Copyright (C) 2003, 2004 Red Hat, Inc. All Rights Reserved.
 
-  * Written by David Howells (dhowells@redhat.com)
 
-  *
 
-  * This program is free software; you can redistribute it and/or
 
-  * modify it under the terms of the GNU General Public License
 
-  * as published by the Free Software Foundation; either version
 
-  * 2 of the License, or (at your option) any later version.
 
-  */
 
- #ifndef _ASM_SPR_REGS_H
 
- #define _ASM_SPR_REGS_H
 
- /*
 
-  * PSR - Processor Status Register
 
-  */
 
- #define PSR_ET			0x00000001	/* enable interrupts/exceptions flag */
 
- #define PSR_PS			0x00000002	/* previous supervisor mode flag */
 
- #define PSR_S			0x00000004	/* supervisor mode flag */
 
- #define PSR_PIL			0x00000078	/* processor external interrupt level */
 
- #define PSR_PIL_0		0x00000000	/* - no interrupt in progress */
 
- #define PSR_PIL_13		0x00000068	/* - debugging only */
 
- #define PSR_PIL_14		0x00000070	/* - debugging in progress */
 
- #define PSR_PIL_15		0x00000078	/* - NMI in progress */
 
- #define PSR_EM			0x00000080	/* enable media operation */
 
- #define PSR_EF			0x00000100	/* enable FPU operation */
 
- #define PSR_BE			0x00001000	/* endianness mode */
 
- #define PSR_BE_LE		0x00000000	/* - little endian mode */
 
- #define PSR_BE_BE		0x00001000	/* - big endian mode */
 
- #define PSR_CM			0x00002000	/* conditional mode */
 
- #define PSR_NEM			0x00004000	/* non-excepting mode */
 
- #define PSR_ICE			0x00010000	/* in-circuit emulation mode */
 
- #define PSR_VERSION_SHIFT	24		/* CPU silicon ID */
 
- #define PSR_IMPLE_SHIFT		28		/* CPU core ID */
 
- #define PSR_VERSION(psr)	(((psr) >> PSR_VERSION_SHIFT) & 0xf)
 
- #define PSR_IMPLE(psr)		(((psr) >> PSR_IMPLE_SHIFT) & 0xf)
 
- #define PSR_IMPLE_FR401		0x2
 
- #define PSR_VERSION_FR401_MB93401	0x0
 
- #define PSR_VERSION_FR401_MB93401A	0x1
 
- #define PSR_VERSION_FR401_MB93403	0x2
 
- #define PSR_IMPLE_FR405		0x4
 
- #define PSR_VERSION_FR405_MB93405	0x0
 
- #define PSR_IMPLE_FR451		0x5
 
- #define PSR_VERSION_FR451_MB93451	0x0
 
- #define PSR_IMPLE_FR501		0x1
 
- #define PSR_VERSION_FR501_MB93501	0x1
 
- #define PSR_VERSION_FR501_MB93501A	0x2
 
- #define PSR_IMPLE_FR551		0x3
 
- #define PSR_VERSION_FR551_MB93555	0x1
 
- #define __get_PSR()	({ unsigned long x; asm volatile("movsg psr,%0" : "=r"(x)); x; })
 
- #define __set_PSR(V)	do { asm volatile("movgs %0,psr" : : "r"(V)); } while(0)
 
- /*
 
-  * TBR - Trap Base Register
 
-  */
 
- #define TBR_TT			0x00000ff0
 
- #define TBR_TT_INSTR_MMU_MISS	(0x01 << 4)
 
- #define TBR_TT_INSTR_ACC_ERROR	(0x02 << 4)
 
- #define TBR_TT_INSTR_ACC_EXCEP	(0x03 << 4)
 
- #define TBR_TT_PRIV_INSTR	(0x06 << 4)
 
- #define TBR_TT_ILLEGAL_INSTR	(0x07 << 4)
 
- #define TBR_TT_FP_EXCEPTION	(0x0d << 4)
 
- #define TBR_TT_MP_EXCEPTION	(0x0e << 4)
 
- #define TBR_TT_DATA_ACC_ERROR	(0x11 << 4)
 
- #define TBR_TT_DATA_MMU_MISS	(0x12 << 4)
 
- #define TBR_TT_DATA_ACC_EXCEP	(0x13 << 4)
 
- #define TBR_TT_DATA_STR_ERROR	(0x14 << 4)
 
- #define TBR_TT_DIVISION_EXCEP	(0x17 << 4)
 
- #define TBR_TT_COMMIT_EXCEP	(0x19 << 4)
 
- #define TBR_TT_INSTR_TLB_MISS	(0x1a << 4)
 
- #define TBR_TT_DATA_TLB_MISS	(0x1b << 4)
 
- #define TBR_TT_DATA_DAT_EXCEP	(0x1d << 4)
 
- #define TBR_TT_DECREMENT_TIMER	(0x1f << 4)
 
- #define TBR_TT_COMPOUND_EXCEP	(0x20 << 4)
 
- #define TBR_TT_INTERRUPT_1	(0x21 << 4)
 
- #define TBR_TT_INTERRUPT_2	(0x22 << 4)
 
- #define TBR_TT_INTERRUPT_3	(0x23 << 4)
 
- #define TBR_TT_INTERRUPT_4	(0x24 << 4)
 
- #define TBR_TT_INTERRUPT_5	(0x25 << 4)
 
- #define TBR_TT_INTERRUPT_6	(0x26 << 4)
 
- #define TBR_TT_INTERRUPT_7	(0x27 << 4)
 
 
  |