📄 mx31_habtools.h
字号:
#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 + -