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