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

📄 ppc_cpu.h

📁 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具
💻 H
📖 第 1 页 / 共 2 页
字号:
ltgteqso*/#define CR_CR0_LT (1<<31)#define CR_CR0_GT (1<<30)#define CR_CR0_EQ (1<<29)//#define CR_CR0_EQ (1 << 2)#define CR_CR0_SO (1<<28)/*cr1 bits: .684 Floating-point exception (FX)5 Floating-point enabled exception (FEX)6 Floating-point invalid exception (VX)7 Floating-point overflow exception (OX)*/#define CR_CR1_FX (1<<27)#define CR_CR1_FEX (1<<26)#define CR_CR1_VX (1<<25)#define CR_CR1_OX (1<<24)/*FPSCR bits: .70*/ #define FPSCR_FX (1<<31)#define FPSCR_FEX (1<<30)#define FPSCR_VX (1<<29)#define FPSCR_OX (1<<28)#define FPSCR_UX (1<<27)#define FPSCR_ZX (1<<26)#define FPSCR_XX (1<<25)#define FPSCR_VXSNAN (1<<24)#define FPSCR_VXISI (1<<23)#define FPSCR_VXIDI (1<<22)#define FPSCR_VXZDZ (1<<21)#define FPSCR_VXIMZ (1<<20)#define FPSCR_VXVC (1<<19)#define FPSCR_FR (1<<18)#define FPSCR_FI (1<<17)#define FPSCR_FPRF(v) (((v)>>12)&0x1f)#define FPSCR_res0 (1<<11)#define FPSCR_VXSOFT (1<<10)#define FPSCR_VXSQRT (1<<9)#define FPSCR_VXCVI (1<<8)#define FPSCR_VXVE (1<<7)#define FPSCR_VXOE (1<<6)#define FPSCR_VXUE (1<<5)#define FPSCR_VXZE (1<<4)#define FPSCR_VXXE (1<<3)#define FPSCR_VXNI (1<<2)#define FPSCR_RN(v) ((v)&3)#define FPSCR_RN_NEAR 0#define FPSCR_RN_ZERO 1#define FPSCR_RN_PINF 2#define FPSCR_RN_MINF 3 /*VSCR bits:        sat = summary saturation        nj = non-java floating-point mode*/#define VSCR_SAT 1#define VSCR_NJ (1<<16)/*xer bits:0 so1 ov2 carry3-24 res25-31 number of bytes for lswx/stswx*/#define XER_SO (1<<31)#define XER_OV (1<<30)#define XER_CA (1<<29)#define XER_n(v) ((v)&0x7f)/*msr: .830-12 res13   POW	power management enabled14	res15	ILE	exception little-endian mode16	EE	enable external interrupt17	PR	privilege level (0=sv)18	FP	floating point avail19	ME	maschine check exception enable20	FE0	floation point exception mode 021	SE   single step enable22	BE	branch trace enable23	FE1	floation point exception mode 124	res25   IP	exception prefix26   IR   intruction address translation27   DR   data address translation28-29res30	RI	recoverable exception31	LE   little endian mode*/#define MSR_SF		(1<<31)#define MSR_UNKNOWN	(1<<30)#define MSR_UNKNOWN2	(1<<27)#define MSR_VEC		(1<<25)#define MSR_POW		(1<<18)#define MSR_TGPR	(1<<15)		// 603(e)#define MSR_ILE		(1<<16)#define MSR_EE		(1<<15)#define MSR_PR		(1<<14)#define MSR_FP		(1<<13)#define MSR_ME		(1<<12)#define MSR_FE0		(1<<11)#define MSR_SE		(1<<10)#define MSR_BE		(1<<9)#define MSR_FE1		(1<<8)#define MSR_IP		(1<<6)#define MSR_IR		(1<<5)#define MSR_DR		(1<<4)#define MSR_PM		(1<<2)#define MSR_RI		(1<<1)#define MSR_LE		(1)//#define PPC_CPU_UNSUPPORTED_MSR_BITS (/*MSR_POW|*/MSR_ILE|MSR_BE|MSR_IP|MSR_LE)#define PPC_CPU_UNSUPPORTED_MSR_BITS (~(MSR_POW | MSR_UNKNOWN | MSR_UNKNOWN2 | MSR_VEC | MSR_EE | MSR_PR | MSR_FP | MSR_ME | MSR_FE0 | MSR_SE | MSR_FE1 | MSR_IR | MSR_DR | MSR_RI))#define MSR_RFI_SAVE_MASK (0xff73)/*BAT Register: .88upper:0-14  BEPI Block effective page index.15-18 res19-29 BL   Block length.30    Vs   Supervisor mode valid bit.31    Vp   User mode valid bit.lower:0-14  BRPN This field is used in conjunction with the BL field to generate highorder bits of the physical address of the block.15-24 res25-28 WIMG Memory/cache access mode bits29    res30-31 PP   Protection bits for block.BAT AreaLength		BL Encoding128 Kbytes	000 0000 0000256 Kbytes	000 0000 0001512 Kbytes	000 0000 00111 Mbyte		000 0000 01112 Mbytes	000 0000 11114 Mbytes	000 0001 11118 Mbytes	000 0011 111116 Mbytes	000 0111 111132 Mbytes	000 1111 111164 Mbytes	001 1111 1111128 Mbytes	011 1111 1111256 Mbytes	111 1111 1111*/#define BATU_BEPI(v) ((v)&0xfffe0000)#define BATU_BL(v)   (((v)&0x1ffc)>>2)#define BATU_Vs      (1<<1)#define BATU_Vp      (1)#define BATL_BRPN(v) ((v)&0xfffe0000)#define BAT_EA_OFFSET(v) ((v)&0x1ffff)#define BAT_EA_11(v)     ((v)&0x0ffe0000)#define BAT_EA_4(v)      ((v)&0xf0000000)/*sdr1: .910-15 The high-order 16 bits of the 32-bit physical address of the page table16-22 res23-31 Mask for page table address*/#define SDR1_HTABORG(v) (((v)>>16)&0xffff)#define SDR1_HTABMASK(v) ((v)&0x1ff)#define SDR1_PAGETABLE_BASE(v) ((v)&0xffff)/*sr: .940    T=0:1    Ks   sv prot2    Kp   user prot3    N    No execute4-7  res8-31 VSID Virtual Segment ID0     T=1:1     Ks2     Kp3-11  BUID       Bus Unit ID12-31 CNTRL_SPEC */#define SR_T  (1<<31)#define SR_Ks (1<<30)#define SR_Kp (1<<29)#define SR_N  (1<<28)#define SR_VSID(v)       ((v)&0xffffff)#define SR_BUID(v)       (((v)>>20)&0x1ff)#define SR_CNTRL_SPEC(v) ((v)&0xfffff)#define EA_SR(v)         (((v)>>28)&0xf)#define EA_PageIndex(v)  (((v)>>12)&0xffff)#define EA_Offset(v)	((v)&0xfff)#define EA_API(v)		(((v)>>22)&0x3f)#define PA_RPN(v)        (((v)>>12)&0xfffff)#define PA_Offset(v)     ((v)&0xfff)/*PTE: .3640     V1-24  VSID25    H26-31 API*/#define PTE1_V       (1<<31)#define PTE1_VSID(v) (((v)>>7)&0xffffff)#define PTE1_H       (1<<6)#define PTE1_API(v)  ((v)&0x3f)#define PTE2_RPN(v)  ((v)&0xfffff000)#define PTE2_R       (1<<8)#define PTE2_C       (1<<7)#define PTE2_WIMG(v) (((v)>>3)&0xf)#define PTE2_PP(v)   ((v)&3)#define PPC_L1_CACHE_LINE_SIZE  32#define PPC_LG_L1_CACHE_LINE_SIZE   5#define PPC_MAX_L1_COPY_PREFETCH    4/* *	special registers */#define HID0	1008	/* Checkstop and misc enables */#define HID1	1009	/* Clock configuration */#define iabr	1010	/* Instruction address breakpoint register */#define ictrl	1011	/* Instruction Cache Control */#define ldstdb	1012	/* Load/Store Debug */#define dabr	1013	/* Data address breakpoint register */#define msscr0	1014	/* Memory subsystem control */#define msscr1	1015	/* Memory subsystem debug */#define msssr0	1015	/* Memory Subsystem Status */#define ldstcr	1016	/* Load/Store Status/Control */#define l2cr2	1016	/* L2 Cache control 2 */#define l2cr	1017	/* L2 Cache control */#define l3cr	1018	/* L3 Cache control */#define ictc	1019	/* I-cache throttling control */#define thrm1	1020	/* Thermal management 1 */#define thrm2	1021	/* Thermal management 2 */#define thrm3	1022	/* Thermal management 3 */#define pir	1023	/* Processor ID Register *///;	hid0 bits#define HID0_emcp	0#define HID0_emcpm	0x80000000#define HID0_dbp	1#define HID0_dbpm	0x40000000#define HID0_eba	2#define HID0_ebam	0x20000000#define HID0_ebd	3#define HID0_ebdm	0x10000000#define HID0_sbclk	4#define HID0_sbclkm	0x08000000#define HID0_eclk	6#define HID0_eclkm	0x02000000#define HID0_par	7#define HID0_parm	0x01000000#define HID0_sten	7#define HID0_stenm	0x01000000#define HID0_doze	8#define HID0_dozem	0x00800000#define HID0_nap	9#define HID0_napm	0x00400000#define HID0_sleep	10#define HID0_sleepm	0x00200000#define HID0_dpm	11#define HID0_dpmm	0x00100000#define HID0_riseg	12#define HID0_risegm	0x00080000#define HID0_eiec	13#define HID0_eiecm	0x00040000#define HID0_mum	14#define HID0_mumm	0x00020000#define HID0_nhr	15#define HID0_nhrm	0x00010000#define HID0_ice	16#define HID0_icem	0x00008000#define HID0_dce	17#define HID0_dcem	0x00004000#define HID0_ilock	18#define HID0_ilockm	0x00002000#define HID0_dlock	19#define HID0_dlockm	0x00001000#define HID0_icfi	20#define HID0_icfim	0x00000800#define HID0_dcfi	21#define HID0_dcfim	0x00000400#define HID0_spd	22#define HID0_spdm	0x00000200#define HID0_sge	24#define HID0_sgem	0x00000080#define HID0_dcfa	25#define HID0_dcfam	0x00000040#define HID0_btic	26#define HID0_bticm	0x00000020#define HID0_lrstk	27#define HID0_lrstkm	0x00000010#define HID0_abe	28#define HID0_abem	0x00000008#define HID0_fold	28#define HID0_foldm	0x00000008#define HID0_bht	29#define HID0_bhtm	0x00000004#define HID0_nopdst	30#define HID0_nopdstm	0x00000002#define HID0_nopti	31#define HID0_noptim	0x00000001void ppc_cpu_atomic_raise_ext_exception();void ppc_cpu_atomic_cancel_ext_exception();extern uint32 gBreakpoint;extern uint32 gBreakpoint2;FILE * prof_file;void ppc_set_singlestep_v(bool v, const char *file, int line, const char *format, ...);void ppc_set_singlestep_nonverbose(bool v);#endif 

⌨️ 快捷键说明

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