drivers/scsi/qla4xxx/ql4_nvram.h

Source file repositories/reference/linux-study-clean/drivers/scsi/qla4xxx/ql4_nvram.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/qla4xxx/ql4_nvram.h
Extension
.h
Size
6930 bytes
Lines
254
Domain
Driver Families
Bucket
drivers/scsi
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct bios_params {
	uint16_t SpinUpDelay:1;
	uint16_t BIOSDisable:1;
	uint16_t MMAPEnable:1;
	uint16_t BootEnable:1;
	uint16_t Reserved0:12;
	uint8_t bootID0:7;
	uint8_t bootID0Valid:1;
	uint8_t bootLUN0[8];
	uint8_t bootID1:7;
	uint8_t bootID1Valid:1;
	uint8_t bootLUN1[8];
	uint16_t MaxLunsPerTarget;
	uint8_t Reserved1[10];
};

struct eeprom_port_cfg {

	/* MTU MAC 0 */
	u16 etherMtu_mac;

	/* Flow Control MAC 0 */
	u16 pauseThreshold_mac;
	u16 resumeThreshold_mac;
	u16 reserved[13];
};

struct eeprom_function_cfg {
	u8 reserved[30];

	/* MAC ADDR */
	u8 macAddress[6];
	u8 macAddressSecondary[6];
	u16 subsysVendorId;
	u16 subsysDeviceId;
};

struct eeprom_data {
	union {
		struct {	/* isp4010 */
			u8 asic_id[4]; /* x00 */
			u8 version;	/* x04 */
			u8 reserved;	/* x05 */
			u16 board_id;	/* x06 */
#define	  EEPROM_BOARDID_ELDORADO    1
#define	  EEPROM_BOARDID_PLACER	     2

#define EEPROM_SERIAL_NUM_SIZE	     16
			u8 serial_number[EEPROM_SERIAL_NUM_SIZE]; /* x08 */

			/* ExtHwConfig: */
			/* Offset = 24bytes
			 *
			 * | SSRAM Size|     |ST|PD|SDRAM SZ| W| B| SP	|  |
			 * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
			 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
			 */
			u16 ext_hw_conf; /* x18 */
			u8 mac0[6];	/* x1A */
			u8 mac1[6];	/* x20 */
			u8 mac2[6];	/* x26 */
			u8 mac3[6];	/* x2C */
			u16 etherMtu;	/* x32 */
			u16 macConfig;	/* x34 */
#define	 MAC_CONFIG_ENABLE_ANEG	    0x0001
#define	 MAC_CONFIG_ENABLE_PAUSE    0x0002
			u16 phyConfig;	/* x36 */
#define	 PHY_CONFIG_PHY_ADDR_MASK	      0x1f
#define	 PHY_CONFIG_ENABLE_FW_MANAGEMENT_MASK 0x20
			u16 reserved_56;	/* x38 */

#define EEPROM_UNUSED_1_SIZE   2
			u8 unused_1[EEPROM_UNUSED_1_SIZE]; /* x3A */
			u16 bufletSize;	/* x3C */
			u16 bufletCount;	/* x3E */
			u16 bufletPauseThreshold; /* x40 */
			u16 tcpWindowThreshold50; /* x42 */
			u16 tcpWindowThreshold25; /* x44 */
			u16 tcpWindowThreshold0; /* x46 */
			u16 ipHashTableBaseHi;	/* x48 */
			u16 ipHashTableBaseLo;	/* x4A */
			u16 ipHashTableSize;	/* x4C */
			u16 tcpHashTableBaseHi;	/* x4E */
			u16 tcpHashTableBaseLo;	/* x50 */
			u16 tcpHashTableSize;	/* x52 */
			u16 ncbTableBaseHi;	/* x54 */
			u16 ncbTableBaseLo;	/* x56 */
			u16 ncbTableSize;	/* x58 */
			u16 drbTableBaseHi;	/* x5A */
			u16 drbTableBaseLo;	/* x5C */

Annotation

Implementation Notes