1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * QLogic iSCSI HBA Driver
4 * Copyright (c) 2003-2013 QLogic Corporation
11 * AM29LV Flash definitions
13 #define FM93C56A_SIZE_8 0x100
14 #define FM93C56A_SIZE_16 0x80
15 #define FM93C66A_SIZE_8 0x200
16 #define FM93C66A_SIZE_16 0x100/* 4010 */
17 #define FM93C86A_SIZE_16 0x400/* 4022 */
19 #define FM93C56A_START 0x1
22 #define FM93C56A_READ 0x2
23 #define FM93C56A_WEN 0x0
24 #define FM93C56A_WRITE 0x1
25 #define FM93C56A_WRITE_ALL 0x0
26 #define FM93C56A_WDS 0x0
27 #define FM93C56A_ERASE 0x3
28 #define FM93C56A_ERASE_ALL 0x0
30 /* Command Extensions */
31 #define FM93C56A_WEN_EXT 0x3
32 #define FM93C56A_WRITE_ALL_EXT 0x1
33 #define FM93C56A_WDS_EXT 0x0
34 #define FM93C56A_ERASE_ALL_EXT 0x2
37 #define FM93C56A_NO_ADDR_BITS_16 8 /* 4010 */
38 #define FM93C56A_NO_ADDR_BITS_8 9 /* 4010 */
39 #define FM93C86A_NO_ADDR_BITS_16 10 /* 4022 */
42 #define FM93C56A_DATA_BITS_16 16
43 #define FM93C56A_DATA_BITS_8 8
46 #define FM93C56A_READ_DUMMY_BITS 1
47 #define FM93C56A_READY 0
48 #define FM93C56A_BUSY 1
49 #define FM93C56A_CMD_BITS 2
52 #define AUBURN_EEPROM_DI 0x8
53 #define AUBURN_EEPROM_DI_0 0x0
54 #define AUBURN_EEPROM_DI_1 0x8
55 #define AUBURN_EEPROM_DO 0x4
56 #define AUBURN_EEPROM_DO_0 0x0
57 #define AUBURN_EEPROM_DO_1 0x4
58 #define AUBURN_EEPROM_CS 0x2
59 #define AUBURN_EEPROM_CS_0 0x0
60 #define AUBURN_EEPROM_CS_1 0x2
61 #define AUBURN_EEPROM_CLK_RISE 0x1
62 #define AUBURN_EEPROM_CLK_FALL 0x0
68 uint16_t SpinUpDelay
:1;
69 uint16_t BIOSDisable
:1;
70 uint16_t MMAPEnable
:1;
71 uint16_t BootEnable
:1;
72 uint16_t Reserved0
:12;
74 uint8_t bootID0Valid
:1;
77 uint8_t bootID1Valid
:1;
79 uint16_t MaxLunsPerTarget
;
80 uint8_t Reserved1
[10];
83 struct eeprom_port_cfg
{
88 /* Flow Control MAC 0 */
89 u16 pauseThreshold_mac
;
90 u16 resumeThreshold_mac
;
94 struct eeprom_function_cfg
{
99 u8 macAddressSecondary
[6];
106 struct { /* isp4010 */
107 u8 asic_id
[4]; /* x00 */
108 u8 version
; /* x04 */
109 u8 reserved
; /* x05 */
110 u16 board_id
; /* x06 */
111 #define EEPROM_BOARDID_ELDORADO 1
112 #define EEPROM_BOARDID_PLACER 2
114 #define EEPROM_SERIAL_NUM_SIZE 16
115 u8 serial_number
[EEPROM_SERIAL_NUM_SIZE
]; /* x08 */
120 * | SSRAM Size| |ST|PD|SDRAM SZ| W| B| SP | |
121 * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
122 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
124 u16 ext_hw_conf
; /* x18 */
125 u8 mac0
[6]; /* x1A */
126 u8 mac1
[6]; /* x20 */
127 u8 mac2
[6]; /* x26 */
128 u8 mac3
[6]; /* x2C */
129 u16 etherMtu
; /* x32 */
130 u16 macConfig
; /* x34 */
131 #define MAC_CONFIG_ENABLE_ANEG 0x0001
132 #define MAC_CONFIG_ENABLE_PAUSE 0x0002
133 u16 phyConfig
; /* x36 */
134 #define PHY_CONFIG_PHY_ADDR_MASK 0x1f
135 #define PHY_CONFIG_ENABLE_FW_MANAGEMENT_MASK 0x20
136 u16 reserved_56
; /* x38 */
138 #define EEPROM_UNUSED_1_SIZE 2
139 u8 unused_1
[EEPROM_UNUSED_1_SIZE
]; /* x3A */
140 u16 bufletSize
; /* x3C */
141 u16 bufletCount
; /* x3E */
142 u16 bufletPauseThreshold
; /* x40 */
143 u16 tcpWindowThreshold50
; /* x42 */
144 u16 tcpWindowThreshold25
; /* x44 */
145 u16 tcpWindowThreshold0
; /* x46 */
146 u16 ipHashTableBaseHi
; /* x48 */
147 u16 ipHashTableBaseLo
; /* x4A */
148 u16 ipHashTableSize
; /* x4C */
149 u16 tcpHashTableBaseHi
; /* x4E */
150 u16 tcpHashTableBaseLo
; /* x50 */
151 u16 tcpHashTableSize
; /* x52 */
152 u16 ncbTableBaseHi
; /* x54 */
153 u16 ncbTableBaseLo
; /* x56 */
154 u16 ncbTableSize
; /* x58 */
155 u16 drbTableBaseHi
; /* x5A */
156 u16 drbTableBaseLo
; /* x5C */
157 u16 drbTableSize
; /* x5E */
159 #define EEPROM_UNUSED_2_SIZE 4
160 u8 unused_2
[EEPROM_UNUSED_2_SIZE
]; /* x60 */
161 u16 ipReassemblyTimeout
; /* x64 */
162 u16 tcpMaxWindowSizeHi
; /* x66 */
163 u16 tcpMaxWindowSizeLo
; /* x68 */
164 u32 net_ip_addr0
; /* x6A Added for TOE
166 u32 net_ip_addr1
; /* x6E */
167 u32 scsi_ip_addr0
; /* x72 */
168 u32 scsi_ip_addr1
; /* x76 */
169 #define EEPROM_UNUSED_3_SIZE 128 /* changed from 144 to account
170 * for ip addresses */
171 u8 unused_3
[EEPROM_UNUSED_3_SIZE
]; /* x7A */
172 u16 subsysVendorId_f0
; /* xFA */
173 u16 subsysDeviceId_f0
; /* xFC */
176 #define FM93C56A_SIGNATURE 0x9356
177 #define FM93C66A_SIGNATURE 0x9366
178 u16 signature
; /* xFE */
180 #define EEPROM_UNUSED_4_SIZE 250
181 u8 unused_4
[EEPROM_UNUSED_4_SIZE
]; /* x100 */
182 u16 subsysVendorId_f1
; /* x1FA */
183 u16 subsysDeviceId_f1
; /* x1FC */
184 u16 checksum
; /* x1FE */
185 } __attribute__ ((packed
)) isp4010
;
186 struct { /* isp4022 */
187 u8 asicId
[4]; /* x00 */
188 u8 version
; /* x04 */
189 u8 reserved_5
; /* x05 */
190 u16 boardId
; /* x06 */
191 u8 boardIdStr
[16]; /* x08 */
192 u8 serialNumber
[16]; /* x18 */
194 /* External Hardware Configuration */
195 u16 ext_hw_conf
; /* x28 */
197 /* MAC 0 CONFIGURATION */
198 struct eeprom_port_cfg macCfg_port0
; /* x2A */
200 /* MAC 1 CONFIGURATION */
201 struct eeprom_port_cfg macCfg_port1
; /* x4A */
203 /* DDR SDRAM Configuration */
204 u16 bufletSize
; /* x6A */
205 u16 bufletCount
; /* x6C */
206 u16 tcpWindowThreshold50
; /* x6E */
207 u16 tcpWindowThreshold25
; /* x70 */
208 u16 tcpWindowThreshold0
; /* x72 */
209 u16 ipHashTableBaseHi
; /* x74 */
210 u16 ipHashTableBaseLo
; /* x76 */
211 u16 ipHashTableSize
; /* x78 */
212 u16 tcpHashTableBaseHi
; /* x7A */
213 u16 tcpHashTableBaseLo
; /* x7C */
214 u16 tcpHashTableSize
; /* x7E */
215 u16 ncbTableBaseHi
; /* x80 */
216 u16 ncbTableBaseLo
; /* x82 */
217 u16 ncbTableSize
; /* x84 */
218 u16 drbTableBaseHi
; /* x86 */
219 u16 drbTableBaseLo
; /* x88 */
220 u16 drbTableSize
; /* x8A */
221 u16 reserved_142
[4]; /* x8C */
223 /* TCP/IP Parameters */
224 u16 ipReassemblyTimeout
; /* x94 */
225 u16 tcpMaxWindowSize
; /* x96 */
226 u16 ipSecurity
; /* x98 */
227 u8 reserved_156
[294]; /* x9A */
228 u16 qDebug
[8]; /* QLOGIC USE ONLY x1C0 */
229 struct eeprom_function_cfg funcCfg_fn0
; /* x1D0 */
230 u16 reserved_510
; /* x1FE */
233 u8 oemSpace
[432]; /* x200 */
234 struct bios_params sBIOSParams_fn1
; /* x3B0 */
235 struct eeprom_function_cfg funcCfg_fn1
; /* x3D0 */
236 u16 reserved_1022
; /* x3FE */
239 u8 reserved_1024
[464]; /* x400 */
240 struct eeprom_function_cfg funcCfg_fn2
; /* x5D0 */
241 u16 reserved_1534
; /* x5FE */
244 u8 reserved_1536
[432]; /* x600 */
245 struct bios_params sBIOSParams_fn3
; /* x7B0 */
246 struct eeprom_function_cfg funcCfg_fn3
; /* x7D0 */
247 u16 checksum
; /* x7FE */
248 } __attribute__ ((packed
)) isp4022
;
253 #endif /* _QL4XNVRM_H_ */