s3c2410x.h

来自「ADS下的bios工程」· C头文件 代码 · 共 1,191 行 · 第 1/4 页

H
1,191
字号
#ifndef __S3C2410_H#define __S3C2410_H/*------------------------------------------------------------------- *  Processor Mode and Mask * *  Format of the Program Status Register * *  31  30  29   28         7   6   5   4   3   2   1   0 * +---+---+---+---+--ss--+---+---+---+---+---+---+---+---+ * | N | Z | C | V |      | I | F | T |     M4 ~ M0       | * +---+---+---+---+--ss--+---+---+---+---+---+---+---+---+ * */#define FBit            0x40#define IBit            0x80#define LOCKOUT         0xc0    /* Interrupt lockout value */#define LOCK_MSK        0xc0    /* Interrupt lockout mask value */#define MODE_MASK       0x1f    /* Processor Mode Mask */#define UDF_MODE        0x1b    /* Undefine Mode(UDF) */#define ABT_MODE        0x17    /* Abort Mode(ABT) */#define SUP_MODE        0x13    /* Supervisor Mode (SVC) */#define IRQ_MODE        0x12    /* Interrupt Mode (IRQ) */#define FIQ_MODE        0x11    /* Fast Interrupt Mode (FIQ) */#define USR_MODE        0x10    /* User Mode(USR) *//*------------------------------------------------------------------- * Define S3C2410X CPU master clock *------------------------------------------------------------------*/#define MHz 		(1000000)#define MCLK	   	(FMPLLout)	/* Refer to PLLCON register setting *//* #define HZ		(MCLK/MHz) */#define ASIC_BASE       (0x48000000)#define VPint    *(volatile unsigned int *)#define VPshort  *(volatile unsigned short *)#define VPchar   *(volatile unsigned char *)/*------------------------------------------------------------------- * Read and write control and status registers  * User must have to use this function * CSR_READ   : Read word (4 bytes : 32 bit) * CSR_WRITE  : Write word (4 bytes : 32 bit) * CSRH_READ  : Read half word (2 bytes : 16 bit) * CSRH_WRITE : Write half word (2 bytes : 16 bit) * CSRB_READ  : Read byte (1 byte : 8 bit) * CSRB_WRITE : Write byte (1 byte : 8 bit) *------------------------------------------------------------------*/#ifndef CSR_WRITE#define CSR_WRITE(addr,data) (VPint(addr) = (data))#else#define CSR_WRITE(addr,data) __raw_writel((data), VPint(addr))#endif#ifndef CSR_READ#define CSR_READ(addr)       (VPint(addr))#else#define CSR_READ(addr)       __raw_readl(VPint(addr))#endif#ifndef CSRH_WRITE#define CSRH_WRITE(addr,data) (VPshort(addr) = (data))#endif#ifndef CSRH_READ#define CSRH_READ(addr)       (VPshort(addr))#endif#ifndef CSRB_WRITE#define CSRB_WRITE(addr,data) (VPchar(addr) = (data))#endif#ifndef CSRB_READ#define CSRB_READ(addr)       (VPchar(addr))#endif/* ----------------------------------------------------------------- * MEMORY CONTROLLER REGISTER DEFINITION *------------------------------------------------------------------*/#define BWSCON  		(ASIC_BASE+0x0000000)#define BANKCON0  		(ASIC_BASE+0x0000004)#define BANKCON1  		(ASIC_BASE+0x0000008)#define BANKCON2  		(ASIC_BASE+0x000000C)#define BANKCON3  		(ASIC_BASE+0x0000010)#define BANKCON4  		(ASIC_BASE+0x0000014)#define BANKCON5  		(ASIC_BASE+0x0000018)#define BANKCON6  		(ASIC_BASE+0x000001C)#define BANKCON7  		(ASIC_BASE+0x0000020)#define REFRESH  		(ASIC_BASE+0x0000024)#define BANKSIZE  		(ASIC_BASE+0x0000028)#define MRSRB6	 		(ASIC_BASE+0x000002C)#define MRSRB7	 		(ASIC_BASE+0x0000030)#define SYS_INIT_BASE	BWSCON/* BWSCON (Bus width & Wait Status control Register) */#define	bST7	(0<<31) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS7	(0<<30) /* 0: WAIT disable, 1: WAIT enable */#define bDW7	(2<<28) /* Not used -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST6	(0<<27) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS6	(0<<26) /* 0: WAIT disable, 1: WAIT enable */#define bDW6	(2<<24) /* SDRAM -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST5	(0<<23) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS5	(0<<22) /* 0: WAIT disable, 1: WAIT enable */#define bDW5	(1<<20) /* Not used -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST4	(0<<19) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS4	(0<<18) /* 0: WAIT disable, 1: WAIT enable */#define bDW4	(1<<16) /* Not used -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST3	(0<<15) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS3	(1<<14) /* 0: WAIT disable, 1: WAIT enable */#define bDW3	(1<<12) /* Ethernet -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST2	(0<<11) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS2	(0<<10) /* 0: WAIT disable, 1: WAIT enable */#define bDW2	(1<<8)  /* Not used -> 0: 8bit, 1: 16bit, 2: 32bit */#define	bST1	(0<<11) /* 0: unused UB/LB, 1: used UB/LB */#define	bWS1	(0<<10) /* 0: WAIT disable, 1: WAIT enable */#define bDW1	(2<<4)  /* Intel Flash -> 0: 8bit, 1: 16bit, 2: 32bit */#define bDW0	(1<<1)  /* ROM -> 1: 16bit, 2: 32bit */#define bENDIAN	(0<<0)  /* 0: Little Endian, 1: Big Endian */#define rBWSCON (bENDIAN|bDW0|bDW1|bDW2|bDW3|bDW4|bDW5|bDW6|bDW7|bWS1|  \                bWS2|bWS3|bWS4|bWS5|bWS6|bWS7|bST1|bST2|bST3|bST4|bST5| \                bST6|bST7)/* BANKCON0 (Bank0 control Register) */#define bTacs0	(0<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos0	(0<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc0	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */ 		       	       	/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh0	(0<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah0	(0<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp0	(0<<2) 	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC0	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON0 (bPMC0|bTacp0|bTcah0|bTcoh0|bTacc0|bTcos0|bTacs0)/* BANKCON1 (Bank1 control Register) */#define bTacs1	(0<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos1	(0<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc1	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */   	       	       		/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh1	(0<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah1	(0<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp1	(0<<2) 	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC1	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON1 (bPMC1|bTacp1|bTcah1|bTcoh1|bTacc1|bTcos1|bTacs1)/* BANKCON2 (Bank2 control Register) */#define bTacs2	(0<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos2	(0<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc2	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */   	       	       		/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh2	(0<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah2	(0<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp2	(0<<2) 	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC2	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON2 (bPMC2|bTacp2|bTcah2|bTcoh2|bTacc2|bTcos2|bTacs2)/* BANKCON3 (Bank3 control Register) */#define bTacs3	(3<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos3	(3<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc3	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */           	       		/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh3	(3<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah3	(3<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp3	(3<<2) 	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC3	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON3 (bPMC3|bTacp3|bTcah3|bTcoh3|bTacc3|bTcos3|bTacs3)/* BANKCON4 (Bank4 control Register) */#define bTacs4	(0<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos4	(0<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc4	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */           	       		/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh4	(0<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah4	(0<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp4	(0<<2)	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC4	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON4 (bPMC4|bTacp4|bTcah4|bTcoh4|bTacc4|bTcos4|bTacs4)/* BANKCON5 (Bank5 control Register) */#define bTacs5	(0<<13) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcos5	(0<<11) /* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacc5	(7<<8) 	/* 0=1clks, 1=2clks, 2=3clks,  3=4clks */           	       		/* 4=6clks, 5=8clks, 6=10clks, 7=14clks */#define bTcoh5	(0<<6) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTcah5	(0<<4) 	/* 0=0clks, 1=1clks, 2=2clks, 3=4clks */#define bTacp5	(0<<2) 	/* 0=2clks, 1=3clks, 2=4clks, 3=6clks */#define bPMC5	(0<<0) 	/* 0=Normal, 1=4-data, 2=8-data, 3=16-data */#define rBANKCON5 (bPMC5|bTacp5|bTcah5|bTcoh5|bTacc5|bTcos5|bTacs5)/* BANKCON6 (Bank6 control Register) */#define bMT6	(3<<15) /* 0=ROM/SRAM, 1=FPAGE, 2=EDO, 3=SDRAM */#define bTrcd6 	(1<<2) 	/* 0=2clks, 1=3clks, 2=4clks */#define bCAN6 	(1<<0) 	/* 0=8bit, 1=9bit, 2=10bit */#define rBANKCON6 (bCAN6|bTrcd6|bMT6)/* BANKCON7 (Bank7 control Register) */#define bMT7	(3<<15) /* 0=ROM/SRAM, 1=FPAGE, 2=EDO, 3=SDRAM */#define bTrcd7 	(1<<2) 	/* 0=2clks, 1=3clks, 2=4clks */#define bCAN7 	(1<<0) 	/* 0=8bit, 1=9bit, 2=10bit */#define rBANKCON7 (bCAN7|bTrcd7|bMT7)/* REFRESH (DRAM/SDRAM refresh control Register) */#define bREFEN	(1<<23) /* 0=Disable, 1=Enable */#define bTREFMD	(0<<22) /* 0=CBR/Auto refresh, 1=Self refresh */#define bTrp	(0<<20) /* 0=2clks, 1=3clks, 2=4clks */#define bTrc	(3<<18) /* 0=4clks, 1=5clks, 2=6clks, 3=7clks */#define bREFCNT	(2049-((HCLK/(MHz*10))*156)) /* period=15.6us */#define rREFRESH (bREFEN|bTREFMD|bTrp|bTrc|bREFCNT)/* BANKSIZE (Flexible bank size Register) */#define bSCLKE_EN	(1<<5) /* SDRAM Power down mode : 0=Disable, 1=Enable */#define bSCLK_EN	(1<<4) /* SDRAM SCLK Enable : 0=always, 1=access only */#define bBK76MAP	(0<<0) /* 0=32M, 1=64M, 2=128M, 4=2M, 5=4M, 6=8M, 7=16M */#define rBANKSIZE (bSCLKE_EN|bSCLK_EN|bBK76MAP)/* MRSRB6 (Mode register set register bank6) */#define bWBL6	(0<<9) /* Write burst length : Recommended by 0 */#define bTM6	(0<<7) /* 0=mode register set, 1=2=3=reserved */#define bCL6	(2<<4) /* CAS latency : 0=1clk, 2=2clks, 3=3clks */#define bBT6	(0<<3) /* Burst type : 0=Sequential, 1=N/A */#define bBL6	(0<<0) /* Burst length : 0=1, others=N/A */#define rMRSRB6 (bWBL6|bTM6|bCL6|bBT6|bBL6)/* MRSRB7 (Mode register set register bank7) */#define bWBL7	(0<<9) /* Write burst length : Recommended by 0 */#define bTM7	(0<<7) /* 0=mode register set, 1=2=3=reserved */#define bCL7	(2<<4) /* CAS latency : 0=1clk, 2=2clks, 3=3clks */#define bBT7	(0<<3) /* Burst type : 0=Sequential, 1=N/A */#define bBL7	(0<<0) /* Burst length : 0=1, others=N/A */#define rMRSRB7 (bWBL7|bTM7|bCL7|bBT7|bBL7)/*------------------------------------------------------------------ * USB HOST CONTROLLER REGISTER DEFINITION *------------------------------------------------------------------*/#define	HcRevision			(ASIC_BASE+0x01000000)#define	HcControl			(ASIC_BASE+0x01000004)#define	HcCommonStatus		(ASIC_BASE+0x01000008)#define	HcInterruptStatus	(ASIC_BASE+0x0100000C)#define	HcInterruptEnable	(ASIC_BASE+0x01000010)#define	HcInterruptDisable	(ASIC_BASE+0x01000014)#define	HcHCCA				(ASIC_BASE+0x01000018)#define	HcPeriodCuttentED	(ASIC_BASE+0x0100001C)#define	HcControlHeadED		(ASIC_BASE+0x01000020)#define	HcControlCurrentED	(ASIC_BASE+0x01000024)#define	HcBulkHeadED		(ASIC_BASE+0x01000028)#define	HcBulkCurrentED		(ASIC_BASE+0x0100002C)#define	HcDoneHead			(ASIC_BASE+0x01000030)#define	HcRmInterval		(ASIC_BASE+0x01000034)#define	HcFmRemaining		(ASIC_BASE+0x01000038)#define	HcFmNumber			(ASIC_BASE+0x0100003C)#define	HcPeriodicStart		(ASIC_BASE+0x01000040)#define	HcLSThreshold		(ASIC_BASE+0x01000044)#define	HcRhDescriptorA		(ASIC_BASE+0x01000048)#define	HcRhDescriptorB		(ASIC_BASE+0x0100004C)#define	HcRhStatus			(ASIC_BASE+0x01000050)#define	HcRhPortStatus1		(ASIC_BASE+0x01000054)#define	HcRhPortStatus2		(ASIC_BASE+0x01000058)/*------------------------------------------------------------------ * INTERRUPT CONTROLLER REGISTER DEFINITION *------------------------------------------------------------------*/#define SRCPND  		(ASIC_BASE+0x02000000)#define INTMOD 			(ASIC_BASE+0x02000004)#define INTMSK 			(ASIC_BASE+0x02000008)#define PRIORITY		(ASIC_BASE+0x0200000C)#define INTPND 			(ASIC_BASE+0x02000010)#define INTOFFSET		(ASIC_BASE+0x02000014)#define SRCSUBPND		(ASIC_BASE+0x02000018)#define INTSUBMSK		(ASIC_BASE+0x0200001C)/*------------------------------------------------------------------ * DMA CONTROLLER REGISTER DEFINITION *------------------------------------------------------------------*/

⌨️ 快捷键说明

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