Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * QLogic Fibre Channel HBA Driver
0004  * Copyright (c)  2003-2014 QLogic Corporation
0005  */
0006 
0007 #ifndef __QLA_DMP27_H__
0008 #define __QLA_DMP27_H__
0009 
0010 #define IOBASE_ADDR offsetof(struct device_reg_24xx, iobase_addr)
0011 
0012 struct __packed qla27xx_fwdt_template {
0013     __le32 template_type;
0014     __le32 entry_offset;
0015     __le32 template_size;
0016     uint32_t count;     /* borrow field for running/residual count */
0017 
0018     __le32 entry_count;
0019     uint32_t template_version;
0020     __le32 capture_timestamp;
0021     uint32_t template_checksum;
0022 
0023     uint32_t reserved_2;
0024     __le32 driver_info[3];
0025 
0026     uint32_t saved_state[16];
0027 
0028     uint32_t reserved_3[8];
0029     __le32 firmware_version[5];
0030 };
0031 
0032 #define TEMPLATE_TYPE_FWDUMP        99
0033 
0034 #define ENTRY_TYPE_NOP          0
0035 #define ENTRY_TYPE_TMP_END      255
0036 #define ENTRY_TYPE_RD_IOB_T1        256
0037 #define ENTRY_TYPE_WR_IOB_T1        257
0038 #define ENTRY_TYPE_RD_IOB_T2        258
0039 #define ENTRY_TYPE_WR_IOB_T2        259
0040 #define ENTRY_TYPE_RD_PCI       260
0041 #define ENTRY_TYPE_WR_PCI       261
0042 #define ENTRY_TYPE_RD_RAM       262
0043 #define ENTRY_TYPE_GET_QUEUE        263
0044 #define ENTRY_TYPE_GET_FCE      264
0045 #define ENTRY_TYPE_PSE_RISC     265
0046 #define ENTRY_TYPE_RST_RISC     266
0047 #define ENTRY_TYPE_DIS_INTR     267
0048 #define ENTRY_TYPE_GET_HBUF     268
0049 #define ENTRY_TYPE_SCRATCH      269
0050 #define ENTRY_TYPE_RDREMREG     270
0051 #define ENTRY_TYPE_WRREMREG     271
0052 #define ENTRY_TYPE_RDREMRAM     272
0053 #define ENTRY_TYPE_PCICFG       273
0054 #define ENTRY_TYPE_GET_SHADOW       274
0055 #define ENTRY_TYPE_WRITE_BUF        275
0056 #define ENTRY_TYPE_CONDITIONAL      276
0057 #define ENTRY_TYPE_RDPEPREG     277
0058 #define ENTRY_TYPE_WRPEPREG     278
0059 
0060 #define CAPTURE_FLAG_PHYS_ONLY      BIT_0
0061 #define CAPTURE_FLAG_PHYS_VIRT      BIT_1
0062 
0063 #define DRIVER_FLAG_SKIP_ENTRY      BIT_7
0064 
0065 struct __packed qla27xx_fwdt_entry {
0066     struct __packed {
0067         __le32 type;
0068         __le32 size;
0069         uint32_t reserved_1;
0070 
0071         uint8_t  capture_flags;
0072         uint8_t  reserved_2[2];
0073         uint8_t  driver_flags;
0074     } hdr;
0075     union __packed {
0076         struct __packed {
0077         } t0;
0078 
0079         struct __packed {
0080         } t255;
0081 
0082         struct __packed {
0083             __le32 base_addr;
0084             uint8_t  reg_width;
0085             __le16 reg_count;
0086             uint8_t  pci_offset;
0087         } t256;
0088 
0089         struct __packed {
0090             __le32 base_addr;
0091             __le32 write_data;
0092             uint8_t  pci_offset;
0093             uint8_t  reserved[3];
0094         } t257;
0095 
0096         struct __packed {
0097             __le32 base_addr;
0098             uint8_t  reg_width;
0099             __le16 reg_count;
0100             uint8_t  pci_offset;
0101             uint8_t  banksel_offset;
0102             uint8_t  reserved[3];
0103             __le32 bank;
0104         } t258;
0105 
0106         struct __packed {
0107             __le32 base_addr;
0108             __le32 write_data;
0109             uint8_t  reserved[2];
0110             uint8_t  pci_offset;
0111             uint8_t  banksel_offset;
0112             __le32 bank;
0113         } t259;
0114 
0115         struct __packed {
0116             uint8_t pci_offset;
0117             uint8_t reserved[3];
0118         } t260;
0119 
0120         struct __packed {
0121             uint8_t pci_offset;
0122             uint8_t reserved[3];
0123             __le32 write_data;
0124         } t261;
0125 
0126         struct __packed {
0127             uint8_t  ram_area;
0128             uint8_t  reserved[3];
0129             __le32 start_addr;
0130             __le32 end_addr;
0131         } t262;
0132 
0133         struct __packed {
0134             uint32_t num_queues;
0135             uint8_t  queue_type;
0136             uint8_t  reserved[3];
0137         } t263;
0138 
0139         struct __packed {
0140             uint32_t fce_trace_size;
0141             uint64_t write_pointer;
0142             uint64_t base_pointer;
0143             uint32_t fce_enable_mb0;
0144             uint32_t fce_enable_mb2;
0145             uint32_t fce_enable_mb3;
0146             uint32_t fce_enable_mb4;
0147             uint32_t fce_enable_mb5;
0148             uint32_t fce_enable_mb6;
0149         } t264;
0150 
0151         struct __packed {
0152         } t265;
0153 
0154         struct __packed {
0155         } t266;
0156 
0157         struct __packed {
0158             uint8_t  pci_offset;
0159             uint8_t  reserved[3];
0160             __le32 data;
0161         } t267;
0162 
0163         struct __packed {
0164             uint8_t  buf_type;
0165             uint8_t  reserved[3];
0166             uint32_t buf_size;
0167             uint64_t start_addr;
0168         } t268;
0169 
0170         struct __packed {
0171             uint32_t scratch_size;
0172         } t269;
0173 
0174         struct __packed {
0175             __le32 addr;
0176             __le32 count;
0177         } t270;
0178 
0179         struct __packed {
0180             __le32 addr;
0181             __le32 data;
0182         } t271;
0183 
0184         struct __packed {
0185             __le32 addr;
0186             __le32 count;
0187         } t272;
0188 
0189         struct __packed {
0190             __le32 addr;
0191             __le32 count;
0192         } t273;
0193 
0194         struct __packed {
0195             uint32_t num_queues;
0196             uint8_t  queue_type;
0197             uint8_t  reserved[3];
0198         } t274;
0199 
0200         struct __packed {
0201             __le32 length;
0202             uint8_t  buffer[];
0203         } t275;
0204 
0205         struct __packed {
0206             __le32 cond1;
0207             __le32 cond2;
0208         } t276;
0209 
0210         struct __packed {
0211             __le32 cmd_addr;
0212             __le32 wr_cmd_data;
0213             __le32 data_addr;
0214         } t277;
0215 
0216         struct __packed {
0217             __le32 cmd_addr;
0218             __le32 wr_cmd_data;
0219             __le32 data_addr;
0220             __le32 wr_data;
0221         } t278;
0222     };
0223 };
0224 
0225 #define T262_RAM_AREA_CRITICAL_RAM  1
0226 #define T262_RAM_AREA_EXTERNAL_RAM  2
0227 #define T262_RAM_AREA_SHARED_RAM    3
0228 #define T262_RAM_AREA_DDR_RAM       4
0229 #define T262_RAM_AREA_MISC      5
0230 
0231 #define T263_QUEUE_TYPE_REQ     1
0232 #define T263_QUEUE_TYPE_RSP     2
0233 #define T263_QUEUE_TYPE_ATIO        3
0234 
0235 #define T268_BUF_TYPE_EXTD_TRACE    1
0236 #define T268_BUF_TYPE_EXCH_BUFOFF   2
0237 #define T268_BUF_TYPE_EXTD_LOGIN    3
0238 #define T268_BUF_TYPE_REQ_MIRROR    4
0239 #define T268_BUF_TYPE_RSP_MIRROR    5
0240 
0241 #define T274_QUEUE_TYPE_REQ_SHAD    1
0242 #define T274_QUEUE_TYPE_RSP_SHAD    2
0243 #define T274_QUEUE_TYPE_ATIO_SHAD   3
0244 
0245 #endif