| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * QLogic iSCSI HBA Driver |
| * Copyright (c) 2003-2013 QLogic Corporation |
| */ |
| |
| #ifndef _QL4XNVRM_H_ |
| #define _QL4XNVRM_H_ |
| |
| /** |
| * AM29LV Flash definitions |
| **/ |
| #define FM93C56A_SIZE_8 0x100 |
| #define FM93C56A_SIZE_16 0x80 |
| #define FM93C66A_SIZE_8 0x200 |
| #define FM93C66A_SIZE_16 0x100/* 4010 */ |
| #define FM93C86A_SIZE_16 0x400/* 4022 */ |
| |
| #define FM93C56A_START 0x1 |
| |
| /* Commands */ |
| #define FM93C56A_READ 0x2 |
| #define FM93C56A_WEN 0x0 |
| #define FM93C56A_WRITE 0x1 |
| #define FM93C56A_WRITE_ALL 0x0 |
| #define FM93C56A_WDS 0x0 |
| #define FM93C56A_ERASE 0x3 |
| #define FM93C56A_ERASE_ALL 0x0 |
| |
| /* Command Extensions */ |
| #define FM93C56A_WEN_EXT 0x3 |
| #define FM93C56A_WRITE_ALL_EXT 0x1 |
| #define FM93C56A_WDS_EXT 0x0 |
| #define FM93C56A_ERASE_ALL_EXT 0x2 |
| |
| /* Address Bits */ |
| #define FM93C56A_NO_ADDR_BITS_16 8 /* 4010 */ |
| #define FM93C56A_NO_ADDR_BITS_8 9 /* 4010 */ |
| #define FM93C86A_NO_ADDR_BITS_16 10 /* 4022 */ |
| |
| /* Data Bits */ |
| #define FM93C56A_DATA_BITS_16 16 |
| #define FM93C56A_DATA_BITS_8 8 |
| |
| /* Special Bits */ |
| #define FM93C56A_READ_DUMMY_BITS 1 |
| #define FM93C56A_READY 0 |
| #define FM93C56A_BUSY 1 |
| #define FM93C56A_CMD_BITS 2 |
| |
| /* Auburn Bits */ |
| #define AUBURN_EEPROM_DI 0x8 |
| #define AUBURN_EEPROM_DI_0 0x0 |
| #define AUBURN_EEPROM_DI_1 0x8 |
| #define AUBURN_EEPROM_DO 0x4 |
| #define AUBURN_EEPROM_DO_0 0x0 |
| #define AUBURN_EEPROM_DO_1 0x4 |
| #define AUBURN_EEPROM_CS 0x2 |
| #define AUBURN_EEPROM_CS_0 0x0 |
| #define AUBURN_EEPROM_CS_1 0x2 |
| #define AUBURN_EEPROM_CLK_RISE 0x1 |
| #define AUBURN_EEPROM_CLK_FALL 0x0 |
| |
| /**/ |
| /* EEPROM format */ |
| /**/ |
| 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 */ |
| u16 drbTableSize; /* x5E */ |
| |
| #define EEPROM_UNUSED_2_SIZE 4 |
| u8 unused_2[EEPROM_UNUSED_2_SIZE]; /* x60 */ |
| u16 ipReassemblyTimeout; /* x64 */ |
| u16 tcpMaxWindowSizeHi; /* x66 */ |
| u16 tcpMaxWindowSizeLo; /* x68 */ |
| u32 net_ip_addr0; /* x6A Added for TOE |
| * functionality. */ |
| u32 net_ip_addr1; /* x6E */ |
| u32 scsi_ip_addr0; /* x72 */ |
| u32 scsi_ip_addr1; /* x76 */ |
| #define EEPROM_UNUSED_3_SIZE 128 /* changed from 144 to account |
| * for ip addresses */ |
| u8 unused_3[EEPROM_UNUSED_3_SIZE]; /* x7A */ |
| u16 subsysVendorId_f0; /* xFA */ |
| u16 subsysDeviceId_f0; /* xFC */ |
| |
| /* Address = 0x7F */ |
| #define FM93C56A_SIGNATURE 0x9356 |
| #define FM93C66A_SIGNATURE 0x9366 |
| u16 signature; /* xFE */ |
| |
| #define EEPROM_UNUSED_4_SIZE 250 |
| u8 unused_4[EEPROM_UNUSED_4_SIZE]; /* x100 */ |
| u16 subsysVendorId_f1; /* x1FA */ |
| u16 subsysDeviceId_f1; /* x1FC */ |
| u16 checksum; /* x1FE */ |
| } __attribute__ ((packed)) isp4010; |
| struct { /* isp4022 */ |
| u8 asicId[4]; /* x00 */ |
| u8 version; /* x04 */ |
| u8 reserved_5; /* x05 */ |
| u16 boardId; /* x06 */ |
| u8 boardIdStr[16]; /* x08 */ |
| u8 serialNumber[16]; /* x18 */ |
| |
| /* External Hardware Configuration */ |
| u16 ext_hw_conf; /* x28 */ |
| |
| /* MAC 0 CONFIGURATION */ |
| struct eeprom_port_cfg macCfg_port0; /* x2A */ |
| |
| /* MAC 1 CONFIGURATION */ |
| struct eeprom_port_cfg macCfg_port1; /* x4A */ |
| |
| /* DDR SDRAM Configuration */ |
| u16 bufletSize; /* x6A */ |
| u16 bufletCount; /* x6C */ |
| u16 tcpWindowThreshold50; /* x6E */ |
| u16 tcpWindowThreshold25; /* x70 */ |
| u16 tcpWindowThreshold0; /* x72 */ |
| u16 ipHashTableBaseHi; /* x74 */ |
| u16 ipHashTableBaseLo; /* x76 */ |
| u16 ipHashTableSize; /* x78 */ |
| u16 tcpHashTableBaseHi; /* x7A */ |
| u16 tcpHashTableBaseLo; /* x7C */ |
| u16 tcpHashTableSize; /* x7E */ |
| u16 ncbTableBaseHi; /* x80 */ |
| u16 ncbTableBaseLo; /* x82 */ |
| u16 ncbTableSize; /* x84 */ |
| u16 drbTableBaseHi; /* x86 */ |
| u16 drbTableBaseLo; /* x88 */ |
| u16 drbTableSize; /* x8A */ |
| u16 reserved_142[4]; /* x8C */ |
| |
| /* TCP/IP Parameters */ |
| u16 ipReassemblyTimeout; /* x94 */ |
| u16 tcpMaxWindowSize; /* x96 */ |
| u16 ipSecurity; /* x98 */ |
| u8 reserved_156[294]; /* x9A */ |
| u16 qDebug[8]; /* QLOGIC USE ONLY x1C0 */ |
| struct eeprom_function_cfg funcCfg_fn0; /* x1D0 */ |
| u16 reserved_510; /* x1FE */ |
| |
| /* Address = 512 */ |
| u8 oemSpace[432]; /* x200 */ |
| struct bios_params sBIOSParams_fn1; /* x3B0 */ |
| struct eeprom_function_cfg funcCfg_fn1; /* x3D0 */ |
| u16 reserved_1022; /* x3FE */ |
| |
| /* Address = 1024 */ |
| u8 reserved_1024[464]; /* x400 */ |
| struct eeprom_function_cfg funcCfg_fn2; /* x5D0 */ |
| u16 reserved_1534; /* x5FE */ |
| |
| /* Address = 1536 */ |
| u8 reserved_1536[432]; /* x600 */ |
| struct bios_params sBIOSParams_fn3; /* x7B0 */ |
| struct eeprom_function_cfg funcCfg_fn3; /* x7D0 */ |
| u16 checksum; /* x7FE */ |
| } __attribute__ ((packed)) isp4022; |
| }; |
| }; |
| |
| |
| #endif /* _QL4XNVRM_H_ */ |