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

bfa_defs_mfg_comm.h (4777B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Linux network driver for QLogic BR-series Converged Network Adapter.
      4 */
      5/*
      6 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
      7 * Copyright (c) 2014-2015 QLogic Corporation
      8 * All rights reserved
      9 * www.qlogic.com
     10 */
     11#ifndef __BFA_DEFS_MFG_COMM_H__
     12#define __BFA_DEFS_MFG_COMM_H__
     13
     14#include "bfa_defs.h"
     15
     16/* Manufacturing block version */
     17#define BFA_MFG_VERSION				3
     18#define BFA_MFG_VERSION_UNINIT			0xFF
     19
     20/* Manufacturing block encrypted version */
     21#define BFA_MFG_ENC_VER				2
     22
     23/* Manufacturing block version 1 length */
     24#define BFA_MFG_VER1_LEN			128
     25
     26/* Manufacturing block header length */
     27#define BFA_MFG_HDR_LEN				4
     28
     29#define BFA_MFG_SERIALNUM_SIZE			11
     30#define STRSZ(_n)				(((_n) + 4) & ~3)
     31
     32/* Manufacturing card type */
     33enum {
     34	BFA_MFG_TYPE_CB_MAX  = 825,      /*!< Crossbow card type max	*/
     35	BFA_MFG_TYPE_FC8P2   = 825,      /*!< 8G 2port FC card		*/
     36	BFA_MFG_TYPE_FC8P1   = 815,      /*!< 8G 1port FC card		*/
     37	BFA_MFG_TYPE_FC4P2   = 425,      /*!< 4G 2port FC card		*/
     38	BFA_MFG_TYPE_FC4P1   = 415,      /*!< 4G 1port FC card		*/
     39	BFA_MFG_TYPE_CNA10P2 = 1020,     /*!< 10G 2port CNA card	*/
     40	BFA_MFG_TYPE_CNA10P1 = 1010,     /*!< 10G 1port CNA card	*/
     41	BFA_MFG_TYPE_JAYHAWK = 804,	 /*!< Jayhawk mezz card		*/
     42	BFA_MFG_TYPE_WANCHESE = 1007,	 /*!< Wanchese mezz card	*/
     43	BFA_MFG_TYPE_ASTRA    = 807,	 /*!< Astra mezz card		*/
     44	BFA_MFG_TYPE_LIGHTNING_P0 = 902, /*!< Lightning mezz card - old	*/
     45	BFA_MFG_TYPE_LIGHTNING = 1741,	 /*!< Lightning mezz card	*/
     46	BFA_MFG_TYPE_PROWLER_F = 1560,	 /*!< Prowler FC only cards	*/
     47	BFA_MFG_TYPE_PROWLER_N = 1410,	 /*!< Prowler NIC only cards	*/
     48	BFA_MFG_TYPE_PROWLER_C = 1710,	 /*!< Prowler CNA only cards	*/
     49	BFA_MFG_TYPE_PROWLER_D = 1860,	 /*!< Prowler Dual cards	*/
     50	BFA_MFG_TYPE_CHINOOK   = 1867,	 /*!< Chinook cards		*/
     51	BFA_MFG_TYPE_INVALID = 0,	 /*!< Invalid card type		*/
     52};
     53
     54/* Check if Mezz card */
     55#define bfa_mfg_is_mezz(type) (( \
     56	(type) == BFA_MFG_TYPE_JAYHAWK || \
     57	(type) == BFA_MFG_TYPE_WANCHESE || \
     58	(type) == BFA_MFG_TYPE_ASTRA || \
     59	(type) == BFA_MFG_TYPE_LIGHTNING_P0 || \
     60	(type) == BFA_MFG_TYPE_LIGHTNING || \
     61	(type) == BFA_MFG_TYPE_CHINOOK))
     62
     63enum {
     64	CB_GPIO_TTV	= (1),		/*!< TTV debug capable cards	*/
     65	CB_GPIO_FC8P2   = (2),		/*!< 8G 2port FC card		*/
     66	CB_GPIO_FC8P1   = (3),		/*!< 8G 1port FC card		*/
     67	CB_GPIO_FC4P2   = (4),		/*!< 4G 2port FC card		*/
     68	CB_GPIO_FC4P1   = (5),		/*!< 4G 1port FC card		*/
     69	CB_GPIO_DFLY    = (6),		/*!< 8G 2port FC mezzanine card	*/
     70	CB_GPIO_PROTO   = BIT(7)	/*!< 8G 2port FC prototypes	*/
     71};
     72
     73#define bfa_mfg_adapter_prop_init_gpio(gpio, card_type, prop)	\
     74do {								\
     75	if ((gpio) & CB_GPIO_PROTO) {				\
     76		(prop) |= BFI_ADAPTER_PROTO;			\
     77		(gpio) &= ~CB_GPIO_PROTO;			\
     78	}							\
     79	switch (gpio) {						\
     80	case CB_GPIO_TTV:					\
     81		(prop) |= BFI_ADAPTER_TTV;			\
     82	case CB_GPIO_DFLY:					\
     83	case CB_GPIO_FC8P2:					\
     84		(prop) |= BFI_ADAPTER_SETP(NPORTS, 2);		\
     85		(prop) |= BFI_ADAPTER_SETP(SPEED, 8);		\
     86		(card_type) = BFA_MFG_TYPE_FC8P2;		\
     87		break;						\
     88	case CB_GPIO_FC8P1:					\
     89		(prop) |= BFI_ADAPTER_SETP(NPORTS, 1);		\
     90		(prop) |= BFI_ADAPTER_SETP(SPEED, 8);		\
     91		(card_type) = BFA_MFG_TYPE_FC8P1;		\
     92		break;						\
     93	case CB_GPIO_FC4P2:					\
     94		(prop) |= BFI_ADAPTER_SETP(NPORTS, 2);		\
     95		(prop) |= BFI_ADAPTER_SETP(SPEED, 4);		\
     96		(card_type) = BFA_MFG_TYPE_FC4P2;		\
     97		break;						\
     98	case CB_GPIO_FC4P1:					\
     99		(prop) |= BFI_ADAPTER_SETP(NPORTS, 1);		\
    100		(prop) |= BFI_ADAPTER_SETP(SPEED, 4);		\
    101		(card_type) = BFA_MFG_TYPE_FC4P1;		\
    102		break;						\
    103	default:						\
    104		(prop) |= BFI_ADAPTER_UNSUPP;			\
    105		(card_type) = BFA_MFG_TYPE_INVALID;		\
    106	}							\
    107} while (0)
    108
    109/* VPD data length */
    110#define BFA_MFG_VPD_LEN			512
    111#define BFA_MFG_VPD_LEN_INVALID		0
    112
    113#define BFA_MFG_VPD_PCI_HDR_OFF		137
    114#define BFA_MFG_VPD_PCI_VER_MASK	0x07	/*!< version mask 3 bits */
    115#define BFA_MFG_VPD_PCI_VDR_MASK	0xf8	/*!< vendor mask 5 bits */
    116
    117/* VPD vendor tag */
    118enum {
    119	BFA_MFG_VPD_UNKNOWN	= 0,     /*!< vendor unknown		*/
    120	BFA_MFG_VPD_IBM		= 1,     /*!< vendor IBM		*/
    121	BFA_MFG_VPD_HP		= 2,     /*!< vendor HP			*/
    122	BFA_MFG_VPD_DELL	= 3,     /*!< vendor DELL		*/
    123	BFA_MFG_VPD_PCI_IBM	= 0x08,  /*!< PCI VPD IBM		*/
    124	BFA_MFG_VPD_PCI_HP	= 0x10,  /*!< PCI VPD HP		*/
    125	BFA_MFG_VPD_PCI_DELL	= 0x20,  /*!< PCI VPD DELL		*/
    126	BFA_MFG_VPD_PCI_BRCD	= 0xf8,  /*!< PCI VPD Brocade		*/
    127};
    128
    129/* BFA adapter flash vpd data definition.
    130 *
    131 * All numerical fields are in big-endian format.
    132 */
    133struct bfa_mfg_vpd {
    134	u8		version;	/*!< vpd data version */
    135	u8		vpd_sig[3];	/*!< characters 'V', 'P', 'D' */
    136	u8		chksum;		/*!< u8 checksum */
    137	u8		vendor;		/*!< vendor */
    138	u8	len;		/*!< vpd data length excluding header */
    139	u8	rsv;
    140	u8		data[BFA_MFG_VPD_LEN];	/*!< vpd data */
    141} __packed;
    142
    143#endif /* __BFA_DEFS_MFG_H__ */