📄 lr4001.h
字号:
/************************************************************* * File: include/lr4001.h * Purpose: defines for LSI Logic LR4001 * Author: Phil Bunce (pjb@carmel.com) * Revision History: * 970829 Fixed CPC0EN..CPC3EN */#if defined(LR4101) && !defined(LR4001)#define LR4001#endif#if defined(LR4001) && !defined(_LR4001_)#define _LR4001_#define M_CFG4001 0xbfff0000 /* config register */#define CFG_TLBEN (1<<31) /* tlb enable */#define CFG_WBEN (1<<30) /* write buffer enable */#define CFG_DSNOOP (1<<29) /* D-snoop enable */#define CFG_ISNOOP (1<<28) /* I-snoop enable */#define CFG_FBE (1<<24) /* fast bus enable */#define CFG_CPC3EN (1<<19) /* connect Cpc3 to int */#define CFG_CPC2EN (1<<18) /* connect Cpc2 to int */#define CFG_CPC1EN (1<<17) /* connect Cpc1 to int */#define CFG_CPC0EN (1<<16) /* connect Cpc0 to int */#define CFG_DBERR (1<<13) /* data bus error */#define CFG_PGSZMASK (7<<10) /* page size */#define CFG_PGSZSHFT 10#define CFG_PGSZ_16 (0<<10)#define CFG_PGSZ_32 (1<<10)#define CFG_PGSZ_64 (2<<10)#define CFG_PGSZ_128 (3<<10)#define CFG_PGSZ_256 (4<<10)#define CFG_PGSZ_512 (5<<10)#define CFG_PGSZ_1K (6<<10)#define CFG_PGSZ_2K (7<<10)#define CFG_CMODEMASK (3<<8) /* cache mode */#define CFG_CMODESHFT 8#define CFG_CMODE_NORM (0<<8)#define CFG_CMODE_IDATA (1<<8)#define CFG_CMODE_ITEST (2<<8)#define CFG_CMODE_DTEST (3<<8)#define CFG_RDPRI (1<<7) /* read priority */#define CFG_DSIZEMASK (3<<5) /* D-cache refill size */#define CFG_DSIZESHFT 5#define CFG_DSIZE_1 (0<<5)#define CFG_DSIZE_2 (1<<5)#define CFG_DSIZE_4 (2<<5)#define CFG_DSIZE_8 (3<<5)#define CFG_DCEN (1<<4) /* D-cache enable */#define CFG_ISIZEMASK (3<<2) /* I-cache refill size */#define CFG_ISIZESHFT 2#define CFG_ISIZE_1 (0<<2)#define CFG_ISIZE_2 (1<<2)#define CFG_ISIZE_4 (2<<2)#define CFG_ISIZE_8 (3<<2)#define CFG_IS1EN (1<<1) /* I-cache set 1 enable */#define CFG_ICEN (1<<0) /* I-cache enable */#define M_TMR4001 0xbfff0100#define O_TIC0 0#define O_TCC0 4#define O_TIC1 8#define O_TCC1 12#define O_TMODE 16#define O_TSTAT 20#define TMODE_EN0 (1<<0) /* timer enable */#define TMODE_PULSE0 (1<<1) /* select pulse or toggle mode */#define TMODE_EN1 (1<<8) /* timer enable */#define TMODE_PULSE1 (1<<9) /* select pulse or toggle mode */#define TMODE_DOG1 (1<<10) /* select gp or dog mode */#define TSTAT_IEN0 (1<<0) /* interrupt enable */#define TSTAT_INT0 (1<<1) /* interrupt status */#ifdef LANGUAGE_ASSEMBLY/* Arithmetic bolt-on instructions */#define MADD(rs,rt) .word (0x0000001c|((rs)<<21)|((rt)<<16))#define MADDU(rs,rt) .word (0x0000001d|((rs)<<21)|((rt)<<16))#define MSUB(rs,rt) .word (0x0000001e|((rs)<<21)|((rt)<<16))#define MSUBU(rs,rt) .word (0x0000001f|((rs)<<21)|((rt)<<16))#endif /* LANGUAGE_ASSEMBLY */#ifdef LANGUAGE_C#define CFG4001 (*((volatile Ulong *)M_CFG4001)) /* config register */#define TIC0_4001 (*((volatile Ulong *)(M_TMR4001+O_TIC0))) /* count */#define TCC0_4001 (*((volatile Ulong *)(M_TMR4001+O_TCC0))) /* cntrl */#define TIC1_4001 (*((volatile Ulong *)(M_TMR4001+O_TIC1))) /* count */#define TCC1_4001 (*((volatile Ulong *)(M_TMR4001+O_TCC1))) /* cntrl */#define TMODE_4001 (*((volatile Ulong *)(M_TMR4001+O_TMODE))) /* mode */#define TSTAT_4001 (*((volatile Ulong *)(M_TMR4001+O_TSTAT))) /* status */#endif#endif /* _LR4001_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -