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