小磷光一

ATA-IDE相关寄存器相关寄存器宏定义

0
阅读(3222)

 

ATA-IDE相关寄存器相关寄存器宏定义
****************************************************************************/ 
#ifndef _BF533_IDE_TEST_
#define _BF533_IDE_TEST_

/*
#define BYTE unsigned char 
#define WORD unsigned short 
#define DWORD unsigned long 
*/

//IDE Register Address
#define IDECS0BASEADDR		0x20300000 
#define pDataPort 		(volatile unsigned short *)(IDECS0BASEADDR +(0x00<<1))
#define pPreComp 		(volatile unsigned char *)(IDECS0BASEADDR + (0x01<<1))
#define pSectorCount		(volatile unsigned char *)(IDECS0BASEADDR + (0x02<<1))
#define pSectorNumber	(volatile unsigned char *)(IDECS0BASEADDR + (0x03<<1))
#define pCylinderLow		(volatile unsigned char *)(IDECS0BASEADDR + (0x04<<1))
#define pCylinderHigh		(volatile unsigned char *)(IDECS0BASEADDR + (0x05<<1))
#define pDriveHead		(volatile unsigned char *)(IDECS0BASEADDR + (0x06<<1))
#define pCommand 		(volatile unsigned char *)(IDECS0BASEADDR + (0x07<<1))

#define pStatus			(volatile unsigned char *)(IDECS0BASEADDR + (0x07<<1))
#define pErrorReg 		(volatile unsigned char *)(IDECS0BASEADDR + (0x01<<1))

//IDE Status Register Bit
#define IDE_BUSY 	0x80		//系统忙标志
#define IDE_DRDY 	0x40		//系统ready标志
#define IDE_DWF  	0x20		//写误差
#define IDE_DSC		0x10		//完成搜索标志,
#define IDE_DRQ		0x08		//数据请求
#define IDE_CORR	0x04		//修正数据
#define IDE_INDEX	0x02		//
#define IDE_ERROR	0x01

//IDE Command 
#define IDE_CMD_CHECKPOWERMODE 	0x98 	// Check Power Mode  校核电源模式  
#define IDE_CMD_CHECKPOWERMODE2 0xE5 	//Check Power Mode (same as 98h) 
#define IDE_CMD_DRIVEDIAG 	0x90     // Execute Drive Diagnostic  可执行的设备诊断      
#define IDE_CMD_FORMAT		0x50   	// Format Track                格式轨迹   
#define	IDE_CMD_IDENTIFY	0xEC	// Identify Drive              鉴别设备   
#define IDE_CMD_IDLE		0x97	//Idle                         空闲  
#define IDE_CMD_IDLE2		0xE3	//Idle (same as 97h)              |  
#define IDE_CMD_IDLEIMMEDIATE	0x95	//Idle Immediate            立即空闲    
#define IDE_CMD_IDLEIMMEDIATE2	0xE1	//Idle Immadiate (same as 95h)  立即空闲  
#define IDE_CMD_INITDRIVERPARAM	0x91	//Initialize Drive Parameters   初始化设备参量 
#define IDE_CMD_READBUFFER	0xE4	//Read Buffer                     	读buff|     
#define IDE_CMD_READDMARETRY	0xC8	//Read DMA With Retry           读DMA |  >> Unknown <<  |
#define IDE_CMD_READDMA		0xC9	//Read DMA                        	|  >> Unknown <<  |
#define IDE_CMD_READMILTI	0xC4	//Read Multiple                   	多次读|  
#define IDE_CMD_READSECTORRETRY	0x20	//Read Sectors With Retry        再次读扇区 |    
#define IDE_CMD_READSECTOR	0x21	//Read Sectors                    		
#define IDE_CMD_READLONGRETRY	0x22	//Read Long With Retry            
#define IDE_CMD_READLONG	0x23	//Read Long                      
#define IDE_CMD_READVERSECRETRY	0x40	//Read Verify Sectors With Retry  再次验证读扇区
#define IDE_CMD_READVERSEC	0x41	//Read Verify Sectors             		读验证扇区
#define IDE_CMD_SETFEATURES	0xEF	//Set Features                    		设置特色
#define IDE_CMD_SETMULTIMODE	0xC6	//Set Multiple Mode               多设置模式
#define IDE_CMD_SETSLEEPMODE	0x99	//Set Sleep Mode                  设置睡眠模式
#define IDE_CMD_SETSLEEPMODE2	0xE6	//Set Sleep Mode (same as 99h)    
#define IDE_CMD_STANDY		0x96	//Standby                         		待命
#define IDE_CMD_STANDY2		0xE2	//Standby (same as 96h)          
#define IDE_CMD_STANDYIMMEDIATE	0x94	//Standby Immediate               直接待命
#define IDE_CMD_STANDYIMMEDIATE2 0xE0	//Standby Immediate (same as 94h) 	


#define SECTORWORDSIZE 256


#else
#endif