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

📄 ar5xxx.h

📁 无线网卡驱动 固件程序 There are currently 3 "programming generations" of Atheros 802.11 wireless devices (
💻 H
📖 第 1 页 / 共 5 页
字号:
#define AR5K_INIT_ACK_CTS_TIMEOUT_TURBO		0x08000800#define AR5K_INIT_SIFS				560#define AR5K_INIT_SIFS_TURBO			480#define AR5K_INIT_SH_RETRY			10#define AR5K_INIT_LG_RETRY			AR5K_INIT_SH_RETRY#define AR5K_INIT_SSH_RETRY			32#define AR5K_INIT_SLG_RETRY			AR5K_INIT_SSH_RETRY#define AR5K_INIT_TX_RETRY			10#define AR5K_INIT_TOPS				8#define AR5K_INIT_RXNOFRM			8#define AR5K_INIT_RPGTO				0#define AR5K_INIT_TXNOFRM			0#define AR5K_INIT_BEACON_PERIOD			65535#define AR5K_INIT_TIM_OFFSET			0#define AR5K_INIT_BEACON_EN			0#define AR5K_INIT_RESET_TSF			0#define AR5K_INIT_TRANSMIT_LATENCY		(			\	(AR5K_INIT_TX_LATENCY << 14) | (AR5K_INIT_USEC_32 << 7) |	\	(AR5K_INIT_USEC)						\)#define AR5K_INIT_TRANSMIT_LATENCY_TURBO	(			\	(AR5K_INIT_TX_LATENCY << 14) | (AR5K_INIT_USEC_32 << 7) |	\	(AR5K_INIT_USEC_TURBO)						\)#define AR5K_INIT_PROTO_TIME_CNTRL		(			\	(AR5K_INIT_CARR_SENSE_EN << 26) | (AR5K_INIT_EIFS << 12) |	\	(AR5K_INIT_PROG_IFS)						\)#define AR5K_INIT_PROTO_TIME_CNTRL_TURBO	(			\	(AR5K_INIT_CARR_SENSE_EN << 26) | (AR5K_INIT_EIFS_TURBO << 12) |\	(AR5K_INIT_PROG_IFS_TURBO)					\)#define AR5K_INIT_BEACON_CONTROL		(			\	(AR5K_INIT_RESET_TSF << 24) | (AR5K_INIT_BEACON_EN << 23) |	\	(AR5K_INIT_TIM_OFFSET << 16) | (AR5K_INIT_BEACON_PERIOD)	\)/* * AR5k register access *//*O.S. dependent functions are located in ah_osdep.h*/#define AR5K_REG_SM(_val, _flags)					\	(((_val) << _flags##_S) & (_flags))#define AR5K_REG_MS(_val, _flags)					\	(((_val) & (_flags)) >> _flags##_S)#define AR5K_REG_WRITE_BITS(_reg, _flags, _val)				\	AR5K_REG_WRITE(_reg, (AR5K_REG_READ(_reg) &~ (_flags)) |	\	    (((_val) << _flags##_S) & (_flags)))#define AR5K_REG_MASKED_BITS(_reg, _flags, _mask)			\	AR5K_REG_WRITE(_reg, (AR5K_REG_READ(_reg) & (_mask)) | (_flags))#define AR5K_REG_ENABLE_BITS(_reg, _flags)				\	AR5K_REG_WRITE(_reg, AR5K_REG_READ(_reg) | (_flags))#define AR5K_REG_DISABLE_BITS(_reg, _flags)				\	AR5K_REG_WRITE(_reg, AR5K_REG_READ(_reg) &~ (_flags))#define AR5K_PHY_WRITE(_reg, _val)					\	AR5K_REG_WRITE(hal->ah_phy + ((_reg) << 2), _val)#define AR5K_PHY_READ(_reg)						\	AR5K_REG_READ(hal->ah_phy + ((_reg) << 2))#define AR5K_REG_WAIT(_i)						\	if (_i % 64)							\		AR5K_DELAY(1);#define AR5K_EEPROM_READ(_o, _v)	{				\	if ((ret = hal->ah_eeprom_read(hal, (_o),			\		 &(_v))) != 0)						\		return (ret);						\}#define AR5K_EEPROM_READ_HDR(_o, _v)					\	AR5K_EEPROM_READ(_o, hal->ah_capabilities.cap_eeprom._v);	\/* Read status of selected queue */#define AR5K_REG_READ_Q(_reg, _queue)					\	(AR5K_REG_READ(_reg) & (1 << _queue))				\#define AR5K_REG_WRITE_Q(_reg, _queue)					\	AR5K_REG_WRITE(_reg, (1 << _queue))#define AR5K_Q_ENABLE_BITS(_reg, _queue) do {				\	_reg |= 1 << _queue;						\} while (0)#define AR5K_Q_DISABLE_BITS(_reg, _queue) do {				\	_reg &= ~(1 << _queue);						\} while (0)/* * Unaligned little endian access */#define AR5K_LE_READ_2(_p)						\	(((const u_int8_t *)(_p))[0] | (((const u_int8_t *)(_p))[1] << 8))#define AR5K_LE_READ_4(_p) \	(((const u_int8_t *)(_p))[0] |					\	(((const u_int8_t *)(_p))[1] << 8) |				\	(((const u_int8_t *)(_p))[2] << 16) |				\	(((const u_int8_t *)(_p))[3] << 24))#define AR5K_LE_WRITE_2(_p, _val) \	((((u_int8_t *)(_p))[0] = ((u_int32_t)(_val) & 0xff)),		\	(((u_int8_t *)(_p))[1] = (((u_int32_t)(_val) >> 8) & 0xff)))#define AR5K_LE_WRITE_4(_p, _val)					\	((((u_int8_t *)(_p))[0] = ((u_int32_t)(_val) & 0xff)),		\	(((u_int8_t *)(_p))[1] = (((u_int32_t)(_val) >> 8) & 0xff)),	\	(((u_int8_t *)(_p))[2] = (((u_int32_t)(_val) >> 16) & 0xff)),	\	(((u_int8_t *)(_p))[3] = (((u_int32_t)(_val) >> 24) & 0xff)))/* * Initial register values */struct ar5k_ini {	u_int16_t	ini_register;	u_int32_t	ini_value;	enum {		AR5K_INI_WRITE = 0,		AR5K_INI_READ = 1,	} ini_mode;};#define AR5K_INI_VAL_11A		0#define AR5K_INI_VAL_11A_TURBO		1#define AR5K_INI_VAL_11B		2#define AR5K_INI_VAL_11G		3#define AR5K_INI_VAL_11G_TURBO		4#define AR5K_INI_VAL_XR			0#define AR5K_INI_VAL_MAX		5#define AR5K_INI_PHY_5111		0#define AR5K_INI_PHY_5112		1#define AR5K_INI_PHY_511X		1#define AR5K_AR5111_INI_RF_MAX_BANKS	AR5K_MAX_RF_BANKS#define AR5K_AR5112_INI_RF_MAX_BANKS	AR5K_MAX_RF_BANKSstruct ar5k_ini_rf {	u_int8_t	rf_bank;	u_int16_t	rf_register;	u_int32_t	rf_value[5];};#define AR5K_AR5111_INI_RF	{						\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00380000, 0x00380000, 0x00380000, 0x00380000, 0x00380000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 0, 0x989c,								\	    { 0x00000000, 0x00000000, 0x000000c0, 0x00000080, 0x00000080 } },	\	{ 0, 0x989c,								\	    { 0x000400f9, 0x000400f9, 0x000400ff, 0x000400fd, 0x000400fd } },	\	{ 0, 0x98d4,								\	    { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 } },	\	{ 1, 0x98d4,								\	    { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },	\	{ 2, 0x98d4,								\	    { 0x00000010, 0x00000014, 0x00000010, 0x00000010, 0x00000014 } },	\	{ 3, 0x98d8,								\	    { 0x00601068, 0x00601068, 0x00601068, 0x00601068, 0x00601068 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000 } },	\	{ 6, 0x989c,								\	    { 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x0a000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x003800c0, 0x00380080, 0x023800c0, 0x003800c0, 0x003800c0 } },	\	{ 6, 0x989c,								\	    { 0x00020006, 0x00020006, 0x00000006, 0x00020006, 0x00020006 } },	\	{ 6, 0x989c,								\	    { 0x00000089, 0x00000089, 0x00000089, 0x00000089, 0x00000089 } },	\	{ 6, 0x989c,								\	    { 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0, 0x000000a0 } },	\	{ 6, 0x989c,								\	    { 0x00040007, 0x00040007, 0x00040007, 0x00040007, 0x00040007 } },	\	{ 6, 0x98d4,								\	    { 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a } },	\	{ 7, 0x989c,								\	    { 0x00000040, 0x00000048, 0x00000040, 0x00000040, 0x00000040 } },	\	{ 7, 0x989c,								\	    { 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 } },	\	{ 7, 0x989c,								\	    { 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008 } },	\	{ 7, 0x989c,								\	    { 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f, 0x0000004f } },	\	{ 7, 0x989c,								\	    { 0x000000f1, 0x000000f1, 0x00000061, 0x000000f1, 0x000000f1 } },	\	{ 7, 0x989c,								\	    { 0x0000904f, 0x0000904f, 0x0000904c, 0x0000904f, 0x0000904f } },	\	{ 7, 0x989c,								\	    { 0x0000125a, 0x0000125a, 0x0000129a, 0x0000125a, 0x0000125a } },	\	{ 7, 0x98cc,								\	    { 0x0000000e, 0x0000000e, 0x0000000f, 0x0000000e, 0x0000000e } },	\}#define AR5K_AR5112_INI_RF	{						\	{ 1, 0x98d4,								\	    { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },	\	{ 2, 0x98d0,								\	    { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } },	\	{ 3, 0x98dc,								\	    { 0x00a0c0c0, 0x00a0c0c0, 0x00e0c0c0, 0x00e0c0c0, 0x00e0c0c0 } },	\	{ 6, 0x989c,								\	    { 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 } },	\	{ 6, 0x989c,								\	    { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00660000, 0x00660000, 0x00660000, 0x00660000, 0x00660000 } },	\	{ 6, 0x989c,								\	    { 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000, 0x00db0000 } },	\	{ 6, 0x989c,								\	    { 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000, 0x00f10000 } },	\	{ 6, 0x989c,								\	    { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } },	\	{ 6, 0x989c,								\	    { 0x00120000, 0x00120000, 0x00120000, 0x00120000, 0x00120000 } },	\	{ 6, 0x989c,								\	    { 0x00730000, 0x00730000, 0x00730000, 0x00730000, 0x00730000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } },	\	{ 6, 0x989c,								\	    { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },	\	{ 6, 0x989c,								\	    { 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000 } },	\	{ 6, 0x989c,								\	    { 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000, 0x008b0000 } },	\	{ 6, 0x989c,								\	    { 0x00600000, 0x00600000, 0x00600000, 0x00600000, 0x00600000 } },	\	{ 6, 0x989c,								\	    { 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000, 0x000c0000 } },	\	{ 6, 0x989c,								\	    { 0x00840000, 0x00840000, 0x00840000, 0x00840000, 0x00840000 } },	\	{ 6, 0x989c,								\	    { 0x00640000, 0x00640000, 0x00640000, 0x00640000, 0x00640000 } },	\	{ 6, 0x989c,								\	    { 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000 } },	\	{ 6, 0x989c,								\	    { 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000 } },	\	{ 6, 0x989c,								\	    { 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000 } },	\	{ 6, 0x989c,								\	    { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } },	\	{ 6, 0x989c,								\	    { 0x00110000, 0x00110000, 0x00110000, 0x00110000, 0x00110000 } },	\	{ 6, 0x989c,								\	    { 0x00510000, 0x00510000, 0x00510000, 0x00510000, 0x00510000 } },	\	{ 6, 0x989c,								\	    { 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000, 0x1c040000 } },	\	{ 6, 0x989c,								\	    { 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000, 0x000a0000 } },	\	{ 6, 0x989c,								\	    { 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000, 0x00a10000 } },	\	{ 6, 0x989c,								\	    { 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000 } },	\	{ 6, 0x989c,								\	    { 0x03090000, 0x03090000, 0x03090000, 0x03090000, 0x03090000 } },	\	{ 6, 0x989c,								\	    { 0x06000000, 0x06000000, 0x06000000, 0x06000000, 0x06000000 } },	\	{ 6, 0x989c,								\	    { 0x000000b0, 0x000000b0, 0x000000a8, 0x000000a8, 0x000000a8 } },	\	{ 6, 0x989c,								\	    { 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e, 0x0000002e } },	\	{ 6, 0x989c,								\	    { 0x006c4a41, 0x006c4a41, 0x006c4af1, 0x006c4a61, 0x006c4a61 } },	\	{ 6, 0x989c,								\	    { 0x0050892a, 0x0050892a, 0x0050892b, 0x0050892b, 0x0050892b } },	\	{ 6, 0x989c,								\	    { 0x00842400, 0x00842400, 0x00842400, 0x00842400, 0x00842400 } },	\	{ 6, 0x989c,								\	    { 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200, 0x00c69200 } },	\	{ 6, 0x98d0,								\	    { 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c, 0x0002000c } },	\	{ 7, 0x989c,								\	    { 0x00000094, 0x00000094, 0x00000094, 0x00000094, 0x00000094 } },	\	{ 7, 0x989c,								\	    { 0x00000091, 0x00000091, 0x00000091, 0x00000091, 0x00000091 } },	\	{ 7, 0x989c,								\	    { 0x0000000a, 0x0000000a, 0x00000012, 0x00000012, 0x00000012 } },	\	{ 7, 0x989c,								\	    { 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080 } },	\	{ 7, 0x989c,								\	    { 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1, 0x000000c1 } },	\	{ 7, 0x989c,								\	    { 0x00000060, 0x00000060, 0x00000060, 0x00000060, 0x00000060 } },	\	{ 7, 0x989c,								\	    { 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0, 0x000000f0 } },	\	{ 7, 0x989c,								\	    { 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022 } },	\	{ 7, 0x989c,								\	    { 0x00000092, 0x00000092, 0x00000092, 0x00000092, 0x00000092 } },	\	{ 7, 0x989c,								\	    { 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4, 0x000000d4 } },	\	{ 7, 0x989c,								\	    { 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc, 0x000014cc } },	\	{ 7, 0x989c,								\	    { 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c, 0x0000048c } },	\	{ 7, 0x98c4,								\	    { 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003 } },	\	} 	 #define AR5K_AR5112A_INI_RF     {						\	{ 1, 0x98d4,								\	    { 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020 } },	\	{ 2, 0x98d0,								\	    { 0x03060408, 0x03070408, 0x03060408, 0x03060408, 0x03070408 } },	\	{ 3, 0x98dc,								\	    { 0x00a0c0c0, 0x00a0c0c0, 0x00e0c0c0, 0x00e0c0c0, 0x00e0c0c0 } },	\	{ 6, 0x989c,								\	    { 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000, 0x0f000000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000 } },	\	{ 6, 0x989c,								\	    { 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000, 0x002a0000 } },	\	{ 6, 0x989c,								\	    { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 } },	\	{ 6, 0x989c,								\	    { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },	\	{ 6, 0x989c,								\	    { 0x00180000, 0x00180000, 0x00180000, 0x00180000, 0x00180000 } },	\	{ 6, 0x989c,								\	    { 0x00600

⌨️ 快捷键说明

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