xref: /NextBSD/sys/dev/vxge/vxgehal/vxgehal-mgmtaux.c (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /*-
2  * Copyright(c) 2002-2011 Exar Corp.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification are permitted provided the following conditions are met:
7  *
8  *    1. Redistributions of source code must retain the above copyright notice,
9  *       this list of conditions and the following disclaimer.
10  *
11  *    2. Redistributions in binary form must reproduce the above copyright
12  *       notice, this list of conditions and the following disclaimer in the
13  *       documentation and/or other materials provided with the distribution.
14  *
15  *    3. Neither the name of the Exar Corporation nor the names of its
16  *       contributors may be used to endorse or promote products derived from
17  *       this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 /*$FreeBSD$*/
32 
33 #include <dev/vxge/vxgehal/vxgehal.h>
34 
35 #define	VXGE_HAL_AUX_SEPA		' '
36 
37 #define	__hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \
38 	if (bufsize <= 0) \
39 		return (VXGE_HAL_ERR_OUT_OF_SPACE); \
40 	retsize = vxge_os_snprintf(retbuf, bufsize, fmt, key, \
41 	    VXGE_HAL_AUX_SEPA, value); \
42 	if (retsize < 0 || retsize >= bufsize) \
43 		return (VXGE_HAL_ERR_OUT_OF_SPACE);
44 
45 #define	__HAL_AUX_ENTRY_DECLARE(size, buf) \
46 	int entrysize = 0, leftsize = size; \
47 	char *ptr; ptr = buf;
48 
49 #define	__HAL_AUX_ENTRY(key, value, fmt) \
50 	__hal_aux_snprintf(ptr, leftsize, "%s%c"fmt"\n", key, value, entrysize)\
51 	ptr += entrysize; leftsize -= entrysize;
52 
53 #define	__HAL_AUX_CONFIG_ENTRY(key, value, fmt) \
54 	if (value == VXGE_HAL_USE_FLASH_DEFAULT) { \
55 		__HAL_AUX_ENTRY(key, "FLASH DEFAULT", "%s"); \
56 	} else { \
57 		__HAL_AUX_ENTRY(key, value, fmt); \
58 	}
59 
60 #define	__HAL_AUX_ENTRY_END(bufsize, retsize) \
61 	*retsize = bufsize - leftsize;
62 
63 #define	__hal_aux_pci_link_info(name, index, var) {	\
64 		__HAL_AUX_ENTRY(name,			\
65 		    (u64)pcim.link_info[index].var, "%llu") \
66 	}
67 
68 #define	__hal_aux_pci_aggr_info(name, index, var) { \
69 		__HAL_AUX_ENTRY(name,				\
70 		    (u64)pcim.aggr_info[index].var, "%llu") \
71 	}
72 
73 /*
74  * vxge_hal_aux_about_read - Retrieve and format about info.
75  * @devh: HAL device handle.
76  * @bufsize: Buffer size.
77  * @retbuf: Buffer pointer.
78  * @retsize: Size of the result. Cannot be greater than @bufsize.
79  *
80  * Retrieve about info (using vxge_hal_mgmt_about()) and sprintf it
81  * into the provided @retbuf.
82  *
83  * Returns: VXGE_HAL_OK - success.
84  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
85  * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
86  * VXGE_HAL_FAIL - Failed to retrieve the information.
87  *
88  * See also: vxge_hal_mgmt_about(), vxge_hal_aux_device_dump().
89  */
90 vxge_hal_status_e
vxge_hal_aux_about_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)91 vxge_hal_aux_about_read(vxge_hal_device_h devh, int bufsize,
92     char *retbuf, int *retsize)
93 {
94 	u32 size = sizeof(vxge_hal_mgmt_about_info_t);
95 	vxge_hal_status_e status;
96 	vxge_hal_mgmt_about_info_t about_info;
97 
98 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
99 
100 	status = vxge_hal_mgmt_about(devh, &about_info, &size);
101 	if (status != VXGE_HAL_OK)
102 		return (status);
103 
104 	__HAL_AUX_ENTRY("vendor", about_info.vendor, "0x%x");
105 	__HAL_AUX_ENTRY("device", about_info.device, "0x%x");
106 	__HAL_AUX_ENTRY("subsys_vendor", about_info.subsys_vendor, "0x%x");
107 	__HAL_AUX_ENTRY("subsys_device", about_info.subsys_device, "0x%x");
108 	__HAL_AUX_ENTRY("board_rev", about_info.board_rev, "0x%x");
109 	__HAL_AUX_ENTRY("vendor_name", about_info.vendor_name, "%s");
110 	__HAL_AUX_ENTRY("chip_name", about_info.chip_name, "%s");
111 	__HAL_AUX_ENTRY("media", about_info.media, "%s");
112 	__HAL_AUX_ENTRY("hal_major", about_info.hal_major, "%s");
113 	__HAL_AUX_ENTRY("hal_minor", about_info.hal_minor, "%s");
114 	__HAL_AUX_ENTRY("hal_fix", about_info.hal_fix, "%s");
115 	__HAL_AUX_ENTRY("hal_build", about_info.hal_build, "%s");
116 	__HAL_AUX_ENTRY("ll_major", about_info.ll_major, "%s");
117 	__HAL_AUX_ENTRY("ll_minor", about_info.ll_minor, "%s");
118 	__HAL_AUX_ENTRY("ll_fix", about_info.ll_fix, "%s");
119 	__HAL_AUX_ENTRY("ll_build", about_info.ll_build, "%s");
120 
121 	__HAL_AUX_ENTRY_END(bufsize, retsize);
122 
123 	return (VXGE_HAL_OK);
124 }
125 
126 /*
127  * vxge_hal_aux_driver_config_read - Read Driver configuration.
128  * @bufsize: Buffer size.
129  * @retbuf: Buffer pointer.
130  * @retsize: Size of the result. Cannot be greater than @bufsize.
131  *
132  * Read driver configuration,
133  *
134  * Returns: VXGE_HAL_OK - success.
135  * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
136  *
137  * See also: vxge_hal_aux_device_config_read().
138  */
139 vxge_hal_status_e
vxge_hal_aux_driver_config_read(int bufsize,char * retbuf,int * retsize)140 vxge_hal_aux_driver_config_read(int bufsize, char *retbuf, int *retsize)
141 {
142 	u32 size = sizeof(vxge_hal_driver_config_t);
143 	vxge_hal_status_e status;
144 	vxge_hal_driver_config_t drv_config;
145 
146 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
147 
148 	status = vxge_hal_mgmt_driver_config(&drv_config, &size);
149 	if (status != VXGE_HAL_OK)
150 		return (status);
151 
152 	__HAL_AUX_ENTRY("Debug Level",
153 	    g_vxge_hal_driver->debug_level, "%u");
154 	__HAL_AUX_ENTRY_END(bufsize, retsize);
155 
156 	return (VXGE_HAL_OK);
157 }
158 
159 /*
160  * vxge_hal_aux_pci_config_read - Retrieve and format PCI Configuration
161  * info.
162  * @devh: HAL device handle.
163  * @bufsize: Buffer size.
164  * @retbuf: Buffer pointer.
165  * @retsize: Size of the result. Cannot be greater than @bufsize.
166  *
167  * Retrieve about info (using vxge_hal_mgmt_pci_config()) and sprintf it
168  * into the provided @retbuf.
169  *
170  * Returns: VXGE_HAL_OK - success.
171  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
172  * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
173  *
174  * See also: vxge_hal_mgmt_pci_config(), vxge_hal_aux_device_dump().
175  */
176 vxge_hal_status_e
vxge_hal_aux_pci_config_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)177 vxge_hal_aux_pci_config_read(
178     vxge_hal_device_h devh,
179     int bufsize,
180     char *retbuf,
181     int *retsize)
182 {
183 	u8 cap_id;
184 	u16 ext_cap_id;
185 	u16 next_ptr;
186 	u32 size = sizeof(vxge_hal_pci_config_t);
187 	vxge_hal_status_e status;
188 	vxge_hal_pci_config_t *pci_config =
189 	&((__hal_device_t *) devh)->pci_config_space;
190 	vxge_hal_mgmt_pm_cap_t pm_cap;
191 	vxge_hal_mgmt_sid_cap_t sid_cap;
192 	vxge_hal_mgmt_msi_cap_t msi_cap;
193 	vxge_hal_mgmt_msix_cap_t msix_cap;
194 	vxge_hal_pci_err_cap_t err_cap;
195 
196 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
197 
198 	status = vxge_hal_mgmt_pci_config(devh, (u8 *) pci_config, &size);
199 	if (status != VXGE_HAL_OK)
200 		return (status);
201 
202 	__HAL_AUX_ENTRY("vendor_id", pci_config->vendor_id, "0x%04X");
203 	__HAL_AUX_ENTRY("device_id", pci_config->device_id, "0x%04X");
204 	__HAL_AUX_ENTRY("command", pci_config->command, "0x%04X");
205 	__HAL_AUX_ENTRY("status", pci_config->status, "0x%04X");
206 	__HAL_AUX_ENTRY("revision", pci_config->revision, "0x%02X");
207 	__HAL_AUX_ENTRY("pciClass1", pci_config->pciClass[0], "0x%02X");
208 	__HAL_AUX_ENTRY("pciClass2", pci_config->pciClass[1], "0x%02X");
209 	__HAL_AUX_ENTRY("pciClass3", pci_config->pciClass[2], "0x%02X");
210 	__HAL_AUX_ENTRY("cache_line_size",
211 	    pci_config->cache_line_size, "0x%02X");
212 	__HAL_AUX_ENTRY("header_type", pci_config->header_type, "0x%02X");
213 	__HAL_AUX_ENTRY("bist", pci_config->bist, "0x%02X");
214 	__HAL_AUX_ENTRY("base_addr0_lo", pci_config->base_addr0_lo, "0x%08X");
215 	__HAL_AUX_ENTRY("base_addr0_hi", pci_config->base_addr0_hi, "0x%08X");
216 	__HAL_AUX_ENTRY("base_addr1_lo", pci_config->base_addr1_lo, "0x%08X");
217 	__HAL_AUX_ENTRY("base_addr1_hi", pci_config->base_addr1_hi, "0x%08X");
218 	__HAL_AUX_ENTRY("not_Implemented1",
219 	    pci_config->not_Implemented1, "0x%08X");
220 	__HAL_AUX_ENTRY("not_Implemented2", pci_config->not_Implemented2,
221 	    "0x%08X");
222 	__HAL_AUX_ENTRY("cardbus_cis_pointer", pci_config->cardbus_cis_pointer,
223 	    "0x%08X");
224 	__HAL_AUX_ENTRY("subsystem_vendor_id", pci_config->subsystem_vendor_id,
225 	    "0x%04X");
226 	__HAL_AUX_ENTRY("subsystem_id", pci_config->subsystem_id, "0x%04X");
227 	__HAL_AUX_ENTRY("rom_base", pci_config->rom_base, "0x%08X");
228 	__HAL_AUX_ENTRY("capabilities_pointer",
229 	    pci_config->capabilities_pointer, "0x%02X");
230 	__HAL_AUX_ENTRY("interrupt_line", pci_config->interrupt_line, "0x%02X");
231 	__HAL_AUX_ENTRY("interrupt_pin", pci_config->interrupt_pin, "0x%02X");
232 	__HAL_AUX_ENTRY("min_grant", pci_config->min_grant, "0x%02X");
233 	__HAL_AUX_ENTRY("max_latency", pci_config->max_latency, "0x%02X");
234 
235 	next_ptr = pci_config->capabilities_pointer;
236 
237 	while (next_ptr != 0) {
238 
239 		cap_id = VXGE_HAL_PCI_CAP_ID((((u8 *) pci_config) + next_ptr));
240 
241 		switch (cap_id) {
242 
243 		case VXGE_HAL_PCI_CAP_ID_PM:
244 			status = vxge_hal_mgmt_pm_capabilities_get(devh,
245 			    &pm_cap);
246 			if (status != VXGE_HAL_OK)
247 				return (status);
248 
249 			__HAL_AUX_ENTRY("PM Capability",
250 			    cap_id, "0x%02X");
251 			__HAL_AUX_ENTRY("pm_cap_ver",
252 			    pm_cap.pm_cap_ver, "%u");
253 			__HAL_AUX_ENTRY("pm_cap_pme_clock",
254 			    pm_cap.pm_cap_pme_clock, "%u");
255 			__HAL_AUX_ENTRY("pm_cap_aux_power",
256 			    pm_cap.pm_cap_aux_power, "%u");
257 			__HAL_AUX_ENTRY("pm_cap_dsi",
258 			    pm_cap.pm_cap_dsi, "%u");
259 			__HAL_AUX_ENTRY("pm_cap_aux_current",
260 			    pm_cap.pm_cap_aux_current, "%u");
261 			__HAL_AUX_ENTRY("pm_cap_cap_d0",
262 			    pm_cap.pm_cap_cap_d0, "%u");
263 			__HAL_AUX_ENTRY("pm_cap_cap_d1",
264 			    pm_cap.pm_cap_cap_d1, "%u");
265 			__HAL_AUX_ENTRY("pm_cap_pme_d0",
266 			    pm_cap.pm_cap_pme_d0, "%u");
267 			__HAL_AUX_ENTRY("pm_cap_pme_d1",
268 			    pm_cap.pm_cap_pme_d1, "%u");
269 			__HAL_AUX_ENTRY("pm_cap_pme_d2",
270 			    pm_cap.pm_cap_pme_d2, "%u");
271 			__HAL_AUX_ENTRY("pm_cap_pme_d3_hot",
272 			    pm_cap.pm_cap_pme_d3_hot, "%u");
273 			__HAL_AUX_ENTRY("pm_cap_pme_d3_cold",
274 			    pm_cap.pm_cap_pme_d3_cold, "%u");
275 			__HAL_AUX_ENTRY("pm_ctrl_state",
276 			    pm_cap.pm_ctrl_state, "%u");
277 			__HAL_AUX_ENTRY("pm_ctrl_no_soft_reset",
278 			    pm_cap.pm_ctrl_no_soft_reset, "%u");
279 			__HAL_AUX_ENTRY("pm_ctrl_pme_enable",
280 			    pm_cap.pm_ctrl_pme_enable, "%u");
281 			__HAL_AUX_ENTRY("pm_ctrl_pme_data_sel",
282 			    pm_cap.pm_ctrl_pme_data_sel, "%u");
283 			__HAL_AUX_ENTRY("pm_ctrl_pme_data_scale",
284 			    pm_cap.pm_ctrl_pme_data_scale, "%u");
285 			__HAL_AUX_ENTRY("pm_ctrl_pme_status",
286 			    pm_cap.pm_ctrl_pme_status, "%u");
287 			__HAL_AUX_ENTRY("pm_ppb_ext_b2_b3",
288 			    pm_cap.pm_ppb_ext_b2_b3, "%u");
289 			__HAL_AUX_ENTRY("pm_ppb_ext_ecc_en",
290 			    pm_cap.pm_ppb_ext_ecc_en, "%u");
291 			__HAL_AUX_ENTRY("pm_data_reg",
292 			    pm_cap.pm_data_reg, "%u");
293 			break;
294 		case VXGE_HAL_PCI_CAP_ID_VPD:
295 			break;
296 		case VXGE_HAL_PCI_CAP_ID_SLOTID:
297 			status = vxge_hal_mgmt_sid_capabilities_get(devh,
298 			    &sid_cap);
299 			if (status != VXGE_HAL_OK)
300 				return (status);
301 
302 			__HAL_AUX_ENTRY("SID Capability", cap_id, "0x%02X");
303 			__HAL_AUX_ENTRY("sid_number_of_slots",
304 			    sid_cap.sid_number_of_slots, "%u");
305 			__HAL_AUX_ENTRY("sid_first_in_chasis",
306 			    sid_cap.sid_first_in_chasis, "%u");
307 			__HAL_AUX_ENTRY("sid_chasis_number",
308 			    sid_cap.sid_chasis_number, "0x%u");
309 			break;
310 		case VXGE_HAL_PCI_CAP_ID_MSI:
311 			status = vxge_hal_mgmt_msi_capabilities_get(devh,
312 			    &msi_cap);
313 			if (status != VXGE_HAL_OK)
314 				return (status);
315 
316 			__HAL_AUX_ENTRY("MSI Capability", cap_id, "0x%02X");
317 			__HAL_AUX_ENTRY("MSI Enable", msi_cap.enable, "%u");
318 			__HAL_AUX_ENTRY("MSI 64bit Address Capable",
319 			    msi_cap.is_64bit_addr_capable, "%u");
320 			__HAL_AUX_ENTRY("MSI PVM Capable",
321 			    msi_cap.is_pvm_capable, "0x%02X");
322 			__HAL_AUX_ENTRY("MSI Vectors Allocated",
323 			    msi_cap.vectors_allocated, "0x%02X");
324 			__HAL_AUX_ENTRY("MSI Max Vectors",
325 			    msi_cap.max_vectors_capable, "0x%02X");
326 			if (msi_cap.is_64bit_addr_capable) {
327 				__HAL_AUX_ENTRY("MSI address",
328 				    msi_cap.address, "0x%016llX");
329 			} else {
330 				__HAL_AUX_ENTRY("MSI address",
331 				    msi_cap.address, "0x%08llX");
332 			}
333 			__HAL_AUX_ENTRY("MSI Data", msi_cap.data, "0x%04X");
334 			if (msi_cap.is_pvm_capable) {
335 				__HAL_AUX_ENTRY("MSI Mask bits",
336 				    msi_cap.mask_bits, "0x%08X");
337 				__HAL_AUX_ENTRY("MSI Pending bits",
338 				    msi_cap.pending_bits, "0x%08X");
339 			}
340 			break;
341 		case VXGE_HAL_PCI_CAP_ID_VS:
342 			break;
343 		case VXGE_HAL_PCI_CAP_ID_SHPC:
344 			break;
345 		case VXGE_HAL_PCI_CAP_ID_PCIE:
346 			break;
347 		case VXGE_HAL_PCI_CAP_ID_MSIX:
348 			status = vxge_hal_mgmt_msix_capabilities_get(devh,
349 			    &msix_cap);
350 			if (status != VXGE_HAL_OK)
351 				return (status);
352 
353 			__HAL_AUX_ENTRY("MSIX Capability", cap_id, "0x%02X");
354 			__HAL_AUX_ENTRY("MSIX Enable", msix_cap.enable, "%u");
355 			__HAL_AUX_ENTRY("MSIX Mask All vectors",
356 			    msix_cap.mask_all_vect, "%u");
357 			__HAL_AUX_ENTRY("MSIX Table Size",
358 			    msix_cap.table_size, "%u");
359 			__HAL_AUX_ENTRY("MSIX Table Offset",
360 			    msix_cap.table_offset, "%u");
361 			__HAL_AUX_ENTRY("MSIX Table BIR",
362 			    msix_cap.table_bir, "%u");
363 			__HAL_AUX_ENTRY("MSIX PBA Offset",
364 			    msix_cap.pba_offset, "%u");
365 			__HAL_AUX_ENTRY("MSIX PBA BIR", msix_cap.pba_bir, "%u");
366 			break;
367 		case VXGE_HAL_PCI_CAP_ID_AGP:
368 		case VXGE_HAL_PCI_CAP_ID_CHSWP:
369 		case VXGE_HAL_PCI_CAP_ID_PCIX:
370 		case VXGE_HAL_PCI_CAP_ID_HT:
371 		case VXGE_HAL_PCI_CAP_ID_DBGPORT:
372 		case VXGE_HAL_PCI_CAP_ID_CPCICSR:
373 		case VXGE_HAL_PCI_CAP_ID_PCIBSVID:
374 		case VXGE_HAL_PCI_CAP_ID_AGP8X:
375 		case VXGE_HAL_PCI_CAP_ID_SECDEV:
376 			__HAL_AUX_ENTRY("Unexpected Capability",
377 			    cap_id, "0x%02X");
378 			break;
379 		default:
380 			__HAL_AUX_ENTRY("Unknown Capability",
381 			    cap_id, "0x%02X");
382 			break;
383 		}
384 
385 		next_ptr =
386 		    VXGE_HAL_PCI_CAP_NEXT((((u8 *) pci_config) + next_ptr));
387 
388 	}
389 
390 	/* CONSTCOND */
391 	if (VXGE_HAL_PCI_CONFIG_SPACE_SIZE > 0x100) {
392 
393 		next_ptr = 0x100;
394 
395 		while (next_ptr != 0) {
396 
397 			ext_cap_id = (u16) VXGE_HAL_PCI_EXT_CAP_ID(
398 			    *(u32 *)((void *)(((u8 *) pci_config) + next_ptr)));
399 
400 			switch (ext_cap_id) {
401 
402 			case VXGE_HAL_PCI_EXT_CAP_ID_ERR:
403 				status =
404 				    vxge_hal_mgmt_pci_err_capabilities_get(devh,
405 				    &err_cap);
406 				if (status != VXGE_HAL_OK)
407 					return (status);
408 
409 				__HAL_AUX_ENTRY("pci_err_header",
410 				    err_cap.pci_err_header, "0x%08X");
411 				__HAL_AUX_ENTRY("pci_err_uncor_status",
412 				    err_cap.pci_err_uncor_status, "0x%08X");
413 				__HAL_AUX_ENTRY("pci_err_uncor_mask",
414 				    err_cap.pci_err_uncor_mask, "0x%08X");
415 				__HAL_AUX_ENTRY("pci_err_uncor_server",
416 				    err_cap.pci_err_uncor_server, "0x%08X");
417 				__HAL_AUX_ENTRY("pci_err_cor_status",
418 				    err_cap.pci_err_cor_status, "0x%08X");
419 				__HAL_AUX_ENTRY("pci_err_cap",
420 				    err_cap.pci_err_cap, "0x%08X");
421 				__HAL_AUX_ENTRY("err_header_log",
422 				    err_cap.err_header_log, "%u");
423 				__HAL_AUX_ENTRY("pci_err_root_command",
424 				    err_cap.pci_err_root_command, "0x%08X");
425 				__HAL_AUX_ENTRY("pci_err_root_status",
426 				    err_cap.pci_err_root_status, "0x%08X");
427 				__HAL_AUX_ENTRY("pci_err_root_cor_src",
428 				    err_cap.pci_err_root_cor_src, "0x%04X");
429 				__HAL_AUX_ENTRY("pci_err_root_src",
430 				    err_cap.pci_err_root_src, "0x%04X");
431 				break;
432 			case VXGE_HAL_PCI_EXT_CAP_ID_VC:
433 				break;
434 			case VXGE_HAL_PCI_EXT_CAP_ID_DSN:
435 				break;
436 			case VXGE_HAL_PCI_EXT_CAP_ID_PWR:
437 				break;
438 			default:
439 				__HAL_AUX_ENTRY("Unknown Capability", cap_id,
440 				    "0x%02X");
441 				break;
442 			}
443 			next_ptr = (u16) VXGE_HAL_PCI_EXT_CAP_NEXT(
444 			    *(u32 *)((void *)(((u8 *) pci_config) + next_ptr)));
445 
446 		}
447 
448 	}
449 
450 	__HAL_AUX_ENTRY_END(bufsize, retsize);
451 
452 	return (VXGE_HAL_OK);
453 }
454 
455 /*
456  * vxge_hal_aux_device_config_read - Read device configuration.
457  * @devh: HAL device handle.
458  * @bufsize: Buffer size.
459  * @retbuf: Buffer pointer.
460  * @retsize: Size of the result. Cannot be greater than @bufsize.
461  *
462  * Read device configuration,
463  *
464  * Returns: VXGE_HAL_OK - success.
465  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
466  * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
467  *
468  * See also: vxge_hal_aux_driver_config_read().
469  */
470 vxge_hal_status_e
vxge_hal_aux_device_config_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)471 vxge_hal_aux_device_config_read(vxge_hal_device_h devh,
472     int bufsize, char *retbuf, int *retsize)
473 {
474 	int i;
475 	u32 size = sizeof(vxge_hal_device_config_t);
476 	vxge_hal_status_e status;
477 	vxge_hal_mac_config_t *mac_config;
478 	vxge_hal_device_config_t *dev_config;
479 	vxge_hal_device_t *hldev = (vxge_hal_device_t *) devh;
480 
481 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
482 
483 	dev_config = (vxge_hal_device_config_t *) vxge_os_malloc(hldev->pdev,
484 	    sizeof(vxge_hal_device_config_t));
485 	if (dev_config == NULL) {
486 		return (VXGE_HAL_FAIL);
487 	}
488 
489 	status = vxge_hal_mgmt_device_config(devh, dev_config, &size);
490 	if (status != VXGE_HAL_OK) {
491 		vxge_os_free(hldev->pdev, dev_config,
492 		    sizeof(vxge_hal_device_config_t));
493 		return (status);
494 	}
495 
496 	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Minimum",
497 	    dev_config->dma_blockpool_min, "%u");
498 	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Initial",
499 	    dev_config->dma_blockpool_initial, "%u");
500 	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Increment",
501 	    dev_config->dma_blockpool_incr, "%u");
502 	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Maximum",
503 	    dev_config->dma_blockpool_max, "%u");
504 	for (i = 0; i < VXGE_HAL_MAC_MAX_WIRE_PORTS; i++) {
505 		mac_config = &dev_config->mrpcim_config.mac_config;
506 		__HAL_AUX_CONFIG_ENTRY("port_id",
507 		    mac_config->wire_port_config[i].port_id, "%u");
508 		__HAL_AUX_CONFIG_ENTRY("media",
509 		    mac_config->wire_port_config[i].media, "%u");
510 		__HAL_AUX_CONFIG_ENTRY("mtu",
511 		    mac_config->wire_port_config[i].mtu, "%u");
512 		__HAL_AUX_CONFIG_ENTRY("autoneg_mode",
513 		    mac_config->wire_port_config[i].autoneg_mode, "%u");
514 		__HAL_AUX_CONFIG_ENTRY("fixed_use_fsm",
515 		    mac_config->wire_port_config[i].fixed_use_fsm, "%u");
516 		__HAL_AUX_CONFIG_ENTRY("antp_use_fsm",
517 		    mac_config->wire_port_config[i].antp_use_fsm, "%u");
518 		__HAL_AUX_CONFIG_ENTRY("anbe_use_fsm",
519 		    mac_config->wire_port_config[i].anbe_use_fsm, "%u");
520 		__HAL_AUX_CONFIG_ENTRY("link_stability_period",
521 		    mac_config->wire_port_config[i].link_stability_period,
522 		    "%u");
523 		__HAL_AUX_CONFIG_ENTRY("port_stability_period",
524 		    mac_config->wire_port_config[i].port_stability_period,
525 		    "%u");
526 		__HAL_AUX_CONFIG_ENTRY("tmac_en",
527 		    mac_config->wire_port_config[i].tmac_en, "%u");
528 		__HAL_AUX_CONFIG_ENTRY("rmac_en",
529 		    mac_config->wire_port_config[i].rmac_en, "%u");
530 		__HAL_AUX_CONFIG_ENTRY("tmac_pad",
531 		    mac_config->wire_port_config[i].tmac_pad, "%u");
532 		__HAL_AUX_CONFIG_ENTRY("tmac_pad_byte",
533 		    mac_config->wire_port_config[i].tmac_pad_byte, "%u");
534 		__HAL_AUX_CONFIG_ENTRY("tmac_util_period",
535 		    mac_config->wire_port_config[i].tmac_util_period, "%u");
536 		__HAL_AUX_CONFIG_ENTRY("rmac_strip_fcs",
537 		    mac_config->wire_port_config[i].rmac_strip_fcs, "%u");
538 		__HAL_AUX_CONFIG_ENTRY("rmac_prom_en",
539 		    mac_config->wire_port_config[i].rmac_prom_en, "%u");
540 		__HAL_AUX_CONFIG_ENTRY("rmac_discard_pfrm",
541 		    mac_config->wire_port_config[i].rmac_discard_pfrm, "%u");
542 		__HAL_AUX_CONFIG_ENTRY("rmac_util_period",
543 		    mac_config->wire_port_config[i].rmac_util_period, "%u");
544 		__HAL_AUX_CONFIG_ENTRY("rmac_pause_gen_en",
545 		    mac_config->wire_port_config[i].rmac_pause_gen_en, "%u");
546 		__HAL_AUX_CONFIG_ENTRY("rmac_pause_rcv_en",
547 		    mac_config->wire_port_config[i].rmac_pause_rcv_en, "%u");
548 		__HAL_AUX_CONFIG_ENTRY("rmac_pause_time",
549 		    mac_config->wire_port_config[i].rmac_pause_time, "%u");
550 		__HAL_AUX_CONFIG_ENTRY("limiter_en",
551 		    mac_config->wire_port_config[i].limiter_en, "%u");
552 		__HAL_AUX_CONFIG_ENTRY("max_limit",
553 		    mac_config->wire_port_config[i].max_limit, "%u");
554 	}
555 
556 	/* CONSTCOND */
557 	__HAL_AUX_CONFIG_ENTRY("port_id",
558 	    VXGE_HAL_MAC_SWITCH_PORT, "%u");
559 	__HAL_AUX_CONFIG_ENTRY("mtu",
560 	    mac_config->switch_port_config.mtu, "%u");
561 	__HAL_AUX_CONFIG_ENTRY("tmac_en",
562 	    mac_config->switch_port_config.tmac_en, "%u");
563 	__HAL_AUX_CONFIG_ENTRY("rmac_en",
564 	    mac_config->switch_port_config.rmac_en, "%u");
565 	__HAL_AUX_CONFIG_ENTRY("tmac_pad",
566 	    mac_config->switch_port_config.tmac_pad, "%u");
567 	__HAL_AUX_CONFIG_ENTRY("tmac_pad_byte",
568 	    mac_config->switch_port_config.tmac_pad_byte, "%u");
569 	__HAL_AUX_CONFIG_ENTRY("tmac_util_period",
570 	    mac_config->switch_port_config.tmac_util_period, "%u");
571 	__HAL_AUX_CONFIG_ENTRY("rmac_strip_fcs",
572 	    mac_config->switch_port_config.rmac_strip_fcs, "%u");
573 	__HAL_AUX_CONFIG_ENTRY("rmac_prom_en",
574 	    mac_config->switch_port_config.rmac_prom_en, "%u");
575 	__HAL_AUX_CONFIG_ENTRY("rmac_discard_pfrm",
576 	    mac_config->switch_port_config.rmac_discard_pfrm, "%u");
577 	__HAL_AUX_CONFIG_ENTRY("rmac_util_period",
578 	    mac_config->switch_port_config.rmac_util_period, "%u");
579 	__HAL_AUX_CONFIG_ENTRY("rmac_pause_gen_en",
580 	    mac_config->switch_port_config.rmac_pause_gen_en, "%u");
581 	__HAL_AUX_CONFIG_ENTRY("rmac_pause_rcv_en",
582 	    mac_config->switch_port_config.rmac_pause_rcv_en, "%u");
583 	__HAL_AUX_CONFIG_ENTRY("rmac_pause_time",
584 	    mac_config->switch_port_config.rmac_pause_time, "%u");
585 	__HAL_AUX_CONFIG_ENTRY("limiter_en",
586 	    mac_config->switch_port_config.limiter_en, "%u");
587 	__HAL_AUX_CONFIG_ENTRY("max_limit",
588 	    mac_config->switch_port_config.max_limit, "%u");
589 
590 	__HAL_AUX_CONFIG_ENTRY("network_stability_period",
591 	    mac_config->network_stability_period, "%u");
592 	for (i = 0; i < 16; i++) {
593 		__HAL_AUX_CONFIG_ENTRY("mc_pause_threshold[i]",
594 		    mac_config->mc_pause_threshold[i], "%u");
595 	}
596 	__HAL_AUX_CONFIG_ENTRY("tmac_perma_stop_en",
597 	    mac_config->tmac_perma_stop_en, "%u");
598 	__HAL_AUX_CONFIG_ENTRY("tmac_tx_switch_dis",
599 	    mac_config->tmac_tx_switch_dis, "%u");
600 	__HAL_AUX_CONFIG_ENTRY("tmac_lossy_switch_en",
601 	    mac_config->tmac_lossy_switch_en, "%u");
602 	__HAL_AUX_CONFIG_ENTRY("tmac_lossy_wire_en",
603 	    mac_config->tmac_lossy_wire_en, "%u");
604 	__HAL_AUX_CONFIG_ENTRY("tmac_bcast_to_wire_dis",
605 	    mac_config->tmac_bcast_to_wire_dis, "%u");
606 	__HAL_AUX_CONFIG_ENTRY("tmac_bcast_to_switch_dis",
607 	    mac_config->tmac_bcast_to_switch_dis, "%u");
608 	__HAL_AUX_CONFIG_ENTRY("tmac_host_append_fcs_en",
609 	    mac_config->tmac_host_append_fcs_en, "%u");
610 	__HAL_AUX_CONFIG_ENTRY("tpa_support_snap_ab_n",
611 	    mac_config->tpa_support_snap_ab_n, "%u");
612 	__HAL_AUX_CONFIG_ENTRY("tpa_ecc_enable_n",
613 	    mac_config->tpa_ecc_enable_n, "%u");
614 	__HAL_AUX_CONFIG_ENTRY("rpa_ignore_frame_err",
615 	    mac_config->rpa_ignore_frame_err, "%u");
616 	__HAL_AUX_CONFIG_ENTRY("rpa_support_snap_ab_n",
617 	    mac_config->rpa_support_snap_ab_n, "%u");
618 	__HAL_AUX_CONFIG_ENTRY("rpa_search_for_hao",
619 	    mac_config->rpa_search_for_hao, "%u");
620 	__HAL_AUX_CONFIG_ENTRY("rpa_support_ipv6_mobile_hdrs",
621 	    mac_config->rpa_support_ipv6_mobile_hdrs, "%u");
622 	__HAL_AUX_CONFIG_ENTRY("rpa_ipv6_stop_searching",
623 	    mac_config->rpa_ipv6_stop_searching, "%u");
624 	__HAL_AUX_CONFIG_ENTRY("rpa_no_ps_if_unknown",
625 	    mac_config->rpa_no_ps_if_unknown, "%u");
626 	__HAL_AUX_CONFIG_ENTRY("rpa_search_for_etype",
627 	    mac_config->rpa_search_for_etype, "%u");
628 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l4_comp_csum",
629 	    mac_config->rpa_repl_l4_comp_csum, "%u");
630 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l3_incl_cf",
631 	    mac_config->rpa_repl_l3_incl_cf, "%u");
632 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l3_comp_csum",
633 	    mac_config->rpa_repl_l3_comp_csum, "%u");
634 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv4_tcp_incl_ph",
635 	    mac_config->rpa_repl_ipv4_tcp_incl_ph, "%u");
636 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv6_tcp_incl_ph",
637 	    mac_config->rpa_repl_ipv6_tcp_incl_ph, "%u");
638 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv4_udp_incl_ph",
639 	    mac_config->rpa_repl_ipv4_udp_incl_ph, "%u");
640 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv6_udp_incl_ph",
641 	    mac_config->rpa_repl_ipv6_udp_incl_ph, "%u");
642 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l4_incl_cf",
643 	    mac_config->rpa_repl_l4_incl_cf, "%u");
644 	__HAL_AUX_CONFIG_ENTRY("rpa_repl_strip_vlan_tag",
645 	    mac_config->rpa_repl_strip_vlan_tag, "%u");
646 	__HAL_AUX_CONFIG_ENTRY("ISR Polling count",
647 	    dev_config->isr_polling_cnt, "%u");
648 	__HAL_AUX_CONFIG_ENTRY("Maximum Payload Size",
649 	    dev_config->max_payload_size, "%u");
650 	__HAL_AUX_CONFIG_ENTRY("MMRB Count",
651 	    dev_config->mmrb_count, "%u");
652 	__HAL_AUX_CONFIG_ENTRY("Statistics Refresh Time",
653 	    dev_config->stats_refresh_time_sec, "%u");
654 	__HAL_AUX_CONFIG_ENTRY("Interrupt Mode",
655 	    dev_config->intr_mode, "%u");
656 	__HAL_AUX_CONFIG_ENTRY("Dump on Unknwon Error",
657 	    dev_config->dump_on_unknown, "%u");
658 	__HAL_AUX_CONFIG_ENTRY("Dump on Serious Error",
659 	    dev_config->dump_on_serr, "%u");
660 	__HAL_AUX_CONFIG_ENTRY("Dump on Critical Error",
661 	    dev_config->dump_on_critical, "%u");
662 	__HAL_AUX_CONFIG_ENTRY("Dump on ECC Error",
663 	    dev_config->dump_on_eccerr, "%u");
664 	__HAL_AUX_CONFIG_ENTRY("RTH Enable",
665 	    dev_config->rth_en, "%u");
666 	__HAL_AUX_CONFIG_ENTRY("RTS MAC Enable",
667 	    dev_config->rts_mac_en, "%u");
668 	__HAL_AUX_CONFIG_ENTRY("RTS QOS Enable",
669 	    dev_config->rts_qos_en, "%u");
670 	__HAL_AUX_CONFIG_ENTRY("RTS Port Enable",
671 	    dev_config->rts_port_en, "%u");
672 	__HAL_AUX_CONFIG_ENTRY("Max CQE Groups",
673 	    dev_config->max_cqe_groups, "%u");
674 	__HAL_AUX_CONFIG_ENTRY("Max Number of OD Groups",
675 	    dev_config->max_num_wqe_od_groups, "%u");
676 	__HAL_AUX_CONFIG_ENTRY("No WQE Threshold",
677 	    dev_config->no_wqe_threshold, "%u");
678 	__HAL_AUX_CONFIG_ENTRY("Refill Threshold-High",
679 	    dev_config->refill_threshold_high, "%u");
680 	__HAL_AUX_CONFIG_ENTRY("Refill Threshold-Low",
681 	    dev_config->refill_threshold_low, "%u");
682 	__HAL_AUX_CONFIG_ENTRY("Ack Block Limit",
683 	    dev_config->ack_blk_limit, "%u");
684 	__HAL_AUX_CONFIG_ENTRY("Poll or Doorbell",
685 	    dev_config->poll_or_doorbell, "%u");
686 	__HAL_AUX_CONFIG_ENTRY("stats_read_method",
687 	    dev_config->stats_read_method, "%u");
688 	__HAL_AUX_CONFIG_ENTRY("Device Poll Timeout",
689 	    dev_config->device_poll_millis, "%u");
690 	__HAL_AUX_CONFIG_ENTRY("debug_level",
691 	    dev_config->debug_level, "%u");
692 	__HAL_AUX_CONFIG_ENTRY("debug_mask",
693 	    dev_config->debug_mask, "%u");
694 
695 #if defined(VXGE_TRACE_INTO_CIRCULAR_ARR)
696 	__HAL_AUX_CONFIG_ENTRY("Trace buffer size",
697 	    dev_config->tracebuf_size, "%u");
698 #endif
699 
700 	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
701 		if (!(((__hal_device_t *) hldev)->vpath_assignments & mBIT(i)))
702 			continue;
703 
704 		__HAL_AUX_CONFIG_ENTRY("Virtual Path id",
705 		    dev_config->vp_config[i].vp_id, "%u");
706 		__HAL_AUX_CONFIG_ENTRY("No Snoop",
707 		    dev_config->vp_config[i].no_snoop, "%u");
708 		__HAL_AUX_CONFIG_ENTRY("mtu",
709 		    dev_config->vp_config[i].mtu, "%u");
710 		__HAL_AUX_CONFIG_ENTRY("TPA LSOv2 Enable",
711 		    dev_config->vp_config[i].tpa_lsov2_en, "%u");
712 		__HAL_AUX_CONFIG_ENTRY("TPA Ignore Frame Error",
713 		    dev_config->vp_config[i].tpa_ignore_frame_error, "%u");
714 		__HAL_AUX_CONFIG_ENTRY("TPA IPv6 Keep Searching",
715 		    dev_config->vp_config[i].tpa_ipv6_keep_searching, "%u");
716 		__HAL_AUX_CONFIG_ENTRY("TPA L4 pseudo header present",
717 		    dev_config->vp_config[i].tpa_l4_pshdr_present, "%u");
718 		__HAL_AUX_CONFIG_ENTRY("TPA support mobile IPv6 Headers",
719 		    dev_config->vp_config[i].tpa_support_mobile_ipv6_hdrs,
720 		    "%u");
721 		__HAL_AUX_CONFIG_ENTRY("RPA IPv4 TCP Include pseudo header",
722 		    dev_config->vp_config[i].rpa_ipv4_tcp_incl_ph, "%u");
723 		__HAL_AUX_CONFIG_ENTRY("RPA IPv6 TCP Include pseudo header",
724 		    dev_config->vp_config[i].rpa_ipv6_tcp_incl_ph, "%u");
725 		__HAL_AUX_CONFIG_ENTRY("RPA IPv4 UDP Include pseudo header",
726 		    dev_config->vp_config[i].rpa_ipv4_udp_incl_ph, "%u");
727 		__HAL_AUX_CONFIG_ENTRY("RPA IPv6 UDP Include pseudo header",
728 		    dev_config->vp_config[i].rpa_ipv6_udp_incl_ph, "%u");
729 		__HAL_AUX_CONFIG_ENTRY("RPA L4 Include CF",
730 		    dev_config->vp_config[i].rpa_l4_incl_cf, "%u");
731 		__HAL_AUX_CONFIG_ENTRY("RPA Strip VLAN Tag",
732 		    dev_config->vp_config[i].rpa_strip_vlan_tag, "%u");
733 		__HAL_AUX_CONFIG_ENTRY("RPA L4 Comp Csum Enable",
734 		    dev_config->vp_config[i].rpa_l4_comp_csum, "%u");
735 		__HAL_AUX_CONFIG_ENTRY("RPA L3 Include CF Enable",
736 		    dev_config->vp_config[i].rpa_l3_incl_cf, "%u");
737 		__HAL_AUX_CONFIG_ENTRY("RPA L3 Comp Csum",
738 		    dev_config->vp_config[i].rpa_l3_comp_csum, "%u");
739 		__HAL_AUX_CONFIG_ENTRY("RPA Unicast All Address Enable",
740 		    dev_config->vp_config[i].rpa_ucast_all_addr_en, "%u");
741 		__HAL_AUX_CONFIG_ENTRY("RPA Unicast All Address Enable",
742 		    dev_config->vp_config[i].rpa_ucast_all_addr_en, "%u");
743 		__HAL_AUX_CONFIG_ENTRY("RPA Multicast All Address Enable",
744 		    dev_config->vp_config[i].rpa_mcast_all_addr_en, "%u");
745 		__HAL_AUX_CONFIG_ENTRY("RPA Broadcast Enable",
746 		    dev_config->vp_config[i].rpa_bcast_en, "%u");
747 		__HAL_AUX_CONFIG_ENTRY("RPA All VID Enable",
748 		    dev_config->vp_config[i].rpa_all_vid_en, "%u");
749 		__HAL_AUX_CONFIG_ENTRY("VP Queue L2 Flow",
750 		    dev_config->vp_config[i].vp_queue_l2_flow, "%u");
751 
752 		__HAL_AUX_CONFIG_ENTRY("Ring blocks",
753 		    dev_config->vp_config[i].ring.ring_length, "%u");
754 		__HAL_AUX_CONFIG_ENTRY("Buffer Mode",
755 		    dev_config->vp_config[i].ring.buffer_mode, "%u");
756 		__HAL_AUX_CONFIG_ENTRY("Scatter Mode",
757 		    dev_config->vp_config[i].ring.scatter_mode, "%u");
758 		__HAL_AUX_CONFIG_ENTRY("Post Mode",
759 		    dev_config->vp_config[i].ring.post_mode, "%u");
760 		__HAL_AUX_CONFIG_ENTRY("Maximum Frame Length",
761 		    dev_config->vp_config[i].ring.max_frm_len, "%u");
762 		__HAL_AUX_CONFIG_ENTRY("No Snoop Bits",
763 		    dev_config->vp_config[i].ring.no_snoop_bits, "%u");
764 		__HAL_AUX_CONFIG_ENTRY("Rx Timer Value",
765 		    dev_config->vp_config[i].ring.rx_timer_val, "%u");
766 		__HAL_AUX_CONFIG_ENTRY("Greedy return",
767 		    dev_config->vp_config[i].ring.greedy_return, "%u");
768 		__HAL_AUX_CONFIG_ENTRY("Rx Timer CI",
769 		    dev_config->vp_config[i].ring.rx_timer_ci, "%u");
770 		__HAL_AUX_CONFIG_ENTRY("Backoff Interval",
771 		    dev_config->vp_config[i].ring.backoff_interval_us, "%u");
772 		__HAL_AUX_CONFIG_ENTRY("Indicate Max Packets",
773 		    dev_config->vp_config[i].ring.indicate_max_pkts, "%u");
774 
775 
776 		__HAL_AUX_CONFIG_ENTRY("FIFO Blocks",
777 		    dev_config->vp_config[i].fifo.fifo_length, "%u");
778 		__HAL_AUX_CONFIG_ENTRY("Max Frags",
779 		    dev_config->vp_config[i].fifo.max_frags, "%u");
780 		__HAL_AUX_CONFIG_ENTRY("Alignment Size",
781 		    dev_config->vp_config[i].fifo.alignment_size, "%u");
782 		__HAL_AUX_CONFIG_ENTRY("Maximum Aligned Frags",
783 		    dev_config->vp_config[i].fifo.max_aligned_frags, "%u");
784 		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
785 		    dev_config->vp_config[i].fifo.intr, "%u");
786 		__HAL_AUX_CONFIG_ENTRY("No Snoop Bits",
787 		    dev_config->vp_config[i].fifo.no_snoop_bits, "%u");
788 
789 
790 		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
791 		    dev_config->vp_config[i].tti.intr_enable, "%u");
792 		__HAL_AUX_CONFIG_ENTRY("BTimer Value",
793 		    dev_config->vp_config[i].tti.btimer_val, "%u");
794 		__HAL_AUX_CONFIG_ENTRY("Timer AC Enable",
795 		    dev_config->vp_config[i].tti.timer_ac_en, "%u");
796 		__HAL_AUX_CONFIG_ENTRY("Timer CI Enable",
797 		    dev_config->vp_config[i].tti.timer_ci_en, "%u");
798 		__HAL_AUX_CONFIG_ENTRY("Timer RI Enable",
799 		    dev_config->vp_config[i].tti.timer_ri_en, "%u");
800 		__HAL_AUX_CONFIG_ENTRY("Timer Event SF",
801 		    dev_config->vp_config[i].tti.rtimer_event_sf, "%u");
802 		__HAL_AUX_CONFIG_ENTRY("RTimer Value",
803 		    dev_config->vp_config[i].tti.rtimer_val, "%u");
804 		__HAL_AUX_CONFIG_ENTRY("Util Sel",
805 		    dev_config->vp_config[i].tti.util_sel, "%u");
806 		__HAL_AUX_CONFIG_ENTRY("LTimer Value",
807 		    dev_config->vp_config[i].tti.ltimer_val, "%u");
808 		__HAL_AUX_CONFIG_ENTRY("Tx Frame Count Enable",
809 		    dev_config->vp_config[i].tti.txfrm_cnt_en, "%u");
810 		__HAL_AUX_CONFIG_ENTRY("Txd Count Enable",
811 		    dev_config->vp_config[i].tti.txd_cnt_en, "%u");
812 		__HAL_AUX_CONFIG_ENTRY("Util Range A",
813 		    dev_config->vp_config[i].tti.urange_a, "%u");
814 		__HAL_AUX_CONFIG_ENTRY("Util Event Count A",
815 		    dev_config->vp_config[i].tti.uec_a, "%u");
816 		__HAL_AUX_CONFIG_ENTRY("Util Range B",
817 		    dev_config->vp_config[i].tti.urange_b, "%u");
818 		__HAL_AUX_CONFIG_ENTRY("Util Event Count B",
819 		    dev_config->vp_config[i].tti.uec_b, "%u");
820 		__HAL_AUX_CONFIG_ENTRY("Util Range C",
821 		    dev_config->vp_config[i].tti.urange_c, "%u");
822 		__HAL_AUX_CONFIG_ENTRY("Util Event Count C",
823 		    dev_config->vp_config[i].tti.uec_c, "%u");
824 		__HAL_AUX_CONFIG_ENTRY("Util Event Count D",
825 		    dev_config->vp_config[i].tti.uec_d, "%u");
826 		__HAL_AUX_CONFIG_ENTRY("Ufca Interrupt Threshold",
827 		    dev_config->vp_config[i].tti.ufca_intr_thres, "%u");
828 		__HAL_AUX_CONFIG_ENTRY("Ufca Low Limit",
829 		    dev_config->vp_config[i].tti.ufca_lo_lim, "%u");
830 		__HAL_AUX_CONFIG_ENTRY("Ufca High Limit",
831 		    dev_config->vp_config[i].tti.ufca_hi_lim, "%u");
832 		__HAL_AUX_CONFIG_ENTRY("Ufca lbolt period",
833 		    dev_config->vp_config[i].tti.ufca_lbolt_period, "%u");
834 
835 		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
836 		    dev_config->vp_config[i].rti.intr_enable, "%u");
837 		__HAL_AUX_CONFIG_ENTRY("BTimer Value",
838 		    dev_config->vp_config[i].rti.btimer_val, "%u");
839 		__HAL_AUX_CONFIG_ENTRY("Timer AC Enable",
840 		    dev_config->vp_config[i].rti.timer_ac_en, "%u");
841 		__HAL_AUX_CONFIG_ENTRY("Timer CI Enable",
842 		    dev_config->vp_config[i].rti.timer_ci_en, "%u");
843 		__HAL_AUX_CONFIG_ENTRY("Timer RI Enable",
844 		    dev_config->vp_config[i].rti.timer_ri_en, "%u");
845 		__HAL_AUX_CONFIG_ENTRY("Timer Event SF",
846 		    dev_config->vp_config[i].rti.rtimer_event_sf, "%u");
847 		__HAL_AUX_CONFIG_ENTRY("RTimer Value",
848 		    dev_config->vp_config[i].rti.rtimer_val, "%u");
849 		__HAL_AUX_CONFIG_ENTRY("Util Sel",
850 		    dev_config->vp_config[i].rti.util_sel, "%u");
851 		__HAL_AUX_CONFIG_ENTRY("LTimer Value",
852 		    dev_config->vp_config[i].rti.ltimer_val, "%u");
853 		__HAL_AUX_CONFIG_ENTRY("Tx Frame Count Enable",
854 		    dev_config->vp_config[i].rti.txfrm_cnt_en, "%u");
855 		__HAL_AUX_CONFIG_ENTRY("Txd Count Enable",
856 		    dev_config->vp_config[i].rti.txd_cnt_en, "%u");
857 		__HAL_AUX_CONFIG_ENTRY("Util Range A",
858 		    dev_config->vp_config[i].rti.urange_a, "%u");
859 		__HAL_AUX_CONFIG_ENTRY("Util Event Count A",
860 		    dev_config->vp_config[i].rti.uec_a, "%u");
861 		__HAL_AUX_CONFIG_ENTRY("Util Range B",
862 		    dev_config->vp_config[i].rti.urange_b, "%u");
863 		__HAL_AUX_CONFIG_ENTRY("Util Event Count B",
864 		    dev_config->vp_config[i].rti.uec_b, "%u");
865 		__HAL_AUX_CONFIG_ENTRY("Util Range C",
866 		    dev_config->vp_config[i].rti.urange_c, "%u");
867 		__HAL_AUX_CONFIG_ENTRY("Util Event Count C",
868 		    dev_config->vp_config[i].rti.uec_c, "%u");
869 		__HAL_AUX_CONFIG_ENTRY("Util Event Count D",
870 		    dev_config->vp_config[i].rti.uec_d, "%u");
871 		__HAL_AUX_CONFIG_ENTRY("Ufca Interrupt Threshold",
872 		    dev_config->vp_config[i].rti.ufca_intr_thres, "%u");
873 		__HAL_AUX_CONFIG_ENTRY("Ufca Low Limit",
874 		    dev_config->vp_config[i].rti.ufca_lo_lim, "%u");
875 		__HAL_AUX_CONFIG_ENTRY("Ufca High Limit",
876 		    dev_config->vp_config[i].rti.ufca_hi_lim, "%u");
877 		__HAL_AUX_CONFIG_ENTRY("Ufca lbolt period",
878 		    dev_config->vp_config[i].rti.ufca_lbolt_period, "%u");
879 	}
880 
881 	__HAL_AUX_ENTRY_END(bufsize, retsize);
882 
883 	vxge_os_free(hldev->pdev, dev_config,
884 	    sizeof(vxge_hal_device_config_t));
885 
886 	return (VXGE_HAL_OK);
887 }
888 
889 /*
890  * vxge_hal_aux_bar0_read - Read and format X3100 BAR0 register.
891  * @devh: HAL device handle.
892  * @offset: Register offset in the BAR0 space.
893  * @bufsize: Buffer size.
894  * @retbuf: Buffer pointer.
895  * @retsize: Size of the result. Cannot be greater than @bufsize.
896  *
897  * Read X3100 register from BAR0 space.
898  *
899  * Returns: VXGE_HAL_OK - success.
900  * VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
901  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
902  * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
903  * valid.
904  *
905  * See also: vxge_hal_mgmt_reg_read().
906  */
907 vxge_hal_status_e
vxge_hal_aux_bar0_read(vxge_hal_device_h devh,unsigned int offset,int bufsize,char * retbuf,int * retsize)908 vxge_hal_aux_bar0_read(vxge_hal_device_h devh,
909     unsigned int offset, int bufsize, char *retbuf,
910     int *retsize)
911 {
912 	vxge_hal_status_e status;
913 	u64 retval;
914 
915 	status = vxge_hal_mgmt_bar0_read(devh, offset, &retval);
916 	if (status != VXGE_HAL_OK)
917 		return (status);
918 
919 	if (bufsize < VXGE_OS_SPRINTF_STRLEN)
920 		return (VXGE_HAL_ERR_OUT_OF_SPACE);
921 
922 	*retsize = vxge_os_snprintf(retbuf, bufsize,
923 	    "0x%04X%c0x%08X%08X\n", offset,
924 	    VXGE_HAL_AUX_SEPA, (u32) (retval >> 32), (u32) retval);
925 
926 	return (VXGE_HAL_OK);
927 }
928 
929 /*
930  * vxge_hal_aux_bar1_read - Read and format X3100 BAR1 register.
931  * @devh: HAL device handle.
932  * @offset: Register offset in the BAR1 space.
933  * @bufsize: Buffer size.
934  * @retbuf: Buffer pointer.
935  * @retsize: Size of the result. Cannot be greater than @bufsize.
936  *
937  * Read X3100 register from BAR1 space.
938  * Returns: VXGE_HAL_OK - success.
939  * VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
940  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
941  * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
942  * valid.
943  *
944  * See also: vxge_hal_mgmt_reg_read().
945  */
946 vxge_hal_status_e
vxge_hal_aux_bar1_read(vxge_hal_device_h devh,unsigned int offset,int bufsize,char * retbuf,int * retsize)947 vxge_hal_aux_bar1_read(vxge_hal_device_h devh,
948     unsigned int offset, int bufsize, char *retbuf,
949     int *retsize)
950 {
951 	vxge_hal_status_e status;
952 	u64 retval;
953 
954 	status = vxge_hal_mgmt_bar1_read(devh, offset, &retval);
955 	if (status != VXGE_HAL_OK)
956 		return (status);
957 
958 	if (bufsize < VXGE_OS_SPRINTF_STRLEN)
959 		return (VXGE_HAL_ERR_OUT_OF_SPACE);
960 
961 	*retsize = vxge_os_snprintf(retbuf, bufsize, "0x%04X%c0x%08X%08X\n",
962 	    offset, VXGE_HAL_AUX_SEPA, (u32) (retval >> 32), (u32) retval);
963 
964 	return (VXGE_HAL_OK);
965 }
966 
967 /*
968  * vxge_hal_aux_bar0_write - Write BAR0 register.
969  * @devh: HAL device handle.
970  * @offset: Register offset in the BAR0 space.
971  * @value: Regsister value (to write).
972  *
973  * Write BAR0 register.
974  *
975  * Returns: VXGE_HAL_OK - success.
976  * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
977  * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
978  * valid.
979  *
980  * See also: vxge_hal_mgmt_reg_write().
981  */
982 vxge_hal_status_e
vxge_hal_aux_bar0_write(vxge_hal_device_h devh,unsigned int offset,u64 value)983 vxge_hal_aux_bar0_write(vxge_hal_device_h devh,
984     unsigned int offset, u64 value)
985 {
986 	vxge_hal_status_e status;
987 
988 	status = vxge_hal_mgmt_bar0_write(devh, offset, value);
989 	if (status != VXGE_HAL_OK)
990 		return (status);
991 
992 	return (VXGE_HAL_OK);
993 }
994 
995 /*
996  * vxge_hal_aux_stats_vpath_hw_read - Read vpath hardware statistics.
997  * @vpath_handle: HAL Vpath handle.
998  * @bufsize: Buffer size.
999  * @retbuf: Buffer pointer.
1000  * @retsize: Size of the result. Cannot be greater than @bufsize.
1001  *
1002  * Read vpath hardware statistics. This is a subset of stats counters
1003  * from vxge_hal_vpath_stats_hw_info_t {}.
1004  *
1005  */
1006 vxge_hal_status_e
vxge_hal_aux_stats_vpath_hw_read(vxge_hal_vpath_h vpath_handle,int bufsize,char * retbuf,int * retsize)1007 vxge_hal_aux_stats_vpath_hw_read(
1008     vxge_hal_vpath_h vpath_handle,
1009     int bufsize,
1010     char *retbuf,
1011     int *retsize)
1012 {
1013 	vxge_hal_status_e status;
1014 	vxge_hal_vpath_stats_hw_info_t hw_info;
1015 
1016 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1017 
1018 	vxge_assert(vpath_handle != NULL);
1019 
1020 	status = vxge_hal_vpath_hw_stats_enable(vpath_handle);
1021 	if (status != VXGE_HAL_OK)
1022 		return (status);
1023 
1024 	status = vxge_hal_vpath_hw_stats_get(vpath_handle, &hw_info);
1025 	if (status != VXGE_HAL_OK)
1026 		return (status);
1027 
1028 	__HAL_AUX_ENTRY("ini_num_mwr_sent",
1029 	    hw_info.ini_num_mwr_sent, "%u");
1030 	__HAL_AUX_ENTRY("ini_num_mrd_sent",
1031 	    hw_info.ini_num_mrd_sent, "%u");
1032 	__HAL_AUX_ENTRY("ini_num_cpl_rcvd",
1033 	    hw_info.ini_num_cpl_rcvd, "%u");
1034 	__HAL_AUX_ENTRY("ini_num_mwr_byte_sent",
1035 	    hw_info.ini_num_mwr_byte_sent, "%llu");
1036 	__HAL_AUX_ENTRY("ini_num_cpl_byte_rcvd",
1037 	    hw_info.ini_num_cpl_byte_rcvd, "%llu");
1038 	__HAL_AUX_ENTRY("wrcrdtarb_xoff",
1039 	    hw_info.wrcrdtarb_xoff, "%u");
1040 	__HAL_AUX_ENTRY("rdcrdtarb_xoff",
1041 	    hw_info.rdcrdtarb_xoff, "%u");
1042 	__HAL_AUX_ENTRY("vpath_genstats_count0",
1043 	    hw_info.vpath_genstats_count0, "%u");
1044 	__HAL_AUX_ENTRY("vpath_genstats_count1",
1045 	    hw_info.vpath_genstats_count1, "%u");
1046 	__HAL_AUX_ENTRY("vpath_genstats_count2",
1047 	    hw_info.vpath_genstats_count2, "%u");
1048 	__HAL_AUX_ENTRY("vpath_genstats_count3",
1049 	    hw_info.vpath_genstats_count3, "%u");
1050 	__HAL_AUX_ENTRY("vpath_genstats_count4",
1051 	    hw_info.vpath_genstats_count4, "%u");
1052 	__HAL_AUX_ENTRY("vpath_genstats_count5",
1053 	    hw_info.vpath_genstats_count5, "%u");
1054 	__HAL_AUX_ENTRY("tx_ttl_eth_frms",
1055 	    hw_info.tx_stats.tx_ttl_eth_frms, "%llu");
1056 	__HAL_AUX_ENTRY("tx_ttl_eth_octets",
1057 	    hw_info.tx_stats.tx_ttl_eth_octets, "%llu");
1058 	__HAL_AUX_ENTRY("tx_data_octets",
1059 	    hw_info.tx_stats.tx_data_octets, "%llu");
1060 	__HAL_AUX_ENTRY("tx_mcast_frms",
1061 	    hw_info.tx_stats.tx_mcast_frms, "%llu");
1062 	__HAL_AUX_ENTRY("tx_bcast_frms",
1063 	    hw_info.tx_stats.tx_bcast_frms, "%llu");
1064 	__HAL_AUX_ENTRY("tx_ucast_frms",
1065 	    hw_info.tx_stats.tx_ucast_frms, "%llu");
1066 	__HAL_AUX_ENTRY("tx_tagged_frms",
1067 	    hw_info.tx_stats.tx_tagged_frms, "%llu");
1068 	__HAL_AUX_ENTRY("tx_vld_ip",
1069 	    hw_info.tx_stats.tx_vld_ip, "%llu");
1070 	__HAL_AUX_ENTRY("tx_vld_ip_octets",
1071 	    hw_info.tx_stats.tx_vld_ip_octets, "%llu");
1072 	__HAL_AUX_ENTRY("tx_icmp",
1073 	    hw_info.tx_stats.tx_icmp, "%llu");
1074 	__HAL_AUX_ENTRY("tx_tcp",
1075 	    hw_info.tx_stats.tx_tcp, "%llu");
1076 	__HAL_AUX_ENTRY("tx_rst_tcp",
1077 	    hw_info.tx_stats.tx_rst_tcp, "%llu");
1078 	__HAL_AUX_ENTRY("tx_udp",
1079 	    hw_info.tx_stats.tx_udp, "%llu");
1080 	__HAL_AUX_ENTRY("tx_unknown_protocol",
1081 	    hw_info.tx_stats.tx_unknown_protocol, "%u");
1082 	__HAL_AUX_ENTRY("tx_lost_ip",
1083 	    hw_info.tx_stats.tx_lost_ip, "%u");
1084 	__HAL_AUX_ENTRY("tx_parse_error",
1085 	    hw_info.tx_stats.tx_parse_error, "%u");
1086 	__HAL_AUX_ENTRY("tx_tcp_offload",
1087 	    hw_info.tx_stats.tx_tcp_offload, "%llu");
1088 	__HAL_AUX_ENTRY("tx_retx_tcp_offload",
1089 	    hw_info.tx_stats.tx_retx_tcp_offload, "%llu");
1090 	__HAL_AUX_ENTRY("tx_lost_ip_offload",
1091 	    hw_info.tx_stats.tx_lost_ip_offload, "%llu");
1092 	__HAL_AUX_ENTRY("rx_ttl_eth_frms",
1093 	    hw_info.rx_stats.rx_ttl_eth_frms, "%llu");
1094 	__HAL_AUX_ENTRY("rx_vld_frms",
1095 	    hw_info.rx_stats.rx_vld_frms, "%llu");
1096 	__HAL_AUX_ENTRY("rx_offload_frms",
1097 	    hw_info.rx_stats.rx_offload_frms, "%llu");
1098 	__HAL_AUX_ENTRY("rx_ttl_eth_octets",
1099 	    hw_info.rx_stats.rx_ttl_eth_octets, "%llu");
1100 	__HAL_AUX_ENTRY("rx_data_octets",
1101 	    hw_info.rx_stats.rx_data_octets, "%llu");
1102 	__HAL_AUX_ENTRY("rx_offload_octets",
1103 	    hw_info.rx_stats.rx_offload_octets, "%llu");
1104 	__HAL_AUX_ENTRY("rx_vld_mcast_frms",
1105 	    hw_info.rx_stats.rx_vld_mcast_frms, "%llu");
1106 	__HAL_AUX_ENTRY("rx_vld_bcast_frms",
1107 	    hw_info.rx_stats.rx_vld_bcast_frms, "%llu");
1108 	__HAL_AUX_ENTRY("rx_accepted_ucast_frms",
1109 	    hw_info.rx_stats.rx_accepted_ucast_frms, "%llu");
1110 	__HAL_AUX_ENTRY("rx_accepted_nucast_frms",
1111 	    hw_info.rx_stats.rx_accepted_nucast_frms, "%llu");
1112 	__HAL_AUX_ENTRY("rx_tagged_frms",
1113 	    hw_info.rx_stats.rx_tagged_frms, "%llu");
1114 	__HAL_AUX_ENTRY("rx_long_frms",
1115 	    hw_info.rx_stats.rx_long_frms, "%llu");
1116 	__HAL_AUX_ENTRY("rx_usized_frms",
1117 	    hw_info.rx_stats.rx_usized_frms, "%llu");
1118 	__HAL_AUX_ENTRY("rx_osized_frms",
1119 	    hw_info.rx_stats.rx_osized_frms, "%llu");
1120 	__HAL_AUX_ENTRY("rx_frag_frms",
1121 	    hw_info.rx_stats.rx_frag_frms, "%llu");
1122 	__HAL_AUX_ENTRY("rx_jabber_frms",
1123 	    hw_info.rx_stats.rx_jabber_frms, "%llu");
1124 	__HAL_AUX_ENTRY("rx_ttl_64_frms",
1125 	    hw_info.rx_stats.rx_ttl_64_frms, "%llu");
1126 	__HAL_AUX_ENTRY("rx_ttl_65_127_frms",
1127 	    hw_info.rx_stats.rx_ttl_65_127_frms, "%llu");
1128 	__HAL_AUX_ENTRY("rx_ttl_128_255_frms",
1129 	    hw_info.rx_stats.rx_ttl_128_255_frms, "%llu");
1130 	__HAL_AUX_ENTRY("rx_ttl_256_511_frms",
1131 	    hw_info.rx_stats.rx_ttl_256_511_frms, "%llu");
1132 	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms",
1133 	    hw_info.rx_stats.rx_ttl_512_1023_frms, "%llu");
1134 	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms",
1135 	    hw_info.rx_stats.rx_ttl_1024_1518_frms, "%llu");
1136 	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms",
1137 	    hw_info.rx_stats.rx_ttl_1519_4095_frms, "%llu");
1138 	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms",
1139 	    hw_info.rx_stats.rx_ttl_4096_8191_frms, "%llu");
1140 	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms",
1141 	    hw_info.rx_stats.rx_ttl_8192_max_frms, "%llu");
1142 	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms",
1143 	    hw_info.rx_stats.rx_ttl_gt_max_frms, "%llu");
1144 	__HAL_AUX_ENTRY("rx_ip",
1145 	    hw_info.rx_stats.rx_ip, "%llu");
1146 	__HAL_AUX_ENTRY("rx_accepted_ip",
1147 	    hw_info.rx_stats.rx_accepted_ip, "%llu");
1148 	__HAL_AUX_ENTRY("rx_ip_octets",
1149 	    hw_info.rx_stats.rx_ip_octets, "%llu");
1150 	__HAL_AUX_ENTRY("rx_err_ip",
1151 	    hw_info.rx_stats.rx_err_ip, "%llu");
1152 	__HAL_AUX_ENTRY("rx_icmp",
1153 	    hw_info.rx_stats.rx_icmp, "%llu");
1154 	__HAL_AUX_ENTRY("rx_tcp",
1155 	    hw_info.rx_stats.rx_tcp, "%llu");
1156 	__HAL_AUX_ENTRY("rx_udp",
1157 	    hw_info.rx_stats.rx_udp, "%llu");
1158 	__HAL_AUX_ENTRY("rx_err_tcp",
1159 	    hw_info.rx_stats.rx_err_tcp, "%llu");
1160 	__HAL_AUX_ENTRY("rx_lost_frms",
1161 	    hw_info.rx_stats.rx_lost_frms, "%llu");
1162 	__HAL_AUX_ENTRY("rx_lost_ip",
1163 	    hw_info.rx_stats.rx_lost_ip, "%llu");
1164 	__HAL_AUX_ENTRY("rx_lost_ip_offload",
1165 	    hw_info.rx_stats.rx_lost_ip_offload, "%llu");
1166 	__HAL_AUX_ENTRY("rx_various_discard",
1167 	    hw_info.rx_stats.rx_various_discard, "%u");
1168 	__HAL_AUX_ENTRY("rx_sleep_discard",
1169 	    hw_info.rx_stats.rx_sleep_discard, "%u");
1170 	__HAL_AUX_ENTRY("rx_red_discard",
1171 	    hw_info.rx_stats.rx_red_discard, "%u");
1172 	__HAL_AUX_ENTRY("rx_queue_full_discard",
1173 	    hw_info.rx_stats.rx_queue_full_discard, "%u");
1174 	__HAL_AUX_ENTRY("rx_mpa_ok_frms",
1175 	    hw_info.rx_stats.rx_mpa_ok_frms, "%llu");
1176 	__HAL_AUX_ENTRY("prog_event_vnum1",
1177 	    hw_info.prog_event_vnum1, "%u");
1178 	__HAL_AUX_ENTRY("prog_event_vnum0",
1179 	    hw_info.prog_event_vnum0, "%u");
1180 	__HAL_AUX_ENTRY("prog_event_vnum3",
1181 	    hw_info.prog_event_vnum3, "%u");
1182 	__HAL_AUX_ENTRY("prog_event_vnum2",
1183 	    hw_info.prog_event_vnum2, "%u");
1184 	__HAL_AUX_ENTRY("rx_multi_cast_frame_discard",
1185 	    hw_info.rx_multi_cast_frame_discard, "%u");
1186 	__HAL_AUX_ENTRY("rx_frm_transferred",
1187 	    hw_info.rx_frm_transferred, "%u");
1188 	__HAL_AUX_ENTRY("rxd_returned",
1189 	    hw_info.rxd_returned, "%u");
1190 	__HAL_AUX_ENTRY("rx_mpa_len_fail_frms",
1191 	    hw_info.rx_mpa_len_fail_frms, "%u");
1192 	__HAL_AUX_ENTRY("rx_mpa_mrk_fail_frms",
1193 	    hw_info.rx_mpa_mrk_fail_frms, "%u");
1194 	__HAL_AUX_ENTRY("rx_mpa_crc_fail_frms",
1195 	    hw_info.rx_mpa_crc_fail_frms, "%u");
1196 	__HAL_AUX_ENTRY("rx_permitted_frms",
1197 	    hw_info.rx_permitted_frms, "%u");
1198 	__HAL_AUX_ENTRY("rx_vp_reset_discarded_frms",
1199 	    hw_info.rx_vp_reset_discarded_frms, "%llu");
1200 	__HAL_AUX_ENTRY("rx_wol_frms",
1201 	    hw_info.rx_wol_frms, "%llu");
1202 	__HAL_AUX_ENTRY("tx_vp_reset_discarded_frms",
1203 	    hw_info.tx_vp_reset_discarded_frms, "%llu");
1204 
1205 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1206 
1207 	return (VXGE_HAL_OK);
1208 }
1209 
1210 /*
1211  * vxge_hal_aux_stats_device_hw_read - Read device hardware statistics.
1212  * @devh: HAL device handle.
1213  * @bufsize: Buffer size.
1214  * @retbuf: Buffer pointer.
1215  * @retsize: Size of the result. Cannot be greater than @bufsize.
1216  *
1217  * Read device hardware statistics. This is a subset of stats counters
1218  * from vxge_hal_device_stats_hw_info_t {}.
1219  *
1220  */
1221 vxge_hal_status_e
vxge_hal_aux_stats_device_hw_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1222 vxge_hal_aux_stats_device_hw_read(vxge_hal_device_h devh,
1223     int bufsize, char *retbuf, int *retsize)
1224 {
1225 	u32 i;
1226 	int rsize = 0;
1227 	vxge_hal_status_e status;
1228 	__hal_device_t *hldev = (__hal_device_t *) devh;
1229 
1230 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1231 
1232 	vxge_assert(devh);
1233 
1234 	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
1235 
1236 		if (!(hldev->vpaths_deployed & mBIT(i)))
1237 			continue;
1238 
1239 		__HAL_AUX_ENTRY("H/W stats for vpath id", i, "%u");
1240 
1241 		status = vxge_hal_aux_stats_vpath_hw_read(
1242 		    VXGE_HAL_VIRTUAL_PATH_HANDLE(&hldev->virtual_paths[i]),
1243 		    leftsize, ptr, &rsize);
1244 
1245 		if (status != VXGE_HAL_OK)
1246 			return (status);
1247 
1248 		ptr += rsize;
1249 		leftsize -= rsize;
1250 
1251 	}
1252 
1253 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1254 
1255 	return (VXGE_HAL_OK);
1256 }
1257 
1258 #define	__HAL_AUX_VPATH_SW_COMMON_INFO(prefix, common) {\
1259 	__HAL_AUX_ENTRY(prefix"full_cnt", (common)->full_cnt, "%u");\
1260 	__HAL_AUX_ENTRY(prefix"usage_cnt", (common)->usage_cnt, "%u");\
1261 	__HAL_AUX_ENTRY(prefix"usage_max", (common)->usage_max, "%u");\
1262 	__HAL_AUX_ENTRY(prefix"avg_compl_per_intr_cnt",\
1263 		(common)->avg_compl_per_intr_cnt, "%u");\
1264 	__HAL_AUX_ENTRY(prefix"total_compl_cnt",\
1265 		(common)->total_compl_cnt, "%u");\
1266 }
1267 
1268 /*
1269  * vxge_hal_aux_stats_vpath_sw_fifo_read - Read vpath fifo software statistics.
1270  * @vpath_handle: HAL Vpath handle.
1271  * @bufsize: Buffer size.
1272  * @retbuf: Buffer pointer.
1273  * @retsize: Size of the result. Cannot be greater than @bufsize.
1274  *
1275  * Read vpath fifo software statistics. This is a subset of stats counters
1276  * from vxge_hal_vpath_stats_sw_fifo_info_t {}.
1277  *
1278  */
1279 vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_fifo_read(vxge_hal_vpath_h vpath_handle,int bufsize,char * retbuf,int * retsize)1280 vxge_hal_aux_stats_vpath_sw_fifo_read(
1281     vxge_hal_vpath_h vpath_handle,
1282     int bufsize,
1283     char *retbuf,
1284     int *retsize)
1285 {
1286 	u32 i;
1287 	u8 strbuf[256];
1288 	vxge_hal_status_e status;
1289 	vxge_hal_vpath_stats_sw_fifo_info_t *fifo_info;
1290 	vxge_hal_vpath_stats_sw_info_t sw_stats;
1291 
1292 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1293 
1294 	vxge_assert(vpath_handle != NULL);
1295 
1296 	status = vxge_hal_vpath_sw_stats_get(vpath_handle, &sw_stats);
1297 	if (status != VXGE_HAL_OK)
1298 		return (status);
1299 
1300 	fifo_info = &sw_stats.fifo_stats;
1301 
1302 	__HAL_AUX_VPATH_SW_COMMON_INFO("fifo_",
1303 	    &fifo_info->common_stats);
1304 
1305 	__HAL_AUX_ENTRY("total_posts",
1306 	    fifo_info->total_posts, "%u");
1307 	__HAL_AUX_ENTRY("total_buffers",
1308 	    fifo_info->total_buffers, "%u");
1309 	__HAL_AUX_ENTRY("avg_buffers_per_post",
1310 	    fifo_info->avg_buffers_per_post, "%u");
1311 	__HAL_AUX_ENTRY("copied_frags",
1312 	    fifo_info->copied_frags, "%u");
1313 	__HAL_AUX_ENTRY("copied_buffers",
1314 	    fifo_info->copied_buffers, "%u");
1315 	__HAL_AUX_ENTRY("avg_buffer_size",
1316 	    fifo_info->avg_buffer_size, "%u");
1317 	__HAL_AUX_ENTRY("avg_post_size",
1318 	    fifo_info->avg_post_size, "%u");
1319 	__HAL_AUX_ENTRY("total_frags",
1320 	    fifo_info->total_frags, "%u");
1321 	__HAL_AUX_ENTRY("copied_frags",
1322 	    fifo_info->copied_frags, "%u");
1323 	__HAL_AUX_ENTRY("total_posts_dang_dtrs",
1324 	    fifo_info->total_posts_dang_dtrs, "%u");
1325 	__HAL_AUX_ENTRY("total_posts_dang_frags",
1326 	    fifo_info->total_posts_dang_frags, "%u");
1327 
1328 	for (i = 0; i < 16; i++) {
1329 		(void) vxge_os_snprintf((char *) strbuf,
1330 		    sizeof(strbuf), "txd_t_code_err_cnt[%d]", i);
1331 		__HAL_AUX_ENTRY(strbuf,
1332 		    fifo_info->txd_t_code_err_cnt[i], "%u");
1333 	}
1334 
1335 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1336 
1337 	return (VXGE_HAL_OK);
1338 }
1339 
1340 /*
1341  * vxge_hal_aux_stats_vpath_sw_ring_read - Read vpath ring software statistics.
1342  * @vpath_handle: HAL Vpath handle.
1343  * @bufsize: Buffer size.
1344  * @retbuf: Buffer pointer.
1345  * @retsize: Size of the result. Cannot be greater than @bufsize.
1346  *
1347  * Read vpath ring software statistics. This is a subset of stats counters
1348  * from vxge_hal_vpath_stats_sw_ring_info_t {}.
1349  *
1350  */
1351 vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_ring_read(vxge_hal_vpath_h vpath_handle,int bufsize,char * retbuf,int * retsize)1352 vxge_hal_aux_stats_vpath_sw_ring_read(
1353     vxge_hal_vpath_h vpath_handle,
1354     int bufsize,
1355     char *retbuf,
1356     int *retsize)
1357 {
1358 	u32 i;
1359 	u8 strbuf[256];
1360 	vxge_hal_status_e status;
1361 	vxge_hal_vpath_stats_sw_ring_info_t *ring_info;
1362 	vxge_hal_vpath_stats_sw_info_t sw_stats;
1363 
1364 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1365 
1366 	vxge_assert(vpath_handle != NULL);
1367 
1368 	status = vxge_hal_vpath_sw_stats_get(vpath_handle, &sw_stats);
1369 	if (status != VXGE_HAL_OK)
1370 		return (status);
1371 
1372 	ring_info = &sw_stats.ring_stats;
1373 
1374 	__HAL_AUX_VPATH_SW_COMMON_INFO("ring_",
1375 	    &ring_info->common_stats);
1376 
1377 	for (i = 0; i < 16; i++) {
1378 		(void) vxge_os_snprintf((char *) strbuf,
1379 		    sizeof(strbuf), "rxd_t_code_err_cnt[%d]", i);
1380 		__HAL_AUX_ENTRY(strbuf,
1381 		    ring_info->rxd_t_code_err_cnt[i], "%u");
1382 	}
1383 
1384 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1385 
1386 	return (VXGE_HAL_OK);
1387 }
1388 
1389 
1390 /*
1391  * vxge_hal_aux_stats_vpath_sw_err_read - Read vpath err software statistics.
1392  * @vpath_handle: HAL Vpath handle.
1393  * @bufsize: Buffer size.
1394  * @retbuf: Buffer pointer.
1395  * @retsize: Size of the result. Cannot be greater than @bufsize.
1396  *
1397  * Read vpath err software statistics. This is a subset of stats counters
1398  * from vxge_hal_vpath_stats_sw_err_info_t {}.
1399  *
1400  */
1401 vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_err_read(vxge_hal_vpath_h vpath_handle,int bufsize,char * retbuf,int * retsize)1402 vxge_hal_aux_stats_vpath_sw_err_read(
1403     vxge_hal_vpath_h vpath_handle,
1404     int bufsize,
1405     char *retbuf,
1406     int *retsize)
1407 {
1408 	vxge_hal_vpath_stats_sw_err_t *err_info;
1409 	__hal_vpath_handle_t *vp = (__hal_vpath_handle_t *) vpath_handle;
1410 
1411 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1412 
1413 	vxge_assert(vpath_handle != NULL);
1414 
1415 	err_info = &vp->vpath->sw_stats->error_stats;
1416 
1417 	__HAL_AUX_ENTRY("unknown_alarms",
1418 	    err_info->unknown_alarms, "%u");
1419 	__HAL_AUX_ENTRY("network_sustained_fault",
1420 	    err_info->network_sustained_fault, "%u");
1421 	__HAL_AUX_ENTRY("network_sustained_ok",
1422 	    err_info->network_sustained_ok, "%u");
1423 	__HAL_AUX_ENTRY("kdfcctl_fifo0_overwrite",
1424 	    err_info->kdfcctl_fifo0_overwrite, "%u");
1425 	__HAL_AUX_ENTRY("kdfcctl_fifo0_poison",
1426 	    err_info->kdfcctl_fifo0_poison, "%u");
1427 	__HAL_AUX_ENTRY("kdfcctl_fifo0_dma_error",
1428 	    err_info->kdfcctl_fifo0_dma_error, "%u");
1429 	__HAL_AUX_ENTRY("kdfcctl_fifo1_overwrite",
1430 	    err_info->kdfcctl_fifo1_overwrite, "%u");
1431 	__HAL_AUX_ENTRY("kdfcctl_fifo1_poison",
1432 	    err_info->kdfcctl_fifo1_poison, "%u");
1433 	__HAL_AUX_ENTRY("kdfcctl_fifo1_dma_error",
1434 	    err_info->kdfcctl_fifo1_dma_error, "%u");
1435 	__HAL_AUX_ENTRY("kdfcctl_fifo2_overwrite",
1436 	    err_info->kdfcctl_fifo2_overwrite, "%u");
1437 	__HAL_AUX_ENTRY("kdfcctl_fifo2_poison",
1438 	    err_info->kdfcctl_fifo2_poison, "%u");
1439 	__HAL_AUX_ENTRY("kdfcctl_fifo2_dma_error",
1440 	    err_info->kdfcctl_fifo2_dma_error, "%u");
1441 	__HAL_AUX_ENTRY("dblgen_fifo0_overflow",
1442 	    err_info->dblgen_fifo0_overflow, "%u");
1443 	__HAL_AUX_ENTRY("dblgen_fifo1_overflow",
1444 	    err_info->dblgen_fifo1_overflow, "%u");
1445 	__HAL_AUX_ENTRY("dblgen_fifo2_overflow",
1446 	    err_info->dblgen_fifo2_overflow, "%u");
1447 	__HAL_AUX_ENTRY("statsb_pif_chain_error",
1448 	    err_info->statsb_pif_chain_error, "%u");
1449 	__HAL_AUX_ENTRY("statsb_drop_timeout",
1450 	    err_info->statsb_drop_timeout, "%u");
1451 	__HAL_AUX_ENTRY("target_illegal_access",
1452 	    err_info->target_illegal_access, "%u");
1453 	__HAL_AUX_ENTRY("ini_serr_det",
1454 	    err_info->ini_serr_det, "%u");
1455 	__HAL_AUX_ENTRY("pci_config_status_err",
1456 	    err_info->pci_config_status_err, "%u");
1457 	__HAL_AUX_ENTRY("pci_config_uncor_err",
1458 	    err_info->pci_config_uncor_err, "%u");
1459 	__HAL_AUX_ENTRY("pci_config_cor_err",
1460 	    err_info->pci_config_cor_err, "%u");
1461 	__HAL_AUX_ENTRY("mrpcim_to_vpath_alarms",
1462 	    err_info->mrpcim_to_vpath_alarms, "%u");
1463 	__HAL_AUX_ENTRY("srpcim_to_vpath_alarms",
1464 	    err_info->srpcim_to_vpath_alarms, "%u");
1465 	__HAL_AUX_ENTRY("srpcim_msg_to_vpath",
1466 	    err_info->srpcim_msg_to_vpath, "%u");
1467 	__HAL_AUX_ENTRY("prc_ring_bumps",
1468 	    err_info->prc_ring_bumps, "%u");
1469 	__HAL_AUX_ENTRY("prc_rxdcm_sc_err",
1470 	    err_info->prc_rxdcm_sc_err, "%u");
1471 	__HAL_AUX_ENTRY("prc_rxdcm_sc_abort",
1472 	    err_info->prc_rxdcm_sc_abort, "%u");
1473 	__HAL_AUX_ENTRY("prc_quanta_size_err",
1474 	    err_info->prc_quanta_size_err, "%u");
1475 
1476 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1477 
1478 	return (VXGE_HAL_OK);
1479 }
1480 
1481 /*
1482  * vxge_hal_aux_stats_vpath_sw_read - Read vpath soft statistics.
1483  * @vpath_handle: HAL Vpath handle.
1484  * @bufsize: Buffer size.
1485  * @retbuf: Buffer pointer.
1486  * @retsize: Size of the result. Cannot be greater than @bufsize.
1487  *
1488  * Read device hardware statistics. This is a subset of stats counters
1489  * from vxge_hal_vpath_stats_sw_info_t {}.
1490  *
1491  */
1492 vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_read(vxge_hal_vpath_h vpath_handle,int bufsize,char * retbuf,int * retsize)1493 vxge_hal_aux_stats_vpath_sw_read(
1494     vxge_hal_vpath_h vpath_handle,
1495     int bufsize,
1496     char *retbuf,
1497     int *retsize)
1498 {
1499 	int rsize = 0;
1500 	vxge_hal_status_e status;
1501 	vxge_hal_vpath_stats_sw_info_t *sw_info;
1502 	__hal_vpath_handle_t *vp = (__hal_vpath_handle_t *) vpath_handle;
1503 
1504 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1505 
1506 	vxge_assert(vpath_handle != NULL);
1507 
1508 	sw_info = vp->vpath->sw_stats;
1509 
1510 	__HAL_AUX_ENTRY("soft_reset_cnt", sw_info->soft_reset_cnt, "%u");
1511 
1512 
1513 	status = vxge_hal_aux_stats_vpath_sw_err_read(vpath_handle,
1514 	    leftsize, ptr, &rsize);
1515 	if (status != VXGE_HAL_OK)
1516 		return (status);
1517 
1518 	ptr += rsize;
1519 	leftsize -= rsize;
1520 
1521 	status = vxge_hal_aux_stats_vpath_sw_ring_read(vpath_handle,
1522 	    leftsize, ptr, &rsize);
1523 	if (status != VXGE_HAL_OK)
1524 		return (status);
1525 
1526 	ptr += rsize;
1527 	leftsize -= rsize;
1528 
1529 	status = vxge_hal_aux_stats_vpath_sw_fifo_read(vpath_handle,
1530 	    leftsize, ptr, &rsize);
1531 	if (status != VXGE_HAL_OK)
1532 		return (status);
1533 
1534 
1535 	leftsize -= rsize;
1536 
1537 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1538 
1539 	return (VXGE_HAL_OK);
1540 }
1541 
1542 /*
1543  * vxge_hal_aux_stats_device_sw_read - Read device software statistics.
1544  * @devh: HAL device handle.
1545  * @bufsize: Buffer size.
1546  * @retbuf: Buffer pointer.
1547  * @retsize: Size of the result. Cannot be greater than @bufsize.
1548  *
1549  * Read device software statistics. This is a subset of stats counters
1550  * from vxge_hal_device_stats_sw_info_t {}.
1551  *
1552  */
1553 vxge_hal_status_e
vxge_hal_aux_stats_device_sw_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1554 vxge_hal_aux_stats_device_sw_read(vxge_hal_device_h devh,
1555     int bufsize, char *retbuf, int *retsize)
1556 {
1557 	u32 i;
1558 	int rsize = 0;
1559 	vxge_hal_status_e status;
1560 	__hal_device_t *hldev = (__hal_device_t *) devh;
1561 
1562 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1563 
1564 	vxge_assert(devh);
1565 
1566 	__HAL_AUX_ENTRY("not_traffic_intr_cnt",
1567 	    hldev->header.not_traffic_intr_cnt, "%u");
1568 	__HAL_AUX_ENTRY("traffic_intr_cnt",
1569 	    hldev->header.traffic_intr_cnt, "%u");
1570 	__HAL_AUX_ENTRY("total_intr_cnt",
1571 	    hldev->header.not_traffic_intr_cnt +
1572 	    hldev->header.traffic_intr_cnt, "%u");
1573 	__HAL_AUX_ENTRY("soft_reset_cnt",
1574 	    hldev->stats.sw_dev_info_stats.soft_reset_cnt, "%u");
1575 
1576 	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
1577 
1578 		if (!(hldev->vpaths_deployed & mBIT(i)))
1579 			continue;
1580 
1581 		__HAL_AUX_ENTRY("S/W stats for vpath id", i, "%u");
1582 
1583 		status = vxge_hal_aux_stats_vpath_sw_read(
1584 		    VXGE_HAL_VIRTUAL_PATH_HANDLE(&hldev->virtual_paths[i]),
1585 		    leftsize, ptr, &rsize);
1586 
1587 		if (status != VXGE_HAL_OK)
1588 			return (status);
1589 
1590 		ptr += rsize;
1591 		leftsize -= rsize;
1592 	}
1593 
1594 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1595 
1596 	return (VXGE_HAL_OK);
1597 }
1598 
1599 /*
1600  * vxge_hal_aux_stats_device_sw_err_read - Read device software error statistics
1601  * @devh: HAL device handle.
1602  * @bufsize: Buffer size.
1603  * @retbuf: Buffer pointer.
1604  * @retsize: Size of the result. Cannot be greater than @bufsize.
1605  *
1606  * Read device software error statistics. This is a subset of stats counters
1607  * from vxge_hal_device_stats_sw_info_t {}.
1608  *
1609  */
1610 vxge_hal_status_e
vxge_hal_aux_stats_device_sw_err_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1611 vxge_hal_aux_stats_device_sw_err_read(vxge_hal_device_h devh,
1612     int bufsize, char *retbuf, int *retsize)
1613 {
1614 	vxge_hal_device_stats_sw_err_t *sw_err;
1615 	__hal_device_t *hldev = (__hal_device_t *) devh;
1616 
1617 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1618 
1619 	vxge_assert(devh);
1620 
1621 	sw_err = &hldev->stats.sw_dev_err_stats;
1622 
1623 	__HAL_AUX_ENTRY("mrpcim_alarms", sw_err->mrpcim_alarms, "%u");
1624 	__HAL_AUX_ENTRY("srpcim_alarms", sw_err->srpcim_alarms, "%u");
1625 	__HAL_AUX_ENTRY("vpath_alarms", sw_err->vpath_alarms, "%u");
1626 
1627 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1628 
1629 	return (VXGE_HAL_OK);
1630 }
1631 
1632 /*
1633  * vxge_hal_aux_stats_device_read - Read device statistics.
1634  * @devh: HAL device handle.
1635  * @bufsize: Buffer size.
1636  * @retbuf: Buffer pointer.
1637  * @retsize: Size of the result. Cannot be greater than @bufsize.
1638  *
1639  * Read device statistics. This is a subset of stats counters
1640  * from vxge_hal_device_stats_t {}.
1641  *
1642  */
1643 vxge_hal_status_e
vxge_hal_aux_stats_device_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1644 vxge_hal_aux_stats_device_read(vxge_hal_device_h devh,
1645     int bufsize, char *retbuf, int *retsize)
1646 {
1647 	char *ptr = retbuf;
1648 	int rsize = 0, leftsize = bufsize;
1649 	vxge_hal_status_e status;
1650 
1651 	vxge_assert(devh);
1652 
1653 	status = vxge_hal_aux_stats_device_hw_read(devh,
1654 	    leftsize, ptr, &rsize);
1655 	if (status != VXGE_HAL_OK)
1656 		return (status);
1657 
1658 	ptr += rsize;
1659 	leftsize -= rsize;
1660 
1661 	status = vxge_hal_aux_stats_device_sw_err_read(devh,
1662 	    leftsize, ptr, &rsize);
1663 	if (status != VXGE_HAL_OK)
1664 		return (status);
1665 
1666 	ptr += rsize;
1667 	leftsize -= rsize;
1668 
1669 	status = vxge_hal_aux_stats_device_sw_read(devh,
1670 	    leftsize, ptr, &rsize);
1671 	if (status != VXGE_HAL_OK)
1672 		return (status);
1673 
1674 	leftsize -= rsize;
1675 
1676 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1677 
1678 	return (VXGE_HAL_OK);
1679 }
1680 
1681 /*
1682  * vxge_hal_aux_stats_xpak_read - Read device xpak statistics.
1683  * @devh: HAL device handle.
1684  * @bufsize: Buffer size.
1685  * @retbuf: Buffer pointer.
1686  * @retsize: Size of the result. Cannot be greater than @bufsize.
1687  *
1688  * Read device xpak statistics. This is valid for function 0 device only
1689  *
1690  */
1691 vxge_hal_status_e
vxge_hal_aux_stats_xpak_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1692 vxge_hal_aux_stats_xpak_read(vxge_hal_device_h devh,
1693     int bufsize, char *retbuf, int *retsize)
1694 {
1695 	u32 i;
1696 	vxge_hal_mrpcim_xpak_stats_t *xpak_stats;
1697 	__hal_device_t *hldev = (__hal_device_t *) devh;
1698 
1699 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1700 
1701 	vxge_assert(devh);
1702 
1703 	if (!(hldev->access_rights & VXGE_HAL_DEVICE_ACCESS_RIGHT_MRPCIM))
1704 		return (VXGE_HAL_ERR_PRIVILAGED_OPEARATION);
1705 
1706 	for (i = 0; i < VXGE_HAL_MAC_MAX_WIRE_PORTS; i++) {
1707 
1708 		xpak_stats = &hldev->mrpcim->xpak_stats[i];
1709 
1710 		__HAL_AUX_ENTRY("Wire Port Id : ", i, "%u");
1711 		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1712 		    xpak_stats->excess_bias_current, "%u");
1713 		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1714 		    xpak_stats->excess_laser_output, "%u");
1715 		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1716 		    xpak_stats->excess_temp, "%u");
1717 		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1718 		    xpak_stats->alarm_transceiver_temp_high, "%u");
1719 		__HAL_AUX_ENTRY("alarm_transceiver_temp_low",
1720 		    xpak_stats->alarm_transceiver_temp_low, "%u");
1721 		__HAL_AUX_ENTRY("alarm_laser_bias_current_high",
1722 		    xpak_stats->alarm_laser_bias_current_high, "%u");
1723 		__HAL_AUX_ENTRY("alarm_laser_bias_current_low",
1724 		    xpak_stats->alarm_laser_bias_current_low, "%u");
1725 		__HAL_AUX_ENTRY("alarm_laser_output_power_high",
1726 		    xpak_stats->alarm_laser_output_power_high, "%u");
1727 		__HAL_AUX_ENTRY("alarm_laser_output_power_low",
1728 		    xpak_stats->alarm_laser_output_power_low, "%u");
1729 		__HAL_AUX_ENTRY("warn_transceiver_temp_high",
1730 		    xpak_stats->warn_transceiver_temp_high, "%u");
1731 		__HAL_AUX_ENTRY("warn_transceiver_temp_low",
1732 		    xpak_stats->warn_transceiver_temp_low, "%u");
1733 		__HAL_AUX_ENTRY("warn_laser_bias_current_high",
1734 		    xpak_stats->warn_laser_bias_current_high, "%u");
1735 		__HAL_AUX_ENTRY("warn_laser_bias_current_low",
1736 		    xpak_stats->warn_laser_bias_current_low, "%u");
1737 		__HAL_AUX_ENTRY("warn_laser_output_power_high",
1738 		    xpak_stats->warn_laser_output_power_high, "%u");
1739 		__HAL_AUX_ENTRY("warn_laser_output_power_low",
1740 		    xpak_stats->warn_laser_output_power_low, "%u");
1741 
1742 	}
1743 
1744 	__HAL_AUX_ENTRY_END(bufsize, retsize);
1745 
1746 	return (VXGE_HAL_OK);
1747 }
1748 /*
1749  * vxge_hal_aux_stats_mrpcim_read - Read device mrpcim statistics.
1750  * @devh: HAL device handle.
1751  * @bufsize: Buffer size.
1752  * @retbuf: Buffer pointer.
1753  * @retsize: Size of the result. Cannot be greater than @bufsize.
1754  *
1755  * Read device mrpcim statistics. This is valid for function 0 device only
1756  *
1757  */
1758 vxge_hal_status_e
vxge_hal_aux_stats_mrpcim_read(vxge_hal_device_h devh,int bufsize,char * retbuf,int * retsize)1759 vxge_hal_aux_stats_mrpcim_read(vxge_hal_device_h devh,
1760     int bufsize, char *retbuf, int *retsize)
1761 {
1762 	vxge_hal_status_e status;
1763 	vxge_hal_mrpcim_stats_hw_info_t mrpcim_info;
1764 	__hal_device_t *hldev = (__hal_device_t *) devh;
1765 
1766 	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1767 
1768 	vxge_assert(devh);
1769 
1770 	if (!(hldev->access_rights & VXGE_HAL_DEVICE_ACCESS_RIGHT_MRPCIM))
1771 		return (VXGE_HAL_ERR_PRIVILAGED_OPEARATION);
1772 
1773 	status = vxge_hal_mrpcim_stats_enable(devh);
1774 	if (status != VXGE_HAL_OK)
1775 		return (status);
1776 
1777 	status = vxge_hal_mrpcim_stats_get(devh, &mrpcim_info);
1778 	if (status != VXGE_HAL_OK)
1779 		return (status);
1780 
1781 	__HAL_AUX_ENTRY("pic_ini_rd_drop", mrpcim_info.pic_ini_rd_drop, "%u");
1782 	__HAL_AUX_ENTRY("pic_ini_wr_drop", mrpcim_info.pic_ini_wr_drop, "%u");
1783 
1784 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane0",
1785 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[0].
1786 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1787 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane1",
1788 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[1].
1789 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1790 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane2",
1791 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[2].
1792 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1793 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane3",
1794 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[3].
1795 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1796 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane4",
1797 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[4].
1798 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1799 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane5",
1800 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[5].
1801 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1802 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane6",
1803 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[6].
1804 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1805 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane7",
1806 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[7].
1807 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1808 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane8",
1809 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[8].
1810 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1811 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane9",
1812 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[9].
1813 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1814 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane10",
1815 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[10].
1816 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1817 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane11",
1818 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[11].
1819 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1820 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane12",
1821 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[12].
1822 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1823 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane13",
1824 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[13].
1825 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1826 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane14",
1827 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[14].
1828 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1829 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane15",
1830 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[15].
1831 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1832 	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane16",
1833 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[16].
1834 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1835 
1836 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane0",
1837 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[0].
1838 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1839 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane1",
1840 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[1].
1841 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1842 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane2",
1843 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[2].
1844 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1845 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane3",
1846 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[3].
1847 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1848 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane4",
1849 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[4].
1850 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1851 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane5",
1852 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[5].
1853 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1854 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane6",
1855 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[6].
1856 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1857 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane7",
1858 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[7].
1859 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1860 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane8",
1861 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[8].
1862 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1863 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane9",
1864 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[9].
1865 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1866 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane10",
1867 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[10].
1868 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1869 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane11",
1870 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[11].
1871 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1872 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane12",
1873 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[12].
1874 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1875 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane13",
1876 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[13].
1877 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1878 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane14",
1879 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[14].
1880 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1881 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane15",
1882 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[15].
1883 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1884 	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane16",
1885 	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[16].
1886 	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1887 
1888 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane0",
1889 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[0].
1890 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1891 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane1",
1892 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[1].
1893 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1894 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane2",
1895 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[2].
1896 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1897 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane3",
1898 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[3].
1899 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1900 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane4",
1901 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[4].
1902 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1903 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane5",
1904 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[5].
1905 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1906 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane6",
1907 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[6].
1908 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1909 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane7",
1910 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[7].
1911 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1912 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane8",
1913 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[8].
1914 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1915 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane9",
1916 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[9].
1917 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1918 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane10",
1919 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[10].
1920 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1921 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane11",
1922 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[11].
1923 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1924 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane12",
1925 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[12].
1926 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1927 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane13",
1928 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[13].
1929 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1930 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane14",
1931 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[14].
1932 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1933 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane15",
1934 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[15].
1935 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1936 	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane16",
1937 	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[16].
1938 	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1939 
1940 	__HAL_AUX_ENTRY("pic_ini_rd_vpin_drop",
1941 	    mrpcim_info.pic_ini_rd_vpin_drop, "%u");
1942 	__HAL_AUX_ENTRY("pic_ini_wr_vpin_drop",
1943 	    mrpcim_info.pic_ini_wr_vpin_drop, "%u");
1944 	__HAL_AUX_ENTRY("pic_genstats_count0",
1945 	    mrpcim_info.pic_genstats_count0, "%u");
1946 	__HAL_AUX_ENTRY("pic_genstats_count1",
1947 	    mrpcim_info.pic_genstats_count1, "%u");
1948 	__HAL_AUX_ENTRY("pic_genstats_count2",
1949 	    mrpcim_info.pic_genstats_count2, "%u");
1950 	__HAL_AUX_ENTRY("pic_genstats_count3",
1951 	    mrpcim_info.pic_genstats_count3, "%u");
1952 	__HAL_AUX_ENTRY("pic_genstats_count4",
1953 	    mrpcim_info.pic_genstats_count4, "%u");
1954 	__HAL_AUX_ENTRY("pic_genstats_count5",
1955 	    mrpcim_info.pic_genstats_count5, "%u");
1956 	__HAL_AUX_ENTRY("pci_rstdrop_cpl",
1957 	    mrpcim_info.pci_rstdrop_cpl, "%u");
1958 	__HAL_AUX_ENTRY("pci_rstdrop_msg",
1959 	    mrpcim_info.pci_rstdrop_msg, "%u");
1960 	__HAL_AUX_ENTRY("pci_rstdrop_client1",
1961 	    mrpcim_info.pci_rstdrop_client1, "%u");
1962 	__HAL_AUX_ENTRY("pci_rstdrop_client0",
1963 	    mrpcim_info.pci_rstdrop_client0, "%u");
1964 	__HAL_AUX_ENTRY("pci_rstdrop_client2",
1965 	    mrpcim_info.pci_rstdrop_client2, "%u");
1966 
1967 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane0",
1968 	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_cplh, "%u");
1969 	__HAL_AUX_ENTRY("pci_depl_nph_vplane0",
1970 	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_nph, "%u");
1971 	__HAL_AUX_ENTRY("pci_depl_ph_vplane0",
1972 	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_ph, "%u");
1973 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane1",
1974 	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_cplh, "%u");
1975 	__HAL_AUX_ENTRY("pci_depl_nph_vplane1",
1976 	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_nph, "%u");
1977 	__HAL_AUX_ENTRY("pci_depl_ph_vplane1",
1978 	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_ph, "%u");
1979 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane2",
1980 	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_cplh, "%u");
1981 	__HAL_AUX_ENTRY("pci_depl_nph_vplane2",
1982 	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_nph, "%u");
1983 	__HAL_AUX_ENTRY("pci_depl_ph_vplane2",
1984 	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_ph, "%u");
1985 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane3",
1986 	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_cplh, "%u");
1987 	__HAL_AUX_ENTRY("pci_depl_nph_vplane3",
1988 	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_nph, "%u");
1989 	__HAL_AUX_ENTRY("pci_depl_ph_vplane3",
1990 	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_ph, "%u");
1991 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane4",
1992 	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_cplh, "%u");
1993 	__HAL_AUX_ENTRY("pci_depl_nph_vplane4",
1994 	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_nph, "%u");
1995 	__HAL_AUX_ENTRY("pci_depl_ph_vplane4",
1996 	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_ph, "%u");
1997 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane5",
1998 	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_cplh, "%u");
1999 	__HAL_AUX_ENTRY("pci_depl_nph_vplane5",
2000 	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_nph, "%u");
2001 	__HAL_AUX_ENTRY("pci_depl_ph_vplane5",
2002 	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_ph, "%u");
2003 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane6",
2004 	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_cplh, "%u");
2005 	__HAL_AUX_ENTRY("pci_depl_nph_vplane6",
2006 	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_nph, "%u");
2007 	__HAL_AUX_ENTRY("pci_depl_ph_vplane6",
2008 	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_ph, "%u");
2009 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane7",
2010 	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_cplh, "%u");
2011 	__HAL_AUX_ENTRY("pci_depl_nph_vplane7",
2012 	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_nph, "%u");
2013 	__HAL_AUX_ENTRY("pci_depl_ph_vplane7",
2014 	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_ph, "%u");
2015 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane8",
2016 	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_cplh, "%u");
2017 	__HAL_AUX_ENTRY("pci_depl_nph_vplane8",
2018 	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_nph, "%u");
2019 	__HAL_AUX_ENTRY("pci_depl_ph_vplane8",
2020 	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_ph, "%u");
2021 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane9",
2022 	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_cplh, "%u");
2023 	__HAL_AUX_ENTRY("pci_depl_nph_vplane9",
2024 	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_nph, "%u");
2025 	__HAL_AUX_ENTRY("pci_depl_ph_vplane9",
2026 	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_ph, "%u");
2027 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane10",
2028 	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_cplh, "%u");
2029 	__HAL_AUX_ENTRY("pci_depl_nph_vplane10",
2030 	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_nph, "%u");
2031 	__HAL_AUX_ENTRY("pci_depl_ph_vplane10",
2032 	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_ph, "%u");
2033 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane11",
2034 	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_cplh, "%u");
2035 	__HAL_AUX_ENTRY("pci_depl_nph_vplane11",
2036 	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_nph, "%u");
2037 	__HAL_AUX_ENTRY("pci_depl_ph_vplane11",
2038 	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_ph, "%u");
2039 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane12",
2040 	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_cplh, "%u");
2041 	__HAL_AUX_ENTRY("pci_depl_nph_vplane12",
2042 	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_nph, "%u");
2043 	__HAL_AUX_ENTRY("pci_depl_ph_vplane12",
2044 	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_ph, "%u");
2045 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane13",
2046 	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_cplh, "%u");
2047 	__HAL_AUX_ENTRY("pci_depl_nph_vplane13",
2048 	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_nph, "%u");
2049 	__HAL_AUX_ENTRY("pci_depl_ph_vplane13",
2050 	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_ph, "%u");
2051 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane14",
2052 	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_cplh, "%u");
2053 	__HAL_AUX_ENTRY("pci_depl_nph_vplane14",
2054 	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_nph, "%u");
2055 	__HAL_AUX_ENTRY("pci_depl_ph_vplane14",
2056 	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_ph, "%u");
2057 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane15",
2058 	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_cplh, "%u");
2059 	__HAL_AUX_ENTRY("pci_depl_nph_vplane15",
2060 	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_nph, "%u");
2061 	__HAL_AUX_ENTRY("pci_depl_ph_vplane15",
2062 	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_ph, "%u");
2063 	__HAL_AUX_ENTRY("pci_depl_cplh_vplane16",
2064 	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_cplh, "%u");
2065 	__HAL_AUX_ENTRY("pci_depl_nph_vplane16",
2066 	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_nph, "%u");
2067 	__HAL_AUX_ENTRY("pci_depl_ph_vplane16",
2068 	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_ph, "%u");
2069 
2070 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane0",
2071 	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_cpld, "%u");
2072 	__HAL_AUX_ENTRY("pci_depl_npd_vplane0",
2073 	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_npd, "%u");
2074 	__HAL_AUX_ENTRY("pci_depl_pd_vplane0",
2075 	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_pd, "%u");
2076 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane1",
2077 	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_cpld, "%u");
2078 	__HAL_AUX_ENTRY("pci_depl_npd_vplane1",
2079 	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_npd, "%u");
2080 	__HAL_AUX_ENTRY("pci_depl_pd_vplane1",
2081 	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_pd, "%u");
2082 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane2",
2083 	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_cpld, "%u");
2084 	__HAL_AUX_ENTRY("pci_depl_npd_vplane2",
2085 	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_npd, "%u");
2086 	__HAL_AUX_ENTRY("pci_depl_pd_vplane2",
2087 	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_pd, "%u");
2088 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane3",
2089 	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_cpld, "%u");
2090 	__HAL_AUX_ENTRY("pci_depl_npd_vplane3",
2091 	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_npd, "%u");
2092 	__HAL_AUX_ENTRY("pci_depl_pd_vplane3",
2093 	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_pd, "%u");
2094 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane4",
2095 	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_cpld, "%u");
2096 	__HAL_AUX_ENTRY("pci_depl_npd_vplane4",
2097 	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_npd, "%u");
2098 	__HAL_AUX_ENTRY("pci_depl_pd_vplane4",
2099 	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_pd, "%u");
2100 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane5",
2101 	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_cpld, "%u");
2102 	__HAL_AUX_ENTRY("pci_depl_npd_vplane5",
2103 	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_npd, "%u");
2104 	__HAL_AUX_ENTRY("pci_depl_pd_vplane5",
2105 	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_pd, "%u");
2106 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane6",
2107 	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_cpld, "%u");
2108 	__HAL_AUX_ENTRY("pci_depl_npd_vplane6",
2109 	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_npd, "%u");
2110 	__HAL_AUX_ENTRY("pci_depl_pd_vplane6",
2111 	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_pd, "%u");
2112 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane7",
2113 	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_cpld, "%u");
2114 	__HAL_AUX_ENTRY("pci_depl_npd_vplane7",
2115 	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_npd, "%u");
2116 	__HAL_AUX_ENTRY("pci_depl_pd_vplane7",
2117 	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_pd, "%u");
2118 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane8",
2119 	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_cpld, "%u");
2120 	__HAL_AUX_ENTRY("pci_depl_npd_vplane8",
2121 	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_npd, "%u");
2122 	__HAL_AUX_ENTRY("pci_depl_pd_vplane8",
2123 	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_pd, "%u");
2124 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane9",
2125 	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_cpld, "%u");
2126 	__HAL_AUX_ENTRY("pci_depl_npd_vplane9",
2127 	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_npd, "%u");
2128 	__HAL_AUX_ENTRY("pci_depl_pd_vplane9",
2129 	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_pd, "%u");
2130 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane10",
2131 	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_cpld, "%u");
2132 	__HAL_AUX_ENTRY("pci_depl_npd_vplane10",
2133 	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_npd, "%u");
2134 	__HAL_AUX_ENTRY("pci_depl_pd_vplane10",
2135 	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_pd, "%u");
2136 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane11",
2137 	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_cpld, "%u");
2138 	__HAL_AUX_ENTRY("pci_depl_npd_vplane11",
2139 	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_npd, "%u");
2140 	__HAL_AUX_ENTRY("pci_depl_pd_vplane11",
2141 	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_pd, "%u");
2142 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane12",
2143 	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_cpld, "%u");
2144 	__HAL_AUX_ENTRY("pci_depl_npd_vplane12",
2145 	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_npd, "%u");
2146 	__HAL_AUX_ENTRY("pci_depl_pd_vplane12",
2147 	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_pd, "%u");
2148 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane13",
2149 	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_cpld, "%u");
2150 	__HAL_AUX_ENTRY("pci_depl_npd_vplane13",
2151 	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_npd, "%u");
2152 	__HAL_AUX_ENTRY("pci_depl_pd_vplane13",
2153 	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_pd, "%u");
2154 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane14",
2155 	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_cpld, "%u");
2156 	__HAL_AUX_ENTRY("pci_depl_npd_vplane14",
2157 	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_npd, "%u");
2158 	__HAL_AUX_ENTRY("pci_depl_pd_vplane14",
2159 	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_pd, "%u");
2160 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane15",
2161 	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_cpld, "%u");
2162 	__HAL_AUX_ENTRY("pci_depl_npd_vplane15",
2163 	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_npd, "%u");
2164 	__HAL_AUX_ENTRY("pci_depl_pd_vplane15",
2165 	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_pd, "%u");
2166 	__HAL_AUX_ENTRY("pci_depl_cpld_vplane16",
2167 	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_cpld, "%u");
2168 	__HAL_AUX_ENTRY("pci_depl_npd_vplane16",
2169 	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_npd, "%u");
2170 	__HAL_AUX_ENTRY("pci_depl_pd_vplane16",
2171 	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_pd, "%u");
2172 
2173 	__HAL_AUX_ENTRY("tx_ttl_frms_PORT0",
2174 	    mrpcim_info.xgmac_port[0].tx_ttl_frms, "%llu");
2175 	__HAL_AUX_ENTRY("tx_ttl_octets_PORT0",
2176 	    mrpcim_info.xgmac_port[0].tx_ttl_octets, "%llu");
2177 	__HAL_AUX_ENTRY("tx_data_octets_PORT0",
2178 	    mrpcim_info.xgmac_port[0].tx_data_octets, "%llu");
2179 	__HAL_AUX_ENTRY("tx_mcast_frms_PORT0",
2180 	    mrpcim_info.xgmac_port[0].tx_mcast_frms, "%llu");
2181 	__HAL_AUX_ENTRY("tx_bcast_frms_PORT0",
2182 	    mrpcim_info.xgmac_port[0].tx_bcast_frms, "%llu");
2183 	__HAL_AUX_ENTRY("tx_ucast_frms_PORT0",
2184 	    mrpcim_info.xgmac_port[0].tx_ucast_frms, "%llu");
2185 	__HAL_AUX_ENTRY("tx_tagged_frms_PORT0",
2186 	    mrpcim_info.xgmac_port[0].tx_tagged_frms, "%llu");
2187 	__HAL_AUX_ENTRY("tx_vld_ip_PORT0",
2188 	    mrpcim_info.xgmac_port[0].tx_vld_ip, "%llu");
2189 	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT0",
2190 	    mrpcim_info.xgmac_port[0].tx_vld_ip_octets, "%llu");
2191 	__HAL_AUX_ENTRY("tx_icmp_PORT0",
2192 	    mrpcim_info.xgmac_port[0].tx_icmp, "%llu");
2193 	__HAL_AUX_ENTRY("tx_tcp_PORT0",
2194 	    mrpcim_info.xgmac_port[0].tx_tcp, "%llu");
2195 	__HAL_AUX_ENTRY("tx_rst_tcp_PORT0",
2196 	    mrpcim_info.xgmac_port[0].tx_rst_tcp, "%llu");
2197 	__HAL_AUX_ENTRY("tx_udp_PORT0",
2198 	    mrpcim_info.xgmac_port[0].tx_udp, "%llu");
2199 	__HAL_AUX_ENTRY("tx_parse_error_PORT0",
2200 	    mrpcim_info.xgmac_port[0].tx_parse_error, "%u");
2201 	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT0",
2202 	    mrpcim_info.xgmac_port[0].tx_unknown_protocol, "%u");
2203 	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT0",
2204 	    mrpcim_info.xgmac_port[0].tx_pause_ctrl_frms, "%llu");
2205 	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT0",
2206 	    mrpcim_info.xgmac_port[0].tx_marker_pdu_frms, "%u");
2207 	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT0",
2208 	    mrpcim_info.xgmac_port[0].tx_lacpdu_frms, "%u");
2209 	__HAL_AUX_ENTRY("tx_drop_ip_PORT0",
2210 	    mrpcim_info.xgmac_port[0].tx_drop_ip, "%u");
2211 	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT0",
2212 	    mrpcim_info.xgmac_port[0].tx_marker_resp_pdu_frms, "%u");
2213 	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT0",
2214 	    mrpcim_info.xgmac_port[0].tx_xgmii_char2_match, "%u");
2215 	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT0",
2216 	    mrpcim_info.xgmac_port[0].tx_xgmii_char1_match, "%u");
2217 	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT0",
2218 	    mrpcim_info.xgmac_port[0].tx_xgmii_column2_match, "%u");
2219 	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT0",
2220 	    mrpcim_info.xgmac_port[0].tx_xgmii_column1_match, "%u");
2221 	__HAL_AUX_ENTRY("tx_any_err_frms_PORT0",
2222 	    mrpcim_info.xgmac_port[0].tx_any_err_frms, "%u");
2223 	__HAL_AUX_ENTRY("tx_drop_frms_PORT0",
2224 	    mrpcim_info.xgmac_port[0].tx_drop_frms, "%u");
2225 	__HAL_AUX_ENTRY("rx_ttl_frms_PORT0",
2226 	    mrpcim_info.xgmac_port[0].rx_ttl_frms, "%llu");
2227 	__HAL_AUX_ENTRY("rx_vld_frms_PORT0",
2228 	    mrpcim_info.xgmac_port[0].rx_vld_frms, "%llu");
2229 	__HAL_AUX_ENTRY("rx_offload_frms_PORT0",
2230 	    mrpcim_info.xgmac_port[0].rx_offload_frms, "%llu");
2231 	__HAL_AUX_ENTRY("rx_ttl_octets_PORT0",
2232 	    mrpcim_info.xgmac_port[0].rx_ttl_octets, "%llu");
2233 	__HAL_AUX_ENTRY("rx_data_octets_PORT0",
2234 	    mrpcim_info.xgmac_port[0].rx_data_octets, "%llu");
2235 	__HAL_AUX_ENTRY("rx_offload_octets_PORT0",
2236 	    mrpcim_info.xgmac_port[0].rx_offload_octets, "%llu");
2237 	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT0",
2238 	    mrpcim_info.xgmac_port[0].rx_vld_mcast_frms, "%llu");
2239 	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT0",
2240 	    mrpcim_info.xgmac_port[0].rx_vld_bcast_frms, "%llu");
2241 	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT0",
2242 	    mrpcim_info.xgmac_port[0].rx_accepted_ucast_frms, "%llu");
2243 	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT0",
2244 	    mrpcim_info.xgmac_port[0].rx_accepted_nucast_frms, "%llu");
2245 	__HAL_AUX_ENTRY("rx_tagged_frms_PORT0",
2246 	    mrpcim_info.xgmac_port[0].rx_tagged_frms, "%llu");
2247 	__HAL_AUX_ENTRY("rx_long_frms_PORT0",
2248 	    mrpcim_info.xgmac_port[0].rx_long_frms, "%llu");
2249 	__HAL_AUX_ENTRY("rx_usized_frms_PORT0",
2250 	    mrpcim_info.xgmac_port[0].rx_usized_frms, "%llu");
2251 	__HAL_AUX_ENTRY("rx_osized_frms_PORT0",
2252 	    mrpcim_info.xgmac_port[0].rx_osized_frms, "%llu");
2253 	__HAL_AUX_ENTRY("rx_frag_frms_PORT0",
2254 	    mrpcim_info.xgmac_port[0].rx_frag_frms, "%llu");
2255 	__HAL_AUX_ENTRY("rx_jabber_frms_PORT0",
2256 	    mrpcim_info.xgmac_port[0].rx_jabber_frms, "%llu");
2257 	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT0",
2258 	    mrpcim_info.xgmac_port[0].rx_ttl_64_frms, "%llu");
2259 	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT0",
2260 	    mrpcim_info.xgmac_port[0].rx_ttl_65_127_frms, "%llu");
2261 	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT0",
2262 	    mrpcim_info.xgmac_port[0].rx_ttl_128_255_frms, "%llu");
2263 	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT0",
2264 	    mrpcim_info.xgmac_port[0].rx_ttl_256_511_frms, "%llu");
2265 	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT0",
2266 	    mrpcim_info.xgmac_port[0].rx_ttl_512_1023_frms, "%llu");
2267 	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT0",
2268 	    mrpcim_info.xgmac_port[0].rx_ttl_1024_1518_frms, "%llu");
2269 	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT0",
2270 	    mrpcim_info.xgmac_port[0].rx_ttl_1519_4095_frms, "%llu");
2271 	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT0",
2272 	    mrpcim_info.xgmac_port[0].rx_ttl_4096_8191_frms, "%llu");
2273 	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT0",
2274 	    mrpcim_info.xgmac_port[0].rx_ttl_8192_max_frms, "%llu");
2275 	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT0",
2276 	    mrpcim_info.xgmac_port[0].rx_ttl_gt_max_frms, "%llu");
2277 	__HAL_AUX_ENTRY("rx_ip_PORT0",
2278 	    mrpcim_info.xgmac_port[0].rx_ip, "%llu");
2279 	__HAL_AUX_ENTRY("rx_accepted_ip_PORT0",
2280 	    mrpcim_info.xgmac_port[0].rx_accepted_ip, "%llu");
2281 	__HAL_AUX_ENTRY("rx_ip_octets_PORT0",
2282 	    mrpcim_info.xgmac_port[0].rx_ip_octets, "%llu");
2283 	__HAL_AUX_ENTRY("rx_err_ip_PORT0",
2284 	    mrpcim_info.xgmac_port[0].rx_err_ip, "%llu");
2285 	__HAL_AUX_ENTRY("rx_icmp_PORT0",
2286 	    mrpcim_info.xgmac_port[0].rx_icmp, "%llu");
2287 	__HAL_AUX_ENTRY("rx_tcp_PORT0",
2288 	    mrpcim_info.xgmac_port[0].rx_tcp, "%llu");
2289 	__HAL_AUX_ENTRY("rx_udp_PORT0",
2290 	    mrpcim_info.xgmac_port[0].rx_udp, "%llu");
2291 	__HAL_AUX_ENTRY("rx_err_tcp_PORT0",
2292 	    mrpcim_info.xgmac_port[0].rx_err_tcp, "%llu");
2293 	__HAL_AUX_ENTRY("rx_pause_cnt_PORT0",
2294 	    mrpcim_info.xgmac_port[0].rx_pause_count, "%llu");
2295 	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT0",
2296 	    mrpcim_info.xgmac_port[0].rx_pause_ctrl_frms, "%llu");
2297 	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT0",
2298 	    mrpcim_info.xgmac_port[0].rx_unsup_ctrl_frms, "%llu");
2299 	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT0",
2300 	    mrpcim_info.xgmac_port[0].rx_fcs_err_frms, "%llu");
2301 	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT0",
2302 	    mrpcim_info.xgmac_port[0].rx_in_rng_len_err_frms, "%llu");
2303 	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT0",
2304 	    mrpcim_info.xgmac_port[0].rx_out_rng_len_err_frms, "%llu");
2305 	__HAL_AUX_ENTRY("rx_drop_frms_PORT0",
2306 	    mrpcim_info.xgmac_port[0].rx_drop_frms, "%llu");
2307 	__HAL_AUX_ENTRY("rx_discarded_frms_PORT0",
2308 	    mrpcim_info.xgmac_port[0].rx_discarded_frms, "%llu");
2309 	__HAL_AUX_ENTRY("rx_drop_ip_PORT0",
2310 	    mrpcim_info.xgmac_port[0].rx_drop_ip, "%llu");
2311 	__HAL_AUX_ENTRY("rx_drp_udp_PORT0",
2312 	    mrpcim_info.xgmac_port[0].rx_drop_udp, "%llu");
2313 	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT0",
2314 	    mrpcim_info.xgmac_port[0].rx_marker_pdu_frms, "%u");
2315 	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT0",
2316 	    mrpcim_info.xgmac_port[0].rx_lacpdu_frms, "%u");
2317 	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT0",
2318 	    mrpcim_info.xgmac_port[0].rx_unknown_pdu_frms, "%u");
2319 	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT0",
2320 	    mrpcim_info.xgmac_port[0].rx_marker_resp_pdu_frms, "%u");
2321 	__HAL_AUX_ENTRY("rx_fcs_discard_PORT0",
2322 	    mrpcim_info.xgmac_port[0].rx_fcs_discard, "%u");
2323 	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT0",
2324 	    mrpcim_info.xgmac_port[0].rx_illegal_pdu_frms, "%u");
2325 	__HAL_AUX_ENTRY("rx_switch_discard_PORT0",
2326 	    mrpcim_info.xgmac_port[0].rx_switch_discard, "%u");
2327 	__HAL_AUX_ENTRY("rx_len_discard_PORT0",
2328 	    mrpcim_info.xgmac_port[0].rx_len_discard, "%u");
2329 	__HAL_AUX_ENTRY("rx_rpa_discard_PORT0",
2330 	    mrpcim_info.xgmac_port[0].rx_rpa_discard, "%u");
2331 	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT0",
2332 	    mrpcim_info.xgmac_port[0].rx_l2_mgmt_discard, "%u");
2333 	__HAL_AUX_ENTRY("rx_rts_discard_PORT0",
2334 	    mrpcim_info.xgmac_port[0].rx_rts_discard, "%u");
2335 	__HAL_AUX_ENTRY("rx_trash_discard_PORT0",
2336 	    mrpcim_info.xgmac_port[0].rx_trash_discard, "%u");
2337 	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT0",
2338 	    mrpcim_info.xgmac_port[0].rx_buff_full_discard, "%u");
2339 	__HAL_AUX_ENTRY("rx_red_discard_PORT0",
2340 	    mrpcim_info.xgmac_port[0].rx_red_discard, "%u");
2341 	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT0",
2342 	    mrpcim_info.xgmac_port[0].rx_xgmii_ctrl_err_cnt, "%u");
2343 	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT0",
2344 	    mrpcim_info.xgmac_port[0].rx_xgmii_data_err_cnt, "%u");
2345 	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT0",
2346 	    mrpcim_info.xgmac_port[0].rx_xgmii_char1_match, "%u");
2347 	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT0",
2348 	    mrpcim_info.xgmac_port[0].rx_xgmii_err_sym, "%u");
2349 	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT0",
2350 	    mrpcim_info.xgmac_port[0].rx_xgmii_column1_match, "%u");
2351 	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT0",
2352 	    mrpcim_info.xgmac_port[0].rx_xgmii_char2_match, "%u");
2353 	__HAL_AUX_ENTRY("rx_local_fault_PORT0",
2354 	    mrpcim_info.xgmac_port[0].rx_local_fault, "%u");
2355 	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT0",
2356 	    mrpcim_info.xgmac_port[0].rx_xgmii_column2_match, "%u");
2357 	__HAL_AUX_ENTRY("rx_jettison_PORT0",
2358 	    mrpcim_info.xgmac_port[0].rx_jettison, "%u");
2359 	__HAL_AUX_ENTRY("rx_remote_fault_PORT0",
2360 	    mrpcim_info.xgmac_port[0].rx_remote_fault, "%u");
2361 
2362 	__HAL_AUX_ENTRY("tx_ttl_frms_PORT1",
2363 	    mrpcim_info.xgmac_port[1].tx_ttl_frms, "%llu");
2364 	__HAL_AUX_ENTRY("tx_ttl_octets_PORT1",
2365 	    mrpcim_info.xgmac_port[1].tx_ttl_octets, "%llu");
2366 	__HAL_AUX_ENTRY("tx_data_octets_PORT1",
2367 	    mrpcim_info.xgmac_port[1].tx_data_octets, "%llu");
2368 	__HAL_AUX_ENTRY("tx_mcast_frms_PORT1",
2369 	    mrpcim_info.xgmac_port[1].tx_mcast_frms, "%llu");
2370 	__HAL_AUX_ENTRY("tx_bcast_frms_PORT1",
2371 	    mrpcim_info.xgmac_port[1].tx_bcast_frms, "%llu");
2372 	__HAL_AUX_ENTRY("tx_ucast_frms_PORT1",
2373 	    mrpcim_info.xgmac_port[1].tx_ucast_frms, "%llu");
2374 	__HAL_AUX_ENTRY("tx_tagged_frms_PORT1",
2375 	    mrpcim_info.xgmac_port[1].tx_tagged_frms, "%llu");
2376 	__HAL_AUX_ENTRY("tx_vld_ip_PORT1",
2377 	    mrpcim_info.xgmac_port[1].tx_vld_ip, "%llu");
2378 	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT1",
2379 	    mrpcim_info.xgmac_port[1].tx_vld_ip_octets, "%llu");
2380 	__HAL_AUX_ENTRY("tx_icmp_PORT1",
2381 	    mrpcim_info.xgmac_port[1].tx_icmp, "%llu");
2382 	__HAL_AUX_ENTRY("tx_tcp_PORT1",
2383 	    mrpcim_info.xgmac_port[1].tx_tcp, "%llu");
2384 	__HAL_AUX_ENTRY("tx_rst_tcp_PORT1",
2385 	    mrpcim_info.xgmac_port[1].tx_rst_tcp, "%llu");
2386 	__HAL_AUX_ENTRY("tx_udp_PORT1",
2387 	    mrpcim_info.xgmac_port[1].tx_udp, "%llu");
2388 	__HAL_AUX_ENTRY("tx_parse_error_PORT1",
2389 	    mrpcim_info.xgmac_port[1].tx_parse_error, "%u");
2390 	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT1",
2391 	    mrpcim_info.xgmac_port[1].tx_unknown_protocol, "%u");
2392 	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT1",
2393 	    mrpcim_info.xgmac_port[1].tx_pause_ctrl_frms, "%llu");
2394 	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT1",
2395 	    mrpcim_info.xgmac_port[1].tx_marker_pdu_frms, "%u");
2396 	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT1",
2397 	    mrpcim_info.xgmac_port[1].tx_lacpdu_frms, "%u");
2398 	__HAL_AUX_ENTRY("tx_drop_ip_PORT1",
2399 	    mrpcim_info.xgmac_port[1].tx_drop_ip, "%u");
2400 	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT1",
2401 	    mrpcim_info.xgmac_port[1].tx_marker_resp_pdu_frms, "%u");
2402 	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT1",
2403 	    mrpcim_info.xgmac_port[1].tx_xgmii_char2_match, "%u");
2404 	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT1",
2405 	    mrpcim_info.xgmac_port[1].tx_xgmii_char1_match, "%u");
2406 	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT1",
2407 	    mrpcim_info.xgmac_port[1].tx_xgmii_column2_match, "%u");
2408 	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT1",
2409 	    mrpcim_info.xgmac_port[1].tx_xgmii_column1_match, "%u");
2410 	__HAL_AUX_ENTRY("tx_any_err_frms_PORT1",
2411 	    mrpcim_info.xgmac_port[1].tx_any_err_frms, "%u");
2412 	__HAL_AUX_ENTRY("tx_drop_frms_PORT1",
2413 	    mrpcim_info.xgmac_port[1].tx_drop_frms, "%u");
2414 	__HAL_AUX_ENTRY("rx_ttl_frms_PORT1",
2415 	    mrpcim_info.xgmac_port[1].rx_ttl_frms, "%llu");
2416 	__HAL_AUX_ENTRY("rx_vld_frms_PORT1",
2417 	    mrpcim_info.xgmac_port[1].rx_vld_frms, "%llu");
2418 	__HAL_AUX_ENTRY("rx_offload_frms_PORT1",
2419 	    mrpcim_info.xgmac_port[1].rx_offload_frms, "%llu");
2420 	__HAL_AUX_ENTRY("rx_ttl_octets_PORT1",
2421 	    mrpcim_info.xgmac_port[1].rx_ttl_octets, "%llu");
2422 	__HAL_AUX_ENTRY("rx_data_octets_PORT1",
2423 	    mrpcim_info.xgmac_port[1].rx_data_octets, "%llu");
2424 	__HAL_AUX_ENTRY("rx_offload_octets_PORT1",
2425 	    mrpcim_info.xgmac_port[1].rx_offload_octets, "%llu");
2426 	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT1",
2427 	    mrpcim_info.xgmac_port[1].rx_vld_mcast_frms, "%llu");
2428 	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT1",
2429 	    mrpcim_info.xgmac_port[1].rx_vld_bcast_frms, "%llu");
2430 	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT1",
2431 	    mrpcim_info.xgmac_port[1].rx_accepted_ucast_frms, "%llu");
2432 	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT1",
2433 	    mrpcim_info.xgmac_port[1].rx_accepted_nucast_frms, "%llu");
2434 	__HAL_AUX_ENTRY("rx_tagged_frms_PORT1",
2435 	    mrpcim_info.xgmac_port[1].rx_tagged_frms, "%llu");
2436 	__HAL_AUX_ENTRY("rx_long_frms_PORT1",
2437 	    mrpcim_info.xgmac_port[1].rx_long_frms, "%llu");
2438 	__HAL_AUX_ENTRY("rx_usized_frms_PORT1",
2439 	    mrpcim_info.xgmac_port[1].rx_usized_frms, "%llu");
2440 	__HAL_AUX_ENTRY("rx_osized_frms_PORT1",
2441 	    mrpcim_info.xgmac_port[1].rx_osized_frms, "%llu");
2442 	__HAL_AUX_ENTRY("rx_frag_frms_PORT1",
2443 	    mrpcim_info.xgmac_port[1].rx_frag_frms, "%llu");
2444 	__HAL_AUX_ENTRY("rx_jabber_frms_PORT1",
2445 	    mrpcim_info.xgmac_port[1].rx_jabber_frms, "%llu");
2446 	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT1",
2447 	    mrpcim_info.xgmac_port[1].rx_ttl_64_frms, "%llu");
2448 	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT1",
2449 	    mrpcim_info.xgmac_port[1].rx_ttl_65_127_frms, "%llu");
2450 	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT1",
2451 	    mrpcim_info.xgmac_port[1].rx_ttl_128_255_frms, "%llu");
2452 	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT1",
2453 	    mrpcim_info.xgmac_port[1].rx_ttl_256_511_frms, "%llu");
2454 	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT1",
2455 	    mrpcim_info.xgmac_port[1].rx_ttl_512_1023_frms, "%llu");
2456 	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT1",
2457 	    mrpcim_info.xgmac_port[1].rx_ttl_1024_1518_frms, "%llu");
2458 	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT1",
2459 	    mrpcim_info.xgmac_port[1].rx_ttl_1519_4095_frms, "%llu");
2460 	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT1",
2461 	    mrpcim_info.xgmac_port[1].rx_ttl_4096_8191_frms, "%llu");
2462 	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT1",
2463 	    mrpcim_info.xgmac_port[1].rx_ttl_8192_max_frms, "%llu");
2464 	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT1",
2465 	    mrpcim_info.xgmac_port[1].rx_ttl_gt_max_frms, "%llu");
2466 	__HAL_AUX_ENTRY("rx_ip_PORT1",
2467 	    mrpcim_info.xgmac_port[1].rx_ip, "%llu");
2468 	__HAL_AUX_ENTRY("rx_accepted_ip_PORT1",
2469 	    mrpcim_info.xgmac_port[1].rx_accepted_ip, "%llu");
2470 	__HAL_AUX_ENTRY("rx_ip_octets_PORT1",
2471 	    mrpcim_info.xgmac_port[1].rx_ip_octets, "%llu");
2472 	__HAL_AUX_ENTRY("rx_err_ip_PORT1",
2473 	    mrpcim_info.xgmac_port[1].rx_err_ip, "%llu");
2474 	__HAL_AUX_ENTRY("rx_icmp_PORT1",
2475 	    mrpcim_info.xgmac_port[1].rx_icmp, "%llu");
2476 	__HAL_AUX_ENTRY("rx_tcp_PORT1",
2477 	    mrpcim_info.xgmac_port[1].rx_tcp, "%llu");
2478 	__HAL_AUX_ENTRY("rx_udp_PORT1",
2479 	    mrpcim_info.xgmac_port[1].rx_udp, "%llu");
2480 	__HAL_AUX_ENTRY("rx_err_tcp_PORT1",
2481 	    mrpcim_info.xgmac_port[1].rx_err_tcp, "%llu");
2482 	__HAL_AUX_ENTRY("rx_pause_count_PORT1",
2483 	    mrpcim_info.xgmac_port[1].rx_pause_count, "%llu");
2484 	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT1",
2485 	    mrpcim_info.xgmac_port[1].rx_pause_ctrl_frms, "%llu");
2486 	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT1",
2487 	    mrpcim_info.xgmac_port[1].rx_unsup_ctrl_frms, "%llu");
2488 	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT1",
2489 	    mrpcim_info.xgmac_port[1].rx_fcs_err_frms, "%llu");
2490 	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT1",
2491 	    mrpcim_info.xgmac_port[1].rx_in_rng_len_err_frms, "%llu");
2492 	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT1",
2493 	    mrpcim_info.xgmac_port[1].rx_out_rng_len_err_frms, "%llu");
2494 	__HAL_AUX_ENTRY("rx_drop_frms_PORT1",
2495 	    mrpcim_info.xgmac_port[1].rx_drop_frms, "%llu");
2496 	__HAL_AUX_ENTRY("rx_discarded_frms_PORT1",
2497 	    mrpcim_info.xgmac_port[1].rx_discarded_frms, "%llu");
2498 	__HAL_AUX_ENTRY("rx_drop_ip_PORT1",
2499 	    mrpcim_info.xgmac_port[1].rx_drop_ip, "%llu");
2500 	__HAL_AUX_ENTRY("rx_drop_udp_PORT1",
2501 	    mrpcim_info.xgmac_port[1].rx_drop_udp, "%llu");
2502 	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT1",
2503 	    mrpcim_info.xgmac_port[1].rx_marker_pdu_frms, "%u");
2504 	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT1",
2505 	    mrpcim_info.xgmac_port[1].rx_lacpdu_frms, "%u");
2506 	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT1",
2507 	    mrpcim_info.xgmac_port[1].rx_unknown_pdu_frms, "%u");
2508 	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT1",
2509 	    mrpcim_info.xgmac_port[1].rx_marker_resp_pdu_frms, "%u");
2510 	__HAL_AUX_ENTRY("rx_fcs_discard_PORT1",
2511 	    mrpcim_info.xgmac_port[1].rx_fcs_discard, "%u");
2512 	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT1",
2513 	    mrpcim_info.xgmac_port[1].rx_illegal_pdu_frms, "%u");
2514 	__HAL_AUX_ENTRY("rx_switch_discard_PORT1",
2515 	    mrpcim_info.xgmac_port[1].rx_switch_discard, "%u");
2516 	__HAL_AUX_ENTRY("rx_len_discard_PORT1",
2517 	    mrpcim_info.xgmac_port[1].rx_len_discard, "%u");
2518 	__HAL_AUX_ENTRY("rx_rpa_discard_PORT1",
2519 	    mrpcim_info.xgmac_port[1].rx_rpa_discard, "%u");
2520 	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT1",
2521 	    mrpcim_info.xgmac_port[1].rx_l2_mgmt_discard, "%u");
2522 	__HAL_AUX_ENTRY("rx_rts_discard_PORT1",
2523 	    mrpcim_info.xgmac_port[1].rx_rts_discard, "%u");
2524 	__HAL_AUX_ENTRY("rx_trash_discard_PORT1",
2525 	    mrpcim_info.xgmac_port[1].rx_trash_discard, "%u");
2526 	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT1",
2527 	    mrpcim_info.xgmac_port[1].rx_buff_full_discard, "%u");
2528 	__HAL_AUX_ENTRY("rx_red_discard_PORT1",
2529 	    mrpcim_info.xgmac_port[1].rx_red_discard, "%u");
2530 	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT1",
2531 	    mrpcim_info.xgmac_port[1].rx_xgmii_ctrl_err_cnt, "%u");
2532 	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT1",
2533 	    mrpcim_info.xgmac_port[1].rx_xgmii_data_err_cnt, "%u");
2534 	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT1",
2535 	    mrpcim_info.xgmac_port[1].rx_xgmii_char1_match, "%u");
2536 	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT1",
2537 	    mrpcim_info.xgmac_port[1].rx_xgmii_err_sym, "%u");
2538 	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT1",
2539 	    mrpcim_info.xgmac_port[1].rx_xgmii_column1_match, "%u");
2540 	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT1",
2541 	    mrpcim_info.xgmac_port[1].rx_xgmii_char2_match, "%u");
2542 	__HAL_AUX_ENTRY("rx_local_fault_PORT1",
2543 	    mrpcim_info.xgmac_port[1].rx_local_fault, "%u");
2544 	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT1",
2545 	    mrpcim_info.xgmac_port[1].rx_xgmii_column2_match, "%u");
2546 	__HAL_AUX_ENTRY("rx_jettison_PORT1",
2547 	    mrpcim_info.xgmac_port[1].rx_jettison, "%u");
2548 	__HAL_AUX_ENTRY("rx_remote_fault_PORT1",
2549 	    mrpcim_info.xgmac_port[1].rx_remote_fault, "%u");
2550 
2551 	__HAL_AUX_ENTRY("tx_ttl_frms_PORT2",
2552 	    mrpcim_info.xgmac_port[2].tx_ttl_frms, "%llu");
2553 	__HAL_AUX_ENTRY("tx_ttl_octets_PORT2",
2554 	    mrpcim_info.xgmac_port[2].tx_ttl_octets, "%llu");
2555 	__HAL_AUX_ENTRY("tx_data_octets_PORT2",
2556 	    mrpcim_info.xgmac_port[2].tx_data_octets, "%llu");
2557 	__HAL_AUX_ENTRY("tx_mcast_frms_PORT2",
2558 	    mrpcim_info.xgmac_port[2].tx_mcast_frms, "%llu");
2559 	__HAL_AUX_ENTRY("tx_bcast_frms_PORT2",
2560 	    mrpcim_info.xgmac_port[2].tx_bcast_frms, "%llu");
2561 	__HAL_AUX_ENTRY("tx_ucast_frms_PORT2",
2562 	    mrpcim_info.xgmac_port[2].tx_ucast_frms, "%llu");
2563 	__HAL_AUX_ENTRY("tx_tagged_frms_PORT2",
2564 	    mrpcim_info.xgmac_port[2].tx_tagged_frms, "%llu");
2565 	__HAL_AUX_ENTRY("tx_vld_ip_PORT2",
2566 	    mrpcim_info.xgmac_port[2].tx_vld_ip, "%llu");
2567 	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT2",
2568 	    mrpcim_info.xgmac_port[2].tx_vld_ip_octets, "%llu");
2569 	__HAL_AUX_ENTRY("tx_icmp_PORT2",
2570 	    mrpcim_info.xgmac_port[2].tx_icmp, "%llu");
2571 	__HAL_AUX_ENTRY("tx_tcp_PORT2",
2572 	    mrpcim_info.xgmac_port[2].tx_tcp, "%llu");
2573 	__HAL_AUX_ENTRY("tx_rst_tcp_PORT2",
2574 	    mrpcim_info.xgmac_port[2].tx_rst_tcp, "%llu");
2575 	__HAL_AUX_ENTRY("tx_udp_PORT2",
2576 	    mrpcim_info.xgmac_port[2].tx_udp, "%llu");
2577 	__HAL_AUX_ENTRY("tx_parse_error_PORT2",
2578 	    mrpcim_info.xgmac_port[2].tx_parse_error, "%u");
2579 	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT2",
2580 	    mrpcim_info.xgmac_port[2].tx_unknown_protocol, "%u");
2581 	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT2",
2582 	    mrpcim_info.xgmac_port[2].tx_pause_ctrl_frms, "%llu");
2583 	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT2",
2584 	    mrpcim_info.xgmac_port[2].tx_marker_pdu_frms, "%u");
2585 	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT2",
2586 	    mrpcim_info.xgmac_port[2].tx_lacpdu_frms, "%u");
2587 	__HAL_AUX_ENTRY("tx_drop_ip_PORT2",
2588 	    mrpcim_info.xgmac_port[2].tx_drop_ip, "%u");
2589 	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT2",
2590 	    mrpcim_info.xgmac_port[2].tx_marker_resp_pdu_frms, "%u");
2591 	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT2",
2592 	    mrpcim_info.xgmac_port[2].tx_xgmii_char2_match, "%u");
2593 	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT2",
2594 	    mrpcim_info.xgmac_port[2].tx_xgmii_char1_match, "%u");
2595 	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT2",
2596 	    mrpcim_info.xgmac_port[2].tx_xgmii_column2_match, "%u");
2597 	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT2",
2598 	    mrpcim_info.xgmac_port[2].tx_xgmii_column1_match, "%u");
2599 	__HAL_AUX_ENTRY("tx_any_err_frms_PORT2",
2600 	    mrpcim_info.xgmac_port[2].tx_any_err_frms, "%u");
2601 	__HAL_AUX_ENTRY("tx_drop_frms_PORT2",
2602 	    mrpcim_info.xgmac_port[2].tx_drop_frms, "%u");
2603 	__HAL_AUX_ENTRY("rx_ttl_frms_PORT2",
2604 	    mrpcim_info.xgmac_port[2].rx_ttl_frms, "%llu");
2605 	__HAL_AUX_ENTRY("rx_vld_frms_PORT2",
2606 	    mrpcim_info.xgmac_port[2].rx_vld_frms, "%llu");
2607 	__HAL_AUX_ENTRY("rx_offload_frms_PORT2",
2608 	    mrpcim_info.xgmac_port[2].rx_offload_frms, "%llu");
2609 	__HAL_AUX_ENTRY("rx_ttl_octets_PORT2",
2610 	    mrpcim_info.xgmac_port[2].rx_ttl_octets, "%llu");
2611 	__HAL_AUX_ENTRY("rx_data_octets_PORT2",
2612 	    mrpcim_info.xgmac_port[2].rx_data_octets, "%llu");
2613 	__HAL_AUX_ENTRY("rx_offload_octets_PORT2",
2614 	    mrpcim_info.xgmac_port[2].rx_offload_octets, "%llu");
2615 	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT2",
2616 	    mrpcim_info.xgmac_port[2].rx_vld_mcast_frms, "%llu");
2617 	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT2",
2618 	    mrpcim_info.xgmac_port[2].rx_vld_bcast_frms, "%llu");
2619 	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT2",
2620 	    mrpcim_info.xgmac_port[2].rx_accepted_ucast_frms, "%llu");
2621 	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT2",
2622 	    mrpcim_info.xgmac_port[2].rx_accepted_nucast_frms, "%llu");
2623 	__HAL_AUX_ENTRY("rx_tagged_frms_PORT2",
2624 	    mrpcim_info.xgmac_port[2].rx_tagged_frms, "%llu");
2625 	__HAL_AUX_ENTRY("rx_long_frms_PORT2",
2626 	    mrpcim_info.xgmac_port[2].rx_long_frms, "%llu");
2627 	__HAL_AUX_ENTRY("rx_usized_frms_PORT2",
2628 	    mrpcim_info.xgmac_port[2].rx_usized_frms, "%llu");
2629 	__HAL_AUX_ENTRY("rx_osized_frms_PORT2",
2630 	    mrpcim_info.xgmac_port[2].rx_osized_frms, "%llu");
2631 	__HAL_AUX_ENTRY("rx_frag_frms_PORT2",
2632 	    mrpcim_info.xgmac_port[2].rx_frag_frms, "%llu");
2633 	__HAL_AUX_ENTRY("rx_jabber_frms_PORT2",
2634 	    mrpcim_info.xgmac_port[2].rx_jabber_frms, "%llu");
2635 	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT2",
2636 	    mrpcim_info.xgmac_port[2].rx_ttl_64_frms, "%llu");
2637 	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT2",
2638 	    mrpcim_info.xgmac_port[2].rx_ttl_65_127_frms, "%llu");
2639 	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT2",
2640 	    mrpcim_info.xgmac_port[2].rx_ttl_128_255_frms, "%llu");
2641 	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT2",
2642 	    mrpcim_info.xgmac_port[2].rx_ttl_256_511_frms, "%llu");
2643 	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT2",
2644 	    mrpcim_info.xgmac_port[2].rx_ttl_512_1023_frms, "%llu");
2645 	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT2",
2646 	    mrpcim_info.xgmac_port[2].rx_ttl_1024_1518_frms, "%llu");
2647 	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT2",
2648 	    mrpcim_info.xgmac_port[2].rx_ttl_1519_4095_frms, "%llu");
2649 	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT2",
2650 	    mrpcim_info.xgmac_port[2].rx_ttl_4096_8191_frms, "%llu");
2651 	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT2",
2652 	    mrpcim_info.xgmac_port[2].rx_ttl_8192_max_frms, "%llu");
2653 	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT2",
2654 	    mrpcim_info.xgmac_port[2].rx_ttl_gt_max_frms, "%llu");
2655 	__HAL_AUX_ENTRY("rx_ip_PORT2",
2656 	    mrpcim_info.xgmac_port[2].rx_ip, "%llu");
2657 	__HAL_AUX_ENTRY("rx_accepted_ip_PORT2",
2658 	    mrpcim_info.xgmac_port[2].rx_accepted_ip, "%llu");
2659 	__HAL_AUX_ENTRY("rx_ip_octets_PORT2",
2660 	    mrpcim_info.xgmac_port[2].rx_ip_octets, "%llu");
2661 	__HAL_AUX_ENTRY("rx_err_ip_PORT2",
2662 	    mrpcim_info.xgmac_port[2].rx_err_ip, "%llu");
2663 	__HAL_AUX_ENTRY("rx_icmp_PORT2",
2664 	    mrpcim_info.xgmac_port[2].rx_icmp, "%llu");
2665 	__HAL_AUX_ENTRY("rx_tcp_PORT2",
2666 	    mrpcim_info.xgmac_port[2].rx_tcp, "%llu");
2667 	__HAL_AUX_ENTRY("rx_udp_PORT2",
2668 	    mrpcim_info.xgmac_port[2].rx_udp, "%llu");
2669 	__HAL_AUX_ENTRY("rx_err_tcp_PORT2",
2670 	    mrpcim_info.xgmac_port[2].rx_err_tcp, "%llu");
2671 	__HAL_AUX_ENTRY("rx_pause_count_PORT2",
2672 	    mrpcim_info.xgmac_port[2].rx_pause_count, "%llu");
2673 	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT2",
2674 	    mrpcim_info.xgmac_port[2].rx_pause_ctrl_frms, "%llu");
2675 	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT2",
2676 	    mrpcim_info.xgmac_port[2].rx_unsup_ctrl_frms, "%llu");
2677 	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT2",
2678 	    mrpcim_info.xgmac_port[2].rx_fcs_err_frms, "%llu");
2679 	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT2",
2680 	    mrpcim_info.xgmac_port[2].rx_in_rng_len_err_frms, "%llu");
2681 	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT2",
2682 	    mrpcim_info.xgmac_port[2].rx_out_rng_len_err_frms, "%llu");
2683 	__HAL_AUX_ENTRY("rx_drop_frms_PORT2",
2684 	    mrpcim_info.xgmac_port[2].rx_drop_frms, "%llu");
2685 	__HAL_AUX_ENTRY("rx_discarded_frms_PORT2",
2686 	    mrpcim_info.xgmac_port[2].rx_discarded_frms, "%llu");
2687 	__HAL_AUX_ENTRY("rx_drop_ip_PORT2",
2688 	    mrpcim_info.xgmac_port[2].rx_drop_ip, "%llu");
2689 	__HAL_AUX_ENTRY("rx_drop_udp_PORT2",
2690 	    mrpcim_info.xgmac_port[2].rx_drop_udp, "%llu");
2691 	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT2",
2692 	    mrpcim_info.xgmac_port[2].rx_marker_pdu_frms, "%u");
2693 	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT2",
2694 	    mrpcim_info.xgmac_port[2].rx_lacpdu_frms, "%u");
2695 	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT2",
2696 	    mrpcim_info.xgmac_port[2].rx_unknown_pdu_frms, "%u");
2697 	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT2",
2698 	    mrpcim_info.xgmac_port[2].rx_marker_resp_pdu_frms, "%u");
2699 	__HAL_AUX_ENTRY("rx_fcs_discard_PORT2",
2700 	    mrpcim_info.xgmac_port[2].rx_fcs_discard, "%u");
2701 	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT2",
2702 	    mrpcim_info.xgmac_port[2].rx_illegal_pdu_frms, "%u");
2703 	__HAL_AUX_ENTRY("rx_switch_discard_PORT2",
2704 	    mrpcim_info.xgmac_port[2].rx_switch_discard, "%u");
2705 	__HAL_AUX_ENTRY("rx_len_discard_PORT2",
2706 	    mrpcim_info.xgmac_port[2].rx_len_discard, "%u");
2707 	__HAL_AUX_ENTRY("rx_rpa_discard_PORT2",
2708 	    mrpcim_info.xgmac_port[2].rx_rpa_discard, "%u");
2709 	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT2",
2710 	    mrpcim_info.xgmac_port[2].rx_l2_mgmt_discard, "%u");
2711 	__HAL_AUX_ENTRY("rx_rts_discard_PORT2",
2712 	    mrpcim_info.xgmac_port[2].rx_rts_discard, "%u");
2713 	__HAL_AUX_ENTRY("rx_trash_discard_PORT2",
2714 	    mrpcim_info.xgmac_port[2].rx_trash_discard, "%u");
2715 	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT2",
2716 	    mrpcim_info.xgmac_port[2].rx_buff_full_discard, "%u");
2717 	__HAL_AUX_ENTRY("rx_red_discard_PORT2",
2718 	    mrpcim_info.xgmac_port[2].rx_red_discard, "%u");
2719 	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT2",
2720 	    mrpcim_info.xgmac_port[2].rx_xgmii_ctrl_err_cnt, "%u");
2721 	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT2",
2722 	    mrpcim_info.xgmac_port[2].rx_xgmii_data_err_cnt, "%u");
2723 	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT2",
2724 	    mrpcim_info.xgmac_port[2].rx_xgmii_char1_match, "%u");
2725 	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT2",
2726 	    mrpcim_info.xgmac_port[2].rx_xgmii_err_sym, "%u");
2727 	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT2",
2728 	    mrpcim_info.xgmac_port[2].rx_xgmii_column1_match, "%u");
2729 	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT2",
2730 	    mrpcim_info.xgmac_port[2].rx_xgmii_char2_match, "%u");
2731 	__HAL_AUX_ENTRY("rx_local_fault_PORT2",
2732 	    mrpcim_info.xgmac_port[2].rx_local_fault, "%u");
2733 	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT2",
2734 	    mrpcim_info.xgmac_port[2].rx_xgmii_column2_match, "%u");
2735 	__HAL_AUX_ENTRY("rx_jettison_PORT2",
2736 	    mrpcim_info.xgmac_port[2].rx_jettison, "%u");
2737 	__HAL_AUX_ENTRY("rx_remote_fault_PORT2",
2738 	    mrpcim_info.xgmac_port[2].rx_remote_fault, "%u");
2739 
2740 	__HAL_AUX_ENTRY("tx_frms_AGGR0",
2741 	    mrpcim_info.xgmac_aggr[0].tx_frms, "%llu");
2742 	__HAL_AUX_ENTRY("tx_data_octets_AGGR0",
2743 	    mrpcim_info.xgmac_aggr[0].tx_data_octets, "%llu");
2744 	__HAL_AUX_ENTRY("tx_mcast_frms_AGGR0",
2745 	    mrpcim_info.xgmac_aggr[0].tx_mcast_frms, "%llu");
2746 	__HAL_AUX_ENTRY("tx_bcast_frms_AGGR0",
2747 	    mrpcim_info.xgmac_aggr[0].tx_bcast_frms, "%llu");
2748 	__HAL_AUX_ENTRY("tx_discarded_frms_AGGR0",
2749 	    mrpcim_info.xgmac_aggr[0].tx_discarded_frms, "%llu");
2750 	__HAL_AUX_ENTRY("tx_errored_frms_AGGR0",
2751 	    mrpcim_info.xgmac_aggr[0].tx_errored_frms, "%llu");
2752 	__HAL_AUX_ENTRY("rx_frms_AGGR0",
2753 	    mrpcim_info.xgmac_aggr[0].rx_frms, "%llu");
2754 	__HAL_AUX_ENTRY("rx_data_octets_AGGR0",
2755 	    mrpcim_info.xgmac_aggr[0].rx_data_octets, "%llu");
2756 	__HAL_AUX_ENTRY("rx_mcast_frms_AGGR0",
2757 	    mrpcim_info.xgmac_aggr[0].rx_mcast_frms, "%llu");
2758 	__HAL_AUX_ENTRY("rx_bcast_frms_AGGR0",
2759 	    mrpcim_info.xgmac_aggr[0].rx_bcast_frms, "%llu");
2760 	__HAL_AUX_ENTRY("rx_discarded_frms_AGGR0",
2761 	    mrpcim_info.xgmac_aggr[0].rx_discarded_frms, "%llu");
2762 	__HAL_AUX_ENTRY("rx_errored_frms_AGGR0",
2763 	    mrpcim_info.xgmac_aggr[0].rx_errored_frms, "%llu");
2764 	__HAL_AUX_ENTRY("rx_unknown_slow_proto_frms_AGGR0",
2765 	    mrpcim_info.xgmac_aggr[0].rx_unknown_slow_proto_frms, "%llu");
2766 
2767 	__HAL_AUX_ENTRY("tx_frms_AGGR1",
2768 	    mrpcim_info.xgmac_aggr[1].tx_frms, "%llu");
2769 	__HAL_AUX_ENTRY("tx_data_octets_AGGR1",
2770 	    mrpcim_info.xgmac_aggr[1].tx_data_octets, "%llu");
2771 	__HAL_AUX_ENTRY("tx_mcast_frms_AGGR1",
2772 	    mrpcim_info.xgmac_aggr[1].tx_mcast_frms, "%llu");
2773 	__HAL_AUX_ENTRY("tx_bcast_frms_AGGR1",
2774 	    mrpcim_info.xgmac_aggr[1].tx_bcast_frms, "%llu");
2775 	__HAL_AUX_ENTRY("tx_discarded_frms_AGGR1",
2776 	    mrpcim_info.xgmac_aggr[1].tx_discarded_frms, "%llu");
2777 	__HAL_AUX_ENTRY("tx_errored_frms_AGGR1",
2778 	    mrpcim_info.xgmac_aggr[1].tx_errored_frms, "%llu");
2779 	__HAL_AUX_ENTRY("rx_frms_AGGR1",
2780 	    mrpcim_info.xgmac_aggr[1].rx_frms, "%llu");
2781 	__HAL_AUX_ENTRY("rx_data_octets_AGGR1",
2782 	    mrpcim_info.xgmac_aggr[1].rx_data_octets, "%llu");
2783 	__HAL_AUX_ENTRY("rx_mcast_frms_AGGR1",
2784 	    mrpcim_info.xgmac_aggr[1].rx_mcast_frms, "%llu");
2785 	__HAL_AUX_ENTRY("rx_bcast_frms_AGGR1",
2786 	    mrpcim_info.xgmac_aggr[1].rx_bcast_frms, "%llu");
2787 	__HAL_AUX_ENTRY("rx_discarded_frms_AGGR1",
2788 	    mrpcim_info.xgmac_aggr[1].rx_discarded_frms, "%llu");
2789 	__HAL_AUX_ENTRY("rx_errored_frms_AGGR1",
2790 	    mrpcim_info.xgmac_aggr[1].rx_errored_frms, "%llu");
2791 	__HAL_AUX_ENTRY("rx_unknown_slow_proto_frms_AGGR1",
2792 	    mrpcim_info.xgmac_aggr[1].rx_unknown_slow_proto_frms, "%llu");
2793 
2794 	__HAL_AUX_ENTRY("xgmac_global_prog_event_gnum0",
2795 	    mrpcim_info.xgmac_global_prog_event_gnum0, "%llu");
2796 	__HAL_AUX_ENTRY("xgmac_global_prog_event_gnum1",
2797 	    mrpcim_info.xgmac_global_prog_event_gnum1, "%llu");
2798 
2799 	__HAL_AUX_ENTRY("xgmac_orp_lro_events",
2800 	    mrpcim_info.xgmac_orp_lro_events, "%llu");
2801 
2802 	__HAL_AUX_ENTRY("xgmac_orp_bs_events",
2803 	    mrpcim_info.xgmac_orp_bs_events, "%llu");
2804 
2805 	__HAL_AUX_ENTRY("xgmac_orp_iwarp_events",
2806 	    mrpcim_info.xgmac_orp_iwarp_events, "%llu");
2807 
2808 	__HAL_AUX_ENTRY("xgmac_tx_permitted_frms",
2809 	    mrpcim_info.xgmac_tx_permitted_frms, "%u");
2810 
2811 	__HAL_AUX_ENTRY("xgmac_port2_tx_any_frms",
2812 	    mrpcim_info.xgmac_port2_tx_any_frms, "%u");
2813 	__HAL_AUX_ENTRY("xgmac_port1_tx_any_frms",
2814 	    mrpcim_info.xgmac_port1_tx_any_frms, "%u");
2815 	__HAL_AUX_ENTRY("xgmac_port0_tx_any_frms",
2816 	    mrpcim_info.xgmac_port0_tx_any_frms, "%u");
2817 
2818 	__HAL_AUX_ENTRY("xgmac_port2_rx_any_frms",
2819 	    mrpcim_info.xgmac_port2_rx_any_frms, "%u");
2820 	__HAL_AUX_ENTRY("xgmac_port1_rx_any_frms",
2821 	    mrpcim_info.xgmac_port1_rx_any_frms, "%u");
2822 	__HAL_AUX_ENTRY("xgmac_port0_rx_any_frms",
2823 	    mrpcim_info.xgmac_port0_rx_any_frms, "%u");
2824 
2825 	__HAL_AUX_ENTRY_END(bufsize, retsize);
2826 
2827 	return (VXGE_HAL_OK);
2828 }
2829 
2830 /*
2831  * vxge_hal_aux_vpath_ring_dump - Dump vpath ring.
2832  * @vpath_handle: Vpath handle.
2833  *
2834  * Dump vpath ring.
2835  */
2836 vxge_hal_status_e
vxge_hal_aux_vpath_ring_dump(vxge_hal_vpath_h vpath_handle)2837 vxge_hal_aux_vpath_ring_dump(vxge_hal_vpath_h vpath_handle)
2838 {
2839 	u32 i;
2840 	char buffer[4096];
2841 	__hal_ring_t *ring;
2842 	vxge_hal_rxd_h rxdh;
2843 	__hal_virtualpath_t *vpath;
2844 	vxge_hal_ring_rxd_1_t *rxd1;
2845 	vxge_hal_ring_rxd_3_t *rxd3;
2846 	vxge_hal_ring_rxd_5_t *rxd5;
2847 
2848 	vxge_assert(vpath_handle != NULL);
2849 
2850 	vpath = (__hal_virtualpath_t *)
2851 	    ((__hal_vpath_handle_t *) vpath_handle)->vpath;
2852 
2853 	ring = (__hal_ring_t *) vpath->ringh;
2854 
2855 	vxge_os_println("********* vxge RING DUMP BEGIN **********");
2856 
2857 	vxge_os_println("********* vxge RING RXD LIST **********");
2858 
2859 	__hal_channel_for_each_dtr(&ring->channel, rxdh, i) {
2860 
2861 		(void) vxge_os_snprintf(buffer, sizeof(buffer),
2862 		    "%d : 0x"VXGE_OS_STXFMT, i, (ptr_t) rxdh);
2863 
2864 		vxge_os_println(buffer);
2865 
2866 		switch (ring->buffer_mode) {
2867 		case 1:
2868 			rxd1 = (vxge_hal_ring_rxd_1_t *) rxdh;
2869 			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2870 			    "\thost_control = 0x"VXGE_OS_LLXFMT", "
2871 			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2872 			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2873 			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT,
2874 			    rxd1->host_control, rxd1->control_0,
2875 			    rxd1->control_1, rxd1->buffer0_ptr);
2876 			break;
2877 		case 3:
2878 			rxd3 = (vxge_hal_ring_rxd_3_t *) rxdh;
2879 			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2880 			    "\thost_control = 0x"VXGE_OS_LLXFMT", "
2881 			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2882 			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2883 			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT", "
2884 			    "buffer1_ptr = 0x"VXGE_OS_LLXFMT", "
2885 			    "buffer2_ptr = 0x"VXGE_OS_LLXFMT,
2886 			    rxd3->host_control, rxd3->control_0,
2887 			    rxd3->control_1, rxd3->buffer0_ptr,
2888 			    rxd3->buffer1_ptr, rxd3->buffer2_ptr);
2889 			break;
2890 		case 5:
2891 			rxd5 = (vxge_hal_ring_rxd_5_t *) rxdh;
2892 			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2893 			    "\thost_control = 0x%x, "
2894 			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2895 			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2896 			    "control_2 = 0x%x, "
2897 			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT", "
2898 			    "buffer1_ptr = 0x"VXGE_OS_LLXFMT", "
2899 			    "buffer2_ptr = 0x"VXGE_OS_LLXFMT", "
2900 			    "buffer3_ptr = 0x"VXGE_OS_LLXFMT", "
2901 			    "buffer4_ptr = 0x"VXGE_OS_LLXFMT,
2902 			    rxd5->host_control, rxd5->control_0,
2903 			    rxd5->control_1, rxd5->control_2,
2904 			    rxd5->buffer0_ptr, rxd5->buffer1_ptr,
2905 			    rxd5->buffer2_ptr, rxd5->buffer3_ptr,
2906 			    rxd5->buffer4_ptr);
2907 			break;
2908 		default:
2909 			continue;
2910 		}
2911 
2912 		vxge_os_println(buffer);
2913 	}
2914 
2915 	vxge_os_println("******* vxge RING RXD LIST END **********");
2916 
2917 	vxge_os_println("********* vxge RING DUMP END **********");
2918 
2919 	return (VXGE_HAL_OK);
2920 }
2921 
2922 /*
2923  * vxge_hal_aux_vpath_fifo_dump - Dump vpath fifo.
2924  * @vpath_handle: Vpath handle.
2925  *
2926  * Dump vpath fifo.
2927  */
2928 vxge_hal_status_e
vxge_hal_aux_vpath_fifo_dump(vxge_hal_vpath_h vpath_handle)2929 vxge_hal_aux_vpath_fifo_dump(vxge_hal_vpath_h vpath_handle)
2930 {
2931 	u32 i, j;
2932 	char buffer[4096];
2933 	__hal_fifo_t *fifo;
2934 	vxge_hal_txdl_h txdlh;
2935 	__hal_virtualpath_t *vpath;
2936 	vxge_hal_fifo_txd_t *txd;
2937 	__hal_fifo_txdl_priv_t *txdl_priv;
2938 
2939 	vxge_assert(vpath_handle != NULL);
2940 
2941 	vpath = (__hal_virtualpath_t *)
2942 	    ((__hal_vpath_handle_t *) vpath_handle)->vpath;
2943 
2944 	fifo = (__hal_fifo_t *) vpath->fifoh;
2945 
2946 	vxge_os_println("********* vxge FIFO DUMP BEGIN **********");
2947 
2948 	vxge_os_println("********* vxge FIFO TXDL LIST **********");
2949 
2950 	__hal_channel_for_each_dtr(&fifo->channel, txdlh, j) {
2951 
2952 		(void) vxge_os_snprintf(buffer, sizeof(buffer),
2953 		    "TXDL %d : 0x"VXGE_OS_STXFMT, j, (ptr_t) txdlh);
2954 
2955 		vxge_os_println(buffer);
2956 
2957 		txdl_priv = VXGE_HAL_FIFO_HAL_PRIV(fifo, txdlh);
2958 
2959 		for (i = 0, txd = (vxge_hal_fifo_txd_t *) txdlh;
2960 		    i < txdl_priv->frags; i++, txd++) {
2961 
2962 			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2963 			    "\tcontrol_0 = 0x"VXGE_OS_LLXFMT", "
2964 			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2965 			    "buffer_ptr = 0x"VXGE_OS_LLXFMT", "
2966 			    "host_control = 0x"VXGE_OS_LLXFMT,
2967 			    txd->control_0, txd->control_1,
2968 			    txd->buffer_pointer, txd->host_control);
2969 
2970 			vxge_os_println(buffer);
2971 		}
2972 
2973 	}
2974 
2975 	vxge_os_println("******* vxge FIFO TXDL LIST END **********");
2976 
2977 	vxge_os_println("********* vxge FIFO DUMP END **********");
2978 
2979 	return (VXGE_HAL_OK);
2980 }
2981 
2982 /*
2983  * vxge_hal_aux_device_dump - Dump driver "about" info and device state.
2984  * @devh: HAL device handle.
2985  *
2986  * Dump driver & device "about" info and device state,
2987  * including all BAR0 registers, hardware and software statistics, PCI
2988  * configuration space.
2989  */
2990 vxge_hal_status_e
vxge_hal_aux_device_dump(vxge_hal_device_h devh)2991 vxge_hal_aux_device_dump(vxge_hal_device_h devh)
2992 {
2993 	vxge_hal_status_e status = VXGE_HAL_OK;
2994 	__hal_device_t *hldev = (__hal_device_t *) devh;
2995 	int retsize;
2996 	u32 offset, i;
2997 	u64 retval;
2998 
2999 	vxge_assert(hldev->dump_buf != NULL);
3000 
3001 	vxge_os_println("********* vxge DEVICE DUMP BEGIN **********");
3002 
3003 	status = vxge_hal_aux_about_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3004 	    hldev->dump_buf, &retsize);
3005 	if (status != VXGE_HAL_OK)
3006 		goto error;
3007 
3008 	vxge_os_println(hldev->dump_buf);
3009 
3010 	vxge_os_println("******* PCI Config Reg **********");
3011 
3012 	status = vxge_hal_aux_pci_config_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3013 	    hldev->dump_buf, &retsize);
3014 	if (status != VXGE_HAL_OK)
3015 		goto error;
3016 
3017 	vxge_os_println(hldev->dump_buf);
3018 
3019 	vxge_os_println("******* Legacy Reg **********");
3020 
3021 	for (offset = 0; offset < sizeof(vxge_hal_legacy_reg_t); offset += 8) {
3022 		status = vxge_hal_mgmt_reg_read(devh,
3023 		    vxge_hal_mgmt_reg_type_legacy, 0, offset, &retval);
3024 
3025 		if (status != VXGE_HAL_OK)
3026 			goto error;
3027 
3028 		if (!retval)
3029 			continue;
3030 
3031 		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3032 		    (u32) (retval >> 32), (u32) retval);
3033 	}
3034 	vxge_os_println("\n");
3035 
3036 	vxge_os_println("******* TOC Reg *********");
3037 
3038 	for (offset = 0; offset < sizeof(vxge_hal_toc_reg_t); offset += 8) {
3039 		status = vxge_hal_mgmt_reg_read(devh,
3040 		    vxge_hal_mgmt_reg_type_toc, 0, offset, &retval);
3041 		if (status != VXGE_HAL_OK)
3042 			goto error;
3043 
3044 		if (!retval)
3045 			continue;
3046 
3047 		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3048 		    (u32) (retval >> 32), (u32) retval);
3049 	}
3050 	vxge_os_println("\n");
3051 
3052 	vxge_os_println("******* Common Reg **********");
3053 
3054 	for (offset = 0; offset < sizeof(vxge_hal_common_reg_t); offset += 8) {
3055 		status = vxge_hal_mgmt_reg_read(devh,
3056 		    vxge_hal_mgmt_reg_type_common, 0, offset, &retval);
3057 		if (status != VXGE_HAL_OK)
3058 			goto error;
3059 
3060 		if (!retval)
3061 			continue;
3062 
3063 		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3064 		    (u32) (retval >> 32), (u32) retval);
3065 	}
3066 	vxge_os_println("\n");
3067 
3068 	for (i = 0; i < VXGE_HAL_TITAN_PCICFGMGMT_REG_SPACES; i++) {
3069 		vxge_os_printf("****** PCI Config Mgmt Reg : %d ********\n", i);
3070 
3071 		for (offset = 0; offset < sizeof(vxge_hal_pcicfgmgmt_reg_t);
3072 		    offset += 8) {
3073 			status = vxge_hal_mgmt_reg_read(devh,
3074 			    vxge_hal_mgmt_reg_type_pcicfgmgmt,
3075 			    i, offset, &retval);
3076 			if (status != VXGE_HAL_OK)
3077 				continue;
3078 
3079 			if (!retval)
3080 				continue;
3081 
3082 			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3083 			    (u32) (retval >> 32), (u32) retval);
3084 		}
3085 	}
3086 	vxge_os_println("\n");
3087 
3088 	vxge_os_println("******* MRPCIM Reg **********");
3089 
3090 	for (offset = 0; offset < sizeof(vxge_hal_mrpcim_reg_t);
3091 	    offset += 8) {
3092 		status = vxge_hal_mgmt_reg_read(devh,
3093 		    vxge_hal_mgmt_reg_type_mrpcim, 0, offset, &retval);
3094 		if (status != VXGE_HAL_OK)
3095 			continue;
3096 
3097 		if (!retval)
3098 			continue;
3099 
3100 		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3101 		    (u32) (retval >> 32), (u32) retval);
3102 	}
3103 	vxge_os_println("\n");
3104 
3105 	for (i = 0; i < VXGE_HAL_TITAN_SRPCIM_REG_SPACES; i++) {
3106 		vxge_os_printf("******* SRPCIM Reg : %d **********\n", i);
3107 
3108 		for (offset = 0; offset < sizeof(vxge_hal_srpcim_reg_t);
3109 		    offset += 8) {
3110 			status = vxge_hal_mgmt_reg_read(devh,
3111 			    vxge_hal_mgmt_reg_type_srpcim, i, offset, &retval);
3112 			if (status != VXGE_HAL_OK)
3113 				continue;
3114 
3115 			if (!retval)
3116 				continue;
3117 
3118 			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3119 			    (u32) (retval >> 32), (u32) retval);
3120 		}
3121 	}
3122 	vxge_os_println("\n");
3123 
3124 	for (i = 0; i < VXGE_HAL_TITAN_VPMGMT_REG_SPACES; i++) {
3125 		vxge_os_printf("******* VPATH MGMT Reg : %d **********\n", i);
3126 
3127 		for (offset = 0; offset < sizeof(vxge_hal_vpmgmt_reg_t);
3128 		    offset += 8) {
3129 			status = vxge_hal_mgmt_reg_read(devh,
3130 			    vxge_hal_mgmt_reg_type_vpmgmt, i, offset, &retval);
3131 			if (status != VXGE_HAL_OK)
3132 				continue;
3133 
3134 			if (!retval)
3135 				continue;
3136 
3137 			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3138 			    (u32) (retval >> 32), (u32) retval);
3139 		}
3140 	}
3141 	vxge_os_println("\n");
3142 
3143 	for (i = 0; i < VXGE_HAL_TITAN_VPATH_REG_SPACES; i++) {
3144 		vxge_os_printf("******* VPATH Reg : %d **********\n", i);
3145 
3146 		for (offset = 0; offset < sizeof(vxge_hal_vpath_reg_t);
3147 		    offset += 8) {
3148 			status = vxge_hal_mgmt_reg_read(devh,
3149 			    vxge_hal_mgmt_reg_type_vpath, i, offset, &retval);
3150 			if (status != VXGE_HAL_OK)
3151 				continue;
3152 
3153 			if (!retval)
3154 				continue;
3155 
3156 			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3157 			    (u32) (retval >> 32), (u32) retval);
3158 		}
3159 	}
3160 
3161 	vxge_os_println("\n");
3162 
3163 	status = vxge_hal_aux_stats_mrpcim_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3164 	    hldev->dump_buf,
3165 	    &retsize);
3166 	if (status == VXGE_HAL_OK) {
3167 		vxge_os_println("******* MRPCIM Stats **********");
3168 		vxge_os_println(hldev->dump_buf);
3169 	}
3170 
3171 	vxge_os_println("******* Device Stats **********");
3172 
3173 	status = vxge_hal_aux_stats_device_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3174 	    hldev->dump_buf, &retsize);
3175 	if (status != VXGE_HAL_OK)
3176 		goto error;
3177 
3178 	vxge_os_println(hldev->dump_buf);
3179 
3180 	vxge_os_println("********* DEVICE DUMP END **********");
3181 
3182 error:
3183 	return (status);
3184 }
3185