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

📄 ispreg.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * NVRAM Definitions (PCI cards only) */#define	ISPBSMX(c, byte, shift, mask)	\	(((c)[(byte)] >> (shift)) & (mask))/* * Qlogic 1020/1040 NVRAM is an array of 128 bytes. * * Some portion of the front of this is for general host adapter properties * This is followed by an array of per-target parameters, and is tailed off * with a checksum xor byte at offset 127. For non-byte entities data is * stored in Little Endian order. */#define	ISP_NVRAM_SIZE	128#define	ISP_NVRAM_VERSION(c)			(c)[4]#define	ISP_NVRAM_FIFO_THRESHOLD(c)		ISPBSMX(c, 5, 0, 0x03)#define	ISP_NVRAM_BIOS_DISABLE(c)		ISPBSMX(c, 5, 2, 0x01)#define	ISP_NVRAM_HBA_ENABLE(c)			ISPBSMX(c, 5, 3, 0x01)#define	ISP_NVRAM_INITIATOR_ID(c)		ISPBSMX(c, 5, 4, 0x0f)#define	ISP_NVRAM_BUS_RESET_DELAY(c)		(c)[6]#define	ISP_NVRAM_BUS_RETRY_COUNT(c)		(c)[7]#define	ISP_NVRAM_BUS_RETRY_DELAY(c)		(c)[8]#define	ISP_NVRAM_ASYNC_DATA_SETUP_TIME(c)	ISPBSMX(c, 9, 0, 0x0f)#define	ISP_NVRAM_REQ_ACK_ACTIVE_NEGATION(c)	ISPBSMX(c, 9, 4, 0x01)#define	ISP_NVRAM_DATA_LINE_ACTIVE_NEGATION(c)	ISPBSMX(c, 9, 5, 0x01)#define	ISP_NVRAM_DATA_DMA_BURST_ENABLE(c)	ISPBSMX(c, 9, 6, 0x01)#define	ISP_NVRAM_CMD_DMA_BURST_ENABLE(c)	ISPBSMX(c, 9, 7, 0x01)#define	ISP_NVRAM_TAG_AGE_LIMIT(c)		(c)[10]#define	ISP_NVRAM_LOWTRM_ENABLE(c)		ISPBSMX(c, 11, 0, 0x01)#define	ISP_NVRAM_HITRM_ENABLE(c)		ISPBSMX(c, 11, 1, 0x01)#define	ISP_NVRAM_PCMC_BURST_ENABLE(c)		ISPBSMX(c, 11, 2, 0x01)#define	ISP_NVRAM_ENABLE_60_MHZ(c)		ISPBSMX(c, 11, 3, 0x01)#define	ISP_NVRAM_SCSI_RESET_DISABLE(c)		ISPBSMX(c, 11, 4, 0x01)#define	ISP_NVRAM_ENABLE_AUTO_TERM(c)		ISPBSMX(c, 11, 5, 0x01)#define	ISP_NVRAM_FIFO_THRESHOLD_128(c)		ISPBSMX(c, 11, 6, 0x01)#define	ISP_NVRAM_AUTO_TERM_SUPPORT(c)		ISPBSMX(c, 11, 7, 0x01)#define	ISP_NVRAM_SELECTION_TIMEOUT(c)		(((c)[12]) | ((c)[13] << 8))#define	ISP_NVRAM_MAX_QUEUE_DEPTH(c)		(((c)[14]) | ((c)[15] << 8))#define	ISP_NVRAM_SCSI_BUS_SIZE(c)		ISPBSMX(c, 16, 0, 0x01)#define	ISP_NVRAM_SCSI_BUS_TYPE(c)		ISPBSMX(c, 16, 1, 0x01)#define	ISP_NVRAM_ADAPTER_CLK_SPEED(c)		ISPBSMX(c, 16, 2, 0x01)#define	ISP_NVRAM_SOFT_TERM_SUPPORT(c)		ISPBSMX(c, 16, 3, 0x01)#define	ISP_NVRAM_FLASH_ONBOARD(c)		ISPBSMX(c, 16, 4, 0x01)#define	ISP_NVRAM_FAST_MTTR_ENABLE(c)		ISPBSMX(c, 22, 0, 0x01)#define	ISP_NVRAM_TARGOFF			28#define	ISP_NVARM_TARGSIZE			6#define	_IxT(tgt, tidx)			\	(ISP_NVRAM_TARGOFF + (ISP_NVARM_TARGSIZE * (tgt)) + (tidx))#define	ISP_NVRAM_TGT_RENEG(c, t)		ISPBSMX(c, _IxT(t, 0), 0, 0x01)#define	ISP_NVRAM_TGT_QFRZ(c, t)		ISPBSMX(c, _IxT(t, 0), 1, 0x01)#define	ISP_NVRAM_TGT_ARQ(c, t)			ISPBSMX(c, _IxT(t, 0), 2, 0x01)#define	ISP_NVRAM_TGT_TQING(c, t)		ISPBSMX(c, _IxT(t, 0), 3, 0x01)#define	ISP_NVRAM_TGT_SYNC(c, t)		ISPBSMX(c, _IxT(t, 0), 4, 0x01)#define	ISP_NVRAM_TGT_WIDE(c, t)		ISPBSMX(c, _IxT(t, 0), 5, 0x01)#define	ISP_NVRAM_TGT_PARITY(c, t)		ISPBSMX(c, _IxT(t, 0), 6, 0x01)#define	ISP_NVRAM_TGT_DISC(c, t)		ISPBSMX(c, _IxT(t, 0), 7, 0x01)#define	ISP_NVRAM_TGT_EXEC_THROTTLE(c, t)	ISPBSMX(c, _IxT(t, 1), 0, 0xff)#define	ISP_NVRAM_TGT_SYNC_PERIOD(c, t)		ISPBSMX(c, _IxT(t, 2), 0, 0xff)#define	ISP_NVRAM_TGT_SYNC_OFFSET(c, t)		ISPBSMX(c, _IxT(t, 3), 0, 0x0f)#define	ISP_NVRAM_TGT_DEVICE_ENABLE(c, t)	ISPBSMX(c, _IxT(t, 3), 4, 0x01)#define	ISP_NVRAM_TGT_LUN_DISABLE(c, t)		ISPBSMX(c, _IxT(t, 3), 5, 0x01)/* * Qlogic 1080/1240 NVRAM is an array of 256 bytes. * * Some portion of the front of this is for general host adapter properties * This is followed by an array of per-target parameters, and is tailed off * with a checksum xor byte at offset 256. For non-byte entities data is * stored in Little Endian order. */#define	ISP1080_NVRAM_SIZE	256#define	ISP1080_NVRAM_VERSION(c)		ISP_NVRAM_VERSION(c)/* Offset 5 *//*	u_int8_t bios_configuration_mode     :2;	u_int8_t bios_disable                :1;	u_int8_t selectable_scsi_boot_enable :1;	u_int8_t cd_rom_boot_enable          :1;	u_int8_t disable_loading_risc_code   :1;	u_int8_t enable_64bit_addressing     :1;	u_int8_t unused_7                    :1; *//* Offsets 6, 7 *//*        u_int8_t boot_lun_number    :5;        u_int8_t scsi_bus_number    :1;        u_int8_t unused_6           :1;        u_int8_t unused_7           :1;        u_int8_t boot_target_number :4;        u_int8_t unused_12          :1;        u_int8_t unused_13          :1;        u_int8_t unused_14          :1;        u_int8_t unused_15          :1; */#define	ISP1080_NVRAM_HBA_ENABLE(c)			ISPBSMX(c, 16, 3, 0x01)#define	ISP1080_NVRAM_BURST_ENABLE(c)			ISPBSMX(c, 16, 1, 0x01)#define	ISP1080_NVRAM_FIFO_THRESHOLD(c)			ISPBSMX(c, 16, 4, 0x0f)#define	ISP1080_NVRAM_AUTO_TERM_SUPPORT(c)		ISPBSMX(c, 17, 7, 0x01)#define	ISP1080_NVRAM_BUS0_TERM_MODE(c)			ISPBSMX(c, 17, 0, 0x03)#define	ISP1080_NVRAM_BUS1_TERM_MODE(c)			ISPBSMX(c, 17, 2, 0x03)#define	ISP1080_ISP_PARAMETER(c)			\	(((c)[18]) | ((c)[19] << 8))#define	ISP1080_FAST_POST(c)				ISPBSMX(c, 20, 0, 0x01)#define	ISP1080_REPORT_LVD_TRANSITION(c)		ISPBSMX(c, 20, 1, 0x01)#define	ISP1080_BUS1_OFF				112#define	ISP1080_NVRAM_INITIATOR_ID(c, b)		\	ISPBSMX(c, ((b == 0)? 0 : ISP1080_BUS1_OFF) + 24, 0, 0x0f)#define	ISP1080_NVRAM_BUS_RESET_DELAY(c, b)		\	(c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 25]#define	ISP1080_NVRAM_BUS_RETRY_COUNT(c, b)		\	(c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 26]#define	ISP1080_NVRAM_BUS_RETRY_DELAY(c, b)		\	(c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 27]#define	ISP1080_NVRAM_ASYNC_DATA_SETUP_TIME(c, b)	\	ISPBSMX(c, ((b == 0)? 0 : ISP1080_BUS1_OFF) + 28, 0, 0x0f)#define	ISP1080_NVRAM_REQ_ACK_ACTIVE_NEGATION(c, b)	\	ISPBSMX(c, ((b == 0)? 0 : ISP1080_BUS1_OFF) + 28, 4, 0x01)#define	ISP1080_NVRAM_DATA_LINE_ACTIVE_NEGATION(c, b)	\	ISPBSMX(c, ((b == 0)? 0 : ISP1080_BUS1_OFF) + 28, 5, 0x01)#define	ISP1080_NVRAM_SELECTION_TIMEOUT(c, b)		\	(((c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 30]) | \	((c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 31] << 8))#define	ISP1080_NVRAM_MAX_QUEUE_DEPTH(c, b)		\	(((c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 32]) | \	((c)[((b == 0)? 0 : ISP1080_BUS1_OFF) + 33] << 8))#define	ISP1080_NVRAM_TARGOFF(b)		\	((b == 0)? 40: (40 + ISP1080_BUS1_OFF))#define	ISP1080_NVRAM_TARGSIZE			6#define	_IxT8(tgt, tidx, b)			\	(ISP1080_NVRAM_TARGOFF((b)) + (ISP1080_NVRAM_TARGSIZE * (tgt)) + (tidx))#define	ISP1080_NVRAM_TGT_RENEG(c, t, b)		\	ISPBSMX(c, _IxT8(t, 0, (b)), 0, 0x01)#define	ISP1080_NVRAM_TGT_QFRZ(c, t, b)			\	ISPBSMX(c, _IxT8(t, 0, (b)), 1, 0x01)#define	ISP1080_NVRAM_TGT_ARQ(c, t, b)			\	ISPBSMX(c, _IxT8(t, 0, (b)), 2, 0x01)#define	ISP1080_NVRAM_TGT_TQING(c, t, b)		\	ISPBSMX(c, _IxT8(t, 0, (b)), 3, 0x01)#define	ISP1080_NVRAM_TGT_SYNC(c, t, b)			\	ISPBSMX(c, _IxT8(t, 0, (b)), 4, 0x01)#define	ISP1080_NVRAM_TGT_WIDE(c, t, b)			\	ISPBSMX(c, _IxT8(t, 0, (b)), 5, 0x01)#define	ISP1080_NVRAM_TGT_PARITY(c, t, b)		\	ISPBSMX(c, _IxT8(t, 0, (b)), 6, 0x01)#define	ISP1080_NVRAM_TGT_DISC(c, t, b)			\	ISPBSMX(c, _IxT8(t, 0, (b)), 7, 0x01)#define	ISP1080_NVRAM_TGT_EXEC_THROTTLE(c, t, b)	\	ISPBSMX(c, _IxT8(t, 1, (b)), 0, 0xff)#define	ISP1080_NVRAM_TGT_SYNC_PERIOD(c, t, b)		\	ISPBSMX(c, _IxT8(t, 2, (b)), 0, 0xff)#define	ISP1080_NVRAM_TGT_SYNC_OFFSET(c, t, b)		\	ISPBSMX(c, _IxT8(t, 3, (b)), 0, 0x0f)#define	ISP1080_NVRAM_TGT_DEVICE_ENABLE(c, t, b)	\	ISPBSMX(c, _IxT8(t, 3, (b)), 4, 0x01)#define	ISP1080_NVRAM_TGT_LUN_DISABLE(c, t, b)		\	ISPBSMX(c, _IxT8(t, 3, (b)), 5, 0x01)#define	ISP12160_NVRAM_HBA_ENABLE	ISP1080_NVRAM_HBA_ENABLE#define	ISP12160_NVRAM_BURST_ENABLE	ISP1080_NVRAM_BURST_ENABLE#define	ISP12160_NVRAM_FIFO_THRESHOLD	ISP1080_NVRAM_FIFO_THRESHOLD#define	ISP12160_NVRAM_AUTO_TERM_SUPPORT	ISP1080_NVRAM_AUTO_TERM_SUPPORT#define	ISP12160_NVRAM_BUS0_TERM_MODE	ISP1080_NVRAM_BUS0_TERM_MODE#define	ISP12160_NVRAM_BUS1_TERM_MODE	ISP1080_NVRAM_BUS1_TERM_MODE#define	ISP12160_ISP_PARAMETER		ISP12160_ISP_PARAMETER#define	ISP12160_FAST_POST		ISP1080_FAST_POST#define	ISP12160_REPORT_LVD_TRANSITION	ISP1080_REPORT_LVD_TRANSTION#define	ISP12160_NVRAM_INITIATOR_ID			\	ISP1080_NVRAM_INITIATOR_ID#define	ISP12160_NVRAM_BUS_RESET_DELAY			\	ISP1080_NVRAM_BUS_RESET_DELAY#define	ISP12160_NVRAM_BUS_RETRY_COUNT			\	ISP1080_NVRAM_BUS_RETRY_COUNT#define	ISP12160_NVRAM_BUS_RETRY_DELAY			\	ISP1080_NVRAM_BUS_RETRY_DELAY#define	ISP12160_NVRAM_ASYNC_DATA_SETUP_TIME		\	ISP1080_NVRAM_ASYNC_DATA_SETUP_TIME#define	ISP12160_NVRAM_REQ_ACK_ACTIVE_NEGATION		\	ISP1080_NVRAM_REQ_ACK_ACTIVE_NEGATION#define	ISP12160_NVRAM_DATA_LINE_ACTIVE_NEGATION	\	ISP1080_NVRAM_DATA_LINE_ACTIVE_NEGATION#define	ISP12160_NVRAM_SELECTION_TIMEOUT		\	ISP1080_NVRAM_SELECTION_TIMEOUT#define	ISP12160_NVRAM_MAX_QUEUE_DEPTH			\	ISP1080_NVRAM_MAX_QUEUE_DEPTH#define	ISP12160_BUS0_OFF	24#define	ISP12160_BUS1_OFF	136#define	ISP12160_NVRAM_TARGOFF(b)		\	(((b == 0)? ISP12160_BUS0_OFF : ISP12160_BUS1_OFF) + 16)#define	ISP12160_NVRAM_TARGSIZE			6#define	_IxT16(tgt, tidx, b)			\	(ISP12160_NVRAM_TARGOFF((b))+(ISP12160_NVRAM_TARGSIZE * (tgt))+(tidx))#define	ISP12160_NVRAM_TGT_RENEG(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 0, 0x01)#define	ISP12160_NVRAM_TGT_QFRZ(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 1, 0x01)#define	ISP12160_NVRAM_TGT_ARQ(c, t, b)			\	ISPBSMX(c, _IxT16(t, 0, (b)), 2, 0x01)#define	ISP12160_NVRAM_TGT_TQING(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 3, 0x01)#define	ISP12160_NVRAM_TGT_SYNC(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 4, 0x01)#define	ISP12160_NVRAM_TGT_WIDE(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 5, 0x01)#define	ISP12160_NVRAM_TGT_PARITY(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 6, 0x01)#define	ISP12160_NVRAM_TGT_DISC(c, t, b)		\	ISPBSMX(c, _IxT16(t, 0, (b)), 7, 0x01)#define	ISP12160_NVRAM_TGT_EXEC_THROTTLE(c, t, b)	\	ISPBSMX(c, _IxT16(t, 1, (b)), 0, 0xff)#define	ISP12160_NVRAM_TGT_SYNC_PERIOD(c, t, b)		\	ISPBSMX(c, _IxT16(t, 2, (b)), 0, 0xff)#define	ISP12160_NVRAM_TGT_SYNC_OFFSET(c, t, b)		\	ISPBSMX(c, _IxT16(t, 3, (b)), 0, 0x1f)#define	ISP12160_NVRAM_TGT_DEVICE_ENABLE(c, t, b)	\	ISPBSMX(c, _IxT16(t, 3, (b)), 5, 0x01)#define	ISP12160_NVRAM_PPR_OPTIONS(c, t, b)		\	ISPBSMX(c, _IxT16(t, 4, (b)), 0, 0x0f)#define	ISP12160_NVRAM_PPR_WIDTH(c, t, b)		\	ISPBSMX(c, _IxT16(t, 4, (b)), 4, 0x03)#define	ISP12160_NVRAM_PPR_ENABLE(c, t, b)		\	ISPBSMX(c, _IxT16(t, 4, (b)), 7, 0x01)/* * Qlogic 2XXX NVRAM is an array of 256 bytes. * * Some portion of the front of this is for general RISC engine parameters, * mostly reflecting the state of the last INITIALIZE FIRMWARE mailbox command. * * This is followed by some general host adapter parameters, and ends with * a checksum xor byte at offset 255. For non-byte entities data is stored * in Little Endian order. */#define	ISP2100_NVRAM_SIZE	256/* ISP_NVRAM_VERSION is in same overall place */#define	ISP2100_NVRAM_RISCVER(c)		(c)[6]#define	ISP2100_NVRAM_OPTIONS(c)		(c)[8]#define	ISP2100_NVRAM_MAXFRAMELENGTH(c)		(((c)[10]) | ((c)[11] << 8))#define	ISP2100_NVRAM_MAXIOCBALLOCATION(c)	(((c)[12]) | ((c)[13] << 8))#define	ISP2100_NVRAM_EXECUTION_THROTTLE(c)	(((c)[14]) | ((c)[15] << 8))#define	ISP2100_NVRAM_RETRY_COUNT(c)		(c)[16]#define	ISP2100_NVRAM_RETRY_DELAY(c)		(c)[17]#define	ISP2100_NVRAM_PORT_NAME(c)	(\		(((u_int64_t)(c)[18]) << 56) | \		(((u_int64_t)(c)[19]) << 48) | \		(((u_int64_t)(c)[20]) << 40) | \		(((u_int64_t)(c)[21]) << 32) | \		(((u_int64_t)(c)[22]) << 24) | \		(((u_int64_t)(c)[23]) << 16) | \		(((u_int64_t)(c)[24]) <<  8) | \		(((u_int64_t)(c)[25]) <<  0))#define	ISP2100_NVRAM_HARDLOOPID(c)		(c)[26]#define	ISP2200_NVRAM_NODE_NAME(c)	(\		(((u_int64_t)(c)[30]) << 56) | \		(((u_int64_t)(c)[31]) << 48) | \		(((u_int64_t)(c)[32]) << 40) | \		(((u_int64_t)(c)[33]) << 32) | \		(((u_int64_t)(c)[34]) << 24) | \		(((u_int64_t)(c)[35]) << 16) | \		(((u_int64_t)(c)[36]) <<  8) | \		(((u_int64_t)(c)[37]) <<  0))#define	ISP2100_NVRAM_HBA_OPTIONS(c)		(c)[70]#define	ISP2100_NVRAM_HBA_DISABLE(c)		ISPBSMX(c, 70, 0, 0x01)#define	ISP2100_NVRAM_BIOS_DISABLE(c)		ISPBSMX(c, 70, 1, 0x01)#define	ISP2100_NVRAM_LUN_DISABLE(c)		ISPBSMX(c, 70, 2, 0x01)#define	ISP2100_NVRAM_ENABLE_SELECT_BOOT(c)	ISPBSMX(c, 70, 3, 0x01)#define	ISP2100_NVRAM_DISABLE_CODELOAD(c)	ISPBSMX(c, 70, 4, 0x01)#define	ISP2100_NVRAM_SET_CACHELINESZ(c)	ISPBSMX(c, 70, 5, 0x01)#define	ISP2100_NVRAM_BOOT_NODE_NAME(c)	(\		(((u_int64_t)(c)[72]) << 56) | \		(((u_int64_t)(c)[73]) << 48) | \		(((u_int64_t)(c)[74]) << 40) | \		(((u_int64_t)(c)[75]) << 32) | \		(((u_int64_t)(c)[76]) << 24) | \		(((u_int64_t)(c)[77]) << 16) | \		(((u_int64_t)(c)[78]) <<  8) | \		(((u_int64_t)(c)[79]) <<  0))#define	ISP2100_NVRAM_BOOT_LUN(c)		(c)[80]#define	ISP2200_HBA_FEATURES(c)			(c)[232] | ((c)[233] << 8)/* * Firmware Crash Dump * * QLogic needs specific information format when they look at firmware crashes. * * This is incredibly kernel memory consumptive (to say the least), so this * code is only compiled in when needed. */#define	QLA2200_RISC_IMAGE_DUMP_SIZE					\	(1 * sizeof (u_int16_t)) +	/* 'used' flag (also HBA type) */ \	(352 * sizeof (u_int16_t)) +	/* RISC registers */		\ 	(61440 * sizeof (u_int16_t))	/* RISC SRAM (offset 0x1000..0xffff) */#define	QLA2300_RISC_IMAGE_DUMP_SIZE					\	(1 * sizeof (u_int16_t)) +	/* 'used' flag (also HBA type) */ \	(464 * sizeof (u_int16_t)) +	/* RISC registers */		\ 	(63488 * sizeof (u_int16_t)) +	/* RISC SRAM (0x0800..0xffff) */ \	(4096 * sizeof (u_int16_t)) +	/* RISC SRAM (0x10000..0x10FFF) */ \	(61440 * sizeof (u_int16_t))	/* RISC SRAM (0x11000..0x1FFFF) *//* the larger of the two */#define	ISP_CRASH_IMAGE_SIZE	QLA2300_RISC_IMAGE_DUMP_SIZE#endif	/* _ISPREG_H */

⌨️ 快捷键说明

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