bfa_defs_mfg.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /*
  2. * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
  3. * All rights reserved
  4. * www.brocade.com
  5. *
  6. * Linux driver for Brocade Fibre Channel Host Bus Adapter.
  7. *
  8. * This program is free software; you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License (GPL) Version 2 as
  10. * published by the Free Software Foundation
  11. *
  12. * This program is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * General Public License for more details.
  16. */
  17. #ifndef __BFA_DEFS_MFG_H__
  18. #define __BFA_DEFS_MFG_H__
  19. #include <bfa_os_inc.h>
  20. /**
  21. * Manufacturing block version
  22. */
  23. #define BFA_MFG_VERSION 2
  24. /**
  25. * Manufacturing block encrypted version
  26. */
  27. #define BFA_MFG_ENC_VER 2
  28. /**
  29. * Manufacturing block version 1 length
  30. */
  31. #define BFA_MFG_VER1_LEN 128
  32. /**
  33. * Manufacturing block header length
  34. */
  35. #define BFA_MFG_HDR_LEN 4
  36. /**
  37. * Checksum size
  38. */
  39. #define BFA_MFG_CHKSUM_SIZE 16
  40. /**
  41. * Manufacturing block encrypted version
  42. */
  43. #define BFA_MFG_ENC_VER 2
  44. /**
  45. * Manufacturing block version 1 length
  46. */
  47. #define BFA_MFG_VER1_LEN 128
  48. /**
  49. * Manufacturing block header length
  50. */
  51. #define BFA_MFG_HDR_LEN 4
  52. /**
  53. * Checksum size
  54. */
  55. #define BFA_MFG_CHKSUM_SIZE 16
  56. /**
  57. * Manufacturing block format
  58. */
  59. #define BFA_MFG_SERIALNUM_SIZE 11
  60. #define BFA_MFG_PARTNUM_SIZE 14
  61. #define BFA_MFG_SUPPLIER_ID_SIZE 10
  62. #define BFA_MFG_SUPPLIER_PARTNUM_SIZE 20
  63. #define BFA_MFG_SUPPLIER_SERIALNUM_SIZE 20
  64. #define BFA_MFG_SUPPLIER_REVISION_SIZE 4
  65. #define STRSZ(_n) (((_n) + 4) & ~3)
  66. /**
  67. * Manufacturing card type
  68. */
  69. enum {
  70. BFA_MFG_TYPE_CB_MAX = 825, /* Crossbow card type max */
  71. BFA_MFG_TYPE_FC8P2 = 825, /* 8G 2port FC card */
  72. BFA_MFG_TYPE_FC8P1 = 815, /* 8G 1port FC card */
  73. BFA_MFG_TYPE_FC4P2 = 425, /* 4G 2port FC card */
  74. BFA_MFG_TYPE_FC4P1 = 415, /* 4G 1port FC card */
  75. BFA_MFG_TYPE_CNA10P2 = 1020, /* 10G 2port CNA card */
  76. BFA_MFG_TYPE_CNA10P1 = 1010, /* 10G 1port CNA card */
  77. BFA_MFG_TYPE_JAYHAWK = 804, /* Jayhawk mezz card */
  78. BFA_MFG_TYPE_WANCHESE = 1007, /* Wanchese mezz card */
  79. BFA_MFG_TYPE_INVALID = 0, /* Invalid card type */
  80. };
  81. #pragma pack(1)
  82. /**
  83. * Card type to port number conversion
  84. */
  85. #define bfa_mfg_type2port_num(card_type) (((card_type) / 10) % 10)
  86. /**
  87. * All numerical fields are in big-endian format.
  88. */
  89. struct bfa_mfg_block_s {
  90. };
  91. /**
  92. * VPD data length
  93. */
  94. #define BFA_MFG_VPD_LEN 512
  95. #define BFA_MFG_VPD_PCI_HDR_OFF 137
  96. #define BFA_MFG_VPD_PCI_VER_MASK 0x07 /* version mask 3 bits */
  97. #define BFA_MFG_VPD_PCI_VDR_MASK 0xf8 /* vendor mask 5 bits */
  98. /**
  99. * VPD vendor tag
  100. */
  101. enum {
  102. BFA_MFG_VPD_UNKNOWN = 0, /* vendor unknown */
  103. BFA_MFG_VPD_IBM = 1, /* vendor IBM */
  104. BFA_MFG_VPD_HP = 2, /* vendor HP */
  105. BFA_MFG_VPD_DELL = 3, /* vendor DELL */
  106. BFA_MFG_VPD_PCI_IBM = 0x08, /* PCI VPD IBM */
  107. BFA_MFG_VPD_PCI_HP = 0x10, /* PCI VPD HP */
  108. BFA_MFG_VPD_PCI_DELL = 0x20, /* PCI VPD DELL */
  109. BFA_MFG_VPD_PCI_BRCD = 0xf8, /* PCI VPD Brocade */
  110. };
  111. /**
  112. * All numerical fields are in big-endian format.
  113. */
  114. struct bfa_mfg_vpd_s {
  115. u8 version; /* vpd data version */
  116. u8 vpd_sig[3]; /* characters 'V', 'P', 'D' */
  117. u8 chksum; /* u8 checksum */
  118. u8 vendor; /* vendor */
  119. u8 len; /* vpd data length excluding header */
  120. u8 rsv;
  121. u8 data[BFA_MFG_VPD_LEN]; /* vpd data */
  122. };
  123. #pragma pack()
  124. #endif /* __BFA_DEFS_MFG_H__ */