bfa_defs_mfg.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. };
  78. #pragma pack(1)
  79. /**
  80. * Card type to port number conversion
  81. */
  82. #define bfa_mfg_type2port_num(card_type) (((card_type) / 10) % 10)
  83. /**
  84. * All numerical fields are in big-endian format.
  85. */
  86. struct bfa_mfg_block_s {
  87. };
  88. /**
  89. * VPD data length
  90. */
  91. #define BFA_MFG_VPD_LEN 512
  92. #define BFA_MFG_VPD_PCI_HDR_OFF 137
  93. #define BFA_MFG_VPD_PCI_VER_MASK 0x07 /* version mask 3 bits */
  94. #define BFA_MFG_VPD_PCI_VDR_MASK 0xf8 /* vendor mask 5 bits */
  95. /**
  96. * VPD vendor tag
  97. */
  98. enum {
  99. BFA_MFG_VPD_UNKNOWN = 0, /* vendor unknown */
  100. BFA_MFG_VPD_IBM = 1, /* vendor IBM */
  101. BFA_MFG_VPD_HP = 2, /* vendor HP */
  102. BFA_MFG_VPD_DELL = 3, /* vendor DELL */
  103. BFA_MFG_VPD_PCI_IBM = 0x08, /* PCI VPD IBM */
  104. BFA_MFG_VPD_PCI_HP = 0x10, /* PCI VPD HP */
  105. BFA_MFG_VPD_PCI_DELL = 0x20, /* PCI VPD DELL */
  106. BFA_MFG_VPD_PCI_BRCD = 0xf8, /* PCI VPD Brocade */
  107. };
  108. /**
  109. * All numerical fields are in big-endian format.
  110. */
  111. struct bfa_mfg_vpd_s {
  112. u8 version; /* vpd data version */
  113. u8 vpd_sig[3]; /* characters 'V', 'P', 'D' */
  114. u8 chksum; /* u8 checksum */
  115. u8 vendor; /* vendor */
  116. u8 len; /* vpd data length excluding header */
  117. u8 rsv;
  118. u8 data[BFA_MFG_VPD_LEN]; /* vpd data */
  119. };
  120. #pragma pack()
  121. #endif /* __BFA_DEFS_MFG_H__ */