qla_tmpl.h 4.7 KB

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