⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppc.h

📁 IBM PowerPC 405 在DiabData开发环境下的ucosII移植代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Short-hand versions for a number of the above SPRNs */#define	CTR	SPRN_CTR	/* Counter Register */#define	DAR	SPRN_DAR	/* Data Address Register */#define	DABR	SPRN_DABR	/* Data Address Breakpoint Register */#define	DBAT0L	SPRN_DBAT0L	/* Data BAT 0 Lower Register */#define	DBAT0U	SPRN_DBAT0U	/* Data BAT 0 Upper Register */#define	DBAT1L	SPRN_DBAT1L	/* Data BAT 1 Lower Register */#define	DBAT1U	SPRN_DBAT1U	/* Data BAT 1 Upper Register */#define	DBAT2L	SPRN_DBAT2L	/* Data BAT 2 Lower Register */#define	DBAT2U	SPRN_DBAT2U	/* Data BAT 2 Upper Register */#define	DBAT3L	SPRN_DBAT3L	/* Data BAT 3 Lower Register */#define	DBAT3U	SPRN_DBAT3U	/* Data BAT 3 Upper Register */#define	DCMP	SPRN_DCMP      	/* Data TLB Compare Register */#define	DEC	SPRN_DEC       	/* Decrement Register */#define	DMISS	SPRN_DMISS     	/* Data TLB Miss Register */#define	DSISR	SPRN_DSISR	/* Data Storage Interrupt Status Register */#define	EAR	SPRN_EAR       	/* External Address Register */#define	HASH1	SPRN_HASH1	/* Primary Hash Address Register */#define	HASH2	SPRN_HASH2	/* Secondary Hash Address Register */#define	HID0	SPRN_HID0	/* Hardware Implementation Register 0 */#define	HID1	SPRN_HID1	/* Hardware Implementation Register 1 */#define	IABR	SPRN_IABR      	/* Instruction Address Breakpoint Register */#define	IBAT0L	SPRN_IBAT0L	/* Instruction BAT 0 Lower Register */#define	IBAT0U	SPRN_IBAT0U	/* Instruction BAT 0 Upper Register */#define	IBAT1L	SPRN_IBAT1L	/* Instruction BAT 1 Lower Register */#define	IBAT1U	SPRN_IBAT1U	/* Instruction BAT 1 Upper Register */#define	IBAT2L	SPRN_IBAT2L	/* Instruction BAT 2 Lower Register */#define	IBAT2U	SPRN_IBAT2U	/* Instruction BAT 2 Upper Register */#define	IBAT3L	SPRN_IBAT3L	/* Instruction BAT 3 Lower Register */#define	IBAT3U	SPRN_IBAT3U	/* Instruction BAT 3 Upper Register */#define	ICMP	SPRN_ICMP	/* Instruction TLB Compare Register */#define	IMISS	SPRN_IMISS	/* Instruction TLB Miss Register */#define	IMMR	SPRN_IMMR      	/* PPC 860/821 Internal Memory Map Register */#define	L2CR	SPRN_L2CR    	/* PPC 750 L2 control register */#define	LR	SPRN_LR#define	PVR	SPRN_PVR	/* Processor Version */#define	RPA	SPRN_RPA	/* Required Physical Address Register */#define	SDR1	SPRN_SDR1      	/* MMU hash base register */#define	SPR0	SPRN_SPRG0	/* Supervisor Private Registers */#define	SPR1	SPRN_SPRG1#define	SPR2	SPRN_SPRG2#define	SPR3	SPRN_SPRG3#define	SPRG0   SPRN_SPRG0#define	SPRG1   SPRN_SPRG1#define	SPRG2   SPRN_SPRG2#define	SPRG3   SPRN_SPRG3#define	SRR0	SPRN_SRR0	/* Save and Restore Register 0 */#define	SRR1	SPRN_SRR1	/* Save and Restore Register 1 */#define	TBRL	SPRN_TBRL	/* Time Base Read Lower Register */#define	TBRU	SPRN_TBRU	/* Time Base Read Upper Register */#define	TBWL	SPRN_TBWL	/* Time Base Write Lower Register */#define	TBWU	SPRN_TBWU	/* Time Base Write Upper Register */#define ICTC	1019#define	THRM1	SPRN_THRM1	/* Thermal Management Register 1 */#define	THRM2	SPRN_THRM2	/* Thermal Management Register 2 */#define	THRM3	SPRN_THRM3	/* Thermal Management Register 3 */#define	XER	SPRN_XER/* Device Control Registers */#define	DCRN_BEAR	0x090	/* Bus Error Address Register */#define	DCRN_BESR	0x091	/* Bus Error Syndrome Register */#define	  BESR_DSES    	0x80000000	/* Data-Side Error Status */#define	  BESR_DMES	0x40000000	/* DMA Error Status */#define	  BESR_RWS	0x20000000	/* Read/Write Status */#define	  BESR_ETMASK	0x1C000000	/* Error Type */#define	    ET_PROT	0#define	    ET_PARITY	1#define	    ET_NCFG	2#define	    ET_BUSERR	4#define	    ET_BUSTO	6#define	DCRN_DMACC0	0x0C4	/* DMA Chained Count Register 0 */#define	DCRN_DMACC1	0x0CC	/* DMA Chained Count Register 1 */#define	DCRN_DMACC2	0x0D4	/* DMA Chained Count Register 2 */#define	DCRN_DMACC3	0x0DC    /* DMA Chained Count Register 3 */#define	DCRN_DMACR0	0x0C0    /* DMA Channel Control Register 0 */#define	DCRN_DMACR1	0x0C8    /* DMA Channel Control Register 1 */#define	DCRN_DMACR2	0x0D0    /* DMA Channel Control Register 2 */#define	DCRN_DMACR3	0x0D8    /* DMA Channel Control Register 3 */#define	DCRN_DMACT0	0x0C1    /* DMA Count Register 0 */#define	DCRN_DMACT1	0x0C9    /* DMA Count Register 1 */#define	DCRN_DMACT2	0x0D1    /* DMA Count Register 2 */#define	DCRN_DMACT3	0x0D9    /* DMA Count Register 3 */#define	DCRN_DMADA0	0x0C2    /* DMA Destination Address Register 0 */#define	DCRN_DMADA1	0x0CA    /* DMA Destination Address Register 1 */#define	DCRN_DMADA2	0x0D2    /* DMA Destination Address Register 2 */#define	DCRN_DMADA3	0x0DA    /* DMA Destination Address Register 3 */#define	DCRN_DMASA0	0x0C3    /* DMA Source Address Register 0 */#define	DCRN_DMASA1	0x0CB    /* DMA Source Address Register 1 */#define	DCRN_DMASA2	0x0D3    /* DMA Source Address Register 2 */#define	DCRN_DMASA3	0x0DB    /* DMA Source Address Register 3 */#define	DCRN_DMASR	0x0E0    /* DMA Status Register */#define	DCRN_EXIER	0x042    /* External Interrupt Enable Register */#define	  EXIER_CIE	0x80000000	/* Critical Interrupt Enable */#define	  EXIER_SRIE	0x08000000	/* Serial Port Rx Int. Enable */#define	  EXIER_STIE	0x04000000	/* Serial Port Tx Int. Enable */#define	  EXIER_JRIE	0x02000000	/* JTAG Serial Port Rx Int. Enable */#define	  EXIER_JTIE	0x01000000	/* JTAG Serial Port Tx Int. Enable */#define	  EXIER_D0IE	0x00800000	/* DMA Channel 0 Interrupt Enable */#define	  EXIER_D1IE	0x00400000	/* DMA Channel 1 Interrupt Enable */#define	  EXIER_D2IE	0x00200000	/* DMA Channel 2 Interrupt Enable */#define	  EXIER_D3IE	0x00100000	/* DMA Channel 3 Interrupt Enable */#define	  EXIER_E0IE	0x00000010	/* External Interrupt 0 Enable */#define	  EXIER_E1IE	0x00000008	/* External Interrupt 1 Enable */#define	  EXIER_E2IE	0x00000004	/* External Interrupt 2 Enable */#define	  EXIER_E3IE	0x00000002	/* External Interrupt 3 Enable */#define	  EXIER_E4IE	0x00000001	/* External Interrupt 4 Enable */#define	DCRN_EXISR	0x040    /* External Interrupt Status Register */#define	DCRN_IOCR	0x0A0    /* Input/Output Configuration Register */#define	  IOCR_E0TE	0x80000000#define	  IOCR_E0LP	0x40000000#define	  IOCR_E1TE	0x20000000#define	  IOCR_E1LP	0x10000000#define	  IOCR_E2TE	0x08000000#define	  IOCR_E2LP	0x04000000#define	  IOCR_E3TE	0x02000000#define	  IOCR_E3LP	0x01000000#define	  IOCR_E4TE	0x00800000#define	  IOCR_E4LP	0x00400000#define	  IOCR_EDT     	0x00080000#define	  IOCR_SOR     	0x00040000#define	  IOCR_EDO	0x00008000#define	  IOCR_2XC	0x00004000#define	  IOCR_ATC	0x00002000#define	  IOCR_SPD	0x00001000#define	  IOCR_BEM	0x00000800#define	  IOCR_PTD	0x00000400#define	  IOCR_ARE	0x00000080#define	  IOCR_DRC	0x00000020#define	  IOCR_RDM(x)	(((x) & 0x3) << 3)#define	  IOCR_TCS	0x00000004#define	  IOCR_SCS	0x00000002#define	  IOCR_SPC	0x00000001/* Processor Version Register *//* Processor Version Register (PVR) field extraction */#define	PVR_VER(pvr)  (((pvr) >>  16) & 0xFFFF)	/* Version field */#define	PVR_REV(pvr)  (((pvr) >>   0) & 0xFFFF)	/* Revison field *//* * IBM has further subdivided the standard PowerPC 16-bit version and * revision subfields of the PVR for the PowerPC 403s into the following: */#define	PVR_FAM(pvr)	(((pvr) >> 20) & 0xFFF)	/* Family field */#define	PVR_MEM(pvr)	(((pvr) >> 16) & 0xF)	/* Member field */#define	PVR_CORE(pvr)	(((pvr) >> 12) & 0xF)	/* Core field */#define	PVR_CFG(pvr)	(((pvr) >>  8) & 0xF)	/* Configuration field */#define	PVR_MAJ(pvr)	(((pvr) >>  4) & 0xF)	/* Major revision field */#define	PVR_MIN(pvr)	(((pvr) >>  0) & 0xF)	/* Minor revision field *//* Processor Version Numbers */#define	PVR_403GA	0x00200000#define	PVR_403GB	0x00200100#define	PVR_403GC	0x00200200#define	PVR_403GCX	0x00201400#define	PVR_405GP	0x40110000#define	PVR_405GP_RB	0x40110040#define	PVR_405GP_RC	0x40110082#define	PVR_405GP_RD	0x401100C4#define	PVR_405CR_RA	0x40110041#define	PVR_405CR_RB	0x401100C5#define	PVR_601		0x00010000#define	PVR_602		0x00050000#define	PVR_603		0x00030000#define	PVR_603e	0x00060000#define	PVR_603ev	0x00070000#define	PVR_603r	0x00071000#define	PVR_604		0x00040000#define	PVR_604e	0x00090000#define	PVR_604r	0x000A0000#define	PVR_620		0x00140000#define	PVR_740		0x00080000#define	PVR_750		PVR_740#define	PVR_740P	0x10080000#define	PVR_750P	PVR_740P/* * For the 8xx processors, all of them report the same PVR family for * the PowerPC core. The various versions of these processors must be * differentiated by the version number in the Communication Processor * Module (CPM). */#define	PVR_821		0x00500000#define	PVR_823		PVR_821#define	PVR_850		PVR_821#define	PVR_860		PVR_821#define	PVR_7400       	0x000C0000#define	PVR_8240	0x00810100#define	PVR_8260	PVR_8240/* I am just adding a single entry for 8260 boards.  I think we may be * able to combine mbx, fads, rpxlite, bseip, and classic into a single * generic 8xx as well.  The boards containing these processors are either * identical at the processor level (due to the high integration) or so * wildly different that testing _machine at run time is best replaced by * conditional compilation by board type (found in their respective .h file). *	-- Dan */#define _MACH_prep	0x00000001#define _MACH_Pmac	0x00000002	/* pmac or pmac clone (non-chrp) */#define _MACH_chrp	0x00000004	/* chrp machine */#define _MACH_mbx	0x00000008	/* Motorola MBX board */#define _MACH_apus	0x00000010	/* amiga with phase5 powerup */#define _MACH_fads	0x00000020	/* Motorola FADS board */#define _MACH_rpxlite	0x00000040	/* RPCG RPX-Lite 8xx board */#define _MACH_bseip	0x00000080	/* Bright Star Engineering ip-Engine */#define _MACH_yk	0x00000100	/* Motorola Yellowknife */#define _MACH_gemini	0x00000200	/* Synergy Microsystems gemini board */#define _MACH_classic	0x00000400	/* RPCG RPX-Classic 8xx board */#define _MACH_oak	0x00000800	/* IBM "Oak" 403 eval. board */#define _MACH_walnut	0x00001000	/* IBM "Walnut" 405GP eval. board */#define _MACH_8260	0x00002000	/* Generic 8260 */#define _MACH_sandpoint 0x00004000	/* Motorola SPS Processor eval board */#define _MACH_tqm860	0x00008000	/* TQM860/L */#define _MACH_tqm8xxL	0x00010000	/* TQM8xxL *//* see residual.h for these */#define _PREP_Motorola 0x01  /* motorola prep */#define _PREP_Firm     0x02  /* firmworks prep */#define _PREP_IBM      0x00  /* ibm prep */#define _PREP_Bull     0x03  /* bull prep */#define _PREP_Radstone 0x04  /* Radstone Technology PLC prep *//* * Radstone board types */#define RS_SYS_TYPE_PPC1   0#define RS_SYS_TYPE_PPC2   1#define RS_SYS_TYPE_PPC1a  2#define RS_SYS_TYPE_PPC2a  3#define RS_SYS_TYPE_PPC4   4#define RS_SYS_TYPE_PPC4a  5#define RS_SYS_TYPE_PPC2ep 6/* these are arbitrary */#define _CHRP_Motorola 0x04  /* motorola chrp, the cobra */#define _CHRP_IBM      0x05  /* IBM chrp, the longtrail and longtrail 2 *//* Macros for setting and retrieving special purpose registers *//* Segment Registers */#define SR0	0#define SR1	1#define SR2	2#define SR3	3#define SR4	4#define SR5	5#define SR6	6#define SR7	7#define SR8	8#define SR9	9#define SR10	10#define SR11	11#define SR12	12#define SR13	13#define SR14	14#define SR15	15#define _machine _MACH_walnut#endif /* __PPC_PROCESSOR_H */

⌨️ 快捷键说明

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