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

📄 mx31_habtools.h

📁 Nand Flash (SAMSUNG_K9K1G08U0B) boot loader for i.Mx31 (freescale).
💻 H
📖 第 1 页 / 共 2 页
字号:
#define BIT9 	0x00000200
#define BIT10 	0x00000400
#define BIT11 	0x00000800
#define BIT12 	0x00001000
#define BIT13 	0x00002000
#define BIT14 	0x00004000
#define BIT15 	0x00008000
#define BIT16 	0x00010000
#define BIT17 	0x00020000
#define BIT18 	0x00040000
#define BIT19 	0x00080000
#define BIT20 	0x00100000
#define BIT21 	0x00200000
#define BIT22 	0x00400000
#define BIT23 	0x00800000
#define BIT24 	0x01000000
#define BIT25 	0x02000000
#define BIT26 	0x04000000
#define BIT27 	0x08000000
#define BIT28 	0x10000000
#define BIT29 	0x20000000
#define BIT30 	0x40000000
#define BIT31 	0x80000000


//==================
// USB specific
//==================
#define MPS_8	8
#define MPS_64	64

#define OUT	0
#define IN	1

#define EP0	0
#define EP1	1
#define EP2	2

#define ZLT_ENABLE	0
#define ZLT_DISABLE 1

#define IOS_NOTSET	0
#define IOS_SET		1

#define IOC_NOTSET	0
#define IOC_SET		1

#define TERMINATE		1
#define NOT_TERMINATE	0

#define DEFAULT_STATE 0
#define ADDR_STATE	1


#define NO_STATUS 0
#define ACTIVE	BIT7
#define HALTED	BIT6
#define DATA_BUFFER_ERROR	BIT5
#define TRANSACTION_ERROR	BIT3

#define DEVICE_DESC	0x1
#define CONF_DESC	0x2
#define STR_DES0	0x3
#define STR_DES1	0x4
#define STR_DES2	0x5
#define STR_DES3	0x6

#define EP1OUT_ENABLE	BIT7
#define EP2IN_ENABLE	BIT23

#define EP0OUT_COMPLETE BIT0
#define EP1OUT_COMPLETE	BIT1
#define EP0IN_COMPLETE	BIT16
#define EP2IN_COMPLETE	BIT18

#define EP1OUT_PRIME	BIT1
#define EP2IN_PRIME		BIT18
//ES Changed by Eyal Segev to speedup verification
#ifdef RTL_STUB
#define TIMEOUT_VALUE	100
#else
#define TIMEOUT_VALUE	100000
#endif /* RTL_STUB */

// dQH address bit [10:0] MUST be ZERO
// dQH(0-5) region
// 0x1FFFC000 to 0x1FFFC180 
#define dQHBASE	0x1FFFC000
#define	dQH0_EP0OUT	(dQHBASE + 0x000)   // EP0 OUT
#define	dQH1_EP0IN	(dQHBASE + 0x040)	// EP0 IN
#define	dQH2_EP1OUT	(dQHBASE + 0x080)	// EP1 OUT
#define	dQH5_EP2IN	(dQHBASE + 0x140)	// EP2 IN


// dTD for dQH0_EP0OUT region
// 0x1FFFC180 to 0x1FFFC1C0
#define dTD0_EP0OUT  (dQHBASE + 0x180)
#define dTD1_EP0OUT  (dQHBASE + 0x1A0)	// of no use
	
// dTD for dQH1_EP0IN region
// 0x1FFFC1C0 to 0x1FFFC200
#define dTD0_EP0IN (dQHBASE + 0x1C0)
#define dTD1_EP0IN (dQHBASE + 0x1E0)	// of no use

// dTD for dQH2_EP1OUT region
// 0x1FFFC200 to 0x1FFFC240
#define dTD0_EP1OUT (dQHBASE + 0x200)
#define dTD1_EP1OUT (dQHBASE + 0x220)


// dTD for dQH5_EP1OUT region
// 0x1FFFC240 to 0x1FFFC240
#define dTD0_EP2IN (dQHBASE + 0x240)
#define dTD1_EP2IN (dQHBASE + 0x260)

// Buffer Pointer for EP0 IN 
// 0x1FFFC280 to 0x1FFFC2C0
#define BUFPTR_P0_EP0IN	(dQHBASE + 0x280)

// Buffer Pointer for EP1 OUT (16 bytes should be enough)
// 0x1FFFC2C0 to 0x1FFFC2D0
#define BUFPTR_P0_EP1OUT (dQHBASE + 0x2C0)

// Buffer Pointer for EP1 OUT (16 bytes should be enough)
// 0x1FFFC2D0 to 0x1FFFC300
#define BUFPTR_P0_EP2IN	 (dQHBASE + 0x2D0)

//====================
// Flash status		
//====================
#define FLASH_ERASE		0xA1
#define FLASH_WRITE 	0xA2
#define FLASH_VERIFY 	0xA3
#define HAB_STATUS		0xA4
#define FLASH_ERASE_ERROR	0xB1
#define FLASH_WRITE_ERROR	0xB2
#define FLASH_VERIFY_ERROR	0xB3
#define FLASH_OK			0xB4


//=====================
// Bootstrap specific
//=====================
// Command Packet Format: Header(2)+Address(4)+Format(1)+ByteCount(4)+Data(4) 
#define	ReadHeader	0x0101
#define WriteHeader 0x0202
#define PCHeader 	0x0303
#define WriteFile 	0x0404
#define ErrorHeader	0x0505
#define CSFHeader	0x0606
#define HWConfigHeader	0x0707
#define ExecuteHeader	0x0808
#define ReEnumHeader	0x0909

#define ProductionPart 	0x12343412
#define DevelopmentPart 0x56787856
#define WriteComplete	0x128A8A12
#define ReEnumAck		0x89232389

#define COMMAND 0x10
#define ByteCount_16kBytes	0x4000

#define DONE		1
#define CONTINUE	0
#define RE_ENUM		2

#define COMPLETE	0x88


typedef struct s_dQH_SETUP{
	U32 dQH_WORD0;	
	U32 dQH_WORD1;	
	U32 dQH_WORD2;	
	U32 dQH_WORD3;	
	U32 dQH_WORD4;	
	U32 dQH_WORD5;	
	U32 dQH_WORD6;	
	U32 dQH_WORD7;	
	U32 dQH_WORD8;	
	U32 dQH_WORD9;	
	U32 dQH_WORD10;	
	U32 dQH_WORD11;	

} s_dQH_SETUP;

typedef struct s_dTD_SETUP{
	U32 dTD_WORD0;	
	U32 dTD_WORD1;	
	U32 dTD_WORD2;	
	U32 dTD_WORD3;	
	U32 dTD_WORD4;	
	U32 dTD_WORD5;	
	U32 dTD_WORD6;	
	U32 dTD_WORD7;	
} s_dTD_SETUP;



#endif

⌨️ 快捷键说明

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