reg.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 531 行 · 第 1/2 页

H
531
字号
/* * Contains the definition of registers common to all PowerPC variants. * If a register definition has been changed in a different PowerPC * variant, we will case it in #ifndef XXX ... #endif, and have the * number used in the Programming Environments Manual For 32-Bit * Implementations of the PowerPC Architecture (a.k.a. Green Book) here. */#ifdef __KERNEL__#ifndef __ASM_PPC_REGS_H__#define __ASM_PPC_REGS_H__#include <linux/stringify.h>/* Pickup Book E specific registers. */#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)#include <asm/reg_booke.h>#endif/* Machine State Register (MSR) Fields */#define MSR_SF		(1<<63)#define MSR_ISF		(1<<61)#define MSR_VEC		(1<<25)		/* Enable AltiVec */#define MSR_POW		(1<<18)		/* Enable Power Management */#define MSR_WE		(1<<18)		/* Wait State Enable */#define MSR_TGPR	(1<<17)		/* TLB Update registers in use */#define MSR_CE		(1<<17)		/* Critical Interrupt Enable */#define MSR_ILE		(1<<16)		/* Interrupt Little Endian */#define MSR_EE		(1<<15)		/* External Interrupt Enable */#define MSR_PR		(1<<14)		/* Problem State / Privilege Level */#define MSR_FP		(1<<13)		/* Floating Point enable */#define MSR_ME		(1<<12)		/* Machine Check Enable */#define MSR_FE0		(1<<11)		/* Floating Exception mode 0 */#define MSR_SE		(1<<10)		/* Single Step */#define MSR_BE		(1<<9)		/* Branch Trace */#define MSR_DE		(1<<9)		/* Debug Exception Enable */#define MSR_FE1		(1<<8)		/* Floating Exception mode 1 */#define MSR_IP		(1<<6)		/* Exception prefix 0x000/0xFFF */#define MSR_IR		(1<<5)		/* Instruction Relocate */#define MSR_DR		(1<<4)		/* Data Relocate */#define MSR_PE		(1<<3)		/* Protection Enable */#define MSR_PX		(1<<2)		/* Protection Exclusive Mode */#define MSR_RI		(1<<1)		/* Recoverable Exception */#define MSR_LE		(1<<0)		/* Little Endian *//* Default MSR for kernel mode. */#ifdef CONFIG_APUS_FAST_EXCEPT#define MSR_KERNEL	(MSR_ME|MSR_IP|MSR_RI|MSR_IR|MSR_DR)#endif#ifndef MSR_KERNEL#define MSR_KERNEL	(MSR_ME|MSR_RI|MSR_IR|MSR_DR)#endif#define MSR_USER	(MSR_KERNEL|MSR_PR|MSR_EE)/* Floating Point Status and Control Register (FPSCR) Fields */#define FPSCR_FX	0x80000000	/* FPU exception summary */#define FPSCR_FEX	0x40000000	/* FPU enabled exception summary */#define FPSCR_VX	0x20000000	/* Invalid operation summary */#define FPSCR_OX	0x10000000	/* Overflow exception summary */#define FPSCR_UX	0x08000000	/* Underflow exception summary */#define FPSCR_ZX	0x04000000	/* Zero-devide exception summary */#define FPSCR_XX	0x02000000	/* Inexact exception summary */#define FPSCR_VXSNAN	0x01000000	/* Invalid op for SNaN */#define FPSCR_VXISI	0x00800000	/* Invalid op for Inv - Inv */#define FPSCR_VXIDI	0x00400000	/* Invalid op for Inv / Inv */#define FPSCR_VXZDZ	0x00200000	/* Invalid op for Zero / Zero */#define FPSCR_VXIMZ	0x00100000	/* Invalid op for Inv * Zero */#define FPSCR_VXVC	0x00080000	/* Invalid op for Compare */#define FPSCR_FR	0x00040000	/* Fraction rounded */#define FPSCR_FI	0x00020000	/* Fraction inexact */#define FPSCR_FPRF	0x0001f000	/* FPU Result Flags */#define FPSCR_FPCC	0x0000f000	/* FPU Condition Codes */#define FPSCR_VXSOFT	0x00000400	/* Invalid op for software request */#define FPSCR_VXSQRT	0x00000200	/* Invalid op for square root */#define FPSCR_VXCVI	0x00000100	/* Invalid op for integer convert */#define FPSCR_VE	0x00000080	/* Invalid op exception enable */#define FPSCR_OE	0x00000040	/* IEEE overflow exception enable */#define FPSCR_UE	0x00000020	/* IEEE underflow exception enable */#define FPSCR_ZE	0x00000010	/* IEEE zero divide exception enable */#define FPSCR_XE	0x00000008	/* FP inexact exception enable */#define FPSCR_NI	0x00000004	/* FPU non IEEE-Mode */#define FPSCR_RN	0x00000003	/* FPU rounding control *//* Special Purpose Registers (SPRNs)*/#define SPRN_CTR	0x009	/* Count Register */#define SPRN_DABR	0x3F5	/* Data Address Breakpoint Register */#define SPRN_DAR	0x013	/* Data Address Register */#define SPRN_TBRL	0x10C	/* Time Base Read Lower Register (user, R/O) */#define SPRN_TBRU	0x10D	/* Time Base Read Upper Register (user, R/O) */#define SPRN_TBWL	0x11C	/* Time Base Lower Register (super, R/W) */#define SPRN_TBWU	0x11D	/* Time Base Upper Register (super, R/W) */#define SPRN_HIOR	0x137	/* 970 Hypervisor interrupt offset */#define SPRN_DBAT0L	0x219	/* Data BAT 0 Lower Register */#define SPRN_DBAT0U	0x218	/* Data BAT 0 Upper Register */#define SPRN_DBAT1L	0x21B	/* Data BAT 1 Lower Register */#define SPRN_DBAT1U	0x21A	/* Data BAT 1 Upper Register */#define SPRN_DBAT2L	0x21D	/* Data BAT 2 Lower Register */#define SPRN_DBAT2U	0x21C	/* Data BAT 2 Upper Register */#define SPRN_DBAT3L	0x21F	/* Data BAT 3 Lower Register */#define SPRN_DBAT3U	0x21E	/* Data BAT 3 Upper Register */#define SPRN_DBAT4L	0x239	/* Data BAT 4 Lower Register */#define SPRN_DBAT4U	0x238	/* Data BAT 4 Upper Register */#define SPRN_DBAT5L	0x23B	/* Data BAT 5 Lower Register */#define SPRN_DBAT5U	0x23A	/* Data BAT 5 Upper Register */#define SPRN_DBAT6L	0x23D	/* Data BAT 6 Lower Register */#define SPRN_DBAT6U	0x23C	/* Data BAT 6 Upper Register */#define SPRN_DBAT7L	0x23F	/* Data BAT 7 Lower Register */#define SPRN_DBAT7U	0x23E	/* Data BAT 7 Upper Register */#define SPRN_DEC	0x016		/* Decrement Register */#define SPRN_DER	0x095		/* Debug Enable Regsiter */#define DER_RSTE	0x40000000	/* Reset Interrupt */#define DER_CHSTPE	0x20000000	/* Check Stop */#define DER_MCIE	0x10000000	/* Machine Check Interrupt */#define DER_EXTIE	0x02000000	/* External Interrupt */#define DER_ALIE	0x01000000	/* Alignment Interrupt */#define DER_PRIE	0x00800000	/* Program Interrupt */#define DER_FPUVIE	0x00400000	/* FP Unavailable Interrupt */#define DER_DECIE	0x00200000	/* Decrementer Interrupt */#define DER_SYSIE	0x00040000	/* System Call Interrupt */#define DER_TRE		0x00020000	/* Trace Interrupt */#define DER_SEIE	0x00004000	/* FP SW Emulation Interrupt */#define DER_ITLBMSE	0x00002000	/* Imp. Spec. Instruction TLB Miss */#define DER_ITLBERE	0x00001000	/* Imp. Spec. Instruction TLB Error */#define DER_DTLBMSE	0x00000800	/* Imp. Spec. Data TLB Miss */#define DER_DTLBERE	0x00000400	/* Imp. Spec. Data TLB Error */#define DER_LBRKE	0x00000008	/* Load/Store Breakpoint Interrupt */#define DER_IBRKE	0x00000004	/* Instruction Breakpoint Interrupt */#define DER_EBRKE	0x00000002	/* External Breakpoint Interrupt */#define DER_DPIE	0x00000001	/* Dev. Port Nonmaskable Request */#define SPRN_DMISS	0x3D0		/* Data TLB Miss Register */#define SPRN_DSISR	0x012	/* Data Storage Interrupt Status Register */#define SPRN_EAR	0x11A		/* External Address Register */#define SPRN_HASH1	0x3D2		/* Primary Hash Address Register */#define SPRN_HASH2	0x3D3		/* Secondary Hash Address Resgister */#define SPRN_HID0	0x3F0		/* Hardware Implementation Register 0 */#define HID0_EMCP	(1<<31)		/* Enable Machine Check pin */#define HID0_EBA	(1<<29)		/* Enable Bus Address Parity */#define HID0_EBD	(1<<28)		/* Enable Bus Data Parity */#define HID0_SBCLK	(1<<27)#define HID0_EICE	(1<<26)#define HID0_TBEN	(1<<26)		/* Timebase enable - 745x */#define HID0_ECLK	(1<<25)#define HID0_PAR	(1<<24)#define HID0_STEN	(1<<24)		/* Software table search enable - 745x */#define HID0_HIGH_BAT	(1<<23)		/* Enable high BATs - 7455 */#define HID0_DOZE	(1<<23)#define HID0_NAP	(1<<22)#define HID0_SLEEP	(1<<21)#define HID0_DPM	(1<<20)#define HID0_BHTCLR	(1<<18)		/* Clear branch history table - 7450 */#define HID0_XAEN	(1<<17)		/* Extended addressing enable - 7450 */#define HID0_NHR	(1<<16)		/* Not hard reset (software bit-7450)*/#define HID0_ICE	(1<<15)		/* Instruction Cache Enable */#define HID0_DCE	(1<<14)		/* Data Cache Enable */#define HID0_ILOCK	(1<<13)		/* Instruction Cache Lock */#define HID0_DLOCK	(1<<12)		/* Data Cache Lock */#define HID0_ICFI	(1<<11)		/* Instr. Cache Flash Invalidate */#define HID0_DCI	(1<<10)		/* Data Cache Invalidate */#define HID0_SPD	(1<<9)		/* Speculative disable */#define HID0_SGE	(1<<7)		/* Store Gathering Enable */#define HID0_SIED	(1<<7)		/* Serial Instr. Execution [Disable] */#define HID0_DFCA	(1<<6)		/* Data Cache Flush Assist */#define HID0_LRSTK	(1<<4)		/* Link register stack - 745x */#define HID0_BTIC	(1<<5)		/* Branch Target Instr Cache Enable */#define HID0_ABE	(1<<3)		/* Address Broadcast Enable */#define HID0_FOLD	(1<<3)		/* Branch Folding enable - 745x */#define HID0_BHTE	(1<<2)		/* Branch History Table Enable */#define HID0_BTCD	(1<<1)		/* Branch target cache disable */#define HID0_NOPDST	(1<<1)		/* No-op dst, dstt, etc. instr. */#define HID0_NOPTI	(1<<0)		/* No-op dcbt and dcbst instr. */#define SPRN_HID1	0x3F1		/* Hardware Implementation Register 1 */#define HID1_EMCP	(1<<31)		/* 7450 Machine Check Pin Enable */#define HID1_DFS	(1<<22)		/* 7447A Dynamic Frequency Scaling */#define HID1_PC0	(1<<16)		/* 7450 PLL_CFG[0] */#define HID1_PC1	(1<<15)		/* 7450 PLL_CFG[1] */#define HID1_PC2	(1<<14)		/* 7450 PLL_CFG[2] */#define HID1_PC3	(1<<13)		/* 7450 PLL_CFG[3] */#define HID1_SYNCBE	(1<<11)		/* 7450 ABE for sync, eieio */#define HID1_ABE	(1<<10)		/* 7450 Address Broadcast Enable */#define SPRN_HID2	0x3F8		/* Hardware Implementation Register 2 */#define SPRN_IABR	0x3F2	/* Instruction Address Breakpoint Register */#define SPRN_HID4	0x3F4		/* 970 HID4 */#define SPRN_HID5	0x3F6		/* 970 HID5 */#if !defined(SPRN_IAC1) && !defined(SPRN_IAC2)#define SPRN_IAC1	0x3F4		/* Instruction Address Compare 1 */#define SPRN_IAC2	0x3F5		/* Instruction Address Compare 2 */#endif#define SPRN_IBAT0L	0x211		/* Instruction BAT 0 Lower Register */#define SPRN_IBAT0U	0x210		/* Instruction BAT 0 Upper Register */#define SPRN_IBAT1L	0x213		/* Instruction BAT 1 Lower Register */#define SPRN_IBAT1U	0x212		/* Instruction BAT 1 Upper Register */#define SPRN_IBAT2L	0x215		/* Instruction BAT 2 Lower Register */#define SPRN_IBAT2U	0x214		/* Instruction BAT 2 Upper Register */#define SPRN_IBAT3L	0x217		/* Instruction BAT 3 Lower Register */#define SPRN_IBAT3U	0x216		/* Instruction BAT 3 Upper Register */#define SPRN_IBAT4L	0x231		/* Instruction BAT 4 Lower Register */#define SPRN_IBAT4U	0x230		/* Instruction BAT 4 Upper Register */#define SPRN_IBAT5L	0x233		/* Instruction BAT 5 Lower Register */#define SPRN_IBAT5U	0x232		/* Instruction BAT 5 Upper Register */#define SPRN_IBAT6L	0x235		/* Instruction BAT 6 Lower Register */#define SPRN_IBAT6U	0x234		/* Instruction BAT 6 Upper Register */#define SPRN_IBAT7L	0x237		/* Instruction BAT 7 Lower Register */#define SPRN_IBAT7U	0x236		/* Instruction BAT 7 Upper Register */#define SPRN_ICMP	0x3D5		/* Instruction TLB Compare Register */#define SPRN_ICTC	0x3FB	/* Instruction Cache Throttling Control Reg */#define SPRN_ICTRL	0x3F3	/* 1011 7450 icache and interrupt ctrl */#define ICTRL_EICE	0x08000000	/* enable icache parity errs */#define ICTRL_EDC	0x04000000	/* enable dcache parity errs */#define ICTRL_EICP	0x00000100	/* enable icache par. check */#define SPRN_IMISS	0x3D4		/* Instruction TLB Miss Register */#define SPRN_IMMR	0x27E		/* Internal Memory Map Register */#define SPRN_L2CR	0x3F9		/* Level 2 Cache Control Regsiter */#define SPRN_L2CR2	0x3f8#define L2CR_L2E		0x80000000	/* L2 enable */#define L2CR_L2PE		0x40000000	/* L2 parity enable */#define L2CR_L2SIZ_MASK		0x30000000	/* L2 size mask */#define L2CR_L2SIZ_256KB	0x10000000	/* L2 size 256KB */#define L2CR_L2SIZ_512KB	0x20000000	/* L2 size 512KB */#define L2CR_L2SIZ_1MB		0x30000000	/* L2 size 1MB */#define L2CR_L2CLK_MASK		0x0e000000	/* L2 clock mask */#define L2CR_L2CLK_DISABLED	0x00000000	/* L2 clock disabled */#define L2CR_L2CLK_DIV1		0x02000000	/* L2 clock / 1 */#define L2CR_L2CLK_DIV1_5	0x04000000	/* L2 clock / 1.5 */#define L2CR_L2CLK_DIV2		0x08000000	/* L2 clock / 2 */#define L2CR_L2CLK_DIV2_5	0x0a000000	/* L2 clock / 2.5 */#define L2CR_L2CLK_DIV3		0x0c000000	/* L2 clock / 3 */#define L2CR_L2RAM_MASK		0x01800000	/* L2 RAM type mask */#define L2CR_L2RAM_FLOW		0x00000000	/* L2 RAM flow through */#define L2CR_L2RAM_PIPE		0x01000000	/* L2 RAM pipelined */#define L2CR_L2RAM_PIPE_LW	0x01800000	/* L2 RAM pipelined latewr */#define L2CR_L2DO		0x00400000	/* L2 data only */#define L2CR_L2I		0x00200000	/* L2 global invalidate */#define L2CR_L2CTL		0x00100000	/* L2 RAM control */#define L2CR_L2WT		0x00080000	/* L2 write-through */#define L2CR_L2TS		0x00040000	/* L2 test support */#define L2CR_L2OH_MASK		0x00030000	/* L2 output hold mask */#define L2CR_L2OH_0_5		0x00000000	/* L2 output hold 0.5 ns */#define L2CR_L2OH_1_0		0x00010000	/* L2 output hold 1.0 ns */#define L2CR_L2SL		0x00008000	/* L2 DLL slow */#define L2CR_L2DF		0x00004000	/* L2 differential clock */#define L2CR_L2BYP		0x00002000	/* L2 DLL bypass */#define L2CR_L2IP		0x00000001	/* L2 GI in progress */#define SPRN_L3CR		0x3FA	/* Level 3 Cache Control Regsiter */#define L3CR_L3E		0x80000000	/* L3 enable */#define L3CR_L3PE		0x40000000	/* L3 data parity enable */#define L3CR_L3APE		0x20000000	/* L3 addr parity enable */#define L3CR_L3SIZ		0x10000000	/* L3 size */#define L3CR_L3CLKEN		0x08000000	/* L3 clock enable */#define L3CR_L3RES		0x04000000	/* L3 special reserved bit */#define L3CR_L3CLKDIV		0x03800000	/* L3 clock divisor */#define L3CR_L3IO		0x00400000	/* L3 instruction only */#define L3CR_L3SPO		0x00040000	/* L3 sample point override */#define L3CR_L3CKSP		0x00030000	/* L3 clock sample point */#define L3CR_L3PSP		0x0000e000	/* L3 P-clock sample point */#define L3CR_L3REP		0x00001000	/* L3 replacement algorithm */#define L3CR_L3HWF		0x00000800	/* L3 hardware flush */#define L3CR_L3I		0x00000400	/* L3 global invalidate */#define L3CR_L3RT		0x00000300	/* L3 SRAM type */#define L3CR_L3NIRCA		0x00000080	/* L3 non-integer ratio clock adj. */#define L3CR_L3DO		0x00000040	/* L3 data only mode */#define L3CR_PMEN		0x00000004	/* L3 private memory enable */#define L3CR_PMSIZ		0x00000001	/* L3 private memory size */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?