1291a2b48SSukumar Swaminathan /*
2291a2b48SSukumar Swaminathan  * CDDL HEADER START
3291a2b48SSukumar Swaminathan  *
4291a2b48SSukumar Swaminathan  * The contents of this file are subject to the terms of the
5291a2b48SSukumar Swaminathan  * Common Development and Distribution License (the "License").
6291a2b48SSukumar Swaminathan  * You may not use this file except in compliance with the License.
7291a2b48SSukumar Swaminathan  *
8291a2b48SSukumar Swaminathan  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9291a2b48SSukumar Swaminathan  * or http://www.opensolaris.org/os/licensing.
10291a2b48SSukumar Swaminathan  * See the License for the specific language governing permissions
11291a2b48SSukumar Swaminathan  * and limitations under the License.
12291a2b48SSukumar Swaminathan  *
13291a2b48SSukumar Swaminathan  * When distributing Covered Code, include this CDDL HEADER in each
14291a2b48SSukumar Swaminathan  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15291a2b48SSukumar Swaminathan  * If applicable, add the following below this CDDL HEADER, with the
16291a2b48SSukumar Swaminathan  * fields enclosed by brackets "[]" replaced with your own identifying
17291a2b48SSukumar Swaminathan  * information: Portions Copyright [yyyy] [name of copyright owner]
18291a2b48SSukumar Swaminathan  *
19291a2b48SSukumar Swaminathan  * CDDL HEADER END
20291a2b48SSukumar Swaminathan  */
21291a2b48SSukumar Swaminathan 
22291a2b48SSukumar Swaminathan /*
23291a2b48SSukumar Swaminathan  * Copyright 2009 Emulex.  All rights reserved.
24*82527734SSukumar Swaminathan  * Use is subject to license terms.
25291a2b48SSukumar Swaminathan  */
26291a2b48SSukumar Swaminathan 
27291a2b48SSukumar Swaminathan #ifndef _EMLXS_DUMP_H
28291a2b48SSukumar Swaminathan #define	_EMLXS_DUMP_H
29291a2b48SSukumar Swaminathan 
30291a2b48SSukumar Swaminathan #ifdef	__cplusplus
31291a2b48SSukumar Swaminathan extern "C" {
32291a2b48SSukumar Swaminathan #endif
33291a2b48SSukumar Swaminathan 
34291a2b48SSukumar Swaminathan typedef struct emlxs_file
35291a2b48SSukumar Swaminathan {
36291a2b48SSukumar Swaminathan 	uint8_t *buffer;
37291a2b48SSukumar Swaminathan 	uint8_t *ptr;
38291a2b48SSukumar Swaminathan 	uint32_t size;
39291a2b48SSukumar Swaminathan 
40291a2b48SSukumar Swaminathan } emlxs_file_t;
41291a2b48SSukumar Swaminathan 
42291a2b48SSukumar Swaminathan typedef struct dump_temp_event
43291a2b48SSukumar Swaminathan {
44291a2b48SSukumar Swaminathan 	struct emlxs_hba *hba;
45291a2b48SSukumar Swaminathan 	uint32_t type;
46291a2b48SSukumar Swaminathan 	uint32_t temp;
47291a2b48SSukumar Swaminathan 
48291a2b48SSukumar Swaminathan } dump_temp_event_t;
49291a2b48SSukumar Swaminathan 
50291a2b48SSukumar Swaminathan #define	EMLXS_TXT_FILE_SIZE	(1024*1024)
51*82527734SSukumar Swaminathan #define	EMLXS_DMP_FILE_SIZE	((8*1024*1024)+0x100)
52*82527734SSukumar Swaminathan /* #define	EMLXS_DMP_FILE_SIZE	(4*1024*1024) */
53291a2b48SSukumar Swaminathan #define	EMLXS_CEE_FILE_SIZE	(1024*1024)
54291a2b48SSukumar Swaminathan 
55291a2b48SSukumar Swaminathan /* Maximum BC for DUMP w/o MBX Extension */
56291a2b48SSukumar Swaminathan #define	DUMP_BC_MAX		(0x18 * 4)
57291a2b48SSukumar Swaminathan 
58291a2b48SSukumar Swaminathan /* Conditional Compile Symbols */
59291a2b48SSukumar Swaminathan 
60291a2b48SSukumar Swaminathan #define	CC_DUMP_FW_BUG_1	1	/* 1 = workaround for FW Bug */
61291a2b48SSukumar Swaminathan #define	CC_DUMP_ENABLE_PAD	1	/* 1 = enable DMP File Padding */
62291a2b48SSukumar Swaminathan 
63291a2b48SSukumar Swaminathan /* The following define controls whether the Dump Routines, */
64291a2b48SSukumar Swaminathan /* in the Port Memory Dump, */
65291a2b48SSukumar Swaminathan /* use all (potentially up to 3) Dump Tables, or only Dump Table #1. */
66291a2b48SSukumar Swaminathan /* This is a diagnostic feature only, and is not compiled in releases. */
67291a2b48SSukumar Swaminathan /* If enabled, this feature provides a way to test all the FW Dump Tables, */
68291a2b48SSukumar Swaminathan /* a debugging courtesy to the FW group. */
69291a2b48SSukumar Swaminathan 
70291a2b48SSukumar Swaminathan /* 1 = all Dump Tables; 0 = Table 1 Only */
71291a2b48SSukumar Swaminathan #define	CC_DUMP_USE_ALL_TABLES	1
72291a2b48SSukumar Swaminathan 
73291a2b48SSukumar Swaminathan /* Dump Type: loaded into gDumpType; controls */
74291a2b48SSukumar Swaminathan /* operation of many dump functions */
75291a2b48SSukumar Swaminathan #define	DUMP_TYPE_USER		0	/* User-Initiated Dump */
76291a2b48SSukumar Swaminathan #define	DUMP_TYPE_DRIVER	1	/* Normal Driver-Initiated Dump */
77291a2b48SSukumar Swaminathan #define	DUMP_TYPE_TEMP		2	/* Driver-Initiated Temp Event Dump */
78291a2b48SSukumar Swaminathan 
79291a2b48SSukumar Swaminathan /* Dump Temperature  tempType Event codes (from DFC) */
80291a2b48SSukumar Swaminathan #define	TEMP_TYPE_CRITICAL	1
81291a2b48SSukumar Swaminathan #define	TEMP_TYPE_THRESHOLD	2
82291a2b48SSukumar Swaminathan #define	TEMP_TYPE_NORMAL	3
83291a2b48SSukumar Swaminathan 
84291a2b48SSukumar Swaminathan /* Misc Defines */
85291a2b48SSukumar Swaminathan 
86291a2b48SSukumar Swaminathan #define	DUMP_SEMAPHORE_RETRY	200	/* times to retry acquiring sema */
87291a2b48SSukumar Swaminathan 
88291a2b48SSukumar Swaminathan #define	DUMP_RETENTION_CNT_DEF	10	/* files to retain before purging */
89291a2b48SSukumar Swaminathan #define	DUMP_RETENTION_CNT_MAX	500	/* (Linux KW ID 122) */
90291a2b48SSukumar Swaminathan 
91291a2b48SSukumar Swaminathan #define	DUMP_TXT_FILE		0
92291a2b48SSukumar Swaminathan #define	DUMP_DMP_FILE		1
93291a2b48SSukumar Swaminathan #define	DUMP_CEE_FILE		2
94291a2b48SSukumar Swaminathan 
95291a2b48SSukumar Swaminathan /* Driver Name Strings */
96291a2b48SSukumar Swaminathan #define	DUMP_DRV_UNK		"Unknown"
97291a2b48SSukumar Swaminathan #define	DUMP_DRV_LEADVILLE	"Solaris emlxs"
98291a2b48SSukumar Swaminathan 
99291a2b48SSukumar Swaminathan /* SIDs (Dump File Segment Identifiers) */
100291a2b48SSukumar Swaminathan 
101291a2b48SSukumar Swaminathan /* SID Control Bits */
102291a2b48SSukumar Swaminathan #define	SID_MULT_ELEM		0x20	/* indicates structures, not bytes */
103291a2b48SSukumar Swaminathan 
104291a2b48SSukumar Swaminathan /* This set of SIDs is defined in "LightPulse Dump Facility Design Guide" */
105291a2b48SSukumar Swaminathan #define	SID_NULL		0x00	/* Null SID */
106291a2b48SSukumar Swaminathan #define	SID_ID01		0x01	/* Dump Table Identification */
107291a2b48SSukumar Swaminathan #define	SID_ID02		0x02	/* Dump Table Identification */
108291a2b48SSukumar Swaminathan #define	SID_ID03		0x03	/* Dump Table Identification */
109291a2b48SSukumar Swaminathan #define	SID_TERM		0x04	/* Dump Table Termination */
110291a2b48SSukumar Swaminathan #define	SID_SLIM		0x05	/* SLIM */
111291a2b48SSukumar Swaminathan #define	SID_05			0x06	/* reserved */
112291a2b48SSukumar Swaminathan #define	SID_PCI_CONFIG		0x07	/* PCI Cfg Registers (Direct) */
113291a2b48SSukumar Swaminathan #define	SID_SLI_REGS		0x08	/* SLI Registers (Direct) */
114291a2b48SSukumar Swaminathan #define	SID_29			0x29	/* reserved */
115291a2b48SSukumar Swaminathan #define	SID_PCI_CONFIG_I	0x47	/* PCI Cfg Registers (Indirect) */
116291a2b48SSukumar Swaminathan #define	SID_SLI_I		0x48	/* SLI Registers (Indirect) */
117291a2b48SSukumar Swaminathan #define	SID_DUMP_ID_LE		0x80	/* Dump Id, Little-endian system. */
118291a2b48SSukumar Swaminathan #define	SID_DUMP_ID_BE		0x81	/* Dump Id, Big-endian system. */
119291a2b48SSukumar Swaminathan #define	SID_DUMP_TERM		0x82	/* Dump Termination. Last byte */
120291a2b48SSukumar Swaminathan #define	SID_LEGEND		0x83	/* Legend */
121291a2b48SSukumar Swaminathan #define	SID_PCB			0x84	/* PCB */
122291a2b48SSukumar Swaminathan #define	SID_MBX			0x86	/* Mailbox */
123291a2b48SSukumar Swaminathan #define	SID_HOST_PTRS		0x87	/* Host Put/Get Pointer Array */
124291a2b48SSukumar Swaminathan #define	SID_PORT_PTRS		0x88	/* Port Get/Put Pointer Array */
125291a2b48SSukumar Swaminathan #define	SID_RINGS		0xA9	/* Command/Response Rings */
126291a2b48SSukumar Swaminathan #define	SID_PCB_A		0xC4	/* PCB */
127291a2b48SSukumar Swaminathan #define	SID_MBX_A		0xC6	/* Mailbox */
128291a2b48SSukumar Swaminathan #define	SID_HOST_PTRS_A		0xC7	/* Host Put/Get Pointer Array */
129291a2b48SSukumar Swaminathan #define	SID_PORT_PTRS_A		0xC8	/* Port Get/Put Pointer Array */
130291a2b48SSukumar Swaminathan #define	SID_BUFFER_LISTS	0xCA	/* Buffer Lists */
131291a2b48SSukumar Swaminathan #define	SID_RINGS_A		0xE9	/* Command/Response Rings */
132291a2b48SSukumar Swaminathan #define	SID_BUFFER_LISTS_A	0xEA	/* Buffer Lists */
133291a2b48SSukumar Swaminathan 
134291a2b48SSukumar Swaminathan /* This set of SIDs is defined in "HBAnyware v2.3 */
135291a2b48SSukumar Swaminathan /* Dump Feature Design Specification" */
136291a2b48SSukumar Swaminathan 
137291a2b48SSukumar Swaminathan #define	SID_HBA_MEM_DUMP	0x11	/* HBA Memory Dump */
138291a2b48SSukumar Swaminathan #define	SID_REV_INFO		0x90	/* Revision Information */
139291a2b48SSukumar Swaminathan #define	SID_HBA_INFO		0x91	/* HBA Information */
140291a2b48SSukumar Swaminathan #define	SID_DP_TABLE		0x92	/* Driver Parm Table */
141291a2b48SSukumar Swaminathan #define	SID_DP_UNIX		0x93	/* Driver Parm, config (Unix) */
142291a2b48SSukumar Swaminathan #define	SID_DP_WINDOWS		0x94	/* Driver Parm, Reg Entries (Win) */
143291a2b48SSukumar Swaminathan #define	SID_INTERNAL_MP		0x95	/* Driver-specific Intrnl, Miniport */
144291a2b48SSukumar Swaminathan #define	SID_INTERNAL_SP		0x96	/* Driver-specific Intrnl, Storport */
145291a2b48SSukumar Swaminathan #define	SID_INTERNAL_SOL	0x97	/* Driver-specific Intrnl, Solaris */
146291a2b48SSukumar Swaminathan #define	SID_INTERNAL_L7X	0x98	/* Driver-specific Intrnl, Lnx 7x */
147291a2b48SSukumar Swaminathan #define	SID_INTERNAL_L8X	0x99	/* Driver-specific Intrnl, Lnx 8x */
148291a2b48SSukumar Swaminathan #define	SID_CONFIG_REGION	0x9A	/* Config Region Data */
149*82527734SSukumar Swaminathan #define	SID_NON_VOLATILE_LOG	0x9B	/* NV Log (Enterprise only) */
150291a2b48SSukumar Swaminathan 
151291a2b48SSukumar Swaminathan /* Legend Strings */
152291a2b48SSukumar Swaminathan 
153291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION		"Config Region Data"
154291a2b48SSukumar Swaminathan #define	LEGEND_HBA_MEM_DUMP		"HBA Memory Dump"
155291a2b48SSukumar Swaminathan #define	LEGEND_REV_INFO			"Revision Information"
156291a2b48SSukumar Swaminathan #define	LEGEND_HBA_INFO			"HBA Information"
157291a2b48SSukumar Swaminathan #define	LEGEND_DP_TABLE			"Driver Parameters: Table"
158291a2b48SSukumar Swaminathan #define	LEGEND_DP_UNIX		"Driver Parameters: Config File Entries"
159291a2b48SSukumar Swaminathan #define	LEGEND_DP_WINDOWS	"Driver Parameters: Registry Entries"
160291a2b48SSukumar Swaminathan #define	LEGEND_INTERNAL_MP	"Driver-specific Internal Structures, Miniport"
161291a2b48SSukumar Swaminathan #define	LEGEND_INTERNAL_SP	"Driver-specific Internal Structures, Storport"
162291a2b48SSukumar Swaminathan #define	LEGEND_INTERNAL_SOL	"Driver-specific Internal Structures, Solaris"
163291a2b48SSukumar Swaminathan #define	LEGEND_INTERNAL_L7X	"Driver-specific Internal Structures, Linux 7x"
164291a2b48SSukumar Swaminathan #define	LEGEND_INTERNAL_L8X	"Driver-specific Internal Structures, Linux 8x"
165291a2b48SSukumar Swaminathan #define	LEGEND_SLI_STRUCTURES		"SLI Interface Structures"
166291a2b48SSukumar Swaminathan #define	LEGEND_MENLO_LOG_CONFIG		"Converged Enhanced Ethernet (CEE) Log"
167291a2b48SSukumar Swaminathan #define	LEGEND_MENLO_LOG_PANIC_REGS	"\n\nPanic Log Registers\n"
168291a2b48SSukumar Swaminathan #define	LEGEND_MENLO_LOG_PANIC_LOGS	"\n\nPanic Log Entries\n"
169*82527734SSukumar Swaminathan #define	LEGEND_NON_VOLATILE_LOG		"Non-Volatile Log Data"
170291a2b48SSukumar Swaminathan 
171291a2b48SSukumar Swaminathan /* Sub-Legends associated with SID_HBA_MEM_DUMP // HBA Memory Dump */
172291a2b48SSukumar Swaminathan #define	LEGEND_HBA_MEM_DUMP_TABLE	"Dump Table"
173291a2b48SSukumar Swaminathan #define	LEGEND_HBA_MEM_DUMP_REGION	"Dump Region"
174291a2b48SSukumar Swaminathan 
175291a2b48SSukumar Swaminathan /* Sub-Legends associated with SID_REV_INFO // Revision Information */
176291a2b48SSukumar Swaminathan #define	LEGEND_REV_OS_VERSION		"OS Version"
177291a2b48SSukumar Swaminathan #define	LEGEND_REV_DRV_VERSION		"Driver Version"
178291a2b48SSukumar Swaminathan #define	LEGEND_REV_UTIL_VERSION		"HBAnyware Version"
179291a2b48SSukumar Swaminathan #define	LEGEND_REV_DFCLIB_VERSION	"DFC Lib Version"
180291a2b48SSukumar Swaminathan 
181291a2b48SSukumar Swaminathan /* Sub-Legends associated with SID_HBA_INFO // Adapter Information */
182291a2b48SSukumar Swaminathan #define	LEGEND_HBA_MODEL		"Adapter Model"
183291a2b48SSukumar Swaminathan #define	LEGEND_HBA_WWN			"Adapter WWN"
184291a2b48SSukumar Swaminathan #define	LEGEND_HBA_SN			"Adapter Serial Number"
185291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_VERSION		"Firmware Version"
186291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_OPVERSION		"Operational FW Version"
187291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_SLI1VERSION	"SLI-1 FW Version"
188291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_SLI2VERSION	"SLI-2 FW Version"
189291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_SLI3VERSION	"SLI-3 FW Version"
190291a2b48SSukumar Swaminathan #define	LEGEND_HBA_FW_KERNELVERSION	"Kernel FW Version"
191291a2b48SSukumar Swaminathan #define	LEGEND_HBA_BB_STATE		"Boot Bios State"
192291a2b48SSukumar Swaminathan #define	LEGEND_HBA_BB_VERSION		"Boot Bios Version"
193291a2b48SSukumar Swaminathan #define	LEGEND_HBA_LMSD_A0		"Link Module Serial Data: Page A0"
194291a2b48SSukumar Swaminathan #define	LEGEND_HBA_LMSD_A2		"Link Module Serial Data: Page A2"
195291a2b48SSukumar Swaminathan 
196291a2b48SSukumar Swaminathan /* Sub-Legends associated with SID_CONFIG_REGION // Configuration Region */
197291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_0	"Config Region 0: Non-volatile Params"
198291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_1	"Config Region 1: reserved"
199291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_2	"Config Region 2: reserved"
200291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_3	"Config Region 3: reserved"
201291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_4	"Config Region 4: Wake-up Params"
202291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_5	"Config Region 5: PCI Config, Default"
203291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_6	"Config Region 6: PCI Config, Alternate 1"
204291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_7	"Config Region 7: PCI Config, Alternate 2"
205291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_8	"Config Region 8: Boot Params, x86, Basic"
206291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_9	"Config Region 9: Boot Params, x86, Extended"
207291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_10	"Config Region 10: Boot Params, EFI"
208291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_11	"Config Region 11: reserved"
209291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_12	"Config Region 12: reserved"
210291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_13	"Config Region 13: reserved"
211291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_14	"Config Region 14: VPD"
212291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_15	"Config Region 15: Diagnostic Trace"
213291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_16	"Config Region 16: reserved"
214291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_17	\
215291a2b48SSukumar Swaminathan 	"Config Region 17: Physical Environment NV Params"
216291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_18	"Config Region 18: reserved"
217291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_19	"Config Region 19: reserved"
218291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_20	"Config Region 20: reserved"
219291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_21	"Config Region 21: Saved Wakeup Params"
220291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_22	"Config Region 22: reserved"
221291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_23	"Config Region 23: reserved"
222291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_24	"Config Region 24: reserved"
223291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_25	"Config Region 25: reserved"
224291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_26	"Config Region 26: reserved"
225291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_27	"Config Region 27: reserved"
226291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_28	"Config Region 28: reserved"
227291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_29	"Config Region 29: reserved"
228291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_30	"Config Region 30: reserved"
229291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_31	"Config Region 31: reserved"
230291a2b48SSukumar Swaminathan #define	LEGEND_CONFIG_REGION_32	"Config Region 32: IEEE Address"
231291a2b48SSukumar Swaminathan 
232291a2b48SSukumar Swaminathan /* Additional Sub-Legends for Region 4 */
233291a2b48SSukumar Swaminathan #define	LEGEND_CR4_INITIAL_LOAD		"Initial Load"
234291a2b48SSukumar Swaminathan #define	LEGEND_CR4_FLAGS		"Flags       "
235291a2b48SSukumar Swaminathan #define	LEGEND_CR4_BOOT_BIOS_ID		"Boot Bios ID"
236291a2b48SSukumar Swaminathan #define	LEGEND_CR4_SLI1_ID		"SLI-1 ID    "
237291a2b48SSukumar Swaminathan #define	LEGEND_CR4_SLI2_ID		"SLI-2 ID    "
238291a2b48SSukumar Swaminathan #define	LEGEND_CR4_SLI3_ID		"SLI-3 ID    "
239291a2b48SSukumar Swaminathan #define	LEGEND_CR4_SLI4_ID		"SLI-4 ID    "
240291a2b48SSukumar Swaminathan #define	LEGEND_CR4_EROM_ID		"E-Rom ID    "
241291a2b48SSukumar Swaminathan 
242291a2b48SSukumar Swaminathan /* Sub-Legends associated with SLI Interface Structures */
243291a2b48SSukumar Swaminathan #define	LEGEND_SLI_REGS		"SLI Registers"
244291a2b48SSukumar Swaminathan #define	LEGEND_SLIM		"SLIM"
245291a2b48SSukumar Swaminathan #define	LEGEND_PCB		"PCB"
246291a2b48SSukumar Swaminathan #define	LEGEND_MBX		"Mailbox"
247291a2b48SSukumar Swaminathan #define	LEGEND_HOST_PTRS	"Host Pointers"
248291a2b48SSukumar Swaminathan #define	LEGEND_PORT_PTRS	"Port Pointers"
249291a2b48SSukumar Swaminathan #define	LEGEND_RINGS		"Cmd/Rsp Rings"
250291a2b48SSukumar Swaminathan #define	LEGEND_DRIVER_SPEC	"Driver-Specific Internal Structures"
251291a2b48SSukumar Swaminathan 
252*82527734SSukumar Swaminathan /* Misc Legend Data */
253291a2b48SSukumar Swaminathan #define	LEGEND_NULL	""
254291a2b48SSukumar Swaminathan #define	LEGEND_NV_LOG_DRIVER_NOT_SUPPORTED \
255291a2b48SSukumar Swaminathan 	"NV Log not supported by the driver"
256291a2b48SSukumar Swaminathan #define	LEGEND_NV_LOG_STATUS_ERROR \
257291a2b48SSukumar Swaminathan 	"Error in getting NV Log status"
258291a2b48SSukumar Swaminathan #define	LEGEND_NV_LOG_ERROR \
259291a2b48SSukumar Swaminathan 	"Error in getting NV Log"
260291a2b48SSukumar Swaminathan 
261*82527734SSukumar Swaminathan #define	NV_LOG_NOT_INCLUDED_IN_DMP \
262*82527734SSukumar Swaminathan 	"Non-Volatile Log Dump is not included in the DMP file"
263*82527734SSukumar Swaminathan #define	NV_LOG_INCLUDED_IN_DMP \
264*82527734SSukumar Swaminathan 	"Non-Volatile Log Dump is included in the DMP file"
265*82527734SSukumar Swaminathan 
266*82527734SSukumar Swaminathan #define	NV_LOG_NOT_INCLUDED_IN_FAT \
267*82527734SSukumar Swaminathan 	"Non-Volatile Log Dump is not included in the FAT file"
268*82527734SSukumar Swaminathan #define	NV_LOG_INCLUDED_IN_FAT \
269*82527734SSukumar Swaminathan 	"Non-Volatile Log Dump is included in the FAT file"
270*82527734SSukumar Swaminathan 
271291a2b48SSukumar Swaminathan /* Dump Regions Definitions */
272291a2b48SSukumar Swaminathan #define	DR_SLI_REGS	0x0000
273291a2b48SSukumar Swaminathan #define	DR_SLIM		0x0001
274291a2b48SSukumar Swaminathan #define	DR_PCB		0x0002
275291a2b48SSukumar Swaminathan #define	DR_MBX		0x0003
276291a2b48SSukumar Swaminathan #define	DR_HOST_PTRS	0x0004
277291a2b48SSukumar Swaminathan #define	DR_PORT_PTRS	0x0005
278291a2b48SSukumar Swaminathan #define	DR_RINGS	0x0006
279291a2b48SSukumar Swaminathan #define	DR_INTERNAL	0x0007
280291a2b48SSukumar Swaminathan 
281291a2b48SSukumar Swaminathan /* DFC_GetDriverDumpRegions Status */
282291a2b48SSukumar Swaminathan #define	GDDR_ST_SUCCESS		0
283291a2b48SSukumar Swaminathan #define	GDDR_ST_ERROR		1	/* General Error */
284291a2b48SSukumar Swaminathan #define	GDDR_ST_BAD_ID		2	/* Bad Region Identifier */
285291a2b48SSukumar Swaminathan #define	GDDR_ST_BUF_OVERFLOW	3	/* Buffer Overflow */
286291a2b48SSukumar Swaminathan #define	GDDR_ST_ID_NA		4	/* Region Identifier Not Applicable */
287291a2b48SSukumar Swaminathan 
288291a2b48SSukumar Swaminathan /* Max size supported by dump Config Region routines */
289291a2b48SSukumar Swaminathan #define	DUMP_MAX_CONFIG_REGION_LENGTH   1000
290291a2b48SSukumar Swaminathan 
291291a2b48SSukumar Swaminathan 
292291a2b48SSukumar Swaminathan /* This is a simplified form of the wakeup params structure, */
293291a2b48SSukumar Swaminathan /* w/o all the bit fields, */
294291a2b48SSukumar Swaminathan /* for ease of displaying in the Dump File. */
295291a2b48SSukumar Swaminathan typedef struct _DUMP_WAKE_UP_PARAMS
296291a2b48SSukumar Swaminathan {
297291a2b48SSukumar Swaminathan 	uint32_t InitialId[2];
298291a2b48SSukumar Swaminathan 	uint32_t Flags;
299291a2b48SSukumar Swaminathan 	uint32_t BootBiosId[2];
300291a2b48SSukumar Swaminathan 	uint32_t Sli1Id[2];
301291a2b48SSukumar Swaminathan 	uint32_t Sli2Id[2];
302291a2b48SSukumar Swaminathan 	uint32_t Sli3Id[2];
303291a2b48SSukumar Swaminathan 	uint32_t Sli4Id[2];
304291a2b48SSukumar Swaminathan 	uint32_t EromId[2];
305291a2b48SSukumar Swaminathan } DUMP_WAKE_UP_PARAMS;
306291a2b48SSukumar Swaminathan 
307291a2b48SSukumar Swaminathan 
308291a2b48SSukumar Swaminathan typedef struct _DUMP_TABLE_ENTRY_PORT_STRUCT
309291a2b48SSukumar Swaminathan {
310291a2b48SSukumar Swaminathan 	union
311291a2b48SSukumar Swaminathan 	{
312291a2b48SSukumar Swaminathan 		uint32_t w[2];
313291a2b48SSukumar Swaminathan 		struct
314291a2b48SSukumar Swaminathan 		{
315291a2b48SSukumar Swaminathan #ifdef EMLXS_LITTLE_ENDIAN
316291a2b48SSukumar Swaminathan 			uint32_t count:16;	/* structure repeat count */
317291a2b48SSukumar Swaminathan 			uint32_t length:8;	/* structure length */
318291a2b48SSukumar Swaminathan 			uint32_t sid:8;	/* SID */
319291a2b48SSukumar Swaminathan #else
320291a2b48SSukumar Swaminathan 			uint32_t sid:8;	/* SID */
321291a2b48SSukumar Swaminathan 			uint32_t length:8;	/* structure length */
322291a2b48SSukumar Swaminathan 			uint32_t count:16;	/* structure repeat count */
323291a2b48SSukumar Swaminathan #endif
324291a2b48SSukumar Swaminathan 			uint32_t addr;	/* address */
325291a2b48SSukumar Swaminathan 		} s;
326291a2b48SSukumar Swaminathan 
327291a2b48SSukumar Swaminathan 	} un;
328291a2b48SSukumar Swaminathan 
329291a2b48SSukumar Swaminathan } DUMP_TABLE_ENTRY_PORT_STRUCT;
330291a2b48SSukumar Swaminathan 
331291a2b48SSukumar Swaminathan 
332291a2b48SSukumar Swaminathan /* This is a simplified form of the Dump Table Entry structures. */
333291a2b48SSukumar Swaminathan typedef struct _DUMP_TABLE_ENTRY_PORT_BLK
334291a2b48SSukumar Swaminathan {
335291a2b48SSukumar Swaminathan 	union
336291a2b48SSukumar Swaminathan 	{
337291a2b48SSukumar Swaminathan 		uint32_t w[2];
338291a2b48SSukumar Swaminathan 		struct
339291a2b48SSukumar Swaminathan 		{
340291a2b48SSukumar Swaminathan 
341291a2b48SSukumar Swaminathan #ifdef EMLXS_LITTLE_ENDIAN
342291a2b48SSukumar Swaminathan 			uint32_t bc:24;	/* byte count */
343291a2b48SSukumar Swaminathan 			uint32_t sid:8;	/* SID */
344291a2b48SSukumar Swaminathan #else
345291a2b48SSukumar Swaminathan 			uint32_t sid:8;	/* SID */
346291a2b48SSukumar Swaminathan 			uint32_t bc:24;	/* byte count */
347291a2b48SSukumar Swaminathan #endif
348291a2b48SSukumar Swaminathan 			uint32_t addr;	/* address */
349291a2b48SSukumar Swaminathan 		} s;
350291a2b48SSukumar Swaminathan 
351291a2b48SSukumar Swaminathan 	} un;
352291a2b48SSukumar Swaminathan 
353291a2b48SSukumar Swaminathan } DUMP_TABLE_ENTRY_PORT_BLK;
354291a2b48SSukumar Swaminathan 
355291a2b48SSukumar Swaminathan 
356291a2b48SSukumar Swaminathan typedef struct _DUMP_TABLE_ENTRY
357291a2b48SSukumar Swaminathan {
358291a2b48SSukumar Swaminathan 	union
359291a2b48SSukumar Swaminathan 	{
360291a2b48SSukumar Swaminathan 		DUMP_TABLE_ENTRY_PORT_BLK PortBlock;
361291a2b48SSukumar Swaminathan 		DUMP_TABLE_ENTRY_PORT_STRUCT PortStruct;
362291a2b48SSukumar Swaminathan 
363291a2b48SSukumar Swaminathan 	} un;
364291a2b48SSukumar Swaminathan 
365291a2b48SSukumar Swaminathan } DUMP_TABLE_ENTRY;
366291a2b48SSukumar Swaminathan 
367291a2b48SSukumar Swaminathan /* VPD Data Defines */
368291a2b48SSukumar Swaminathan 
369291a2b48SSukumar Swaminathan #define	VPD_TAG_82  0x82	/* start of VPD Data: Device Name */
370291a2b48SSukumar Swaminathan #define	VPD_TAG_90  0x90	/* start of Read-Only Area */
371291a2b48SSukumar Swaminathan #define	VPD_TAG_FF  0x0F	/* end tag */
372291a2b48SSukumar Swaminathan 
373291a2b48SSukumar Swaminathan #ifdef	__cplusplus
374291a2b48SSukumar Swaminathan }
375291a2b48SSukumar Swaminathan #endif
376291a2b48SSukumar Swaminathan 
377291a2b48SSukumar Swaminathan #endif	/* _EMLXS_DUMP_H */
378