File: qsfp-dd.h

package info (click to toggle)
ethtool 1%3A5.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,324 kB
  • sloc: ansic: 32,884; sh: 1,371; makefile: 70
file content (125 lines) | stat: -rw-r--r-- 4,143 bytes parent folder | download
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
#ifndef QSFP_DD_H__
#define QSFP_DD_H__

/* Identifier and revision compliance (Page 0) */
#define QSFP_DD_ID_OFFSET			0x00
#define QSFP_DD_REV_COMPLIANCE_OFFSET		0x01

#define QSFP_DD_MODULE_TYPE_OFFSET		0x55
#define QSFP_DD_MT_MMF				0x01
#define QSFP_DD_MT_SMF				0x02

/* Module-Level Monitors (Page 0) */
#define QSFP_DD_CURR_TEMP_OFFSET		0x0E
#define QSFP_DD_CURR_CURR_OFFSET		0x10

#define QSFP_DD_CTOR_OFFSET			0xCB

/* Vendor related information (Page 0) */
#define QSFP_DD_VENDOR_NAME_START_OFFSET	0x81
#define QSFP_DD_VENDOR_NAME_END_OFFSET		0x90

#define QSFP_DD_VENDOR_OUI_OFFSET		0x91

#define QSFP_DD_VENDOR_PN_START_OFFSET		0x94
#define QSFP_DD_VENDOR_PN_END_OFFSET		0xA3

#define QSFP_DD_VENDOR_REV_START_OFFSET		0xA4
#define QSFP_DD_VENDOR_REV_END_OFFSET		0xA5

#define QSFP_DD_VENDOR_SN_START_OFFSET		0xA6
#define QSFP_DD_VENDOR_SN_END_OFFSET		0xB5

#define QSFP_DD_DATE_YEAR_OFFSET		0xB6
#define QSFP_DD_DATE_VENDOR_LOT_OFFSET		0xBC

/* CLEI Code (Page 0) */
#define QSFP_DD_CLEI_PRESENT_BYTE		0x02
#define QSFP_DD_CLEI_PRESENT_MASK		0x20
#define QSFP_DD_CLEI_START_OFFSET		0xBE
#define QSFP_DD_CLEI_END_OFFSET			0xC7

/* Cable assembly length */
#define QSFP_DD_CBL_ASM_LEN_OFFSET		0xCA
#define QSFP_DD_6300M_MAX_LEN			0xFF

/* Cable length with multiplier */
#define QSFP_DD_MULTIPLIER_00			0x00
#define QSFP_DD_MULTIPLIER_01			0x40
#define QSFP_DD_MULTIPLIER_10			0x80
#define QSFP_DD_MULTIPLIER_11			0xC0
#define QSFP_DD_LEN_MUL_MASK			0xC0
#define QSFP_DD_LEN_VAL_MASK			0x3F

/* Module power characteristics */
#define QSFP_DD_PWR_CLASS_OFFSET		0xC8
#define QSFP_DD_PWR_MAX_POWER_OFFSET		0xC9
#define QSFP_DD_PWR_CLASS_MASK			0xE0
#define QSFP_DD_PWR_CLASS_1			0x00
#define QSFP_DD_PWR_CLASS_2			0x01
#define QSFP_DD_PWR_CLASS_3			0x02
#define QSFP_DD_PWR_CLASS_4			0x03
#define QSFP_DD_PWR_CLASS_5			0x04
#define QSFP_DD_PWR_CLASS_6			0x05
#define QSFP_DD_PWR_CLASS_7			0x06
#define QSFP_DD_PWR_CLASS_8			0x07

/* Copper cable attenuation */
#define QSFP_DD_COPPER_ATT_5GHZ			0xCC
#define QSFP_DD_COPPER_ATT_7GHZ			0xCD
#define QSFP_DD_COPPER_ATT_12P9GHZ		0xCE
#define QSFP_DD_COPPER_ATT_25P8GHZ		0xCF

/* Cable assembly lane */
#define QSFP_DD_CABLE_ASM_NEAR_END_OFFSET	0xD2
#define QSFP_DD_CABLE_ASM_FAR_END_OFFSET	0xD3

/* Media interface technology */
#define QSFP_DD_MEDIA_INTF_TECH_OFFSET		0xD4
#define QSFP_DD_850_VCSEL			0x00
#define QSFP_DD_1310_VCSEL			0x01
#define QSFP_DD_1550_VCSEL			0x02
#define QSFP_DD_1310_FP				0x03
#define QSFP_DD_1310_DFB			0x04
#define QSFP_DD_1550_DFB			0x05
#define QSFP_DD_1310_EML			0x06
#define QSFP_DD_1550_EML			0x07
#define QSFP_DD_OTHERS				0x08
#define QSFP_DD_1490_DFB			0x09
#define QSFP_DD_COPPER_UNEQUAL			0x0A
#define QSFP_DD_COPPER_PASS_EQUAL		0x0B
#define QSFP_DD_COPPER_NF_EQUAL			0x0C
#define QSFP_DD_COPPER_F_EQUAL			0x0D
#define QSFP_DD_COPPER_N_EQUAL			0x0E
#define QSFP_DD_COPPER_LINEAR_EQUAL		0x0F

/*-----------------------------------------------------------------------
 * Upper Memory Page 0x01: contains advertising fields that define properties
 * that are unique to active modules and cable assemblies.
 * RealOffset = 1 * 0x80 + LocalOffset
 */
#define PAG01H_UPPER_OFFSET			(0x01 * 0x80)

/* Supported Link Length (Page 1) */
#define QSFP_DD_SMF_LEN_OFFSET			(PAG01H_UPPER_OFFSET + 0x84)
#define QSFP_DD_OM5_LEN_OFFSET			(PAG01H_UPPER_OFFSET + 0x85)
#define QSFP_DD_OM4_LEN_OFFSET			(PAG01H_UPPER_OFFSET + 0x86)
#define QSFP_DD_OM3_LEN_OFFSET			(PAG01H_UPPER_OFFSET + 0x87)
#define QSFP_DD_OM2_LEN_OFFSET			(PAG01H_UPPER_OFFSET + 0x88)

/* Wavelength (Page 1) */
#define QSFP_DD_NOM_WAVELENGTH_MSB		(PAG01H_UPPER_OFFSET + 0x8A)
#define QSFP_DD_NOM_WAVELENGTH_LSB		(PAG01H_UPPER_OFFSET + 0x8B)
#define QSFP_DD_WAVELENGTH_TOL_MSB		(PAG01H_UPPER_OFFSET + 0x8C)
#define QSFP_DD_WAVELENGTH_TOL_LSB		(PAG01H_UPPER_OFFSET + 0x8D)

/* Signal integrity controls */
#define QSFP_DD_SIG_INTEG_TX_OFFSET		(PAG01H_UPPER_OFFSET + 0xA1)
#define QSFP_DD_SIG_INTEG_RX_OFFSET		(PAG01H_UPPER_OFFSET + 0xA2)

#define YESNO(x) (((x) != 0) ? "Yes" : "No")
#define ONOFF(x) (((x) != 0) ? "On" : "Off")

void qsfp_dd_show_all(const __u8 *id);

#endif /* QSFP_DD_H__ */