WIP FPC-III support
[linux/fpc-iii.git] / drivers / scsi / qla2xxx / qla_tmpl.h
blob6e0987edfcebcec0e1f33f603d170567f724dcee
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * QLogic Fibre Channel HBA Driver
4 * Copyright (c) 2003-2014 QLogic Corporation
5 */
7 #ifndef __QLA_DMP27_H__
8 #define __QLA_DMP27_H__
10 #define IOBASE_ADDR offsetof(struct device_reg_24xx, iobase_addr)
12 struct __packed qla27xx_fwdt_template {
13 __le32 template_type;
14 __le32 entry_offset;
15 __le32 template_size;
16 uint32_t count; /* borrow field for running/residual count */
18 __le32 entry_count;
19 uint32_t template_version;
20 __le32 capture_timestamp;
21 uint32_t template_checksum;
23 uint32_t reserved_2;
24 __le32 driver_info[3];
26 uint32_t saved_state[16];
28 uint32_t reserved_3[8];
29 __le32 firmware_version[5];
32 #define TEMPLATE_TYPE_FWDUMP 99
34 #define ENTRY_TYPE_NOP 0
35 #define ENTRY_TYPE_TMP_END 255
36 #define ENTRY_TYPE_RD_IOB_T1 256
37 #define ENTRY_TYPE_WR_IOB_T1 257
38 #define ENTRY_TYPE_RD_IOB_T2 258
39 #define ENTRY_TYPE_WR_IOB_T2 259
40 #define ENTRY_TYPE_RD_PCI 260
41 #define ENTRY_TYPE_WR_PCI 261
42 #define ENTRY_TYPE_RD_RAM 262
43 #define ENTRY_TYPE_GET_QUEUE 263
44 #define ENTRY_TYPE_GET_FCE 264
45 #define ENTRY_TYPE_PSE_RISC 265
46 #define ENTRY_TYPE_RST_RISC 266
47 #define ENTRY_TYPE_DIS_INTR 267
48 #define ENTRY_TYPE_GET_HBUF 268
49 #define ENTRY_TYPE_SCRATCH 269
50 #define ENTRY_TYPE_RDREMREG 270
51 #define ENTRY_TYPE_WRREMREG 271
52 #define ENTRY_TYPE_RDREMRAM 272
53 #define ENTRY_TYPE_PCICFG 273
54 #define ENTRY_TYPE_GET_SHADOW 274
55 #define ENTRY_TYPE_WRITE_BUF 275
56 #define ENTRY_TYPE_CONDITIONAL 276
57 #define ENTRY_TYPE_RDPEPREG 277
58 #define ENTRY_TYPE_WRPEPREG 278
60 #define CAPTURE_FLAG_PHYS_ONLY BIT_0
61 #define CAPTURE_FLAG_PHYS_VIRT BIT_1
63 #define DRIVER_FLAG_SKIP_ENTRY BIT_7
65 struct __packed qla27xx_fwdt_entry {
66 struct __packed {
67 __le32 type;
68 __le32 size;
69 uint32_t reserved_1;
71 uint8_t capture_flags;
72 uint8_t reserved_2[2];
73 uint8_t driver_flags;
74 } hdr;
75 union __packed {
76 struct __packed {
77 } t0;
79 struct __packed {
80 } t255;
82 struct __packed {
83 __le32 base_addr;
84 uint8_t reg_width;
85 __le16 reg_count;
86 uint8_t pci_offset;
87 } t256;
89 struct __packed {
90 __le32 base_addr;
91 __le32 write_data;
92 uint8_t pci_offset;
93 uint8_t reserved[3];
94 } t257;
96 struct __packed {
97 __le32 base_addr;
98 uint8_t reg_width;
99 __le16 reg_count;
100 uint8_t pci_offset;
101 uint8_t banksel_offset;
102 uint8_t reserved[3];
103 __le32 bank;
104 } t258;
106 struct __packed {
107 __le32 base_addr;
108 __le32 write_data;
109 uint8_t reserved[2];
110 uint8_t pci_offset;
111 uint8_t banksel_offset;
112 __le32 bank;
113 } t259;
115 struct __packed {
116 uint8_t pci_offset;
117 uint8_t reserved[3];
118 } t260;
120 struct __packed {
121 uint8_t pci_offset;
122 uint8_t reserved[3];
123 __le32 write_data;
124 } t261;
126 struct __packed {
127 uint8_t ram_area;
128 uint8_t reserved[3];
129 __le32 start_addr;
130 __le32 end_addr;
131 } t262;
133 struct __packed {
134 uint32_t num_queues;
135 uint8_t queue_type;
136 uint8_t reserved[3];
137 } t263;
139 struct __packed {
140 uint32_t fce_trace_size;
141 uint64_t write_pointer;
142 uint64_t base_pointer;
143 uint32_t fce_enable_mb0;
144 uint32_t fce_enable_mb2;
145 uint32_t fce_enable_mb3;
146 uint32_t fce_enable_mb4;
147 uint32_t fce_enable_mb5;
148 uint32_t fce_enable_mb6;
149 } t264;
151 struct __packed {
152 } t265;
154 struct __packed {
155 } t266;
157 struct __packed {
158 uint8_t pci_offset;
159 uint8_t reserved[3];
160 __le32 data;
161 } t267;
163 struct __packed {
164 uint8_t buf_type;
165 uint8_t reserved[3];
166 uint32_t buf_size;
167 uint64_t start_addr;
168 } t268;
170 struct __packed {
171 uint32_t scratch_size;
172 } t269;
174 struct __packed {
175 __le32 addr;
176 __le32 count;
177 } t270;
179 struct __packed {
180 __le32 addr;
181 __le32 data;
182 } t271;
184 struct __packed {
185 __le32 addr;
186 __le32 count;
187 } t272;
189 struct __packed {
190 __le32 addr;
191 __le32 count;
192 } t273;
194 struct __packed {
195 uint32_t num_queues;
196 uint8_t queue_type;
197 uint8_t reserved[3];
198 } t274;
200 struct __packed {
201 __le32 length;
202 uint8_t buffer[];
203 } t275;
205 struct __packed {
206 __le32 cond1;
207 __le32 cond2;
208 } t276;
210 struct __packed {
211 __le32 cmd_addr;
212 __le32 wr_cmd_data;
213 __le32 data_addr;
214 } t277;
216 struct __packed {
217 __le32 cmd_addr;
218 __le32 wr_cmd_data;
219 __le32 data_addr;
220 __le32 wr_data;
221 } t278;
225 #define T262_RAM_AREA_CRITICAL_RAM 1
226 #define T262_RAM_AREA_EXTERNAL_RAM 2
227 #define T262_RAM_AREA_SHARED_RAM 3
228 #define T262_RAM_AREA_DDR_RAM 4
229 #define T262_RAM_AREA_MISC 5
231 #define T263_QUEUE_TYPE_REQ 1
232 #define T263_QUEUE_TYPE_RSP 2
233 #define T263_QUEUE_TYPE_ATIO 3
235 #define T268_BUF_TYPE_EXTD_TRACE 1
236 #define T268_BUF_TYPE_EXCH_BUFOFF 2
237 #define T268_BUF_TYPE_EXTD_LOGIN 3
238 #define T268_BUF_TYPE_REQ_MIRROR 4
239 #define T268_BUF_TYPE_RSP_MIRROR 5
241 #define T274_QUEUE_TYPE_REQ_SHAD 1
242 #define T274_QUEUE_TYPE_RSP_SHAD 2
243 #define T274_QUEUE_TYPE_ATIO_SHAD 3
245 #endif