cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qla_tmpl.h (4795B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * QLogic Fibre Channel HBA Driver
      4 * Copyright (c)  2003-2014 QLogic Corporation
      5 */
      6
      7#ifndef __QLA_DMP27_H__
      8#define	__QLA_DMP27_H__
      9
     10#define IOBASE_ADDR	offsetof(struct device_reg_24xx, iobase_addr)
     11
     12struct __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 */
     17
     18	__le32 entry_count;
     19	uint32_t template_version;
     20	__le32 capture_timestamp;
     21	uint32_t template_checksum;
     22
     23	uint32_t reserved_2;
     24	__le32 driver_info[3];
     25
     26	uint32_t saved_state[16];
     27
     28	uint32_t reserved_3[8];
     29	__le32 firmware_version[5];
     30};
     31
     32#define TEMPLATE_TYPE_FWDUMP		99
     33
     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
     59
     60#define CAPTURE_FLAG_PHYS_ONLY		BIT_0
     61#define CAPTURE_FLAG_PHYS_VIRT		BIT_1
     62
     63#define DRIVER_FLAG_SKIP_ENTRY		BIT_7
     64
     65struct __packed qla27xx_fwdt_entry {
     66	struct __packed {
     67		__le32 type;
     68		__le32 size;
     69		uint32_t reserved_1;
     70
     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;
     78
     79		struct __packed {
     80		} t255;
     81
     82		struct __packed {
     83			__le32 base_addr;
     84			uint8_t  reg_width;
     85			__le16 reg_count;
     86			uint8_t  pci_offset;
     87		} t256;
     88
     89		struct __packed {
     90			__le32 base_addr;
     91			__le32 write_data;
     92			uint8_t  pci_offset;
     93			uint8_t  reserved[3];
     94		} t257;
     95
     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;
    105
    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;
    114
    115		struct __packed {
    116			uint8_t pci_offset;
    117			uint8_t reserved[3];
    118		} t260;
    119
    120		struct __packed {
    121			uint8_t pci_offset;
    122			uint8_t reserved[3];
    123			__le32 write_data;
    124		} t261;
    125
    126		struct __packed {
    127			uint8_t  ram_area;
    128			uint8_t  reserved[3];
    129			__le32 start_addr;
    130			__le32 end_addr;
    131		} t262;
    132
    133		struct __packed {
    134			uint32_t num_queues;
    135			uint8_t  queue_type;
    136			uint8_t  reserved[3];
    137		} t263;
    138
    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;
    150
    151		struct __packed {
    152		} t265;
    153
    154		struct __packed {
    155		} t266;
    156
    157		struct __packed {
    158			uint8_t  pci_offset;
    159			uint8_t  reserved[3];
    160			__le32 data;
    161		} t267;
    162
    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;
    169
    170		struct __packed {
    171			uint32_t scratch_size;
    172		} t269;
    173
    174		struct __packed {
    175			__le32 addr;
    176			__le32 count;
    177		} t270;
    178
    179		struct __packed {
    180			__le32 addr;
    181			__le32 data;
    182		} t271;
    183
    184		struct __packed {
    185			__le32 addr;
    186			__le32 count;
    187		} t272;
    188
    189		struct __packed {
    190			__le32 addr;
    191			__le32 count;
    192		} t273;
    193
    194		struct __packed {
    195			uint32_t num_queues;
    196			uint8_t  queue_type;
    197			uint8_t  reserved[3];
    198		} t274;
    199
    200		struct __packed {
    201			__le32 length;
    202			uint8_t  buffer[];
    203		} t275;
    204
    205		struct __packed {
    206			__le32 cond1;
    207			__le32 cond2;
    208		} t276;
    209
    210		struct __packed {
    211			__le32 cmd_addr;
    212			__le32 wr_cmd_data;
    213			__le32 data_addr;
    214		} t277;
    215
    216		struct __packed {
    217			__le32 cmd_addr;
    218			__le32 wr_cmd_data;
    219			__le32 data_addr;
    220			__le32 wr_data;
    221		} t278;
    222	};
    223};
    224
    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
    230
    231#define T263_QUEUE_TYPE_REQ		1
    232#define T263_QUEUE_TYPE_RSP		2
    233#define T263_QUEUE_TYPE_ATIO		3
    234
    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
    240
    241#define T274_QUEUE_TYPE_REQ_SHAD	1
    242#define T274_QUEUE_TYPE_RSP_SHAD	2
    243#define T274_QUEUE_TYPE_ATIO_SHAD	3
    244
    245#endif