1221167Sgnn/*-
2221167Sgnn * Copyright(c) 2002-2011 Exar Corp.
3221167Sgnn * All rights reserved.
4221167Sgnn *
5221167Sgnn * Redistribution and use in source and binary forms, with or without
6221167Sgnn * modification are permitted provided the following conditions are met:
7221167Sgnn *
8221167Sgnn *    1. Redistributions of source code must retain the above copyright notice,
9221167Sgnn *       this list of conditions and the following disclaimer.
10221167Sgnn *
11221167Sgnn *    2. Redistributions in binary form must reproduce the above copyright
12221167Sgnn *       notice, this list of conditions and the following disclaimer in the
13221167Sgnn *       documentation and/or other materials provided with the distribution.
14221167Sgnn *
15221167Sgnn *    3. Neither the name of the Exar Corporation nor the names of its
16221167Sgnn *       contributors may be used to endorse or promote products derived from
17221167Sgnn *       this software without specific prior written permission.
18221167Sgnn *
19221167Sgnn * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20221167Sgnn * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21221167Sgnn * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22221167Sgnn * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23221167Sgnn * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24221167Sgnn * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25221167Sgnn * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26221167Sgnn * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27221167Sgnn * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28221167Sgnn * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29221167Sgnn * POSSIBILITY OF SUCH DAMAGE.
30221167Sgnn */
31221167Sgnn/*$FreeBSD: releng/10.3/sys/dev/vxge/vxgehal/vxgehal-mgmtaux.c 221167 2011-04-28 14:33:15Z gnn $*/
32221167Sgnn
33221167Sgnn#include <dev/vxge/vxgehal/vxgehal.h>
34221167Sgnn
35221167Sgnn#define	VXGE_HAL_AUX_SEPA		' '
36221167Sgnn
37221167Sgnn#define	__hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \
38221167Sgnn	if (bufsize <= 0) \
39221167Sgnn		return (VXGE_HAL_ERR_OUT_OF_SPACE); \
40221167Sgnn	retsize = vxge_os_snprintf(retbuf, bufsize, fmt, key, \
41221167Sgnn	    VXGE_HAL_AUX_SEPA, value); \
42221167Sgnn	if (retsize < 0 || retsize >= bufsize) \
43221167Sgnn		return (VXGE_HAL_ERR_OUT_OF_SPACE);
44221167Sgnn
45221167Sgnn#define	__HAL_AUX_ENTRY_DECLARE(size, buf) \
46221167Sgnn	int entrysize = 0, leftsize = size; \
47221167Sgnn	char *ptr; ptr = buf;
48221167Sgnn
49221167Sgnn#define	__HAL_AUX_ENTRY(key, value, fmt) \
50221167Sgnn	__hal_aux_snprintf(ptr, leftsize, "%s%c"fmt"\n", key, value, entrysize)\
51221167Sgnn	ptr += entrysize; leftsize -= entrysize;
52221167Sgnn
53221167Sgnn#define	__HAL_AUX_CONFIG_ENTRY(key, value, fmt) \
54221167Sgnn	if (value == VXGE_HAL_USE_FLASH_DEFAULT) { \
55221167Sgnn		__HAL_AUX_ENTRY(key, "FLASH DEFAULT", "%s"); \
56221167Sgnn	} else { \
57221167Sgnn		__HAL_AUX_ENTRY(key, value, fmt); \
58221167Sgnn	}
59221167Sgnn
60221167Sgnn#define	__HAL_AUX_ENTRY_END(bufsize, retsize) \
61221167Sgnn	*retsize = bufsize - leftsize;
62221167Sgnn
63221167Sgnn#define	__hal_aux_pci_link_info(name, index, var) {	\
64221167Sgnn		__HAL_AUX_ENTRY(name,			\
65221167Sgnn		    (u64)pcim.link_info[index].var, "%llu") \
66221167Sgnn	}
67221167Sgnn
68221167Sgnn#define	__hal_aux_pci_aggr_info(name, index, var) { \
69221167Sgnn		__HAL_AUX_ENTRY(name,				\
70221167Sgnn		    (u64)pcim.aggr_info[index].var, "%llu") \
71221167Sgnn	}
72221167Sgnn
73221167Sgnn/*
74221167Sgnn * vxge_hal_aux_about_read - Retrieve and format about info.
75221167Sgnn * @devh: HAL device handle.
76221167Sgnn * @bufsize: Buffer size.
77221167Sgnn * @retbuf: Buffer pointer.
78221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
79221167Sgnn *
80221167Sgnn * Retrieve about info (using vxge_hal_mgmt_about()) and sprintf it
81221167Sgnn * into the provided @retbuf.
82221167Sgnn *
83221167Sgnn * Returns: VXGE_HAL_OK - success.
84221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
85221167Sgnn * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
86221167Sgnn * VXGE_HAL_FAIL - Failed to retrieve the information.
87221167Sgnn *
88221167Sgnn * See also: vxge_hal_mgmt_about(), vxge_hal_aux_device_dump().
89221167Sgnn */
90221167Sgnnvxge_hal_status_e
91221167Sgnnvxge_hal_aux_about_read(vxge_hal_device_h devh, int bufsize,
92221167Sgnn    char *retbuf, int *retsize)
93221167Sgnn{
94221167Sgnn	u32 size = sizeof(vxge_hal_mgmt_about_info_t);
95221167Sgnn	vxge_hal_status_e status;
96221167Sgnn	vxge_hal_mgmt_about_info_t about_info;
97221167Sgnn
98221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
99221167Sgnn
100221167Sgnn	status = vxge_hal_mgmt_about(devh, &about_info, &size);
101221167Sgnn	if (status != VXGE_HAL_OK)
102221167Sgnn		return (status);
103221167Sgnn
104221167Sgnn	__HAL_AUX_ENTRY("vendor", about_info.vendor, "0x%x");
105221167Sgnn	__HAL_AUX_ENTRY("device", about_info.device, "0x%x");
106221167Sgnn	__HAL_AUX_ENTRY("subsys_vendor", about_info.subsys_vendor, "0x%x");
107221167Sgnn	__HAL_AUX_ENTRY("subsys_device", about_info.subsys_device, "0x%x");
108221167Sgnn	__HAL_AUX_ENTRY("board_rev", about_info.board_rev, "0x%x");
109221167Sgnn	__HAL_AUX_ENTRY("vendor_name", about_info.vendor_name, "%s");
110221167Sgnn	__HAL_AUX_ENTRY("chip_name", about_info.chip_name, "%s");
111221167Sgnn	__HAL_AUX_ENTRY("media", about_info.media, "%s");
112221167Sgnn	__HAL_AUX_ENTRY("hal_major", about_info.hal_major, "%s");
113221167Sgnn	__HAL_AUX_ENTRY("hal_minor", about_info.hal_minor, "%s");
114221167Sgnn	__HAL_AUX_ENTRY("hal_fix", about_info.hal_fix, "%s");
115221167Sgnn	__HAL_AUX_ENTRY("hal_build", about_info.hal_build, "%s");
116221167Sgnn	__HAL_AUX_ENTRY("ll_major", about_info.ll_major, "%s");
117221167Sgnn	__HAL_AUX_ENTRY("ll_minor", about_info.ll_minor, "%s");
118221167Sgnn	__HAL_AUX_ENTRY("ll_fix", about_info.ll_fix, "%s");
119221167Sgnn	__HAL_AUX_ENTRY("ll_build", about_info.ll_build, "%s");
120221167Sgnn
121221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
122221167Sgnn
123221167Sgnn	return (VXGE_HAL_OK);
124221167Sgnn}
125221167Sgnn
126221167Sgnn/*
127221167Sgnn * vxge_hal_aux_driver_config_read - Read Driver configuration.
128221167Sgnn * @bufsize: Buffer size.
129221167Sgnn * @retbuf: Buffer pointer.
130221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
131221167Sgnn *
132221167Sgnn * Read driver configuration,
133221167Sgnn *
134221167Sgnn * Returns: VXGE_HAL_OK - success.
135221167Sgnn * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
136221167Sgnn *
137221167Sgnn * See also: vxge_hal_aux_device_config_read().
138221167Sgnn */
139221167Sgnnvxge_hal_status_e
140221167Sgnnvxge_hal_aux_driver_config_read(int bufsize, char *retbuf, int *retsize)
141221167Sgnn{
142221167Sgnn	u32 size = sizeof(vxge_hal_driver_config_t);
143221167Sgnn	vxge_hal_status_e status;
144221167Sgnn	vxge_hal_driver_config_t drv_config;
145221167Sgnn
146221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
147221167Sgnn
148221167Sgnn	status = vxge_hal_mgmt_driver_config(&drv_config, &size);
149221167Sgnn	if (status != VXGE_HAL_OK)
150221167Sgnn		return (status);
151221167Sgnn
152221167Sgnn	__HAL_AUX_ENTRY("Debug Level",
153221167Sgnn	    g_vxge_hal_driver->debug_level, "%u");
154221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
155221167Sgnn
156221167Sgnn	return (VXGE_HAL_OK);
157221167Sgnn}
158221167Sgnn
159221167Sgnn/*
160221167Sgnn * vxge_hal_aux_pci_config_read - Retrieve and format PCI Configuration
161221167Sgnn * info.
162221167Sgnn * @devh: HAL device handle.
163221167Sgnn * @bufsize: Buffer size.
164221167Sgnn * @retbuf: Buffer pointer.
165221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
166221167Sgnn *
167221167Sgnn * Retrieve about info (using vxge_hal_mgmt_pci_config()) and sprintf it
168221167Sgnn * into the provided @retbuf.
169221167Sgnn *
170221167Sgnn * Returns: VXGE_HAL_OK - success.
171221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
172221167Sgnn * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
173221167Sgnn *
174221167Sgnn * See also: vxge_hal_mgmt_pci_config(), vxge_hal_aux_device_dump().
175221167Sgnn */
176221167Sgnnvxge_hal_status_e
177221167Sgnnvxge_hal_aux_pci_config_read(
178221167Sgnn    vxge_hal_device_h devh,
179221167Sgnn    int bufsize,
180221167Sgnn    char *retbuf,
181221167Sgnn    int *retsize)
182221167Sgnn{
183221167Sgnn	u8 cap_id;
184221167Sgnn	u16 ext_cap_id;
185221167Sgnn	u16 next_ptr;
186221167Sgnn	u32 size = sizeof(vxge_hal_pci_config_t);
187221167Sgnn	vxge_hal_status_e status;
188221167Sgnn	vxge_hal_pci_config_t *pci_config =
189221167Sgnn	&((__hal_device_t *) devh)->pci_config_space;
190221167Sgnn	vxge_hal_mgmt_pm_cap_t pm_cap;
191221167Sgnn	vxge_hal_mgmt_sid_cap_t sid_cap;
192221167Sgnn	vxge_hal_mgmt_msi_cap_t msi_cap;
193221167Sgnn	vxge_hal_mgmt_msix_cap_t msix_cap;
194221167Sgnn	vxge_hal_pci_err_cap_t err_cap;
195221167Sgnn
196221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
197221167Sgnn
198221167Sgnn	status = vxge_hal_mgmt_pci_config(devh, (u8 *) pci_config, &size);
199221167Sgnn	if (status != VXGE_HAL_OK)
200221167Sgnn		return (status);
201221167Sgnn
202221167Sgnn	__HAL_AUX_ENTRY("vendor_id", pci_config->vendor_id, "0x%04X");
203221167Sgnn	__HAL_AUX_ENTRY("device_id", pci_config->device_id, "0x%04X");
204221167Sgnn	__HAL_AUX_ENTRY("command", pci_config->command, "0x%04X");
205221167Sgnn	__HAL_AUX_ENTRY("status", pci_config->status, "0x%04X");
206221167Sgnn	__HAL_AUX_ENTRY("revision", pci_config->revision, "0x%02X");
207221167Sgnn	__HAL_AUX_ENTRY("pciClass1", pci_config->pciClass[0], "0x%02X");
208221167Sgnn	__HAL_AUX_ENTRY("pciClass2", pci_config->pciClass[1], "0x%02X");
209221167Sgnn	__HAL_AUX_ENTRY("pciClass3", pci_config->pciClass[2], "0x%02X");
210221167Sgnn	__HAL_AUX_ENTRY("cache_line_size",
211221167Sgnn	    pci_config->cache_line_size, "0x%02X");
212221167Sgnn	__HAL_AUX_ENTRY("header_type", pci_config->header_type, "0x%02X");
213221167Sgnn	__HAL_AUX_ENTRY("bist", pci_config->bist, "0x%02X");
214221167Sgnn	__HAL_AUX_ENTRY("base_addr0_lo", pci_config->base_addr0_lo, "0x%08X");
215221167Sgnn	__HAL_AUX_ENTRY("base_addr0_hi", pci_config->base_addr0_hi, "0x%08X");
216221167Sgnn	__HAL_AUX_ENTRY("base_addr1_lo", pci_config->base_addr1_lo, "0x%08X");
217221167Sgnn	__HAL_AUX_ENTRY("base_addr1_hi", pci_config->base_addr1_hi, "0x%08X");
218221167Sgnn	__HAL_AUX_ENTRY("not_Implemented1",
219221167Sgnn	    pci_config->not_Implemented1, "0x%08X");
220221167Sgnn	__HAL_AUX_ENTRY("not_Implemented2", pci_config->not_Implemented2,
221221167Sgnn	    "0x%08X");
222221167Sgnn	__HAL_AUX_ENTRY("cardbus_cis_pointer", pci_config->cardbus_cis_pointer,
223221167Sgnn	    "0x%08X");
224221167Sgnn	__HAL_AUX_ENTRY("subsystem_vendor_id", pci_config->subsystem_vendor_id,
225221167Sgnn	    "0x%04X");
226221167Sgnn	__HAL_AUX_ENTRY("subsystem_id", pci_config->subsystem_id, "0x%04X");
227221167Sgnn	__HAL_AUX_ENTRY("rom_base", pci_config->rom_base, "0x%08X");
228221167Sgnn	__HAL_AUX_ENTRY("capabilities_pointer",
229221167Sgnn	    pci_config->capabilities_pointer, "0x%02X");
230221167Sgnn	__HAL_AUX_ENTRY("interrupt_line", pci_config->interrupt_line, "0x%02X");
231221167Sgnn	__HAL_AUX_ENTRY("interrupt_pin", pci_config->interrupt_pin, "0x%02X");
232221167Sgnn	__HAL_AUX_ENTRY("min_grant", pci_config->min_grant, "0x%02X");
233221167Sgnn	__HAL_AUX_ENTRY("max_latency", pci_config->max_latency, "0x%02X");
234221167Sgnn
235221167Sgnn	next_ptr = pci_config->capabilities_pointer;
236221167Sgnn
237221167Sgnn	while (next_ptr != 0) {
238221167Sgnn
239221167Sgnn		cap_id = VXGE_HAL_PCI_CAP_ID((((u8 *) pci_config) + next_ptr));
240221167Sgnn
241221167Sgnn		switch (cap_id) {
242221167Sgnn
243221167Sgnn		case VXGE_HAL_PCI_CAP_ID_PM:
244221167Sgnn			status = vxge_hal_mgmt_pm_capabilities_get(devh,
245221167Sgnn			    &pm_cap);
246221167Sgnn			if (status != VXGE_HAL_OK)
247221167Sgnn				return (status);
248221167Sgnn
249221167Sgnn			__HAL_AUX_ENTRY("PM Capability",
250221167Sgnn			    cap_id, "0x%02X");
251221167Sgnn			__HAL_AUX_ENTRY("pm_cap_ver",
252221167Sgnn			    pm_cap.pm_cap_ver, "%u");
253221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_clock",
254221167Sgnn			    pm_cap.pm_cap_pme_clock, "%u");
255221167Sgnn			__HAL_AUX_ENTRY("pm_cap_aux_power",
256221167Sgnn			    pm_cap.pm_cap_aux_power, "%u");
257221167Sgnn			__HAL_AUX_ENTRY("pm_cap_dsi",
258221167Sgnn			    pm_cap.pm_cap_dsi, "%u");
259221167Sgnn			__HAL_AUX_ENTRY("pm_cap_aux_current",
260221167Sgnn			    pm_cap.pm_cap_aux_current, "%u");
261221167Sgnn			__HAL_AUX_ENTRY("pm_cap_cap_d0",
262221167Sgnn			    pm_cap.pm_cap_cap_d0, "%u");
263221167Sgnn			__HAL_AUX_ENTRY("pm_cap_cap_d1",
264221167Sgnn			    pm_cap.pm_cap_cap_d1, "%u");
265221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_d0",
266221167Sgnn			    pm_cap.pm_cap_pme_d0, "%u");
267221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_d1",
268221167Sgnn			    pm_cap.pm_cap_pme_d1, "%u");
269221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_d2",
270221167Sgnn			    pm_cap.pm_cap_pme_d2, "%u");
271221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_d3_hot",
272221167Sgnn			    pm_cap.pm_cap_pme_d3_hot, "%u");
273221167Sgnn			__HAL_AUX_ENTRY("pm_cap_pme_d3_cold",
274221167Sgnn			    pm_cap.pm_cap_pme_d3_cold, "%u");
275221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_state",
276221167Sgnn			    pm_cap.pm_ctrl_state, "%u");
277221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_no_soft_reset",
278221167Sgnn			    pm_cap.pm_ctrl_no_soft_reset, "%u");
279221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_pme_enable",
280221167Sgnn			    pm_cap.pm_ctrl_pme_enable, "%u");
281221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_pme_data_sel",
282221167Sgnn			    pm_cap.pm_ctrl_pme_data_sel, "%u");
283221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_pme_data_scale",
284221167Sgnn			    pm_cap.pm_ctrl_pme_data_scale, "%u");
285221167Sgnn			__HAL_AUX_ENTRY("pm_ctrl_pme_status",
286221167Sgnn			    pm_cap.pm_ctrl_pme_status, "%u");
287221167Sgnn			__HAL_AUX_ENTRY("pm_ppb_ext_b2_b3",
288221167Sgnn			    pm_cap.pm_ppb_ext_b2_b3, "%u");
289221167Sgnn			__HAL_AUX_ENTRY("pm_ppb_ext_ecc_en",
290221167Sgnn			    pm_cap.pm_ppb_ext_ecc_en, "%u");
291221167Sgnn			__HAL_AUX_ENTRY("pm_data_reg",
292221167Sgnn			    pm_cap.pm_data_reg, "%u");
293221167Sgnn			break;
294221167Sgnn		case VXGE_HAL_PCI_CAP_ID_VPD:
295221167Sgnn			break;
296221167Sgnn		case VXGE_HAL_PCI_CAP_ID_SLOTID:
297221167Sgnn			status = vxge_hal_mgmt_sid_capabilities_get(devh,
298221167Sgnn			    &sid_cap);
299221167Sgnn			if (status != VXGE_HAL_OK)
300221167Sgnn				return (status);
301221167Sgnn
302221167Sgnn			__HAL_AUX_ENTRY("SID Capability", cap_id, "0x%02X");
303221167Sgnn			__HAL_AUX_ENTRY("sid_number_of_slots",
304221167Sgnn			    sid_cap.sid_number_of_slots, "%u");
305221167Sgnn			__HAL_AUX_ENTRY("sid_first_in_chasis",
306221167Sgnn			    sid_cap.sid_first_in_chasis, "%u");
307221167Sgnn			__HAL_AUX_ENTRY("sid_chasis_number",
308221167Sgnn			    sid_cap.sid_chasis_number, "0x%u");
309221167Sgnn			break;
310221167Sgnn		case VXGE_HAL_PCI_CAP_ID_MSI:
311221167Sgnn			status = vxge_hal_mgmt_msi_capabilities_get(devh,
312221167Sgnn			    &msi_cap);
313221167Sgnn			if (status != VXGE_HAL_OK)
314221167Sgnn				return (status);
315221167Sgnn
316221167Sgnn			__HAL_AUX_ENTRY("MSI Capability", cap_id, "0x%02X");
317221167Sgnn			__HAL_AUX_ENTRY("MSI Enable", msi_cap.enable, "%u");
318221167Sgnn			__HAL_AUX_ENTRY("MSI 64bit Address Capable",
319221167Sgnn			    msi_cap.is_64bit_addr_capable, "%u");
320221167Sgnn			__HAL_AUX_ENTRY("MSI PVM Capable",
321221167Sgnn			    msi_cap.is_pvm_capable, "0x%02X");
322221167Sgnn			__HAL_AUX_ENTRY("MSI Vectors Allocated",
323221167Sgnn			    msi_cap.vectors_allocated, "0x%02X");
324221167Sgnn			__HAL_AUX_ENTRY("MSI Max Vectors",
325221167Sgnn			    msi_cap.max_vectors_capable, "0x%02X");
326221167Sgnn			if (msi_cap.is_64bit_addr_capable) {
327221167Sgnn				__HAL_AUX_ENTRY("MSI address",
328221167Sgnn				    msi_cap.address, "0x%016llX");
329221167Sgnn			} else {
330221167Sgnn				__HAL_AUX_ENTRY("MSI address",
331221167Sgnn				    msi_cap.address, "0x%08llX");
332221167Sgnn			}
333221167Sgnn			__HAL_AUX_ENTRY("MSI Data", msi_cap.data, "0x%04X");
334221167Sgnn			if (msi_cap.is_pvm_capable) {
335221167Sgnn				__HAL_AUX_ENTRY("MSI Mask bits",
336221167Sgnn				    msi_cap.mask_bits, "0x%08X");
337221167Sgnn				__HAL_AUX_ENTRY("MSI Pending bits",
338221167Sgnn				    msi_cap.pending_bits, "0x%08X");
339221167Sgnn			}
340221167Sgnn			break;
341221167Sgnn		case VXGE_HAL_PCI_CAP_ID_VS:
342221167Sgnn			break;
343221167Sgnn		case VXGE_HAL_PCI_CAP_ID_SHPC:
344221167Sgnn			break;
345221167Sgnn		case VXGE_HAL_PCI_CAP_ID_PCIE:
346221167Sgnn			break;
347221167Sgnn		case VXGE_HAL_PCI_CAP_ID_MSIX:
348221167Sgnn			status = vxge_hal_mgmt_msix_capabilities_get(devh,
349221167Sgnn			    &msix_cap);
350221167Sgnn			if (status != VXGE_HAL_OK)
351221167Sgnn				return (status);
352221167Sgnn
353221167Sgnn			__HAL_AUX_ENTRY("MSIX Capability", cap_id, "0x%02X");
354221167Sgnn			__HAL_AUX_ENTRY("MSIX Enable", msix_cap.enable, "%u");
355221167Sgnn			__HAL_AUX_ENTRY("MSIX Mask All vectors",
356221167Sgnn			    msix_cap.mask_all_vect, "%u");
357221167Sgnn			__HAL_AUX_ENTRY("MSIX Table Size",
358221167Sgnn			    msix_cap.table_size, "%u");
359221167Sgnn			__HAL_AUX_ENTRY("MSIX Table Offset",
360221167Sgnn			    msix_cap.table_offset, "%u");
361221167Sgnn			__HAL_AUX_ENTRY("MSIX Table BIR",
362221167Sgnn			    msix_cap.table_bir, "%u");
363221167Sgnn			__HAL_AUX_ENTRY("MSIX PBA Offset",
364221167Sgnn			    msix_cap.pba_offset, "%u");
365221167Sgnn			__HAL_AUX_ENTRY("MSIX PBA BIR", msix_cap.pba_bir, "%u");
366221167Sgnn			break;
367221167Sgnn		case VXGE_HAL_PCI_CAP_ID_AGP:
368221167Sgnn		case VXGE_HAL_PCI_CAP_ID_CHSWP:
369221167Sgnn		case VXGE_HAL_PCI_CAP_ID_PCIX:
370221167Sgnn		case VXGE_HAL_PCI_CAP_ID_HT:
371221167Sgnn		case VXGE_HAL_PCI_CAP_ID_DBGPORT:
372221167Sgnn		case VXGE_HAL_PCI_CAP_ID_CPCICSR:
373221167Sgnn		case VXGE_HAL_PCI_CAP_ID_PCIBSVID:
374221167Sgnn		case VXGE_HAL_PCI_CAP_ID_AGP8X:
375221167Sgnn		case VXGE_HAL_PCI_CAP_ID_SECDEV:
376221167Sgnn			__HAL_AUX_ENTRY("Unexpected Capability",
377221167Sgnn			    cap_id, "0x%02X");
378221167Sgnn			break;
379221167Sgnn		default:
380221167Sgnn			__HAL_AUX_ENTRY("Unknown Capability",
381221167Sgnn			    cap_id, "0x%02X");
382221167Sgnn			break;
383221167Sgnn		}
384221167Sgnn
385221167Sgnn		next_ptr =
386221167Sgnn		    VXGE_HAL_PCI_CAP_NEXT((((u8 *) pci_config) + next_ptr));
387221167Sgnn
388221167Sgnn	}
389221167Sgnn
390221167Sgnn	/* CONSTCOND */
391221167Sgnn	if (VXGE_HAL_PCI_CONFIG_SPACE_SIZE > 0x100) {
392221167Sgnn
393221167Sgnn		next_ptr = 0x100;
394221167Sgnn
395221167Sgnn		while (next_ptr != 0) {
396221167Sgnn
397221167Sgnn			ext_cap_id = (u16) VXGE_HAL_PCI_EXT_CAP_ID(
398221167Sgnn			    *(u32 *)((void *)(((u8 *) pci_config) + next_ptr)));
399221167Sgnn
400221167Sgnn			switch (ext_cap_id) {
401221167Sgnn
402221167Sgnn			case VXGE_HAL_PCI_EXT_CAP_ID_ERR:
403221167Sgnn				status =
404221167Sgnn				    vxge_hal_mgmt_pci_err_capabilities_get(devh,
405221167Sgnn				    &err_cap);
406221167Sgnn				if (status != VXGE_HAL_OK)
407221167Sgnn					return (status);
408221167Sgnn
409221167Sgnn				__HAL_AUX_ENTRY("pci_err_header",
410221167Sgnn				    err_cap.pci_err_header, "0x%08X");
411221167Sgnn				__HAL_AUX_ENTRY("pci_err_uncor_status",
412221167Sgnn				    err_cap.pci_err_uncor_status, "0x%08X");
413221167Sgnn				__HAL_AUX_ENTRY("pci_err_uncor_mask",
414221167Sgnn				    err_cap.pci_err_uncor_mask, "0x%08X");
415221167Sgnn				__HAL_AUX_ENTRY("pci_err_uncor_server",
416221167Sgnn				    err_cap.pci_err_uncor_server, "0x%08X");
417221167Sgnn				__HAL_AUX_ENTRY("pci_err_cor_status",
418221167Sgnn				    err_cap.pci_err_cor_status, "0x%08X");
419221167Sgnn				__HAL_AUX_ENTRY("pci_err_cap",
420221167Sgnn				    err_cap.pci_err_cap, "0x%08X");
421221167Sgnn				__HAL_AUX_ENTRY("err_header_log",
422221167Sgnn				    err_cap.err_header_log, "%u");
423221167Sgnn				__HAL_AUX_ENTRY("pci_err_root_command",
424221167Sgnn				    err_cap.pci_err_root_command, "0x%08X");
425221167Sgnn				__HAL_AUX_ENTRY("pci_err_root_status",
426221167Sgnn				    err_cap.pci_err_root_status, "0x%08X");
427221167Sgnn				__HAL_AUX_ENTRY("pci_err_root_cor_src",
428221167Sgnn				    err_cap.pci_err_root_cor_src, "0x%04X");
429221167Sgnn				__HAL_AUX_ENTRY("pci_err_root_src",
430221167Sgnn				    err_cap.pci_err_root_src, "0x%04X");
431221167Sgnn				break;
432221167Sgnn			case VXGE_HAL_PCI_EXT_CAP_ID_VC:
433221167Sgnn				break;
434221167Sgnn			case VXGE_HAL_PCI_EXT_CAP_ID_DSN:
435221167Sgnn				break;
436221167Sgnn			case VXGE_HAL_PCI_EXT_CAP_ID_PWR:
437221167Sgnn				break;
438221167Sgnn			default:
439221167Sgnn				__HAL_AUX_ENTRY("Unknown Capability", cap_id,
440221167Sgnn				    "0x%02X");
441221167Sgnn				break;
442221167Sgnn			}
443221167Sgnn			next_ptr = (u16) VXGE_HAL_PCI_EXT_CAP_NEXT(
444221167Sgnn			    *(u32 *)((void *)(((u8 *) pci_config) + next_ptr)));
445221167Sgnn
446221167Sgnn		}
447221167Sgnn
448221167Sgnn	}
449221167Sgnn
450221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
451221167Sgnn
452221167Sgnn	return (VXGE_HAL_OK);
453221167Sgnn}
454221167Sgnn
455221167Sgnn/*
456221167Sgnn * vxge_hal_aux_device_config_read - Read device configuration.
457221167Sgnn * @devh: HAL device handle.
458221167Sgnn * @bufsize: Buffer size.
459221167Sgnn * @retbuf: Buffer pointer.
460221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
461221167Sgnn *
462221167Sgnn * Read device configuration,
463221167Sgnn *
464221167Sgnn * Returns: VXGE_HAL_OK - success.
465221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
466221167Sgnn * VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
467221167Sgnn *
468221167Sgnn * See also: vxge_hal_aux_driver_config_read().
469221167Sgnn */
470221167Sgnnvxge_hal_status_e
471221167Sgnnvxge_hal_aux_device_config_read(vxge_hal_device_h devh,
472221167Sgnn    int bufsize, char *retbuf, int *retsize)
473221167Sgnn{
474221167Sgnn	int i;
475221167Sgnn	u32 size = sizeof(vxge_hal_device_config_t);
476221167Sgnn	vxge_hal_status_e status;
477221167Sgnn	vxge_hal_mac_config_t *mac_config;
478221167Sgnn	vxge_hal_device_config_t *dev_config;
479221167Sgnn	vxge_hal_device_t *hldev = (vxge_hal_device_t *) devh;
480221167Sgnn
481221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
482221167Sgnn
483221167Sgnn	dev_config = (vxge_hal_device_config_t *) vxge_os_malloc(hldev->pdev,
484221167Sgnn	    sizeof(vxge_hal_device_config_t));
485221167Sgnn	if (dev_config == NULL) {
486221167Sgnn		return (VXGE_HAL_FAIL);
487221167Sgnn	}
488221167Sgnn
489221167Sgnn	status = vxge_hal_mgmt_device_config(devh, dev_config, &size);
490221167Sgnn	if (status != VXGE_HAL_OK) {
491221167Sgnn		vxge_os_free(hldev->pdev, dev_config,
492221167Sgnn		    sizeof(vxge_hal_device_config_t));
493221167Sgnn		return (status);
494221167Sgnn	}
495221167Sgnn
496221167Sgnn	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Minimum",
497221167Sgnn	    dev_config->dma_blockpool_min, "%u");
498221167Sgnn	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Initial",
499221167Sgnn	    dev_config->dma_blockpool_initial, "%u");
500221167Sgnn	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Increment",
501221167Sgnn	    dev_config->dma_blockpool_incr, "%u");
502221167Sgnn	__HAL_AUX_CONFIG_ENTRY("DMA Block Pool size-Maximum",
503221167Sgnn	    dev_config->dma_blockpool_max, "%u");
504221167Sgnn	for (i = 0; i < VXGE_HAL_MAC_MAX_WIRE_PORTS; i++) {
505221167Sgnn		mac_config = &dev_config->mrpcim_config.mac_config;
506221167Sgnn		__HAL_AUX_CONFIG_ENTRY("port_id",
507221167Sgnn		    mac_config->wire_port_config[i].port_id, "%u");
508221167Sgnn		__HAL_AUX_CONFIG_ENTRY("media",
509221167Sgnn		    mac_config->wire_port_config[i].media, "%u");
510221167Sgnn		__HAL_AUX_CONFIG_ENTRY("mtu",
511221167Sgnn		    mac_config->wire_port_config[i].mtu, "%u");
512221167Sgnn		__HAL_AUX_CONFIG_ENTRY("autoneg_mode",
513221167Sgnn		    mac_config->wire_port_config[i].autoneg_mode, "%u");
514221167Sgnn		__HAL_AUX_CONFIG_ENTRY("fixed_use_fsm",
515221167Sgnn		    mac_config->wire_port_config[i].fixed_use_fsm, "%u");
516221167Sgnn		__HAL_AUX_CONFIG_ENTRY("antp_use_fsm",
517221167Sgnn		    mac_config->wire_port_config[i].antp_use_fsm, "%u");
518221167Sgnn		__HAL_AUX_CONFIG_ENTRY("anbe_use_fsm",
519221167Sgnn		    mac_config->wire_port_config[i].anbe_use_fsm, "%u");
520221167Sgnn		__HAL_AUX_CONFIG_ENTRY("link_stability_period",
521221167Sgnn		    mac_config->wire_port_config[i].link_stability_period,
522221167Sgnn		    "%u");
523221167Sgnn		__HAL_AUX_CONFIG_ENTRY("port_stability_period",
524221167Sgnn		    mac_config->wire_port_config[i].port_stability_period,
525221167Sgnn		    "%u");
526221167Sgnn		__HAL_AUX_CONFIG_ENTRY("tmac_en",
527221167Sgnn		    mac_config->wire_port_config[i].tmac_en, "%u");
528221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_en",
529221167Sgnn		    mac_config->wire_port_config[i].rmac_en, "%u");
530221167Sgnn		__HAL_AUX_CONFIG_ENTRY("tmac_pad",
531221167Sgnn		    mac_config->wire_port_config[i].tmac_pad, "%u");
532221167Sgnn		__HAL_AUX_CONFIG_ENTRY("tmac_pad_byte",
533221167Sgnn		    mac_config->wire_port_config[i].tmac_pad_byte, "%u");
534221167Sgnn		__HAL_AUX_CONFIG_ENTRY("tmac_util_period",
535221167Sgnn		    mac_config->wire_port_config[i].tmac_util_period, "%u");
536221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_strip_fcs",
537221167Sgnn		    mac_config->wire_port_config[i].rmac_strip_fcs, "%u");
538221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_prom_en",
539221167Sgnn		    mac_config->wire_port_config[i].rmac_prom_en, "%u");
540221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_discard_pfrm",
541221167Sgnn		    mac_config->wire_port_config[i].rmac_discard_pfrm, "%u");
542221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_util_period",
543221167Sgnn		    mac_config->wire_port_config[i].rmac_util_period, "%u");
544221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_pause_gen_en",
545221167Sgnn		    mac_config->wire_port_config[i].rmac_pause_gen_en, "%u");
546221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_pause_rcv_en",
547221167Sgnn		    mac_config->wire_port_config[i].rmac_pause_rcv_en, "%u");
548221167Sgnn		__HAL_AUX_CONFIG_ENTRY("rmac_pause_time",
549221167Sgnn		    mac_config->wire_port_config[i].rmac_pause_time, "%u");
550221167Sgnn		__HAL_AUX_CONFIG_ENTRY("limiter_en",
551221167Sgnn		    mac_config->wire_port_config[i].limiter_en, "%u");
552221167Sgnn		__HAL_AUX_CONFIG_ENTRY("max_limit",
553221167Sgnn		    mac_config->wire_port_config[i].max_limit, "%u");
554221167Sgnn	}
555221167Sgnn
556221167Sgnn	/* CONSTCOND */
557221167Sgnn	__HAL_AUX_CONFIG_ENTRY("port_id",
558221167Sgnn	    VXGE_HAL_MAC_SWITCH_PORT, "%u");
559221167Sgnn	__HAL_AUX_CONFIG_ENTRY("mtu",
560221167Sgnn	    mac_config->switch_port_config.mtu, "%u");
561221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_en",
562221167Sgnn	    mac_config->switch_port_config.tmac_en, "%u");
563221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_en",
564221167Sgnn	    mac_config->switch_port_config.rmac_en, "%u");
565221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_pad",
566221167Sgnn	    mac_config->switch_port_config.tmac_pad, "%u");
567221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_pad_byte",
568221167Sgnn	    mac_config->switch_port_config.tmac_pad_byte, "%u");
569221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_util_period",
570221167Sgnn	    mac_config->switch_port_config.tmac_util_period, "%u");
571221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_strip_fcs",
572221167Sgnn	    mac_config->switch_port_config.rmac_strip_fcs, "%u");
573221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_prom_en",
574221167Sgnn	    mac_config->switch_port_config.rmac_prom_en, "%u");
575221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_discard_pfrm",
576221167Sgnn	    mac_config->switch_port_config.rmac_discard_pfrm, "%u");
577221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_util_period",
578221167Sgnn	    mac_config->switch_port_config.rmac_util_period, "%u");
579221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_pause_gen_en",
580221167Sgnn	    mac_config->switch_port_config.rmac_pause_gen_en, "%u");
581221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_pause_rcv_en",
582221167Sgnn	    mac_config->switch_port_config.rmac_pause_rcv_en, "%u");
583221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rmac_pause_time",
584221167Sgnn	    mac_config->switch_port_config.rmac_pause_time, "%u");
585221167Sgnn	__HAL_AUX_CONFIG_ENTRY("limiter_en",
586221167Sgnn	    mac_config->switch_port_config.limiter_en, "%u");
587221167Sgnn	__HAL_AUX_CONFIG_ENTRY("max_limit",
588221167Sgnn	    mac_config->switch_port_config.max_limit, "%u");
589221167Sgnn
590221167Sgnn	__HAL_AUX_CONFIG_ENTRY("network_stability_period",
591221167Sgnn	    mac_config->network_stability_period, "%u");
592221167Sgnn	for (i = 0; i < 16; i++) {
593221167Sgnn		__HAL_AUX_CONFIG_ENTRY("mc_pause_threshold[i]",
594221167Sgnn		    mac_config->mc_pause_threshold[i], "%u");
595221167Sgnn	}
596221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_perma_stop_en",
597221167Sgnn	    mac_config->tmac_perma_stop_en, "%u");
598221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_tx_switch_dis",
599221167Sgnn	    mac_config->tmac_tx_switch_dis, "%u");
600221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_lossy_switch_en",
601221167Sgnn	    mac_config->tmac_lossy_switch_en, "%u");
602221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_lossy_wire_en",
603221167Sgnn	    mac_config->tmac_lossy_wire_en, "%u");
604221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_bcast_to_wire_dis",
605221167Sgnn	    mac_config->tmac_bcast_to_wire_dis, "%u");
606221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_bcast_to_switch_dis",
607221167Sgnn	    mac_config->tmac_bcast_to_switch_dis, "%u");
608221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tmac_host_append_fcs_en",
609221167Sgnn	    mac_config->tmac_host_append_fcs_en, "%u");
610221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tpa_support_snap_ab_n",
611221167Sgnn	    mac_config->tpa_support_snap_ab_n, "%u");
612221167Sgnn	__HAL_AUX_CONFIG_ENTRY("tpa_ecc_enable_n",
613221167Sgnn	    mac_config->tpa_ecc_enable_n, "%u");
614221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_ignore_frame_err",
615221167Sgnn	    mac_config->rpa_ignore_frame_err, "%u");
616221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_support_snap_ab_n",
617221167Sgnn	    mac_config->rpa_support_snap_ab_n, "%u");
618221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_search_for_hao",
619221167Sgnn	    mac_config->rpa_search_for_hao, "%u");
620221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_support_ipv6_mobile_hdrs",
621221167Sgnn	    mac_config->rpa_support_ipv6_mobile_hdrs, "%u");
622221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_ipv6_stop_searching",
623221167Sgnn	    mac_config->rpa_ipv6_stop_searching, "%u");
624221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_no_ps_if_unknown",
625221167Sgnn	    mac_config->rpa_no_ps_if_unknown, "%u");
626221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_search_for_etype",
627221167Sgnn	    mac_config->rpa_search_for_etype, "%u");
628221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l4_comp_csum",
629221167Sgnn	    mac_config->rpa_repl_l4_comp_csum, "%u");
630221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l3_incl_cf",
631221167Sgnn	    mac_config->rpa_repl_l3_incl_cf, "%u");
632221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l3_comp_csum",
633221167Sgnn	    mac_config->rpa_repl_l3_comp_csum, "%u");
634221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv4_tcp_incl_ph",
635221167Sgnn	    mac_config->rpa_repl_ipv4_tcp_incl_ph, "%u");
636221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv6_tcp_incl_ph",
637221167Sgnn	    mac_config->rpa_repl_ipv6_tcp_incl_ph, "%u");
638221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv4_udp_incl_ph",
639221167Sgnn	    mac_config->rpa_repl_ipv4_udp_incl_ph, "%u");
640221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_ipv6_udp_incl_ph",
641221167Sgnn	    mac_config->rpa_repl_ipv6_udp_incl_ph, "%u");
642221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_l4_incl_cf",
643221167Sgnn	    mac_config->rpa_repl_l4_incl_cf, "%u");
644221167Sgnn	__HAL_AUX_CONFIG_ENTRY("rpa_repl_strip_vlan_tag",
645221167Sgnn	    mac_config->rpa_repl_strip_vlan_tag, "%u");
646221167Sgnn	__HAL_AUX_CONFIG_ENTRY("ISR Polling count",
647221167Sgnn	    dev_config->isr_polling_cnt, "%u");
648221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Maximum Payload Size",
649221167Sgnn	    dev_config->max_payload_size, "%u");
650221167Sgnn	__HAL_AUX_CONFIG_ENTRY("MMRB Count",
651221167Sgnn	    dev_config->mmrb_count, "%u");
652221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Statistics Refresh Time",
653221167Sgnn	    dev_config->stats_refresh_time_sec, "%u");
654221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Interrupt Mode",
655221167Sgnn	    dev_config->intr_mode, "%u");
656221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Dump on Unknwon Error",
657221167Sgnn	    dev_config->dump_on_unknown, "%u");
658221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Dump on Serious Error",
659221167Sgnn	    dev_config->dump_on_serr, "%u");
660221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Dump on Critical Error",
661221167Sgnn	    dev_config->dump_on_critical, "%u");
662221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Dump on ECC Error",
663221167Sgnn	    dev_config->dump_on_eccerr, "%u");
664221167Sgnn	__HAL_AUX_CONFIG_ENTRY("RTH Enable",
665221167Sgnn	    dev_config->rth_en, "%u");
666221167Sgnn	__HAL_AUX_CONFIG_ENTRY("RTS MAC Enable",
667221167Sgnn	    dev_config->rts_mac_en, "%u");
668221167Sgnn	__HAL_AUX_CONFIG_ENTRY("RTS QOS Enable",
669221167Sgnn	    dev_config->rts_qos_en, "%u");
670221167Sgnn	__HAL_AUX_CONFIG_ENTRY("RTS Port Enable",
671221167Sgnn	    dev_config->rts_port_en, "%u");
672221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Max CQE Groups",
673221167Sgnn	    dev_config->max_cqe_groups, "%u");
674221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Max Number of OD Groups",
675221167Sgnn	    dev_config->max_num_wqe_od_groups, "%u");
676221167Sgnn	__HAL_AUX_CONFIG_ENTRY("No WQE Threshold",
677221167Sgnn	    dev_config->no_wqe_threshold, "%u");
678221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Refill Threshold-High",
679221167Sgnn	    dev_config->refill_threshold_high, "%u");
680221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Refill Threshold-Low",
681221167Sgnn	    dev_config->refill_threshold_low, "%u");
682221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Ack Block Limit",
683221167Sgnn	    dev_config->ack_blk_limit, "%u");
684221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Poll or Doorbell",
685221167Sgnn	    dev_config->poll_or_doorbell, "%u");
686221167Sgnn	__HAL_AUX_CONFIG_ENTRY("stats_read_method",
687221167Sgnn	    dev_config->stats_read_method, "%u");
688221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Device Poll Timeout",
689221167Sgnn	    dev_config->device_poll_millis, "%u");
690221167Sgnn	__HAL_AUX_CONFIG_ENTRY("debug_level",
691221167Sgnn	    dev_config->debug_level, "%u");
692221167Sgnn	__HAL_AUX_CONFIG_ENTRY("debug_mask",
693221167Sgnn	    dev_config->debug_mask, "%u");
694221167Sgnn
695221167Sgnn#if defined(VXGE_TRACE_INTO_CIRCULAR_ARR)
696221167Sgnn	__HAL_AUX_CONFIG_ENTRY("Trace buffer size",
697221167Sgnn	    dev_config->tracebuf_size, "%u");
698221167Sgnn#endif
699221167Sgnn
700221167Sgnn	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
701221167Sgnn		if (!(((__hal_device_t *) hldev)->vpath_assignments & mBIT(i)))
702221167Sgnn			continue;
703221167Sgnn
704221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Virtual Path id",
705221167Sgnn		    dev_config->vp_config[i].vp_id, "%u");
706221167Sgnn		__HAL_AUX_CONFIG_ENTRY("No Snoop",
707221167Sgnn		    dev_config->vp_config[i].no_snoop, "%u");
708221167Sgnn		__HAL_AUX_CONFIG_ENTRY("mtu",
709221167Sgnn		    dev_config->vp_config[i].mtu, "%u");
710221167Sgnn		__HAL_AUX_CONFIG_ENTRY("TPA LSOv2 Enable",
711221167Sgnn		    dev_config->vp_config[i].tpa_lsov2_en, "%u");
712221167Sgnn		__HAL_AUX_CONFIG_ENTRY("TPA Ignore Frame Error",
713221167Sgnn		    dev_config->vp_config[i].tpa_ignore_frame_error, "%u");
714221167Sgnn		__HAL_AUX_CONFIG_ENTRY("TPA IPv6 Keep Searching",
715221167Sgnn		    dev_config->vp_config[i].tpa_ipv6_keep_searching, "%u");
716221167Sgnn		__HAL_AUX_CONFIG_ENTRY("TPA L4 pseudo header present",
717221167Sgnn		    dev_config->vp_config[i].tpa_l4_pshdr_present, "%u");
718221167Sgnn		__HAL_AUX_CONFIG_ENTRY("TPA support mobile IPv6 Headers",
719221167Sgnn		    dev_config->vp_config[i].tpa_support_mobile_ipv6_hdrs,
720221167Sgnn		    "%u");
721221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA IPv4 TCP Include pseudo header",
722221167Sgnn		    dev_config->vp_config[i].rpa_ipv4_tcp_incl_ph, "%u");
723221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA IPv6 TCP Include pseudo header",
724221167Sgnn		    dev_config->vp_config[i].rpa_ipv6_tcp_incl_ph, "%u");
725221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA IPv4 UDP Include pseudo header",
726221167Sgnn		    dev_config->vp_config[i].rpa_ipv4_udp_incl_ph, "%u");
727221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA IPv6 UDP Include pseudo header",
728221167Sgnn		    dev_config->vp_config[i].rpa_ipv6_udp_incl_ph, "%u");
729221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA L4 Include CF",
730221167Sgnn		    dev_config->vp_config[i].rpa_l4_incl_cf, "%u");
731221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA Strip VLAN Tag",
732221167Sgnn		    dev_config->vp_config[i].rpa_strip_vlan_tag, "%u");
733221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA L4 Comp Csum Enable",
734221167Sgnn		    dev_config->vp_config[i].rpa_l4_comp_csum, "%u");
735221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA L3 Include CF Enable",
736221167Sgnn		    dev_config->vp_config[i].rpa_l3_incl_cf, "%u");
737221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA L3 Comp Csum",
738221167Sgnn		    dev_config->vp_config[i].rpa_l3_comp_csum, "%u");
739221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA Unicast All Address Enable",
740221167Sgnn		    dev_config->vp_config[i].rpa_ucast_all_addr_en, "%u");
741221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA Unicast All Address Enable",
742221167Sgnn		    dev_config->vp_config[i].rpa_ucast_all_addr_en, "%u");
743221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA Multicast All Address Enable",
744221167Sgnn		    dev_config->vp_config[i].rpa_mcast_all_addr_en, "%u");
745221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA Broadcast Enable",
746221167Sgnn		    dev_config->vp_config[i].rpa_bcast_en, "%u");
747221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RPA All VID Enable",
748221167Sgnn		    dev_config->vp_config[i].rpa_all_vid_en, "%u");
749221167Sgnn		__HAL_AUX_CONFIG_ENTRY("VP Queue L2 Flow",
750221167Sgnn		    dev_config->vp_config[i].vp_queue_l2_flow, "%u");
751221167Sgnn
752221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ring blocks",
753221167Sgnn		    dev_config->vp_config[i].ring.ring_length, "%u");
754221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Buffer Mode",
755221167Sgnn		    dev_config->vp_config[i].ring.buffer_mode, "%u");
756221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Scatter Mode",
757221167Sgnn		    dev_config->vp_config[i].ring.scatter_mode, "%u");
758221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Post Mode",
759221167Sgnn		    dev_config->vp_config[i].ring.post_mode, "%u");
760221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Maximum Frame Length",
761221167Sgnn		    dev_config->vp_config[i].ring.max_frm_len, "%u");
762221167Sgnn		__HAL_AUX_CONFIG_ENTRY("No Snoop Bits",
763221167Sgnn		    dev_config->vp_config[i].ring.no_snoop_bits, "%u");
764221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Rx Timer Value",
765221167Sgnn		    dev_config->vp_config[i].ring.rx_timer_val, "%u");
766221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Greedy return",
767221167Sgnn		    dev_config->vp_config[i].ring.greedy_return, "%u");
768221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Rx Timer CI",
769221167Sgnn		    dev_config->vp_config[i].ring.rx_timer_ci, "%u");
770221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Backoff Interval",
771221167Sgnn		    dev_config->vp_config[i].ring.backoff_interval_us, "%u");
772221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Indicate Max Packets",
773221167Sgnn		    dev_config->vp_config[i].ring.indicate_max_pkts, "%u");
774221167Sgnn
775221167Sgnn
776221167Sgnn		__HAL_AUX_CONFIG_ENTRY("FIFO Blocks",
777221167Sgnn		    dev_config->vp_config[i].fifo.fifo_length, "%u");
778221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Max Frags",
779221167Sgnn		    dev_config->vp_config[i].fifo.max_frags, "%u");
780221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Alignment Size",
781221167Sgnn		    dev_config->vp_config[i].fifo.alignment_size, "%u");
782221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Maximum Aligned Frags",
783221167Sgnn		    dev_config->vp_config[i].fifo.max_aligned_frags, "%u");
784221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
785221167Sgnn		    dev_config->vp_config[i].fifo.intr, "%u");
786221167Sgnn		__HAL_AUX_CONFIG_ENTRY("No Snoop Bits",
787221167Sgnn		    dev_config->vp_config[i].fifo.no_snoop_bits, "%u");
788221167Sgnn
789221167Sgnn
790221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
791221167Sgnn		    dev_config->vp_config[i].tti.intr_enable, "%u");
792221167Sgnn		__HAL_AUX_CONFIG_ENTRY("BTimer Value",
793221167Sgnn		    dev_config->vp_config[i].tti.btimer_val, "%u");
794221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer AC Enable",
795221167Sgnn		    dev_config->vp_config[i].tti.timer_ac_en, "%u");
796221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer CI Enable",
797221167Sgnn		    dev_config->vp_config[i].tti.timer_ci_en, "%u");
798221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer RI Enable",
799221167Sgnn		    dev_config->vp_config[i].tti.timer_ri_en, "%u");
800221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer Event SF",
801221167Sgnn		    dev_config->vp_config[i].tti.rtimer_event_sf, "%u");
802221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RTimer Value",
803221167Sgnn		    dev_config->vp_config[i].tti.rtimer_val, "%u");
804221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Sel",
805221167Sgnn		    dev_config->vp_config[i].tti.util_sel, "%u");
806221167Sgnn		__HAL_AUX_CONFIG_ENTRY("LTimer Value",
807221167Sgnn		    dev_config->vp_config[i].tti.ltimer_val, "%u");
808221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Tx Frame Count Enable",
809221167Sgnn		    dev_config->vp_config[i].tti.txfrm_cnt_en, "%u");
810221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Txd Count Enable",
811221167Sgnn		    dev_config->vp_config[i].tti.txd_cnt_en, "%u");
812221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range A",
813221167Sgnn		    dev_config->vp_config[i].tti.urange_a, "%u");
814221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count A",
815221167Sgnn		    dev_config->vp_config[i].tti.uec_a, "%u");
816221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range B",
817221167Sgnn		    dev_config->vp_config[i].tti.urange_b, "%u");
818221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count B",
819221167Sgnn		    dev_config->vp_config[i].tti.uec_b, "%u");
820221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range C",
821221167Sgnn		    dev_config->vp_config[i].tti.urange_c, "%u");
822221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count C",
823221167Sgnn		    dev_config->vp_config[i].tti.uec_c, "%u");
824221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count D",
825221167Sgnn		    dev_config->vp_config[i].tti.uec_d, "%u");
826221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca Interrupt Threshold",
827221167Sgnn		    dev_config->vp_config[i].tti.ufca_intr_thres, "%u");
828221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca Low Limit",
829221167Sgnn		    dev_config->vp_config[i].tti.ufca_lo_lim, "%u");
830221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca High Limit",
831221167Sgnn		    dev_config->vp_config[i].tti.ufca_hi_lim, "%u");
832221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca lbolt period",
833221167Sgnn		    dev_config->vp_config[i].tti.ufca_lbolt_period, "%u");
834221167Sgnn
835221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Interrupt Enable",
836221167Sgnn		    dev_config->vp_config[i].rti.intr_enable, "%u");
837221167Sgnn		__HAL_AUX_CONFIG_ENTRY("BTimer Value",
838221167Sgnn		    dev_config->vp_config[i].rti.btimer_val, "%u");
839221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer AC Enable",
840221167Sgnn		    dev_config->vp_config[i].rti.timer_ac_en, "%u");
841221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer CI Enable",
842221167Sgnn		    dev_config->vp_config[i].rti.timer_ci_en, "%u");
843221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer RI Enable",
844221167Sgnn		    dev_config->vp_config[i].rti.timer_ri_en, "%u");
845221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Timer Event SF",
846221167Sgnn		    dev_config->vp_config[i].rti.rtimer_event_sf, "%u");
847221167Sgnn		__HAL_AUX_CONFIG_ENTRY("RTimer Value",
848221167Sgnn		    dev_config->vp_config[i].rti.rtimer_val, "%u");
849221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Sel",
850221167Sgnn		    dev_config->vp_config[i].rti.util_sel, "%u");
851221167Sgnn		__HAL_AUX_CONFIG_ENTRY("LTimer Value",
852221167Sgnn		    dev_config->vp_config[i].rti.ltimer_val, "%u");
853221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Tx Frame Count Enable",
854221167Sgnn		    dev_config->vp_config[i].rti.txfrm_cnt_en, "%u");
855221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Txd Count Enable",
856221167Sgnn		    dev_config->vp_config[i].rti.txd_cnt_en, "%u");
857221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range A",
858221167Sgnn		    dev_config->vp_config[i].rti.urange_a, "%u");
859221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count A",
860221167Sgnn		    dev_config->vp_config[i].rti.uec_a, "%u");
861221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range B",
862221167Sgnn		    dev_config->vp_config[i].rti.urange_b, "%u");
863221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count B",
864221167Sgnn		    dev_config->vp_config[i].rti.uec_b, "%u");
865221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Range C",
866221167Sgnn		    dev_config->vp_config[i].rti.urange_c, "%u");
867221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count C",
868221167Sgnn		    dev_config->vp_config[i].rti.uec_c, "%u");
869221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Util Event Count D",
870221167Sgnn		    dev_config->vp_config[i].rti.uec_d, "%u");
871221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca Interrupt Threshold",
872221167Sgnn		    dev_config->vp_config[i].rti.ufca_intr_thres, "%u");
873221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca Low Limit",
874221167Sgnn		    dev_config->vp_config[i].rti.ufca_lo_lim, "%u");
875221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca High Limit",
876221167Sgnn		    dev_config->vp_config[i].rti.ufca_hi_lim, "%u");
877221167Sgnn		__HAL_AUX_CONFIG_ENTRY("Ufca lbolt period",
878221167Sgnn		    dev_config->vp_config[i].rti.ufca_lbolt_period, "%u");
879221167Sgnn	}
880221167Sgnn
881221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
882221167Sgnn
883221167Sgnn	vxge_os_free(hldev->pdev, dev_config,
884221167Sgnn	    sizeof(vxge_hal_device_config_t));
885221167Sgnn
886221167Sgnn	return (VXGE_HAL_OK);
887221167Sgnn}
888221167Sgnn
889221167Sgnn/*
890221167Sgnn * vxge_hal_aux_bar0_read - Read and format X3100 BAR0 register.
891221167Sgnn * @devh: HAL device handle.
892221167Sgnn * @offset: Register offset in the BAR0 space.
893221167Sgnn * @bufsize: Buffer size.
894221167Sgnn * @retbuf: Buffer pointer.
895221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
896221167Sgnn *
897221167Sgnn * Read X3100 register from BAR0 space.
898221167Sgnn *
899221167Sgnn * Returns: VXGE_HAL_OK - success.
900221167Sgnn * VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
901221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
902221167Sgnn * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
903221167Sgnn * valid.
904221167Sgnn *
905221167Sgnn * See also: vxge_hal_mgmt_reg_read().
906221167Sgnn */
907221167Sgnnvxge_hal_status_e
908221167Sgnnvxge_hal_aux_bar0_read(vxge_hal_device_h devh,
909221167Sgnn    unsigned int offset, int bufsize, char *retbuf,
910221167Sgnn    int *retsize)
911221167Sgnn{
912221167Sgnn	vxge_hal_status_e status;
913221167Sgnn	u64 retval;
914221167Sgnn
915221167Sgnn	status = vxge_hal_mgmt_bar0_read(devh, offset, &retval);
916221167Sgnn	if (status != VXGE_HAL_OK)
917221167Sgnn		return (status);
918221167Sgnn
919221167Sgnn	if (bufsize < VXGE_OS_SPRINTF_STRLEN)
920221167Sgnn		return (VXGE_HAL_ERR_OUT_OF_SPACE);
921221167Sgnn
922221167Sgnn	*retsize = vxge_os_snprintf(retbuf, bufsize,
923221167Sgnn	    "0x%04X%c0x%08X%08X\n", offset,
924221167Sgnn	    VXGE_HAL_AUX_SEPA, (u32) (retval >> 32), (u32) retval);
925221167Sgnn
926221167Sgnn	return (VXGE_HAL_OK);
927221167Sgnn}
928221167Sgnn
929221167Sgnn/*
930221167Sgnn * vxge_hal_aux_bar1_read - Read and format X3100 BAR1 register.
931221167Sgnn * @devh: HAL device handle.
932221167Sgnn * @offset: Register offset in the BAR1 space.
933221167Sgnn * @bufsize: Buffer size.
934221167Sgnn * @retbuf: Buffer pointer.
935221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
936221167Sgnn *
937221167Sgnn * Read X3100 register from BAR1 space.
938221167Sgnn * Returns: VXGE_HAL_OK - success.
939221167Sgnn * VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
940221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
941221167Sgnn * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
942221167Sgnn * valid.
943221167Sgnn *
944221167Sgnn * See also: vxge_hal_mgmt_reg_read().
945221167Sgnn */
946221167Sgnnvxge_hal_status_e
947221167Sgnnvxge_hal_aux_bar1_read(vxge_hal_device_h devh,
948221167Sgnn    unsigned int offset, int bufsize, char *retbuf,
949221167Sgnn    int *retsize)
950221167Sgnn{
951221167Sgnn	vxge_hal_status_e status;
952221167Sgnn	u64 retval;
953221167Sgnn
954221167Sgnn	status = vxge_hal_mgmt_bar1_read(devh, offset, &retval);
955221167Sgnn	if (status != VXGE_HAL_OK)
956221167Sgnn		return (status);
957221167Sgnn
958221167Sgnn	if (bufsize < VXGE_OS_SPRINTF_STRLEN)
959221167Sgnn		return (VXGE_HAL_ERR_OUT_OF_SPACE);
960221167Sgnn
961221167Sgnn	*retsize = vxge_os_snprintf(retbuf, bufsize, "0x%04X%c0x%08X%08X\n",
962221167Sgnn	    offset, VXGE_HAL_AUX_SEPA, (u32) (retval >> 32), (u32) retval);
963221167Sgnn
964221167Sgnn	return (VXGE_HAL_OK);
965221167Sgnn}
966221167Sgnn
967221167Sgnn/*
968221167Sgnn * vxge_hal_aux_bar0_write - Write BAR0 register.
969221167Sgnn * @devh: HAL device handle.
970221167Sgnn * @offset: Register offset in the BAR0 space.
971221167Sgnn * @value: Regsister value (to write).
972221167Sgnn *
973221167Sgnn * Write BAR0 register.
974221167Sgnn *
975221167Sgnn * Returns: VXGE_HAL_OK - success.
976221167Sgnn * VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
977221167Sgnn * VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
978221167Sgnn * valid.
979221167Sgnn *
980221167Sgnn * See also: vxge_hal_mgmt_reg_write().
981221167Sgnn */
982221167Sgnnvxge_hal_status_e
983221167Sgnnvxge_hal_aux_bar0_write(vxge_hal_device_h devh,
984221167Sgnn    unsigned int offset, u64 value)
985221167Sgnn{
986221167Sgnn	vxge_hal_status_e status;
987221167Sgnn
988221167Sgnn	status = vxge_hal_mgmt_bar0_write(devh, offset, value);
989221167Sgnn	if (status != VXGE_HAL_OK)
990221167Sgnn		return (status);
991221167Sgnn
992221167Sgnn	return (VXGE_HAL_OK);
993221167Sgnn}
994221167Sgnn
995221167Sgnn/*
996221167Sgnn * vxge_hal_aux_stats_vpath_hw_read - Read vpath hardware statistics.
997221167Sgnn * @vpath_handle: HAL Vpath handle.
998221167Sgnn * @bufsize: Buffer size.
999221167Sgnn * @retbuf: Buffer pointer.
1000221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1001221167Sgnn *
1002221167Sgnn * Read vpath hardware statistics. This is a subset of stats counters
1003221167Sgnn * from vxge_hal_vpath_stats_hw_info_t {}.
1004221167Sgnn *
1005221167Sgnn */
1006221167Sgnnvxge_hal_status_e
1007221167Sgnnvxge_hal_aux_stats_vpath_hw_read(
1008221167Sgnn    vxge_hal_vpath_h vpath_handle,
1009221167Sgnn    int bufsize,
1010221167Sgnn    char *retbuf,
1011221167Sgnn    int *retsize)
1012221167Sgnn{
1013221167Sgnn	vxge_hal_status_e status;
1014221167Sgnn	vxge_hal_vpath_stats_hw_info_t hw_info;
1015221167Sgnn
1016221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1017221167Sgnn
1018221167Sgnn	vxge_assert(vpath_handle != NULL);
1019221167Sgnn
1020221167Sgnn	status = vxge_hal_vpath_hw_stats_enable(vpath_handle);
1021221167Sgnn	if (status != VXGE_HAL_OK)
1022221167Sgnn		return (status);
1023221167Sgnn
1024221167Sgnn	status = vxge_hal_vpath_hw_stats_get(vpath_handle, &hw_info);
1025221167Sgnn	if (status != VXGE_HAL_OK)
1026221167Sgnn		return (status);
1027221167Sgnn
1028221167Sgnn	__HAL_AUX_ENTRY("ini_num_mwr_sent",
1029221167Sgnn	    hw_info.ini_num_mwr_sent, "%u");
1030221167Sgnn	__HAL_AUX_ENTRY("ini_num_mrd_sent",
1031221167Sgnn	    hw_info.ini_num_mrd_sent, "%u");
1032221167Sgnn	__HAL_AUX_ENTRY("ini_num_cpl_rcvd",
1033221167Sgnn	    hw_info.ini_num_cpl_rcvd, "%u");
1034221167Sgnn	__HAL_AUX_ENTRY("ini_num_mwr_byte_sent",
1035221167Sgnn	    hw_info.ini_num_mwr_byte_sent, "%llu");
1036221167Sgnn	__HAL_AUX_ENTRY("ini_num_cpl_byte_rcvd",
1037221167Sgnn	    hw_info.ini_num_cpl_byte_rcvd, "%llu");
1038221167Sgnn	__HAL_AUX_ENTRY("wrcrdtarb_xoff",
1039221167Sgnn	    hw_info.wrcrdtarb_xoff, "%u");
1040221167Sgnn	__HAL_AUX_ENTRY("rdcrdtarb_xoff",
1041221167Sgnn	    hw_info.rdcrdtarb_xoff, "%u");
1042221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count0",
1043221167Sgnn	    hw_info.vpath_genstats_count0, "%u");
1044221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count1",
1045221167Sgnn	    hw_info.vpath_genstats_count1, "%u");
1046221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count2",
1047221167Sgnn	    hw_info.vpath_genstats_count2, "%u");
1048221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count3",
1049221167Sgnn	    hw_info.vpath_genstats_count3, "%u");
1050221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count4",
1051221167Sgnn	    hw_info.vpath_genstats_count4, "%u");
1052221167Sgnn	__HAL_AUX_ENTRY("vpath_genstats_count5",
1053221167Sgnn	    hw_info.vpath_genstats_count5, "%u");
1054221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_eth_frms",
1055221167Sgnn	    hw_info.tx_stats.tx_ttl_eth_frms, "%llu");
1056221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_eth_octets",
1057221167Sgnn	    hw_info.tx_stats.tx_ttl_eth_octets, "%llu");
1058221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets",
1059221167Sgnn	    hw_info.tx_stats.tx_data_octets, "%llu");
1060221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms",
1061221167Sgnn	    hw_info.tx_stats.tx_mcast_frms, "%llu");
1062221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms",
1063221167Sgnn	    hw_info.tx_stats.tx_bcast_frms, "%llu");
1064221167Sgnn	__HAL_AUX_ENTRY("tx_ucast_frms",
1065221167Sgnn	    hw_info.tx_stats.tx_ucast_frms, "%llu");
1066221167Sgnn	__HAL_AUX_ENTRY("tx_tagged_frms",
1067221167Sgnn	    hw_info.tx_stats.tx_tagged_frms, "%llu");
1068221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip",
1069221167Sgnn	    hw_info.tx_stats.tx_vld_ip, "%llu");
1070221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_octets",
1071221167Sgnn	    hw_info.tx_stats.tx_vld_ip_octets, "%llu");
1072221167Sgnn	__HAL_AUX_ENTRY("tx_icmp",
1073221167Sgnn	    hw_info.tx_stats.tx_icmp, "%llu");
1074221167Sgnn	__HAL_AUX_ENTRY("tx_tcp",
1075221167Sgnn	    hw_info.tx_stats.tx_tcp, "%llu");
1076221167Sgnn	__HAL_AUX_ENTRY("tx_rst_tcp",
1077221167Sgnn	    hw_info.tx_stats.tx_rst_tcp, "%llu");
1078221167Sgnn	__HAL_AUX_ENTRY("tx_udp",
1079221167Sgnn	    hw_info.tx_stats.tx_udp, "%llu");
1080221167Sgnn	__HAL_AUX_ENTRY("tx_unknown_protocol",
1081221167Sgnn	    hw_info.tx_stats.tx_unknown_protocol, "%u");
1082221167Sgnn	__HAL_AUX_ENTRY("tx_lost_ip",
1083221167Sgnn	    hw_info.tx_stats.tx_lost_ip, "%u");
1084221167Sgnn	__HAL_AUX_ENTRY("tx_parse_error",
1085221167Sgnn	    hw_info.tx_stats.tx_parse_error, "%u");
1086221167Sgnn	__HAL_AUX_ENTRY("tx_tcp_offload",
1087221167Sgnn	    hw_info.tx_stats.tx_tcp_offload, "%llu");
1088221167Sgnn	__HAL_AUX_ENTRY("tx_retx_tcp_offload",
1089221167Sgnn	    hw_info.tx_stats.tx_retx_tcp_offload, "%llu");
1090221167Sgnn	__HAL_AUX_ENTRY("tx_lost_ip_offload",
1091221167Sgnn	    hw_info.tx_stats.tx_lost_ip_offload, "%llu");
1092221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_eth_frms",
1093221167Sgnn	    hw_info.rx_stats.rx_ttl_eth_frms, "%llu");
1094221167Sgnn	__HAL_AUX_ENTRY("rx_vld_frms",
1095221167Sgnn	    hw_info.rx_stats.rx_vld_frms, "%llu");
1096221167Sgnn	__HAL_AUX_ENTRY("rx_offload_frms",
1097221167Sgnn	    hw_info.rx_stats.rx_offload_frms, "%llu");
1098221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_eth_octets",
1099221167Sgnn	    hw_info.rx_stats.rx_ttl_eth_octets, "%llu");
1100221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets",
1101221167Sgnn	    hw_info.rx_stats.rx_data_octets, "%llu");
1102221167Sgnn	__HAL_AUX_ENTRY("rx_offload_octets",
1103221167Sgnn	    hw_info.rx_stats.rx_offload_octets, "%llu");
1104221167Sgnn	__HAL_AUX_ENTRY("rx_vld_mcast_frms",
1105221167Sgnn	    hw_info.rx_stats.rx_vld_mcast_frms, "%llu");
1106221167Sgnn	__HAL_AUX_ENTRY("rx_vld_bcast_frms",
1107221167Sgnn	    hw_info.rx_stats.rx_vld_bcast_frms, "%llu");
1108221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ucast_frms",
1109221167Sgnn	    hw_info.rx_stats.rx_accepted_ucast_frms, "%llu");
1110221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_nucast_frms",
1111221167Sgnn	    hw_info.rx_stats.rx_accepted_nucast_frms, "%llu");
1112221167Sgnn	__HAL_AUX_ENTRY("rx_tagged_frms",
1113221167Sgnn	    hw_info.rx_stats.rx_tagged_frms, "%llu");
1114221167Sgnn	__HAL_AUX_ENTRY("rx_long_frms",
1115221167Sgnn	    hw_info.rx_stats.rx_long_frms, "%llu");
1116221167Sgnn	__HAL_AUX_ENTRY("rx_usized_frms",
1117221167Sgnn	    hw_info.rx_stats.rx_usized_frms, "%llu");
1118221167Sgnn	__HAL_AUX_ENTRY("rx_osized_frms",
1119221167Sgnn	    hw_info.rx_stats.rx_osized_frms, "%llu");
1120221167Sgnn	__HAL_AUX_ENTRY("rx_frag_frms",
1121221167Sgnn	    hw_info.rx_stats.rx_frag_frms, "%llu");
1122221167Sgnn	__HAL_AUX_ENTRY("rx_jabber_frms",
1123221167Sgnn	    hw_info.rx_stats.rx_jabber_frms, "%llu");
1124221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_64_frms",
1125221167Sgnn	    hw_info.rx_stats.rx_ttl_64_frms, "%llu");
1126221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_65_127_frms",
1127221167Sgnn	    hw_info.rx_stats.rx_ttl_65_127_frms, "%llu");
1128221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_128_255_frms",
1129221167Sgnn	    hw_info.rx_stats.rx_ttl_128_255_frms, "%llu");
1130221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_256_511_frms",
1131221167Sgnn	    hw_info.rx_stats.rx_ttl_256_511_frms, "%llu");
1132221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms",
1133221167Sgnn	    hw_info.rx_stats.rx_ttl_512_1023_frms, "%llu");
1134221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms",
1135221167Sgnn	    hw_info.rx_stats.rx_ttl_1024_1518_frms, "%llu");
1136221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms",
1137221167Sgnn	    hw_info.rx_stats.rx_ttl_1519_4095_frms, "%llu");
1138221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms",
1139221167Sgnn	    hw_info.rx_stats.rx_ttl_4096_8191_frms, "%llu");
1140221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms",
1141221167Sgnn	    hw_info.rx_stats.rx_ttl_8192_max_frms, "%llu");
1142221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms",
1143221167Sgnn	    hw_info.rx_stats.rx_ttl_gt_max_frms, "%llu");
1144221167Sgnn	__HAL_AUX_ENTRY("rx_ip",
1145221167Sgnn	    hw_info.rx_stats.rx_ip, "%llu");
1146221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ip",
1147221167Sgnn	    hw_info.rx_stats.rx_accepted_ip, "%llu");
1148221167Sgnn	__HAL_AUX_ENTRY("rx_ip_octets",
1149221167Sgnn	    hw_info.rx_stats.rx_ip_octets, "%llu");
1150221167Sgnn	__HAL_AUX_ENTRY("rx_err_ip",
1151221167Sgnn	    hw_info.rx_stats.rx_err_ip, "%llu");
1152221167Sgnn	__HAL_AUX_ENTRY("rx_icmp",
1153221167Sgnn	    hw_info.rx_stats.rx_icmp, "%llu");
1154221167Sgnn	__HAL_AUX_ENTRY("rx_tcp",
1155221167Sgnn	    hw_info.rx_stats.rx_tcp, "%llu");
1156221167Sgnn	__HAL_AUX_ENTRY("rx_udp",
1157221167Sgnn	    hw_info.rx_stats.rx_udp, "%llu");
1158221167Sgnn	__HAL_AUX_ENTRY("rx_err_tcp",
1159221167Sgnn	    hw_info.rx_stats.rx_err_tcp, "%llu");
1160221167Sgnn	__HAL_AUX_ENTRY("rx_lost_frms",
1161221167Sgnn	    hw_info.rx_stats.rx_lost_frms, "%llu");
1162221167Sgnn	__HAL_AUX_ENTRY("rx_lost_ip",
1163221167Sgnn	    hw_info.rx_stats.rx_lost_ip, "%llu");
1164221167Sgnn	__HAL_AUX_ENTRY("rx_lost_ip_offload",
1165221167Sgnn	    hw_info.rx_stats.rx_lost_ip_offload, "%llu");
1166221167Sgnn	__HAL_AUX_ENTRY("rx_various_discard",
1167221167Sgnn	    hw_info.rx_stats.rx_various_discard, "%u");
1168221167Sgnn	__HAL_AUX_ENTRY("rx_sleep_discard",
1169221167Sgnn	    hw_info.rx_stats.rx_sleep_discard, "%u");
1170221167Sgnn	__HAL_AUX_ENTRY("rx_red_discard",
1171221167Sgnn	    hw_info.rx_stats.rx_red_discard, "%u");
1172221167Sgnn	__HAL_AUX_ENTRY("rx_queue_full_discard",
1173221167Sgnn	    hw_info.rx_stats.rx_queue_full_discard, "%u");
1174221167Sgnn	__HAL_AUX_ENTRY("rx_mpa_ok_frms",
1175221167Sgnn	    hw_info.rx_stats.rx_mpa_ok_frms, "%llu");
1176221167Sgnn	__HAL_AUX_ENTRY("prog_event_vnum1",
1177221167Sgnn	    hw_info.prog_event_vnum1, "%u");
1178221167Sgnn	__HAL_AUX_ENTRY("prog_event_vnum0",
1179221167Sgnn	    hw_info.prog_event_vnum0, "%u");
1180221167Sgnn	__HAL_AUX_ENTRY("prog_event_vnum3",
1181221167Sgnn	    hw_info.prog_event_vnum3, "%u");
1182221167Sgnn	__HAL_AUX_ENTRY("prog_event_vnum2",
1183221167Sgnn	    hw_info.prog_event_vnum2, "%u");
1184221167Sgnn	__HAL_AUX_ENTRY("rx_multi_cast_frame_discard",
1185221167Sgnn	    hw_info.rx_multi_cast_frame_discard, "%u");
1186221167Sgnn	__HAL_AUX_ENTRY("rx_frm_transferred",
1187221167Sgnn	    hw_info.rx_frm_transferred, "%u");
1188221167Sgnn	__HAL_AUX_ENTRY("rxd_returned",
1189221167Sgnn	    hw_info.rxd_returned, "%u");
1190221167Sgnn	__HAL_AUX_ENTRY("rx_mpa_len_fail_frms",
1191221167Sgnn	    hw_info.rx_mpa_len_fail_frms, "%u");
1192221167Sgnn	__HAL_AUX_ENTRY("rx_mpa_mrk_fail_frms",
1193221167Sgnn	    hw_info.rx_mpa_mrk_fail_frms, "%u");
1194221167Sgnn	__HAL_AUX_ENTRY("rx_mpa_crc_fail_frms",
1195221167Sgnn	    hw_info.rx_mpa_crc_fail_frms, "%u");
1196221167Sgnn	__HAL_AUX_ENTRY("rx_permitted_frms",
1197221167Sgnn	    hw_info.rx_permitted_frms, "%u");
1198221167Sgnn	__HAL_AUX_ENTRY("rx_vp_reset_discarded_frms",
1199221167Sgnn	    hw_info.rx_vp_reset_discarded_frms, "%llu");
1200221167Sgnn	__HAL_AUX_ENTRY("rx_wol_frms",
1201221167Sgnn	    hw_info.rx_wol_frms, "%llu");
1202221167Sgnn	__HAL_AUX_ENTRY("tx_vp_reset_discarded_frms",
1203221167Sgnn	    hw_info.tx_vp_reset_discarded_frms, "%llu");
1204221167Sgnn
1205221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1206221167Sgnn
1207221167Sgnn	return (VXGE_HAL_OK);
1208221167Sgnn}
1209221167Sgnn
1210221167Sgnn/*
1211221167Sgnn * vxge_hal_aux_stats_device_hw_read - Read device hardware statistics.
1212221167Sgnn * @devh: HAL device handle.
1213221167Sgnn * @bufsize: Buffer size.
1214221167Sgnn * @retbuf: Buffer pointer.
1215221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1216221167Sgnn *
1217221167Sgnn * Read device hardware statistics. This is a subset of stats counters
1218221167Sgnn * from vxge_hal_device_stats_hw_info_t {}.
1219221167Sgnn *
1220221167Sgnn */
1221221167Sgnnvxge_hal_status_e
1222221167Sgnnvxge_hal_aux_stats_device_hw_read(vxge_hal_device_h devh,
1223221167Sgnn    int bufsize, char *retbuf, int *retsize)
1224221167Sgnn{
1225221167Sgnn	u32 i;
1226221167Sgnn	int rsize = 0;
1227221167Sgnn	vxge_hal_status_e status;
1228221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
1229221167Sgnn
1230221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1231221167Sgnn
1232221167Sgnn	vxge_assert(devh);
1233221167Sgnn
1234221167Sgnn	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
1235221167Sgnn
1236221167Sgnn		if (!(hldev->vpaths_deployed & mBIT(i)))
1237221167Sgnn			continue;
1238221167Sgnn
1239221167Sgnn		__HAL_AUX_ENTRY("H/W stats for vpath id", i, "%u");
1240221167Sgnn
1241221167Sgnn		status = vxge_hal_aux_stats_vpath_hw_read(
1242221167Sgnn		    VXGE_HAL_VIRTUAL_PATH_HANDLE(&hldev->virtual_paths[i]),
1243221167Sgnn		    leftsize, ptr, &rsize);
1244221167Sgnn
1245221167Sgnn		if (status != VXGE_HAL_OK)
1246221167Sgnn			return (status);
1247221167Sgnn
1248221167Sgnn		ptr += rsize;
1249221167Sgnn		leftsize -= rsize;
1250221167Sgnn
1251221167Sgnn	}
1252221167Sgnn
1253221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1254221167Sgnn
1255221167Sgnn	return (VXGE_HAL_OK);
1256221167Sgnn}
1257221167Sgnn
1258221167Sgnn#define	__HAL_AUX_VPATH_SW_COMMON_INFO(prefix, common) {\
1259221167Sgnn	__HAL_AUX_ENTRY(prefix"full_cnt", (common)->full_cnt, "%u");\
1260221167Sgnn	__HAL_AUX_ENTRY(prefix"usage_cnt", (common)->usage_cnt, "%u");\
1261221167Sgnn	__HAL_AUX_ENTRY(prefix"usage_max", (common)->usage_max, "%u");\
1262221167Sgnn	__HAL_AUX_ENTRY(prefix"avg_compl_per_intr_cnt",\
1263221167Sgnn		(common)->avg_compl_per_intr_cnt, "%u");\
1264221167Sgnn	__HAL_AUX_ENTRY(prefix"total_compl_cnt",\
1265221167Sgnn		(common)->total_compl_cnt, "%u");\
1266221167Sgnn}
1267221167Sgnn
1268221167Sgnn/*
1269221167Sgnn * vxge_hal_aux_stats_vpath_sw_fifo_read - Read vpath fifo software statistics.
1270221167Sgnn * @vpath_handle: HAL Vpath handle.
1271221167Sgnn * @bufsize: Buffer size.
1272221167Sgnn * @retbuf: Buffer pointer.
1273221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1274221167Sgnn *
1275221167Sgnn * Read vpath fifo software statistics. This is a subset of stats counters
1276221167Sgnn * from vxge_hal_vpath_stats_sw_fifo_info_t {}.
1277221167Sgnn *
1278221167Sgnn */
1279221167Sgnnvxge_hal_status_e
1280221167Sgnnvxge_hal_aux_stats_vpath_sw_fifo_read(
1281221167Sgnn    vxge_hal_vpath_h vpath_handle,
1282221167Sgnn    int bufsize,
1283221167Sgnn    char *retbuf,
1284221167Sgnn    int *retsize)
1285221167Sgnn{
1286221167Sgnn	u32 i;
1287221167Sgnn	u8 strbuf[256];
1288221167Sgnn	vxge_hal_status_e status;
1289221167Sgnn	vxge_hal_vpath_stats_sw_fifo_info_t *fifo_info;
1290221167Sgnn	vxge_hal_vpath_stats_sw_info_t sw_stats;
1291221167Sgnn
1292221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1293221167Sgnn
1294221167Sgnn	vxge_assert(vpath_handle != NULL);
1295221167Sgnn
1296221167Sgnn	status = vxge_hal_vpath_sw_stats_get(vpath_handle, &sw_stats);
1297221167Sgnn	if (status != VXGE_HAL_OK)
1298221167Sgnn		return (status);
1299221167Sgnn
1300221167Sgnn	fifo_info = &sw_stats.fifo_stats;
1301221167Sgnn
1302221167Sgnn	__HAL_AUX_VPATH_SW_COMMON_INFO("fifo_",
1303221167Sgnn	    &fifo_info->common_stats);
1304221167Sgnn
1305221167Sgnn	__HAL_AUX_ENTRY("total_posts",
1306221167Sgnn	    fifo_info->total_posts, "%u");
1307221167Sgnn	__HAL_AUX_ENTRY("total_buffers",
1308221167Sgnn	    fifo_info->total_buffers, "%u");
1309221167Sgnn	__HAL_AUX_ENTRY("avg_buffers_per_post",
1310221167Sgnn	    fifo_info->avg_buffers_per_post, "%u");
1311221167Sgnn	__HAL_AUX_ENTRY("copied_frags",
1312221167Sgnn	    fifo_info->copied_frags, "%u");
1313221167Sgnn	__HAL_AUX_ENTRY("copied_buffers",
1314221167Sgnn	    fifo_info->copied_buffers, "%u");
1315221167Sgnn	__HAL_AUX_ENTRY("avg_buffer_size",
1316221167Sgnn	    fifo_info->avg_buffer_size, "%u");
1317221167Sgnn	__HAL_AUX_ENTRY("avg_post_size",
1318221167Sgnn	    fifo_info->avg_post_size, "%u");
1319221167Sgnn	__HAL_AUX_ENTRY("total_frags",
1320221167Sgnn	    fifo_info->total_frags, "%u");
1321221167Sgnn	__HAL_AUX_ENTRY("copied_frags",
1322221167Sgnn	    fifo_info->copied_frags, "%u");
1323221167Sgnn	__HAL_AUX_ENTRY("total_posts_dang_dtrs",
1324221167Sgnn	    fifo_info->total_posts_dang_dtrs, "%u");
1325221167Sgnn	__HAL_AUX_ENTRY("total_posts_dang_frags",
1326221167Sgnn	    fifo_info->total_posts_dang_frags, "%u");
1327221167Sgnn
1328221167Sgnn	for (i = 0; i < 16; i++) {
1329221167Sgnn		(void) vxge_os_snprintf((char *) strbuf,
1330221167Sgnn		    sizeof(strbuf), "txd_t_code_err_cnt[%d]", i);
1331221167Sgnn		__HAL_AUX_ENTRY(strbuf,
1332221167Sgnn		    fifo_info->txd_t_code_err_cnt[i], "%u");
1333221167Sgnn	}
1334221167Sgnn
1335221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1336221167Sgnn
1337221167Sgnn	return (VXGE_HAL_OK);
1338221167Sgnn}
1339221167Sgnn
1340221167Sgnn/*
1341221167Sgnn * vxge_hal_aux_stats_vpath_sw_ring_read - Read vpath ring software statistics.
1342221167Sgnn * @vpath_handle: HAL Vpath handle.
1343221167Sgnn * @bufsize: Buffer size.
1344221167Sgnn * @retbuf: Buffer pointer.
1345221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1346221167Sgnn *
1347221167Sgnn * Read vpath ring software statistics. This is a subset of stats counters
1348221167Sgnn * from vxge_hal_vpath_stats_sw_ring_info_t {}.
1349221167Sgnn *
1350221167Sgnn */
1351221167Sgnnvxge_hal_status_e
1352221167Sgnnvxge_hal_aux_stats_vpath_sw_ring_read(
1353221167Sgnn    vxge_hal_vpath_h vpath_handle,
1354221167Sgnn    int bufsize,
1355221167Sgnn    char *retbuf,
1356221167Sgnn    int *retsize)
1357221167Sgnn{
1358221167Sgnn	u32 i;
1359221167Sgnn	u8 strbuf[256];
1360221167Sgnn	vxge_hal_status_e status;
1361221167Sgnn	vxge_hal_vpath_stats_sw_ring_info_t *ring_info;
1362221167Sgnn	vxge_hal_vpath_stats_sw_info_t sw_stats;
1363221167Sgnn
1364221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1365221167Sgnn
1366221167Sgnn	vxge_assert(vpath_handle != NULL);
1367221167Sgnn
1368221167Sgnn	status = vxge_hal_vpath_sw_stats_get(vpath_handle, &sw_stats);
1369221167Sgnn	if (status != VXGE_HAL_OK)
1370221167Sgnn		return (status);
1371221167Sgnn
1372221167Sgnn	ring_info = &sw_stats.ring_stats;
1373221167Sgnn
1374221167Sgnn	__HAL_AUX_VPATH_SW_COMMON_INFO("ring_",
1375221167Sgnn	    &ring_info->common_stats);
1376221167Sgnn
1377221167Sgnn	for (i = 0; i < 16; i++) {
1378221167Sgnn		(void) vxge_os_snprintf((char *) strbuf,
1379221167Sgnn		    sizeof(strbuf), "rxd_t_code_err_cnt[%d]", i);
1380221167Sgnn		__HAL_AUX_ENTRY(strbuf,
1381221167Sgnn		    ring_info->rxd_t_code_err_cnt[i], "%u");
1382221167Sgnn	}
1383221167Sgnn
1384221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1385221167Sgnn
1386221167Sgnn	return (VXGE_HAL_OK);
1387221167Sgnn}
1388221167Sgnn
1389221167Sgnn
1390221167Sgnn/*
1391221167Sgnn * vxge_hal_aux_stats_vpath_sw_err_read - Read vpath err software statistics.
1392221167Sgnn * @vpath_handle: HAL Vpath handle.
1393221167Sgnn * @bufsize: Buffer size.
1394221167Sgnn * @retbuf: Buffer pointer.
1395221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1396221167Sgnn *
1397221167Sgnn * Read vpath err software statistics. This is a subset of stats counters
1398221167Sgnn * from vxge_hal_vpath_stats_sw_err_info_t {}.
1399221167Sgnn *
1400221167Sgnn */
1401221167Sgnnvxge_hal_status_e
1402221167Sgnnvxge_hal_aux_stats_vpath_sw_err_read(
1403221167Sgnn    vxge_hal_vpath_h vpath_handle,
1404221167Sgnn    int bufsize,
1405221167Sgnn    char *retbuf,
1406221167Sgnn    int *retsize)
1407221167Sgnn{
1408221167Sgnn	vxge_hal_vpath_stats_sw_err_t *err_info;
1409221167Sgnn	__hal_vpath_handle_t *vp = (__hal_vpath_handle_t *) vpath_handle;
1410221167Sgnn
1411221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1412221167Sgnn
1413221167Sgnn	vxge_assert(vpath_handle != NULL);
1414221167Sgnn
1415221167Sgnn	err_info = &vp->vpath->sw_stats->error_stats;
1416221167Sgnn
1417221167Sgnn	__HAL_AUX_ENTRY("unknown_alarms",
1418221167Sgnn	    err_info->unknown_alarms, "%u");
1419221167Sgnn	__HAL_AUX_ENTRY("network_sustained_fault",
1420221167Sgnn	    err_info->network_sustained_fault, "%u");
1421221167Sgnn	__HAL_AUX_ENTRY("network_sustained_ok",
1422221167Sgnn	    err_info->network_sustained_ok, "%u");
1423221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo0_overwrite",
1424221167Sgnn	    err_info->kdfcctl_fifo0_overwrite, "%u");
1425221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo0_poison",
1426221167Sgnn	    err_info->kdfcctl_fifo0_poison, "%u");
1427221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo0_dma_error",
1428221167Sgnn	    err_info->kdfcctl_fifo0_dma_error, "%u");
1429221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo1_overwrite",
1430221167Sgnn	    err_info->kdfcctl_fifo1_overwrite, "%u");
1431221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo1_poison",
1432221167Sgnn	    err_info->kdfcctl_fifo1_poison, "%u");
1433221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo1_dma_error",
1434221167Sgnn	    err_info->kdfcctl_fifo1_dma_error, "%u");
1435221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo2_overwrite",
1436221167Sgnn	    err_info->kdfcctl_fifo2_overwrite, "%u");
1437221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo2_poison",
1438221167Sgnn	    err_info->kdfcctl_fifo2_poison, "%u");
1439221167Sgnn	__HAL_AUX_ENTRY("kdfcctl_fifo2_dma_error",
1440221167Sgnn	    err_info->kdfcctl_fifo2_dma_error, "%u");
1441221167Sgnn	__HAL_AUX_ENTRY("dblgen_fifo0_overflow",
1442221167Sgnn	    err_info->dblgen_fifo0_overflow, "%u");
1443221167Sgnn	__HAL_AUX_ENTRY("dblgen_fifo1_overflow",
1444221167Sgnn	    err_info->dblgen_fifo1_overflow, "%u");
1445221167Sgnn	__HAL_AUX_ENTRY("dblgen_fifo2_overflow",
1446221167Sgnn	    err_info->dblgen_fifo2_overflow, "%u");
1447221167Sgnn	__HAL_AUX_ENTRY("statsb_pif_chain_error",
1448221167Sgnn	    err_info->statsb_pif_chain_error, "%u");
1449221167Sgnn	__HAL_AUX_ENTRY("statsb_drop_timeout",
1450221167Sgnn	    err_info->statsb_drop_timeout, "%u");
1451221167Sgnn	__HAL_AUX_ENTRY("target_illegal_access",
1452221167Sgnn	    err_info->target_illegal_access, "%u");
1453221167Sgnn	__HAL_AUX_ENTRY("ini_serr_det",
1454221167Sgnn	    err_info->ini_serr_det, "%u");
1455221167Sgnn	__HAL_AUX_ENTRY("pci_config_status_err",
1456221167Sgnn	    err_info->pci_config_status_err, "%u");
1457221167Sgnn	__HAL_AUX_ENTRY("pci_config_uncor_err",
1458221167Sgnn	    err_info->pci_config_uncor_err, "%u");
1459221167Sgnn	__HAL_AUX_ENTRY("pci_config_cor_err",
1460221167Sgnn	    err_info->pci_config_cor_err, "%u");
1461221167Sgnn	__HAL_AUX_ENTRY("mrpcim_to_vpath_alarms",
1462221167Sgnn	    err_info->mrpcim_to_vpath_alarms, "%u");
1463221167Sgnn	__HAL_AUX_ENTRY("srpcim_to_vpath_alarms",
1464221167Sgnn	    err_info->srpcim_to_vpath_alarms, "%u");
1465221167Sgnn	__HAL_AUX_ENTRY("srpcim_msg_to_vpath",
1466221167Sgnn	    err_info->srpcim_msg_to_vpath, "%u");
1467221167Sgnn	__HAL_AUX_ENTRY("prc_ring_bumps",
1468221167Sgnn	    err_info->prc_ring_bumps, "%u");
1469221167Sgnn	__HAL_AUX_ENTRY("prc_rxdcm_sc_err",
1470221167Sgnn	    err_info->prc_rxdcm_sc_err, "%u");
1471221167Sgnn	__HAL_AUX_ENTRY("prc_rxdcm_sc_abort",
1472221167Sgnn	    err_info->prc_rxdcm_sc_abort, "%u");
1473221167Sgnn	__HAL_AUX_ENTRY("prc_quanta_size_err",
1474221167Sgnn	    err_info->prc_quanta_size_err, "%u");
1475221167Sgnn
1476221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1477221167Sgnn
1478221167Sgnn	return (VXGE_HAL_OK);
1479221167Sgnn}
1480221167Sgnn
1481221167Sgnn/*
1482221167Sgnn * vxge_hal_aux_stats_vpath_sw_read - Read vpath soft statistics.
1483221167Sgnn * @vpath_handle: HAL Vpath handle.
1484221167Sgnn * @bufsize: Buffer size.
1485221167Sgnn * @retbuf: Buffer pointer.
1486221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1487221167Sgnn *
1488221167Sgnn * Read device hardware statistics. This is a subset of stats counters
1489221167Sgnn * from vxge_hal_vpath_stats_sw_info_t {}.
1490221167Sgnn *
1491221167Sgnn */
1492221167Sgnnvxge_hal_status_e
1493221167Sgnnvxge_hal_aux_stats_vpath_sw_read(
1494221167Sgnn    vxge_hal_vpath_h vpath_handle,
1495221167Sgnn    int bufsize,
1496221167Sgnn    char *retbuf,
1497221167Sgnn    int *retsize)
1498221167Sgnn{
1499221167Sgnn	int rsize = 0;
1500221167Sgnn	vxge_hal_status_e status;
1501221167Sgnn	vxge_hal_vpath_stats_sw_info_t *sw_info;
1502221167Sgnn	__hal_vpath_handle_t *vp = (__hal_vpath_handle_t *) vpath_handle;
1503221167Sgnn
1504221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1505221167Sgnn
1506221167Sgnn	vxge_assert(vpath_handle != NULL);
1507221167Sgnn
1508221167Sgnn	sw_info = vp->vpath->sw_stats;
1509221167Sgnn
1510221167Sgnn	__HAL_AUX_ENTRY("soft_reset_cnt", sw_info->soft_reset_cnt, "%u");
1511221167Sgnn
1512221167Sgnn
1513221167Sgnn	status = vxge_hal_aux_stats_vpath_sw_err_read(vpath_handle,
1514221167Sgnn	    leftsize, ptr, &rsize);
1515221167Sgnn	if (status != VXGE_HAL_OK)
1516221167Sgnn		return (status);
1517221167Sgnn
1518221167Sgnn	ptr += rsize;
1519221167Sgnn	leftsize -= rsize;
1520221167Sgnn
1521221167Sgnn	status = vxge_hal_aux_stats_vpath_sw_ring_read(vpath_handle,
1522221167Sgnn	    leftsize, ptr, &rsize);
1523221167Sgnn	if (status != VXGE_HAL_OK)
1524221167Sgnn		return (status);
1525221167Sgnn
1526221167Sgnn	ptr += rsize;
1527221167Sgnn	leftsize -= rsize;
1528221167Sgnn
1529221167Sgnn	status = vxge_hal_aux_stats_vpath_sw_fifo_read(vpath_handle,
1530221167Sgnn	    leftsize, ptr, &rsize);
1531221167Sgnn	if (status != VXGE_HAL_OK)
1532221167Sgnn		return (status);
1533221167Sgnn
1534221167Sgnn
1535221167Sgnn	leftsize -= rsize;
1536221167Sgnn
1537221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1538221167Sgnn
1539221167Sgnn	return (VXGE_HAL_OK);
1540221167Sgnn}
1541221167Sgnn
1542221167Sgnn/*
1543221167Sgnn * vxge_hal_aux_stats_device_sw_read - Read device software statistics.
1544221167Sgnn * @devh: HAL device handle.
1545221167Sgnn * @bufsize: Buffer size.
1546221167Sgnn * @retbuf: Buffer pointer.
1547221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1548221167Sgnn *
1549221167Sgnn * Read device software statistics. This is a subset of stats counters
1550221167Sgnn * from vxge_hal_device_stats_sw_info_t {}.
1551221167Sgnn *
1552221167Sgnn */
1553221167Sgnnvxge_hal_status_e
1554221167Sgnnvxge_hal_aux_stats_device_sw_read(vxge_hal_device_h devh,
1555221167Sgnn    int bufsize, char *retbuf, int *retsize)
1556221167Sgnn{
1557221167Sgnn	u32 i;
1558221167Sgnn	int rsize = 0;
1559221167Sgnn	vxge_hal_status_e status;
1560221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
1561221167Sgnn
1562221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1563221167Sgnn
1564221167Sgnn	vxge_assert(devh);
1565221167Sgnn
1566221167Sgnn	__HAL_AUX_ENTRY("not_traffic_intr_cnt",
1567221167Sgnn	    hldev->header.not_traffic_intr_cnt, "%u");
1568221167Sgnn	__HAL_AUX_ENTRY("traffic_intr_cnt",
1569221167Sgnn	    hldev->header.traffic_intr_cnt, "%u");
1570221167Sgnn	__HAL_AUX_ENTRY("total_intr_cnt",
1571221167Sgnn	    hldev->header.not_traffic_intr_cnt +
1572221167Sgnn	    hldev->header.traffic_intr_cnt, "%u");
1573221167Sgnn	__HAL_AUX_ENTRY("soft_reset_cnt",
1574221167Sgnn	    hldev->stats.sw_dev_info_stats.soft_reset_cnt, "%u");
1575221167Sgnn
1576221167Sgnn	for (i = 0; i < VXGE_HAL_MAX_VIRTUAL_PATHS; i++) {
1577221167Sgnn
1578221167Sgnn		if (!(hldev->vpaths_deployed & mBIT(i)))
1579221167Sgnn			continue;
1580221167Sgnn
1581221167Sgnn		__HAL_AUX_ENTRY("S/W stats for vpath id", i, "%u");
1582221167Sgnn
1583221167Sgnn		status = vxge_hal_aux_stats_vpath_sw_read(
1584221167Sgnn		    VXGE_HAL_VIRTUAL_PATH_HANDLE(&hldev->virtual_paths[i]),
1585221167Sgnn		    leftsize, ptr, &rsize);
1586221167Sgnn
1587221167Sgnn		if (status != VXGE_HAL_OK)
1588221167Sgnn			return (status);
1589221167Sgnn
1590221167Sgnn		ptr += rsize;
1591221167Sgnn		leftsize -= rsize;
1592221167Sgnn	}
1593221167Sgnn
1594221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1595221167Sgnn
1596221167Sgnn	return (VXGE_HAL_OK);
1597221167Sgnn}
1598221167Sgnn
1599221167Sgnn/*
1600221167Sgnn * vxge_hal_aux_stats_device_sw_err_read - Read device software error statistics
1601221167Sgnn * @devh: HAL device handle.
1602221167Sgnn * @bufsize: Buffer size.
1603221167Sgnn * @retbuf: Buffer pointer.
1604221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1605221167Sgnn *
1606221167Sgnn * Read device software error statistics. This is a subset of stats counters
1607221167Sgnn * from vxge_hal_device_stats_sw_info_t {}.
1608221167Sgnn *
1609221167Sgnn */
1610221167Sgnnvxge_hal_status_e
1611221167Sgnnvxge_hal_aux_stats_device_sw_err_read(vxge_hal_device_h devh,
1612221167Sgnn    int bufsize, char *retbuf, int *retsize)
1613221167Sgnn{
1614221167Sgnn	vxge_hal_device_stats_sw_err_t *sw_err;
1615221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
1616221167Sgnn
1617221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1618221167Sgnn
1619221167Sgnn	vxge_assert(devh);
1620221167Sgnn
1621221167Sgnn	sw_err = &hldev->stats.sw_dev_err_stats;
1622221167Sgnn
1623221167Sgnn	__HAL_AUX_ENTRY("mrpcim_alarms", sw_err->mrpcim_alarms, "%u");
1624221167Sgnn	__HAL_AUX_ENTRY("srpcim_alarms", sw_err->srpcim_alarms, "%u");
1625221167Sgnn	__HAL_AUX_ENTRY("vpath_alarms", sw_err->vpath_alarms, "%u");
1626221167Sgnn
1627221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1628221167Sgnn
1629221167Sgnn	return (VXGE_HAL_OK);
1630221167Sgnn}
1631221167Sgnn
1632221167Sgnn/*
1633221167Sgnn * vxge_hal_aux_stats_device_read - Read device statistics.
1634221167Sgnn * @devh: HAL device handle.
1635221167Sgnn * @bufsize: Buffer size.
1636221167Sgnn * @retbuf: Buffer pointer.
1637221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1638221167Sgnn *
1639221167Sgnn * Read device statistics. This is a subset of stats counters
1640221167Sgnn * from vxge_hal_device_stats_t {}.
1641221167Sgnn *
1642221167Sgnn */
1643221167Sgnnvxge_hal_status_e
1644221167Sgnnvxge_hal_aux_stats_device_read(vxge_hal_device_h devh,
1645221167Sgnn    int bufsize, char *retbuf, int *retsize)
1646221167Sgnn{
1647221167Sgnn	char *ptr = retbuf;
1648221167Sgnn	int rsize = 0, leftsize = bufsize;
1649221167Sgnn	vxge_hal_status_e status;
1650221167Sgnn
1651221167Sgnn	vxge_assert(devh);
1652221167Sgnn
1653221167Sgnn	status = vxge_hal_aux_stats_device_hw_read(devh,
1654221167Sgnn	    leftsize, ptr, &rsize);
1655221167Sgnn	if (status != VXGE_HAL_OK)
1656221167Sgnn		return (status);
1657221167Sgnn
1658221167Sgnn	ptr += rsize;
1659221167Sgnn	leftsize -= rsize;
1660221167Sgnn
1661221167Sgnn	status = vxge_hal_aux_stats_device_sw_err_read(devh,
1662221167Sgnn	    leftsize, ptr, &rsize);
1663221167Sgnn	if (status != VXGE_HAL_OK)
1664221167Sgnn		return (status);
1665221167Sgnn
1666221167Sgnn	ptr += rsize;
1667221167Sgnn	leftsize -= rsize;
1668221167Sgnn
1669221167Sgnn	status = vxge_hal_aux_stats_device_sw_read(devh,
1670221167Sgnn	    leftsize, ptr, &rsize);
1671221167Sgnn	if (status != VXGE_HAL_OK)
1672221167Sgnn		return (status);
1673221167Sgnn
1674221167Sgnn	leftsize -= rsize;
1675221167Sgnn
1676221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1677221167Sgnn
1678221167Sgnn	return (VXGE_HAL_OK);
1679221167Sgnn}
1680221167Sgnn
1681221167Sgnn/*
1682221167Sgnn * vxge_hal_aux_stats_xpak_read - Read device xpak statistics.
1683221167Sgnn * @devh: HAL device handle.
1684221167Sgnn * @bufsize: Buffer size.
1685221167Sgnn * @retbuf: Buffer pointer.
1686221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1687221167Sgnn *
1688221167Sgnn * Read device xpak statistics. This is valid for function 0 device only
1689221167Sgnn *
1690221167Sgnn */
1691221167Sgnnvxge_hal_status_e
1692221167Sgnnvxge_hal_aux_stats_xpak_read(vxge_hal_device_h devh,
1693221167Sgnn    int bufsize, char *retbuf, int *retsize)
1694221167Sgnn{
1695221167Sgnn	u32 i;
1696221167Sgnn	vxge_hal_mrpcim_xpak_stats_t *xpak_stats;
1697221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
1698221167Sgnn
1699221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1700221167Sgnn
1701221167Sgnn	vxge_assert(devh);
1702221167Sgnn
1703221167Sgnn	if (!(hldev->access_rights & VXGE_HAL_DEVICE_ACCESS_RIGHT_MRPCIM))
1704221167Sgnn		return (VXGE_HAL_ERR_PRIVILAGED_OPEARATION);
1705221167Sgnn
1706221167Sgnn	for (i = 0; i < VXGE_HAL_MAC_MAX_WIRE_PORTS; i++) {
1707221167Sgnn
1708221167Sgnn		xpak_stats = &hldev->mrpcim->xpak_stats[i];
1709221167Sgnn
1710221167Sgnn		__HAL_AUX_ENTRY("Wire Port Id : ", i, "%u");
1711221167Sgnn		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1712221167Sgnn		    xpak_stats->excess_bias_current, "%u");
1713221167Sgnn		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1714221167Sgnn		    xpak_stats->excess_laser_output, "%u");
1715221167Sgnn		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1716221167Sgnn		    xpak_stats->excess_temp, "%u");
1717221167Sgnn		__HAL_AUX_ENTRY("alarm_transceiver_temp_high",
1718221167Sgnn		    xpak_stats->alarm_transceiver_temp_high, "%u");
1719221167Sgnn		__HAL_AUX_ENTRY("alarm_transceiver_temp_low",
1720221167Sgnn		    xpak_stats->alarm_transceiver_temp_low, "%u");
1721221167Sgnn		__HAL_AUX_ENTRY("alarm_laser_bias_current_high",
1722221167Sgnn		    xpak_stats->alarm_laser_bias_current_high, "%u");
1723221167Sgnn		__HAL_AUX_ENTRY("alarm_laser_bias_current_low",
1724221167Sgnn		    xpak_stats->alarm_laser_bias_current_low, "%u");
1725221167Sgnn		__HAL_AUX_ENTRY("alarm_laser_output_power_high",
1726221167Sgnn		    xpak_stats->alarm_laser_output_power_high, "%u");
1727221167Sgnn		__HAL_AUX_ENTRY("alarm_laser_output_power_low",
1728221167Sgnn		    xpak_stats->alarm_laser_output_power_low, "%u");
1729221167Sgnn		__HAL_AUX_ENTRY("warn_transceiver_temp_high",
1730221167Sgnn		    xpak_stats->warn_transceiver_temp_high, "%u");
1731221167Sgnn		__HAL_AUX_ENTRY("warn_transceiver_temp_low",
1732221167Sgnn		    xpak_stats->warn_transceiver_temp_low, "%u");
1733221167Sgnn		__HAL_AUX_ENTRY("warn_laser_bias_current_high",
1734221167Sgnn		    xpak_stats->warn_laser_bias_current_high, "%u");
1735221167Sgnn		__HAL_AUX_ENTRY("warn_laser_bias_current_low",
1736221167Sgnn		    xpak_stats->warn_laser_bias_current_low, "%u");
1737221167Sgnn		__HAL_AUX_ENTRY("warn_laser_output_power_high",
1738221167Sgnn		    xpak_stats->warn_laser_output_power_high, "%u");
1739221167Sgnn		__HAL_AUX_ENTRY("warn_laser_output_power_low",
1740221167Sgnn		    xpak_stats->warn_laser_output_power_low, "%u");
1741221167Sgnn
1742221167Sgnn	}
1743221167Sgnn
1744221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
1745221167Sgnn
1746221167Sgnn	return (VXGE_HAL_OK);
1747221167Sgnn}
1748221167Sgnn/*
1749221167Sgnn * vxge_hal_aux_stats_mrpcim_read - Read device mrpcim statistics.
1750221167Sgnn * @devh: HAL device handle.
1751221167Sgnn * @bufsize: Buffer size.
1752221167Sgnn * @retbuf: Buffer pointer.
1753221167Sgnn * @retsize: Size of the result. Cannot be greater than @bufsize.
1754221167Sgnn *
1755221167Sgnn * Read device mrpcim statistics. This is valid for function 0 device only
1756221167Sgnn *
1757221167Sgnn */
1758221167Sgnnvxge_hal_status_e
1759221167Sgnnvxge_hal_aux_stats_mrpcim_read(vxge_hal_device_h devh,
1760221167Sgnn    int bufsize, char *retbuf, int *retsize)
1761221167Sgnn{
1762221167Sgnn	vxge_hal_status_e status;
1763221167Sgnn	vxge_hal_mrpcim_stats_hw_info_t mrpcim_info;
1764221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
1765221167Sgnn
1766221167Sgnn	__HAL_AUX_ENTRY_DECLARE(bufsize, retbuf);
1767221167Sgnn
1768221167Sgnn	vxge_assert(devh);
1769221167Sgnn
1770221167Sgnn	if (!(hldev->access_rights & VXGE_HAL_DEVICE_ACCESS_RIGHT_MRPCIM))
1771221167Sgnn		return (VXGE_HAL_ERR_PRIVILAGED_OPEARATION);
1772221167Sgnn
1773221167Sgnn	status = vxge_hal_mrpcim_stats_enable(devh);
1774221167Sgnn	if (status != VXGE_HAL_OK)
1775221167Sgnn		return (status);
1776221167Sgnn
1777221167Sgnn	status = vxge_hal_mrpcim_stats_get(devh, &mrpcim_info);
1778221167Sgnn	if (status != VXGE_HAL_OK)
1779221167Sgnn		return (status);
1780221167Sgnn
1781221167Sgnn	__HAL_AUX_ENTRY("pic_ini_rd_drop", mrpcim_info.pic_ini_rd_drop, "%u");
1782221167Sgnn	__HAL_AUX_ENTRY("pic_ini_wr_drop", mrpcim_info.pic_ini_wr_drop, "%u");
1783221167Sgnn
1784221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane0",
1785221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[0].
1786221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1787221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane1",
1788221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[1].
1789221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1790221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane2",
1791221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[2].
1792221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1793221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane3",
1794221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[3].
1795221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1796221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane4",
1797221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[4].
1798221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1799221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane5",
1800221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[5].
1801221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1802221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane6",
1803221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[6].
1804221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1805221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane7",
1806221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[7].
1807221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1808221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane8",
1809221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[8].
1810221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1811221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane9",
1812221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[9].
1813221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1814221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane10",
1815221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[10].
1816221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1817221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane11",
1818221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[11].
1819221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1820221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane12",
1821221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[12].
1822221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1823221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane13",
1824221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[13].
1825221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1826221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane14",
1827221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[14].
1828221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1829221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane15",
1830221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[15].
1831221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1832221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_ph_crdt_depleted_vplane16",
1833221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[16].
1834221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1835221167Sgnn
1836221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane0",
1837221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[0].
1838221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1839221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane1",
1840221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[1].
1841221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1842221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane2",
1843221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[2].
1844221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1845221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane3",
1846221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[3].
1847221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1848221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane4",
1849221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[4].
1850221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1851221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane5",
1852221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[5].
1853221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1854221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane6",
1855221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[6].
1856221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1857221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane7",
1858221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[7].
1859221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1860221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane8",
1861221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[8].
1862221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1863221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane9",
1864221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[9].
1865221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1866221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane10",
1867221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[10].
1868221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1869221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane11",
1870221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[11].
1871221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1872221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane12",
1873221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[12].
1874221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1875221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane13",
1876221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[13].
1877221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1878221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane14",
1879221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[14].
1880221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1881221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane15",
1882221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[15].
1883221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1884221167Sgnn	__HAL_AUX_ENTRY("pic_wrcrdtarb_pd_crdt_depleted_vplane16",
1885221167Sgnn	    mrpcim_info.pic_wrcrdtarb_pd_crdt_depleted_vplane[16].
1886221167Sgnn	    pic_wrcrdtarb_pd_crdt_depleted, "%u");
1887221167Sgnn
1888221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane0",
1889221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[0].
1890221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1891221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane1",
1892221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[1].
1893221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1894221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane2",
1895221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[2].
1896221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1897221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane3",
1898221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[3].
1899221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1900221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane4",
1901221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[4].
1902221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1903221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane5",
1904221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[5].
1905221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1906221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane6",
1907221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[6].
1908221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1909221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane7",
1910221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[7].
1911221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1912221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane8",
1913221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[8].
1914221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1915221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane9",
1916221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[9].
1917221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1918221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane10",
1919221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[10].
1920221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1921221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane11",
1922221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[11].
1923221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1924221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane12",
1925221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[12].
1926221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1927221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane13",
1928221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[13].
1929221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1930221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane14",
1931221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[14].
1932221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1933221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane15",
1934221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[15].
1935221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1936221167Sgnn	__HAL_AUX_ENTRY("pic_rdcrdtarb_nph_crdt_depleted_vplane16",
1937221167Sgnn	    mrpcim_info.pic_rdcrdtarb_nph_crdt_depleted_vplane[16].
1938221167Sgnn	    pic_rdcrdtarb_nph_crdt_depleted, "%u");
1939221167Sgnn
1940221167Sgnn	__HAL_AUX_ENTRY("pic_ini_rd_vpin_drop",
1941221167Sgnn	    mrpcim_info.pic_ini_rd_vpin_drop, "%u");
1942221167Sgnn	__HAL_AUX_ENTRY("pic_ini_wr_vpin_drop",
1943221167Sgnn	    mrpcim_info.pic_ini_wr_vpin_drop, "%u");
1944221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count0",
1945221167Sgnn	    mrpcim_info.pic_genstats_count0, "%u");
1946221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count1",
1947221167Sgnn	    mrpcim_info.pic_genstats_count1, "%u");
1948221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count2",
1949221167Sgnn	    mrpcim_info.pic_genstats_count2, "%u");
1950221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count3",
1951221167Sgnn	    mrpcim_info.pic_genstats_count3, "%u");
1952221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count4",
1953221167Sgnn	    mrpcim_info.pic_genstats_count4, "%u");
1954221167Sgnn	__HAL_AUX_ENTRY("pic_genstats_count5",
1955221167Sgnn	    mrpcim_info.pic_genstats_count5, "%u");
1956221167Sgnn	__HAL_AUX_ENTRY("pci_rstdrop_cpl",
1957221167Sgnn	    mrpcim_info.pci_rstdrop_cpl, "%u");
1958221167Sgnn	__HAL_AUX_ENTRY("pci_rstdrop_msg",
1959221167Sgnn	    mrpcim_info.pci_rstdrop_msg, "%u");
1960221167Sgnn	__HAL_AUX_ENTRY("pci_rstdrop_client1",
1961221167Sgnn	    mrpcim_info.pci_rstdrop_client1, "%u");
1962221167Sgnn	__HAL_AUX_ENTRY("pci_rstdrop_client0",
1963221167Sgnn	    mrpcim_info.pci_rstdrop_client0, "%u");
1964221167Sgnn	__HAL_AUX_ENTRY("pci_rstdrop_client2",
1965221167Sgnn	    mrpcim_info.pci_rstdrop_client2, "%u");
1966221167Sgnn
1967221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane0",
1968221167Sgnn	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_cplh, "%u");
1969221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane0",
1970221167Sgnn	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_nph, "%u");
1971221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane0",
1972221167Sgnn	    mrpcim_info.pci_depl_h_vplane[0].pci_depl_ph, "%u");
1973221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane1",
1974221167Sgnn	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_cplh, "%u");
1975221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane1",
1976221167Sgnn	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_nph, "%u");
1977221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane1",
1978221167Sgnn	    mrpcim_info.pci_depl_h_vplane[1].pci_depl_ph, "%u");
1979221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane2",
1980221167Sgnn	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_cplh, "%u");
1981221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane2",
1982221167Sgnn	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_nph, "%u");
1983221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane2",
1984221167Sgnn	    mrpcim_info.pci_depl_h_vplane[2].pci_depl_ph, "%u");
1985221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane3",
1986221167Sgnn	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_cplh, "%u");
1987221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane3",
1988221167Sgnn	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_nph, "%u");
1989221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane3",
1990221167Sgnn	    mrpcim_info.pci_depl_h_vplane[3].pci_depl_ph, "%u");
1991221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane4",
1992221167Sgnn	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_cplh, "%u");
1993221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane4",
1994221167Sgnn	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_nph, "%u");
1995221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane4",
1996221167Sgnn	    mrpcim_info.pci_depl_h_vplane[4].pci_depl_ph, "%u");
1997221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane5",
1998221167Sgnn	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_cplh, "%u");
1999221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane5",
2000221167Sgnn	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_nph, "%u");
2001221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane5",
2002221167Sgnn	    mrpcim_info.pci_depl_h_vplane[5].pci_depl_ph, "%u");
2003221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane6",
2004221167Sgnn	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_cplh, "%u");
2005221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane6",
2006221167Sgnn	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_nph, "%u");
2007221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane6",
2008221167Sgnn	    mrpcim_info.pci_depl_h_vplane[6].pci_depl_ph, "%u");
2009221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane7",
2010221167Sgnn	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_cplh, "%u");
2011221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane7",
2012221167Sgnn	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_nph, "%u");
2013221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane7",
2014221167Sgnn	    mrpcim_info.pci_depl_h_vplane[7].pci_depl_ph, "%u");
2015221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane8",
2016221167Sgnn	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_cplh, "%u");
2017221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane8",
2018221167Sgnn	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_nph, "%u");
2019221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane8",
2020221167Sgnn	    mrpcim_info.pci_depl_h_vplane[8].pci_depl_ph, "%u");
2021221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane9",
2022221167Sgnn	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_cplh, "%u");
2023221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane9",
2024221167Sgnn	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_nph, "%u");
2025221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane9",
2026221167Sgnn	    mrpcim_info.pci_depl_h_vplane[9].pci_depl_ph, "%u");
2027221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane10",
2028221167Sgnn	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_cplh, "%u");
2029221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane10",
2030221167Sgnn	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_nph, "%u");
2031221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane10",
2032221167Sgnn	    mrpcim_info.pci_depl_h_vplane[10].pci_depl_ph, "%u");
2033221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane11",
2034221167Sgnn	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_cplh, "%u");
2035221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane11",
2036221167Sgnn	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_nph, "%u");
2037221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane11",
2038221167Sgnn	    mrpcim_info.pci_depl_h_vplane[11].pci_depl_ph, "%u");
2039221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane12",
2040221167Sgnn	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_cplh, "%u");
2041221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane12",
2042221167Sgnn	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_nph, "%u");
2043221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane12",
2044221167Sgnn	    mrpcim_info.pci_depl_h_vplane[12].pci_depl_ph, "%u");
2045221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane13",
2046221167Sgnn	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_cplh, "%u");
2047221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane13",
2048221167Sgnn	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_nph, "%u");
2049221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane13",
2050221167Sgnn	    mrpcim_info.pci_depl_h_vplane[13].pci_depl_ph, "%u");
2051221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane14",
2052221167Sgnn	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_cplh, "%u");
2053221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane14",
2054221167Sgnn	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_nph, "%u");
2055221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane14",
2056221167Sgnn	    mrpcim_info.pci_depl_h_vplane[14].pci_depl_ph, "%u");
2057221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane15",
2058221167Sgnn	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_cplh, "%u");
2059221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane15",
2060221167Sgnn	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_nph, "%u");
2061221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane15",
2062221167Sgnn	    mrpcim_info.pci_depl_h_vplane[15].pci_depl_ph, "%u");
2063221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cplh_vplane16",
2064221167Sgnn	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_cplh, "%u");
2065221167Sgnn	__HAL_AUX_ENTRY("pci_depl_nph_vplane16",
2066221167Sgnn	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_nph, "%u");
2067221167Sgnn	__HAL_AUX_ENTRY("pci_depl_ph_vplane16",
2068221167Sgnn	    mrpcim_info.pci_depl_h_vplane[16].pci_depl_ph, "%u");
2069221167Sgnn
2070221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane0",
2071221167Sgnn	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_cpld, "%u");
2072221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane0",
2073221167Sgnn	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_npd, "%u");
2074221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane0",
2075221167Sgnn	    mrpcim_info.pci_depl_d_vplane[0].pci_depl_pd, "%u");
2076221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane1",
2077221167Sgnn	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_cpld, "%u");
2078221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane1",
2079221167Sgnn	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_npd, "%u");
2080221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane1",
2081221167Sgnn	    mrpcim_info.pci_depl_d_vplane[1].pci_depl_pd, "%u");
2082221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane2",
2083221167Sgnn	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_cpld, "%u");
2084221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane2",
2085221167Sgnn	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_npd, "%u");
2086221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane2",
2087221167Sgnn	    mrpcim_info.pci_depl_d_vplane[2].pci_depl_pd, "%u");
2088221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane3",
2089221167Sgnn	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_cpld, "%u");
2090221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane3",
2091221167Sgnn	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_npd, "%u");
2092221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane3",
2093221167Sgnn	    mrpcim_info.pci_depl_d_vplane[3].pci_depl_pd, "%u");
2094221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane4",
2095221167Sgnn	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_cpld, "%u");
2096221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane4",
2097221167Sgnn	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_npd, "%u");
2098221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane4",
2099221167Sgnn	    mrpcim_info.pci_depl_d_vplane[4].pci_depl_pd, "%u");
2100221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane5",
2101221167Sgnn	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_cpld, "%u");
2102221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane5",
2103221167Sgnn	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_npd, "%u");
2104221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane5",
2105221167Sgnn	    mrpcim_info.pci_depl_d_vplane[5].pci_depl_pd, "%u");
2106221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane6",
2107221167Sgnn	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_cpld, "%u");
2108221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane6",
2109221167Sgnn	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_npd, "%u");
2110221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane6",
2111221167Sgnn	    mrpcim_info.pci_depl_d_vplane[6].pci_depl_pd, "%u");
2112221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane7",
2113221167Sgnn	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_cpld, "%u");
2114221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane7",
2115221167Sgnn	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_npd, "%u");
2116221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane7",
2117221167Sgnn	    mrpcim_info.pci_depl_d_vplane[7].pci_depl_pd, "%u");
2118221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane8",
2119221167Sgnn	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_cpld, "%u");
2120221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane8",
2121221167Sgnn	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_npd, "%u");
2122221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane8",
2123221167Sgnn	    mrpcim_info.pci_depl_d_vplane[8].pci_depl_pd, "%u");
2124221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane9",
2125221167Sgnn	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_cpld, "%u");
2126221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane9",
2127221167Sgnn	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_npd, "%u");
2128221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane9",
2129221167Sgnn	    mrpcim_info.pci_depl_d_vplane[9].pci_depl_pd, "%u");
2130221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane10",
2131221167Sgnn	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_cpld, "%u");
2132221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane10",
2133221167Sgnn	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_npd, "%u");
2134221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane10",
2135221167Sgnn	    mrpcim_info.pci_depl_d_vplane[10].pci_depl_pd, "%u");
2136221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane11",
2137221167Sgnn	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_cpld, "%u");
2138221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane11",
2139221167Sgnn	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_npd, "%u");
2140221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane11",
2141221167Sgnn	    mrpcim_info.pci_depl_d_vplane[11].pci_depl_pd, "%u");
2142221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane12",
2143221167Sgnn	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_cpld, "%u");
2144221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane12",
2145221167Sgnn	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_npd, "%u");
2146221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane12",
2147221167Sgnn	    mrpcim_info.pci_depl_d_vplane[12].pci_depl_pd, "%u");
2148221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane13",
2149221167Sgnn	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_cpld, "%u");
2150221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane13",
2151221167Sgnn	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_npd, "%u");
2152221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane13",
2153221167Sgnn	    mrpcim_info.pci_depl_d_vplane[13].pci_depl_pd, "%u");
2154221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane14",
2155221167Sgnn	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_cpld, "%u");
2156221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane14",
2157221167Sgnn	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_npd, "%u");
2158221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane14",
2159221167Sgnn	    mrpcim_info.pci_depl_d_vplane[14].pci_depl_pd, "%u");
2160221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane15",
2161221167Sgnn	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_cpld, "%u");
2162221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane15",
2163221167Sgnn	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_npd, "%u");
2164221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane15",
2165221167Sgnn	    mrpcim_info.pci_depl_d_vplane[15].pci_depl_pd, "%u");
2166221167Sgnn	__HAL_AUX_ENTRY("pci_depl_cpld_vplane16",
2167221167Sgnn	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_cpld, "%u");
2168221167Sgnn	__HAL_AUX_ENTRY("pci_depl_npd_vplane16",
2169221167Sgnn	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_npd, "%u");
2170221167Sgnn	__HAL_AUX_ENTRY("pci_depl_pd_vplane16",
2171221167Sgnn	    mrpcim_info.pci_depl_d_vplane[16].pci_depl_pd, "%u");
2172221167Sgnn
2173221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_frms_PORT0",
2174221167Sgnn	    mrpcim_info.xgmac_port[0].tx_ttl_frms, "%llu");
2175221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_octets_PORT0",
2176221167Sgnn	    mrpcim_info.xgmac_port[0].tx_ttl_octets, "%llu");
2177221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets_PORT0",
2178221167Sgnn	    mrpcim_info.xgmac_port[0].tx_data_octets, "%llu");
2179221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms_PORT0",
2180221167Sgnn	    mrpcim_info.xgmac_port[0].tx_mcast_frms, "%llu");
2181221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms_PORT0",
2182221167Sgnn	    mrpcim_info.xgmac_port[0].tx_bcast_frms, "%llu");
2183221167Sgnn	__HAL_AUX_ENTRY("tx_ucast_frms_PORT0",
2184221167Sgnn	    mrpcim_info.xgmac_port[0].tx_ucast_frms, "%llu");
2185221167Sgnn	__HAL_AUX_ENTRY("tx_tagged_frms_PORT0",
2186221167Sgnn	    mrpcim_info.xgmac_port[0].tx_tagged_frms, "%llu");
2187221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_PORT0",
2188221167Sgnn	    mrpcim_info.xgmac_port[0].tx_vld_ip, "%llu");
2189221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT0",
2190221167Sgnn	    mrpcim_info.xgmac_port[0].tx_vld_ip_octets, "%llu");
2191221167Sgnn	__HAL_AUX_ENTRY("tx_icmp_PORT0",
2192221167Sgnn	    mrpcim_info.xgmac_port[0].tx_icmp, "%llu");
2193221167Sgnn	__HAL_AUX_ENTRY("tx_tcp_PORT0",
2194221167Sgnn	    mrpcim_info.xgmac_port[0].tx_tcp, "%llu");
2195221167Sgnn	__HAL_AUX_ENTRY("tx_rst_tcp_PORT0",
2196221167Sgnn	    mrpcim_info.xgmac_port[0].tx_rst_tcp, "%llu");
2197221167Sgnn	__HAL_AUX_ENTRY("tx_udp_PORT0",
2198221167Sgnn	    mrpcim_info.xgmac_port[0].tx_udp, "%llu");
2199221167Sgnn	__HAL_AUX_ENTRY("tx_parse_error_PORT0",
2200221167Sgnn	    mrpcim_info.xgmac_port[0].tx_parse_error, "%u");
2201221167Sgnn	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT0",
2202221167Sgnn	    mrpcim_info.xgmac_port[0].tx_unknown_protocol, "%u");
2203221167Sgnn	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT0",
2204221167Sgnn	    mrpcim_info.xgmac_port[0].tx_pause_ctrl_frms, "%llu");
2205221167Sgnn	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT0",
2206221167Sgnn	    mrpcim_info.xgmac_port[0].tx_marker_pdu_frms, "%u");
2207221167Sgnn	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT0",
2208221167Sgnn	    mrpcim_info.xgmac_port[0].tx_lacpdu_frms, "%u");
2209221167Sgnn	__HAL_AUX_ENTRY("tx_drop_ip_PORT0",
2210221167Sgnn	    mrpcim_info.xgmac_port[0].tx_drop_ip, "%u");
2211221167Sgnn	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT0",
2212221167Sgnn	    mrpcim_info.xgmac_port[0].tx_marker_resp_pdu_frms, "%u");
2213221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT0",
2214221167Sgnn	    mrpcim_info.xgmac_port[0].tx_xgmii_char2_match, "%u");
2215221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT0",
2216221167Sgnn	    mrpcim_info.xgmac_port[0].tx_xgmii_char1_match, "%u");
2217221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT0",
2218221167Sgnn	    mrpcim_info.xgmac_port[0].tx_xgmii_column2_match, "%u");
2219221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT0",
2220221167Sgnn	    mrpcim_info.xgmac_port[0].tx_xgmii_column1_match, "%u");
2221221167Sgnn	__HAL_AUX_ENTRY("tx_any_err_frms_PORT0",
2222221167Sgnn	    mrpcim_info.xgmac_port[0].tx_any_err_frms, "%u");
2223221167Sgnn	__HAL_AUX_ENTRY("tx_drop_frms_PORT0",
2224221167Sgnn	    mrpcim_info.xgmac_port[0].tx_drop_frms, "%u");
2225221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_frms_PORT0",
2226221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_frms, "%llu");
2227221167Sgnn	__HAL_AUX_ENTRY("rx_vld_frms_PORT0",
2228221167Sgnn	    mrpcim_info.xgmac_port[0].rx_vld_frms, "%llu");
2229221167Sgnn	__HAL_AUX_ENTRY("rx_offload_frms_PORT0",
2230221167Sgnn	    mrpcim_info.xgmac_port[0].rx_offload_frms, "%llu");
2231221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_octets_PORT0",
2232221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_octets, "%llu");
2233221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets_PORT0",
2234221167Sgnn	    mrpcim_info.xgmac_port[0].rx_data_octets, "%llu");
2235221167Sgnn	__HAL_AUX_ENTRY("rx_offload_octets_PORT0",
2236221167Sgnn	    mrpcim_info.xgmac_port[0].rx_offload_octets, "%llu");
2237221167Sgnn	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT0",
2238221167Sgnn	    mrpcim_info.xgmac_port[0].rx_vld_mcast_frms, "%llu");
2239221167Sgnn	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT0",
2240221167Sgnn	    mrpcim_info.xgmac_port[0].rx_vld_bcast_frms, "%llu");
2241221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT0",
2242221167Sgnn	    mrpcim_info.xgmac_port[0].rx_accepted_ucast_frms, "%llu");
2243221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT0",
2244221167Sgnn	    mrpcim_info.xgmac_port[0].rx_accepted_nucast_frms, "%llu");
2245221167Sgnn	__HAL_AUX_ENTRY("rx_tagged_frms_PORT0",
2246221167Sgnn	    mrpcim_info.xgmac_port[0].rx_tagged_frms, "%llu");
2247221167Sgnn	__HAL_AUX_ENTRY("rx_long_frms_PORT0",
2248221167Sgnn	    mrpcim_info.xgmac_port[0].rx_long_frms, "%llu");
2249221167Sgnn	__HAL_AUX_ENTRY("rx_usized_frms_PORT0",
2250221167Sgnn	    mrpcim_info.xgmac_port[0].rx_usized_frms, "%llu");
2251221167Sgnn	__HAL_AUX_ENTRY("rx_osized_frms_PORT0",
2252221167Sgnn	    mrpcim_info.xgmac_port[0].rx_osized_frms, "%llu");
2253221167Sgnn	__HAL_AUX_ENTRY("rx_frag_frms_PORT0",
2254221167Sgnn	    mrpcim_info.xgmac_port[0].rx_frag_frms, "%llu");
2255221167Sgnn	__HAL_AUX_ENTRY("rx_jabber_frms_PORT0",
2256221167Sgnn	    mrpcim_info.xgmac_port[0].rx_jabber_frms, "%llu");
2257221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT0",
2258221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_64_frms, "%llu");
2259221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT0",
2260221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_65_127_frms, "%llu");
2261221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT0",
2262221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_128_255_frms, "%llu");
2263221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT0",
2264221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_256_511_frms, "%llu");
2265221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT0",
2266221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_512_1023_frms, "%llu");
2267221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT0",
2268221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_1024_1518_frms, "%llu");
2269221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT0",
2270221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_1519_4095_frms, "%llu");
2271221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT0",
2272221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_4096_8191_frms, "%llu");
2273221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT0",
2274221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_8192_max_frms, "%llu");
2275221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT0",
2276221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ttl_gt_max_frms, "%llu");
2277221167Sgnn	__HAL_AUX_ENTRY("rx_ip_PORT0",
2278221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ip, "%llu");
2279221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ip_PORT0",
2280221167Sgnn	    mrpcim_info.xgmac_port[0].rx_accepted_ip, "%llu");
2281221167Sgnn	__HAL_AUX_ENTRY("rx_ip_octets_PORT0",
2282221167Sgnn	    mrpcim_info.xgmac_port[0].rx_ip_octets, "%llu");
2283221167Sgnn	__HAL_AUX_ENTRY("rx_err_ip_PORT0",
2284221167Sgnn	    mrpcim_info.xgmac_port[0].rx_err_ip, "%llu");
2285221167Sgnn	__HAL_AUX_ENTRY("rx_icmp_PORT0",
2286221167Sgnn	    mrpcim_info.xgmac_port[0].rx_icmp, "%llu");
2287221167Sgnn	__HAL_AUX_ENTRY("rx_tcp_PORT0",
2288221167Sgnn	    mrpcim_info.xgmac_port[0].rx_tcp, "%llu");
2289221167Sgnn	__HAL_AUX_ENTRY("rx_udp_PORT0",
2290221167Sgnn	    mrpcim_info.xgmac_port[0].rx_udp, "%llu");
2291221167Sgnn	__HAL_AUX_ENTRY("rx_err_tcp_PORT0",
2292221167Sgnn	    mrpcim_info.xgmac_port[0].rx_err_tcp, "%llu");
2293221167Sgnn	__HAL_AUX_ENTRY("rx_pause_cnt_PORT0",
2294221167Sgnn	    mrpcim_info.xgmac_port[0].rx_pause_count, "%llu");
2295221167Sgnn	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT0",
2296221167Sgnn	    mrpcim_info.xgmac_port[0].rx_pause_ctrl_frms, "%llu");
2297221167Sgnn	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT0",
2298221167Sgnn	    mrpcim_info.xgmac_port[0].rx_unsup_ctrl_frms, "%llu");
2299221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT0",
2300221167Sgnn	    mrpcim_info.xgmac_port[0].rx_fcs_err_frms, "%llu");
2301221167Sgnn	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT0",
2302221167Sgnn	    mrpcim_info.xgmac_port[0].rx_in_rng_len_err_frms, "%llu");
2303221167Sgnn	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT0",
2304221167Sgnn	    mrpcim_info.xgmac_port[0].rx_out_rng_len_err_frms, "%llu");
2305221167Sgnn	__HAL_AUX_ENTRY("rx_drop_frms_PORT0",
2306221167Sgnn	    mrpcim_info.xgmac_port[0].rx_drop_frms, "%llu");
2307221167Sgnn	__HAL_AUX_ENTRY("rx_discarded_frms_PORT0",
2308221167Sgnn	    mrpcim_info.xgmac_port[0].rx_discarded_frms, "%llu");
2309221167Sgnn	__HAL_AUX_ENTRY("rx_drop_ip_PORT0",
2310221167Sgnn	    mrpcim_info.xgmac_port[0].rx_drop_ip, "%llu");
2311221167Sgnn	__HAL_AUX_ENTRY("rx_drp_udp_PORT0",
2312221167Sgnn	    mrpcim_info.xgmac_port[0].rx_drop_udp, "%llu");
2313221167Sgnn	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT0",
2314221167Sgnn	    mrpcim_info.xgmac_port[0].rx_marker_pdu_frms, "%u");
2315221167Sgnn	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT0",
2316221167Sgnn	    mrpcim_info.xgmac_port[0].rx_lacpdu_frms, "%u");
2317221167Sgnn	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT0",
2318221167Sgnn	    mrpcim_info.xgmac_port[0].rx_unknown_pdu_frms, "%u");
2319221167Sgnn	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT0",
2320221167Sgnn	    mrpcim_info.xgmac_port[0].rx_marker_resp_pdu_frms, "%u");
2321221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_discard_PORT0",
2322221167Sgnn	    mrpcim_info.xgmac_port[0].rx_fcs_discard, "%u");
2323221167Sgnn	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT0",
2324221167Sgnn	    mrpcim_info.xgmac_port[0].rx_illegal_pdu_frms, "%u");
2325221167Sgnn	__HAL_AUX_ENTRY("rx_switch_discard_PORT0",
2326221167Sgnn	    mrpcim_info.xgmac_port[0].rx_switch_discard, "%u");
2327221167Sgnn	__HAL_AUX_ENTRY("rx_len_discard_PORT0",
2328221167Sgnn	    mrpcim_info.xgmac_port[0].rx_len_discard, "%u");
2329221167Sgnn	__HAL_AUX_ENTRY("rx_rpa_discard_PORT0",
2330221167Sgnn	    mrpcim_info.xgmac_port[0].rx_rpa_discard, "%u");
2331221167Sgnn	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT0",
2332221167Sgnn	    mrpcim_info.xgmac_port[0].rx_l2_mgmt_discard, "%u");
2333221167Sgnn	__HAL_AUX_ENTRY("rx_rts_discard_PORT0",
2334221167Sgnn	    mrpcim_info.xgmac_port[0].rx_rts_discard, "%u");
2335221167Sgnn	__HAL_AUX_ENTRY("rx_trash_discard_PORT0",
2336221167Sgnn	    mrpcim_info.xgmac_port[0].rx_trash_discard, "%u");
2337221167Sgnn	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT0",
2338221167Sgnn	    mrpcim_info.xgmac_port[0].rx_buff_full_discard, "%u");
2339221167Sgnn	__HAL_AUX_ENTRY("rx_red_discard_PORT0",
2340221167Sgnn	    mrpcim_info.xgmac_port[0].rx_red_discard, "%u");
2341221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT0",
2342221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_ctrl_err_cnt, "%u");
2343221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT0",
2344221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_data_err_cnt, "%u");
2345221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT0",
2346221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_char1_match, "%u");
2347221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT0",
2348221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_err_sym, "%u");
2349221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT0",
2350221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_column1_match, "%u");
2351221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT0",
2352221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_char2_match, "%u");
2353221167Sgnn	__HAL_AUX_ENTRY("rx_local_fault_PORT0",
2354221167Sgnn	    mrpcim_info.xgmac_port[0].rx_local_fault, "%u");
2355221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT0",
2356221167Sgnn	    mrpcim_info.xgmac_port[0].rx_xgmii_column2_match, "%u");
2357221167Sgnn	__HAL_AUX_ENTRY("rx_jettison_PORT0",
2358221167Sgnn	    mrpcim_info.xgmac_port[0].rx_jettison, "%u");
2359221167Sgnn	__HAL_AUX_ENTRY("rx_remote_fault_PORT0",
2360221167Sgnn	    mrpcim_info.xgmac_port[0].rx_remote_fault, "%u");
2361221167Sgnn
2362221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_frms_PORT1",
2363221167Sgnn	    mrpcim_info.xgmac_port[1].tx_ttl_frms, "%llu");
2364221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_octets_PORT1",
2365221167Sgnn	    mrpcim_info.xgmac_port[1].tx_ttl_octets, "%llu");
2366221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets_PORT1",
2367221167Sgnn	    mrpcim_info.xgmac_port[1].tx_data_octets, "%llu");
2368221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms_PORT1",
2369221167Sgnn	    mrpcim_info.xgmac_port[1].tx_mcast_frms, "%llu");
2370221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms_PORT1",
2371221167Sgnn	    mrpcim_info.xgmac_port[1].tx_bcast_frms, "%llu");
2372221167Sgnn	__HAL_AUX_ENTRY("tx_ucast_frms_PORT1",
2373221167Sgnn	    mrpcim_info.xgmac_port[1].tx_ucast_frms, "%llu");
2374221167Sgnn	__HAL_AUX_ENTRY("tx_tagged_frms_PORT1",
2375221167Sgnn	    mrpcim_info.xgmac_port[1].tx_tagged_frms, "%llu");
2376221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_PORT1",
2377221167Sgnn	    mrpcim_info.xgmac_port[1].tx_vld_ip, "%llu");
2378221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT1",
2379221167Sgnn	    mrpcim_info.xgmac_port[1].tx_vld_ip_octets, "%llu");
2380221167Sgnn	__HAL_AUX_ENTRY("tx_icmp_PORT1",
2381221167Sgnn	    mrpcim_info.xgmac_port[1].tx_icmp, "%llu");
2382221167Sgnn	__HAL_AUX_ENTRY("tx_tcp_PORT1",
2383221167Sgnn	    mrpcim_info.xgmac_port[1].tx_tcp, "%llu");
2384221167Sgnn	__HAL_AUX_ENTRY("tx_rst_tcp_PORT1",
2385221167Sgnn	    mrpcim_info.xgmac_port[1].tx_rst_tcp, "%llu");
2386221167Sgnn	__HAL_AUX_ENTRY("tx_udp_PORT1",
2387221167Sgnn	    mrpcim_info.xgmac_port[1].tx_udp, "%llu");
2388221167Sgnn	__HAL_AUX_ENTRY("tx_parse_error_PORT1",
2389221167Sgnn	    mrpcim_info.xgmac_port[1].tx_parse_error, "%u");
2390221167Sgnn	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT1",
2391221167Sgnn	    mrpcim_info.xgmac_port[1].tx_unknown_protocol, "%u");
2392221167Sgnn	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT1",
2393221167Sgnn	    mrpcim_info.xgmac_port[1].tx_pause_ctrl_frms, "%llu");
2394221167Sgnn	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT1",
2395221167Sgnn	    mrpcim_info.xgmac_port[1].tx_marker_pdu_frms, "%u");
2396221167Sgnn	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT1",
2397221167Sgnn	    mrpcim_info.xgmac_port[1].tx_lacpdu_frms, "%u");
2398221167Sgnn	__HAL_AUX_ENTRY("tx_drop_ip_PORT1",
2399221167Sgnn	    mrpcim_info.xgmac_port[1].tx_drop_ip, "%u");
2400221167Sgnn	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT1",
2401221167Sgnn	    mrpcim_info.xgmac_port[1].tx_marker_resp_pdu_frms, "%u");
2402221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT1",
2403221167Sgnn	    mrpcim_info.xgmac_port[1].tx_xgmii_char2_match, "%u");
2404221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT1",
2405221167Sgnn	    mrpcim_info.xgmac_port[1].tx_xgmii_char1_match, "%u");
2406221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT1",
2407221167Sgnn	    mrpcim_info.xgmac_port[1].tx_xgmii_column2_match, "%u");
2408221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT1",
2409221167Sgnn	    mrpcim_info.xgmac_port[1].tx_xgmii_column1_match, "%u");
2410221167Sgnn	__HAL_AUX_ENTRY("tx_any_err_frms_PORT1",
2411221167Sgnn	    mrpcim_info.xgmac_port[1].tx_any_err_frms, "%u");
2412221167Sgnn	__HAL_AUX_ENTRY("tx_drop_frms_PORT1",
2413221167Sgnn	    mrpcim_info.xgmac_port[1].tx_drop_frms, "%u");
2414221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_frms_PORT1",
2415221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_frms, "%llu");
2416221167Sgnn	__HAL_AUX_ENTRY("rx_vld_frms_PORT1",
2417221167Sgnn	    mrpcim_info.xgmac_port[1].rx_vld_frms, "%llu");
2418221167Sgnn	__HAL_AUX_ENTRY("rx_offload_frms_PORT1",
2419221167Sgnn	    mrpcim_info.xgmac_port[1].rx_offload_frms, "%llu");
2420221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_octets_PORT1",
2421221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_octets, "%llu");
2422221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets_PORT1",
2423221167Sgnn	    mrpcim_info.xgmac_port[1].rx_data_octets, "%llu");
2424221167Sgnn	__HAL_AUX_ENTRY("rx_offload_octets_PORT1",
2425221167Sgnn	    mrpcim_info.xgmac_port[1].rx_offload_octets, "%llu");
2426221167Sgnn	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT1",
2427221167Sgnn	    mrpcim_info.xgmac_port[1].rx_vld_mcast_frms, "%llu");
2428221167Sgnn	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT1",
2429221167Sgnn	    mrpcim_info.xgmac_port[1].rx_vld_bcast_frms, "%llu");
2430221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT1",
2431221167Sgnn	    mrpcim_info.xgmac_port[1].rx_accepted_ucast_frms, "%llu");
2432221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT1",
2433221167Sgnn	    mrpcim_info.xgmac_port[1].rx_accepted_nucast_frms, "%llu");
2434221167Sgnn	__HAL_AUX_ENTRY("rx_tagged_frms_PORT1",
2435221167Sgnn	    mrpcim_info.xgmac_port[1].rx_tagged_frms, "%llu");
2436221167Sgnn	__HAL_AUX_ENTRY("rx_long_frms_PORT1",
2437221167Sgnn	    mrpcim_info.xgmac_port[1].rx_long_frms, "%llu");
2438221167Sgnn	__HAL_AUX_ENTRY("rx_usized_frms_PORT1",
2439221167Sgnn	    mrpcim_info.xgmac_port[1].rx_usized_frms, "%llu");
2440221167Sgnn	__HAL_AUX_ENTRY("rx_osized_frms_PORT1",
2441221167Sgnn	    mrpcim_info.xgmac_port[1].rx_osized_frms, "%llu");
2442221167Sgnn	__HAL_AUX_ENTRY("rx_frag_frms_PORT1",
2443221167Sgnn	    mrpcim_info.xgmac_port[1].rx_frag_frms, "%llu");
2444221167Sgnn	__HAL_AUX_ENTRY("rx_jabber_frms_PORT1",
2445221167Sgnn	    mrpcim_info.xgmac_port[1].rx_jabber_frms, "%llu");
2446221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT1",
2447221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_64_frms, "%llu");
2448221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT1",
2449221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_65_127_frms, "%llu");
2450221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT1",
2451221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_128_255_frms, "%llu");
2452221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT1",
2453221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_256_511_frms, "%llu");
2454221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT1",
2455221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_512_1023_frms, "%llu");
2456221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT1",
2457221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_1024_1518_frms, "%llu");
2458221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT1",
2459221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_1519_4095_frms, "%llu");
2460221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT1",
2461221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_4096_8191_frms, "%llu");
2462221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT1",
2463221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_8192_max_frms, "%llu");
2464221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT1",
2465221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ttl_gt_max_frms, "%llu");
2466221167Sgnn	__HAL_AUX_ENTRY("rx_ip_PORT1",
2467221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ip, "%llu");
2468221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ip_PORT1",
2469221167Sgnn	    mrpcim_info.xgmac_port[1].rx_accepted_ip, "%llu");
2470221167Sgnn	__HAL_AUX_ENTRY("rx_ip_octets_PORT1",
2471221167Sgnn	    mrpcim_info.xgmac_port[1].rx_ip_octets, "%llu");
2472221167Sgnn	__HAL_AUX_ENTRY("rx_err_ip_PORT1",
2473221167Sgnn	    mrpcim_info.xgmac_port[1].rx_err_ip, "%llu");
2474221167Sgnn	__HAL_AUX_ENTRY("rx_icmp_PORT1",
2475221167Sgnn	    mrpcim_info.xgmac_port[1].rx_icmp, "%llu");
2476221167Sgnn	__HAL_AUX_ENTRY("rx_tcp_PORT1",
2477221167Sgnn	    mrpcim_info.xgmac_port[1].rx_tcp, "%llu");
2478221167Sgnn	__HAL_AUX_ENTRY("rx_udp_PORT1",
2479221167Sgnn	    mrpcim_info.xgmac_port[1].rx_udp, "%llu");
2480221167Sgnn	__HAL_AUX_ENTRY("rx_err_tcp_PORT1",
2481221167Sgnn	    mrpcim_info.xgmac_port[1].rx_err_tcp, "%llu");
2482221167Sgnn	__HAL_AUX_ENTRY("rx_pause_count_PORT1",
2483221167Sgnn	    mrpcim_info.xgmac_port[1].rx_pause_count, "%llu");
2484221167Sgnn	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT1",
2485221167Sgnn	    mrpcim_info.xgmac_port[1].rx_pause_ctrl_frms, "%llu");
2486221167Sgnn	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT1",
2487221167Sgnn	    mrpcim_info.xgmac_port[1].rx_unsup_ctrl_frms, "%llu");
2488221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT1",
2489221167Sgnn	    mrpcim_info.xgmac_port[1].rx_fcs_err_frms, "%llu");
2490221167Sgnn	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT1",
2491221167Sgnn	    mrpcim_info.xgmac_port[1].rx_in_rng_len_err_frms, "%llu");
2492221167Sgnn	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT1",
2493221167Sgnn	    mrpcim_info.xgmac_port[1].rx_out_rng_len_err_frms, "%llu");
2494221167Sgnn	__HAL_AUX_ENTRY("rx_drop_frms_PORT1",
2495221167Sgnn	    mrpcim_info.xgmac_port[1].rx_drop_frms, "%llu");
2496221167Sgnn	__HAL_AUX_ENTRY("rx_discarded_frms_PORT1",
2497221167Sgnn	    mrpcim_info.xgmac_port[1].rx_discarded_frms, "%llu");
2498221167Sgnn	__HAL_AUX_ENTRY("rx_drop_ip_PORT1",
2499221167Sgnn	    mrpcim_info.xgmac_port[1].rx_drop_ip, "%llu");
2500221167Sgnn	__HAL_AUX_ENTRY("rx_drop_udp_PORT1",
2501221167Sgnn	    mrpcim_info.xgmac_port[1].rx_drop_udp, "%llu");
2502221167Sgnn	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT1",
2503221167Sgnn	    mrpcim_info.xgmac_port[1].rx_marker_pdu_frms, "%u");
2504221167Sgnn	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT1",
2505221167Sgnn	    mrpcim_info.xgmac_port[1].rx_lacpdu_frms, "%u");
2506221167Sgnn	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT1",
2507221167Sgnn	    mrpcim_info.xgmac_port[1].rx_unknown_pdu_frms, "%u");
2508221167Sgnn	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT1",
2509221167Sgnn	    mrpcim_info.xgmac_port[1].rx_marker_resp_pdu_frms, "%u");
2510221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_discard_PORT1",
2511221167Sgnn	    mrpcim_info.xgmac_port[1].rx_fcs_discard, "%u");
2512221167Sgnn	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT1",
2513221167Sgnn	    mrpcim_info.xgmac_port[1].rx_illegal_pdu_frms, "%u");
2514221167Sgnn	__HAL_AUX_ENTRY("rx_switch_discard_PORT1",
2515221167Sgnn	    mrpcim_info.xgmac_port[1].rx_switch_discard, "%u");
2516221167Sgnn	__HAL_AUX_ENTRY("rx_len_discard_PORT1",
2517221167Sgnn	    mrpcim_info.xgmac_port[1].rx_len_discard, "%u");
2518221167Sgnn	__HAL_AUX_ENTRY("rx_rpa_discard_PORT1",
2519221167Sgnn	    mrpcim_info.xgmac_port[1].rx_rpa_discard, "%u");
2520221167Sgnn	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT1",
2521221167Sgnn	    mrpcim_info.xgmac_port[1].rx_l2_mgmt_discard, "%u");
2522221167Sgnn	__HAL_AUX_ENTRY("rx_rts_discard_PORT1",
2523221167Sgnn	    mrpcim_info.xgmac_port[1].rx_rts_discard, "%u");
2524221167Sgnn	__HAL_AUX_ENTRY("rx_trash_discard_PORT1",
2525221167Sgnn	    mrpcim_info.xgmac_port[1].rx_trash_discard, "%u");
2526221167Sgnn	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT1",
2527221167Sgnn	    mrpcim_info.xgmac_port[1].rx_buff_full_discard, "%u");
2528221167Sgnn	__HAL_AUX_ENTRY("rx_red_discard_PORT1",
2529221167Sgnn	    mrpcim_info.xgmac_port[1].rx_red_discard, "%u");
2530221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT1",
2531221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_ctrl_err_cnt, "%u");
2532221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT1",
2533221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_data_err_cnt, "%u");
2534221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT1",
2535221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_char1_match, "%u");
2536221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT1",
2537221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_err_sym, "%u");
2538221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT1",
2539221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_column1_match, "%u");
2540221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT1",
2541221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_char2_match, "%u");
2542221167Sgnn	__HAL_AUX_ENTRY("rx_local_fault_PORT1",
2543221167Sgnn	    mrpcim_info.xgmac_port[1].rx_local_fault, "%u");
2544221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT1",
2545221167Sgnn	    mrpcim_info.xgmac_port[1].rx_xgmii_column2_match, "%u");
2546221167Sgnn	__HAL_AUX_ENTRY("rx_jettison_PORT1",
2547221167Sgnn	    mrpcim_info.xgmac_port[1].rx_jettison, "%u");
2548221167Sgnn	__HAL_AUX_ENTRY("rx_remote_fault_PORT1",
2549221167Sgnn	    mrpcim_info.xgmac_port[1].rx_remote_fault, "%u");
2550221167Sgnn
2551221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_frms_PORT2",
2552221167Sgnn	    mrpcim_info.xgmac_port[2].tx_ttl_frms, "%llu");
2553221167Sgnn	__HAL_AUX_ENTRY("tx_ttl_octets_PORT2",
2554221167Sgnn	    mrpcim_info.xgmac_port[2].tx_ttl_octets, "%llu");
2555221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets_PORT2",
2556221167Sgnn	    mrpcim_info.xgmac_port[2].tx_data_octets, "%llu");
2557221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms_PORT2",
2558221167Sgnn	    mrpcim_info.xgmac_port[2].tx_mcast_frms, "%llu");
2559221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms_PORT2",
2560221167Sgnn	    mrpcim_info.xgmac_port[2].tx_bcast_frms, "%llu");
2561221167Sgnn	__HAL_AUX_ENTRY("tx_ucast_frms_PORT2",
2562221167Sgnn	    mrpcim_info.xgmac_port[2].tx_ucast_frms, "%llu");
2563221167Sgnn	__HAL_AUX_ENTRY("tx_tagged_frms_PORT2",
2564221167Sgnn	    mrpcim_info.xgmac_port[2].tx_tagged_frms, "%llu");
2565221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_PORT2",
2566221167Sgnn	    mrpcim_info.xgmac_port[2].tx_vld_ip, "%llu");
2567221167Sgnn	__HAL_AUX_ENTRY("tx_vld_ip_octets_PORT2",
2568221167Sgnn	    mrpcim_info.xgmac_port[2].tx_vld_ip_octets, "%llu");
2569221167Sgnn	__HAL_AUX_ENTRY("tx_icmp_PORT2",
2570221167Sgnn	    mrpcim_info.xgmac_port[2].tx_icmp, "%llu");
2571221167Sgnn	__HAL_AUX_ENTRY("tx_tcp_PORT2",
2572221167Sgnn	    mrpcim_info.xgmac_port[2].tx_tcp, "%llu");
2573221167Sgnn	__HAL_AUX_ENTRY("tx_rst_tcp_PORT2",
2574221167Sgnn	    mrpcim_info.xgmac_port[2].tx_rst_tcp, "%llu");
2575221167Sgnn	__HAL_AUX_ENTRY("tx_udp_PORT2",
2576221167Sgnn	    mrpcim_info.xgmac_port[2].tx_udp, "%llu");
2577221167Sgnn	__HAL_AUX_ENTRY("tx_parse_error_PORT2",
2578221167Sgnn	    mrpcim_info.xgmac_port[2].tx_parse_error, "%u");
2579221167Sgnn	__HAL_AUX_ENTRY("tx_unknown_protocol_PORT2",
2580221167Sgnn	    mrpcim_info.xgmac_port[2].tx_unknown_protocol, "%u");
2581221167Sgnn	__HAL_AUX_ENTRY("tx_pause_ctrl_frms_PORT2",
2582221167Sgnn	    mrpcim_info.xgmac_port[2].tx_pause_ctrl_frms, "%llu");
2583221167Sgnn	__HAL_AUX_ENTRY("tx_marker_pdu_frms_PORT2",
2584221167Sgnn	    mrpcim_info.xgmac_port[2].tx_marker_pdu_frms, "%u");
2585221167Sgnn	__HAL_AUX_ENTRY("tx_lacpdu_frms_PORT2",
2586221167Sgnn	    mrpcim_info.xgmac_port[2].tx_lacpdu_frms, "%u");
2587221167Sgnn	__HAL_AUX_ENTRY("tx_drop_ip_PORT2",
2588221167Sgnn	    mrpcim_info.xgmac_port[2].tx_drop_ip, "%u");
2589221167Sgnn	__HAL_AUX_ENTRY("tx_marker_resp_pdu_frms_PORT2",
2590221167Sgnn	    mrpcim_info.xgmac_port[2].tx_marker_resp_pdu_frms, "%u");
2591221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char2_match_PORT2",
2592221167Sgnn	    mrpcim_info.xgmac_port[2].tx_xgmii_char2_match, "%u");
2593221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_char1_match_PORT2",
2594221167Sgnn	    mrpcim_info.xgmac_port[2].tx_xgmii_char1_match, "%u");
2595221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column2_match_PORT2",
2596221167Sgnn	    mrpcim_info.xgmac_port[2].tx_xgmii_column2_match, "%u");
2597221167Sgnn	__HAL_AUX_ENTRY("tx_xgmii_column1_match_PORT2",
2598221167Sgnn	    mrpcim_info.xgmac_port[2].tx_xgmii_column1_match, "%u");
2599221167Sgnn	__HAL_AUX_ENTRY("tx_any_err_frms_PORT2",
2600221167Sgnn	    mrpcim_info.xgmac_port[2].tx_any_err_frms, "%u");
2601221167Sgnn	__HAL_AUX_ENTRY("tx_drop_frms_PORT2",
2602221167Sgnn	    mrpcim_info.xgmac_port[2].tx_drop_frms, "%u");
2603221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_frms_PORT2",
2604221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_frms, "%llu");
2605221167Sgnn	__HAL_AUX_ENTRY("rx_vld_frms_PORT2",
2606221167Sgnn	    mrpcim_info.xgmac_port[2].rx_vld_frms, "%llu");
2607221167Sgnn	__HAL_AUX_ENTRY("rx_offload_frms_PORT2",
2608221167Sgnn	    mrpcim_info.xgmac_port[2].rx_offload_frms, "%llu");
2609221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_octets_PORT2",
2610221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_octets, "%llu");
2611221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets_PORT2",
2612221167Sgnn	    mrpcim_info.xgmac_port[2].rx_data_octets, "%llu");
2613221167Sgnn	__HAL_AUX_ENTRY("rx_offload_octets_PORT2",
2614221167Sgnn	    mrpcim_info.xgmac_port[2].rx_offload_octets, "%llu");
2615221167Sgnn	__HAL_AUX_ENTRY("rx_vld_mcast_frms_PORT2",
2616221167Sgnn	    mrpcim_info.xgmac_port[2].rx_vld_mcast_frms, "%llu");
2617221167Sgnn	__HAL_AUX_ENTRY("rx_vld_bcast_frms_PORT2",
2618221167Sgnn	    mrpcim_info.xgmac_port[2].rx_vld_bcast_frms, "%llu");
2619221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ucast_frms_PORT2",
2620221167Sgnn	    mrpcim_info.xgmac_port[2].rx_accepted_ucast_frms, "%llu");
2621221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_nucast_frms_PORT2",
2622221167Sgnn	    mrpcim_info.xgmac_port[2].rx_accepted_nucast_frms, "%llu");
2623221167Sgnn	__HAL_AUX_ENTRY("rx_tagged_frms_PORT2",
2624221167Sgnn	    mrpcim_info.xgmac_port[2].rx_tagged_frms, "%llu");
2625221167Sgnn	__HAL_AUX_ENTRY("rx_long_frms_PORT2",
2626221167Sgnn	    mrpcim_info.xgmac_port[2].rx_long_frms, "%llu");
2627221167Sgnn	__HAL_AUX_ENTRY("rx_usized_frms_PORT2",
2628221167Sgnn	    mrpcim_info.xgmac_port[2].rx_usized_frms, "%llu");
2629221167Sgnn	__HAL_AUX_ENTRY("rx_osized_frms_PORT2",
2630221167Sgnn	    mrpcim_info.xgmac_port[2].rx_osized_frms, "%llu");
2631221167Sgnn	__HAL_AUX_ENTRY("rx_frag_frms_PORT2",
2632221167Sgnn	    mrpcim_info.xgmac_port[2].rx_frag_frms, "%llu");
2633221167Sgnn	__HAL_AUX_ENTRY("rx_jabber_frms_PORT2",
2634221167Sgnn	    mrpcim_info.xgmac_port[2].rx_jabber_frms, "%llu");
2635221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_64_frms_PORT2",
2636221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_64_frms, "%llu");
2637221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_65_127_frms_PORT2",
2638221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_65_127_frms, "%llu");
2639221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_128_255_frms_PORT2",
2640221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_128_255_frms, "%llu");
2641221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_256_511_frms_PORT2",
2642221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_256_511_frms, "%llu");
2643221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_512_1023_frms_PORT2",
2644221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_512_1023_frms, "%llu");
2645221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1024_1518_frms_PORT2",
2646221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_1024_1518_frms, "%llu");
2647221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_1519_4095_frms_PORT2",
2648221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_1519_4095_frms, "%llu");
2649221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_4096_8191_frms_PORT2",
2650221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_4096_8191_frms, "%llu");
2651221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_8192_max_frms_PORT2",
2652221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_8192_max_frms, "%llu");
2653221167Sgnn	__HAL_AUX_ENTRY("rx_ttl_gt_max_frms_PORT2",
2654221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ttl_gt_max_frms, "%llu");
2655221167Sgnn	__HAL_AUX_ENTRY("rx_ip_PORT2",
2656221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ip, "%llu");
2657221167Sgnn	__HAL_AUX_ENTRY("rx_accepted_ip_PORT2",
2658221167Sgnn	    mrpcim_info.xgmac_port[2].rx_accepted_ip, "%llu");
2659221167Sgnn	__HAL_AUX_ENTRY("rx_ip_octets_PORT2",
2660221167Sgnn	    mrpcim_info.xgmac_port[2].rx_ip_octets, "%llu");
2661221167Sgnn	__HAL_AUX_ENTRY("rx_err_ip_PORT2",
2662221167Sgnn	    mrpcim_info.xgmac_port[2].rx_err_ip, "%llu");
2663221167Sgnn	__HAL_AUX_ENTRY("rx_icmp_PORT2",
2664221167Sgnn	    mrpcim_info.xgmac_port[2].rx_icmp, "%llu");
2665221167Sgnn	__HAL_AUX_ENTRY("rx_tcp_PORT2",
2666221167Sgnn	    mrpcim_info.xgmac_port[2].rx_tcp, "%llu");
2667221167Sgnn	__HAL_AUX_ENTRY("rx_udp_PORT2",
2668221167Sgnn	    mrpcim_info.xgmac_port[2].rx_udp, "%llu");
2669221167Sgnn	__HAL_AUX_ENTRY("rx_err_tcp_PORT2",
2670221167Sgnn	    mrpcim_info.xgmac_port[2].rx_err_tcp, "%llu");
2671221167Sgnn	__HAL_AUX_ENTRY("rx_pause_count_PORT2",
2672221167Sgnn	    mrpcim_info.xgmac_port[2].rx_pause_count, "%llu");
2673221167Sgnn	__HAL_AUX_ENTRY("rx_pause_ctrl_frms_PORT2",
2674221167Sgnn	    mrpcim_info.xgmac_port[2].rx_pause_ctrl_frms, "%llu");
2675221167Sgnn	__HAL_AUX_ENTRY("rx_unsup_ctrl_frms_PORT2",
2676221167Sgnn	    mrpcim_info.xgmac_port[2].rx_unsup_ctrl_frms, "%llu");
2677221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_err_frms_PORT2",
2678221167Sgnn	    mrpcim_info.xgmac_port[2].rx_fcs_err_frms, "%llu");
2679221167Sgnn	__HAL_AUX_ENTRY("rx_in_rng_len_err_frms_PORT2",
2680221167Sgnn	    mrpcim_info.xgmac_port[2].rx_in_rng_len_err_frms, "%llu");
2681221167Sgnn	__HAL_AUX_ENTRY("rx_out_rng_len_err_frms_PORT2",
2682221167Sgnn	    mrpcim_info.xgmac_port[2].rx_out_rng_len_err_frms, "%llu");
2683221167Sgnn	__HAL_AUX_ENTRY("rx_drop_frms_PORT2",
2684221167Sgnn	    mrpcim_info.xgmac_port[2].rx_drop_frms, "%llu");
2685221167Sgnn	__HAL_AUX_ENTRY("rx_discarded_frms_PORT2",
2686221167Sgnn	    mrpcim_info.xgmac_port[2].rx_discarded_frms, "%llu");
2687221167Sgnn	__HAL_AUX_ENTRY("rx_drop_ip_PORT2",
2688221167Sgnn	    mrpcim_info.xgmac_port[2].rx_drop_ip, "%llu");
2689221167Sgnn	__HAL_AUX_ENTRY("rx_drop_udp_PORT2",
2690221167Sgnn	    mrpcim_info.xgmac_port[2].rx_drop_udp, "%llu");
2691221167Sgnn	__HAL_AUX_ENTRY("rx_marker_pdu_frms_PORT2",
2692221167Sgnn	    mrpcim_info.xgmac_port[2].rx_marker_pdu_frms, "%u");
2693221167Sgnn	__HAL_AUX_ENTRY("rx_lacpdu_frms_PORT2",
2694221167Sgnn	    mrpcim_info.xgmac_port[2].rx_lacpdu_frms, "%u");
2695221167Sgnn	__HAL_AUX_ENTRY("rx_unknown_pdu_frms_PORT2",
2696221167Sgnn	    mrpcim_info.xgmac_port[2].rx_unknown_pdu_frms, "%u");
2697221167Sgnn	__HAL_AUX_ENTRY("rx_marker_resp_pdu_frms_PORT2",
2698221167Sgnn	    mrpcim_info.xgmac_port[2].rx_marker_resp_pdu_frms, "%u");
2699221167Sgnn	__HAL_AUX_ENTRY("rx_fcs_discard_PORT2",
2700221167Sgnn	    mrpcim_info.xgmac_port[2].rx_fcs_discard, "%u");
2701221167Sgnn	__HAL_AUX_ENTRY("rx_illegal_pdu_frms_PORT2",
2702221167Sgnn	    mrpcim_info.xgmac_port[2].rx_illegal_pdu_frms, "%u");
2703221167Sgnn	__HAL_AUX_ENTRY("rx_switch_discard_PORT2",
2704221167Sgnn	    mrpcim_info.xgmac_port[2].rx_switch_discard, "%u");
2705221167Sgnn	__HAL_AUX_ENTRY("rx_len_discard_PORT2",
2706221167Sgnn	    mrpcim_info.xgmac_port[2].rx_len_discard, "%u");
2707221167Sgnn	__HAL_AUX_ENTRY("rx_rpa_discard_PORT2",
2708221167Sgnn	    mrpcim_info.xgmac_port[2].rx_rpa_discard, "%u");
2709221167Sgnn	__HAL_AUX_ENTRY("rx_l2_mgmt_discard_PORT2",
2710221167Sgnn	    mrpcim_info.xgmac_port[2].rx_l2_mgmt_discard, "%u");
2711221167Sgnn	__HAL_AUX_ENTRY("rx_rts_discard_PORT2",
2712221167Sgnn	    mrpcim_info.xgmac_port[2].rx_rts_discard, "%u");
2713221167Sgnn	__HAL_AUX_ENTRY("rx_trash_discard_PORT2",
2714221167Sgnn	    mrpcim_info.xgmac_port[2].rx_trash_discard, "%u");
2715221167Sgnn	__HAL_AUX_ENTRY("rx_buff_full_discard_PORT2",
2716221167Sgnn	    mrpcim_info.xgmac_port[2].rx_buff_full_discard, "%u");
2717221167Sgnn	__HAL_AUX_ENTRY("rx_red_discard_PORT2",
2718221167Sgnn	    mrpcim_info.xgmac_port[2].rx_red_discard, "%u");
2719221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_ctrl_err_cnt_PORT2",
2720221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_ctrl_err_cnt, "%u");
2721221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_data_err_cnt_PORT2",
2722221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_data_err_cnt, "%u");
2723221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char1_match_PORT2",
2724221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_char1_match, "%u");
2725221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_err_sym_PORT2",
2726221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_err_sym, "%u");
2727221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column1_match_PORT2",
2728221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_column1_match, "%u");
2729221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_char2_match_PORT2",
2730221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_char2_match, "%u");
2731221167Sgnn	__HAL_AUX_ENTRY("rx_local_fault_PORT2",
2732221167Sgnn	    mrpcim_info.xgmac_port[2].rx_local_fault, "%u");
2733221167Sgnn	__HAL_AUX_ENTRY("rx_xgmii_column2_match_PORT2",
2734221167Sgnn	    mrpcim_info.xgmac_port[2].rx_xgmii_column2_match, "%u");
2735221167Sgnn	__HAL_AUX_ENTRY("rx_jettison_PORT2",
2736221167Sgnn	    mrpcim_info.xgmac_port[2].rx_jettison, "%u");
2737221167Sgnn	__HAL_AUX_ENTRY("rx_remote_fault_PORT2",
2738221167Sgnn	    mrpcim_info.xgmac_port[2].rx_remote_fault, "%u");
2739221167Sgnn
2740221167Sgnn	__HAL_AUX_ENTRY("tx_frms_AGGR0",
2741221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_frms, "%llu");
2742221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets_AGGR0",
2743221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_data_octets, "%llu");
2744221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms_AGGR0",
2745221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_mcast_frms, "%llu");
2746221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms_AGGR0",
2747221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_bcast_frms, "%llu");
2748221167Sgnn	__HAL_AUX_ENTRY("tx_discarded_frms_AGGR0",
2749221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_discarded_frms, "%llu");
2750221167Sgnn	__HAL_AUX_ENTRY("tx_errored_frms_AGGR0",
2751221167Sgnn	    mrpcim_info.xgmac_aggr[0].tx_errored_frms, "%llu");
2752221167Sgnn	__HAL_AUX_ENTRY("rx_frms_AGGR0",
2753221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_frms, "%llu");
2754221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets_AGGR0",
2755221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_data_octets, "%llu");
2756221167Sgnn	__HAL_AUX_ENTRY("rx_mcast_frms_AGGR0",
2757221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_mcast_frms, "%llu");
2758221167Sgnn	__HAL_AUX_ENTRY("rx_bcast_frms_AGGR0",
2759221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_bcast_frms, "%llu");
2760221167Sgnn	__HAL_AUX_ENTRY("rx_discarded_frms_AGGR0",
2761221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_discarded_frms, "%llu");
2762221167Sgnn	__HAL_AUX_ENTRY("rx_errored_frms_AGGR0",
2763221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_errored_frms, "%llu");
2764221167Sgnn	__HAL_AUX_ENTRY("rx_unknown_slow_proto_frms_AGGR0",
2765221167Sgnn	    mrpcim_info.xgmac_aggr[0].rx_unknown_slow_proto_frms, "%llu");
2766221167Sgnn
2767221167Sgnn	__HAL_AUX_ENTRY("tx_frms_AGGR1",
2768221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_frms, "%llu");
2769221167Sgnn	__HAL_AUX_ENTRY("tx_data_octets_AGGR1",
2770221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_data_octets, "%llu");
2771221167Sgnn	__HAL_AUX_ENTRY("tx_mcast_frms_AGGR1",
2772221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_mcast_frms, "%llu");
2773221167Sgnn	__HAL_AUX_ENTRY("tx_bcast_frms_AGGR1",
2774221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_bcast_frms, "%llu");
2775221167Sgnn	__HAL_AUX_ENTRY("tx_discarded_frms_AGGR1",
2776221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_discarded_frms, "%llu");
2777221167Sgnn	__HAL_AUX_ENTRY("tx_errored_frms_AGGR1",
2778221167Sgnn	    mrpcim_info.xgmac_aggr[1].tx_errored_frms, "%llu");
2779221167Sgnn	__HAL_AUX_ENTRY("rx_frms_AGGR1",
2780221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_frms, "%llu");
2781221167Sgnn	__HAL_AUX_ENTRY("rx_data_octets_AGGR1",
2782221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_data_octets, "%llu");
2783221167Sgnn	__HAL_AUX_ENTRY("rx_mcast_frms_AGGR1",
2784221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_mcast_frms, "%llu");
2785221167Sgnn	__HAL_AUX_ENTRY("rx_bcast_frms_AGGR1",
2786221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_bcast_frms, "%llu");
2787221167Sgnn	__HAL_AUX_ENTRY("rx_discarded_frms_AGGR1",
2788221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_discarded_frms, "%llu");
2789221167Sgnn	__HAL_AUX_ENTRY("rx_errored_frms_AGGR1",
2790221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_errored_frms, "%llu");
2791221167Sgnn	__HAL_AUX_ENTRY("rx_unknown_slow_proto_frms_AGGR1",
2792221167Sgnn	    mrpcim_info.xgmac_aggr[1].rx_unknown_slow_proto_frms, "%llu");
2793221167Sgnn
2794221167Sgnn	__HAL_AUX_ENTRY("xgmac_global_prog_event_gnum0",
2795221167Sgnn	    mrpcim_info.xgmac_global_prog_event_gnum0, "%llu");
2796221167Sgnn	__HAL_AUX_ENTRY("xgmac_global_prog_event_gnum1",
2797221167Sgnn	    mrpcim_info.xgmac_global_prog_event_gnum1, "%llu");
2798221167Sgnn
2799221167Sgnn	__HAL_AUX_ENTRY("xgmac_orp_lro_events",
2800221167Sgnn	    mrpcim_info.xgmac_orp_lro_events, "%llu");
2801221167Sgnn
2802221167Sgnn	__HAL_AUX_ENTRY("xgmac_orp_bs_events",
2803221167Sgnn	    mrpcim_info.xgmac_orp_bs_events, "%llu");
2804221167Sgnn
2805221167Sgnn	__HAL_AUX_ENTRY("xgmac_orp_iwarp_events",
2806221167Sgnn	    mrpcim_info.xgmac_orp_iwarp_events, "%llu");
2807221167Sgnn
2808221167Sgnn	__HAL_AUX_ENTRY("xgmac_tx_permitted_frms",
2809221167Sgnn	    mrpcim_info.xgmac_tx_permitted_frms, "%u");
2810221167Sgnn
2811221167Sgnn	__HAL_AUX_ENTRY("xgmac_port2_tx_any_frms",
2812221167Sgnn	    mrpcim_info.xgmac_port2_tx_any_frms, "%u");
2813221167Sgnn	__HAL_AUX_ENTRY("xgmac_port1_tx_any_frms",
2814221167Sgnn	    mrpcim_info.xgmac_port1_tx_any_frms, "%u");
2815221167Sgnn	__HAL_AUX_ENTRY("xgmac_port0_tx_any_frms",
2816221167Sgnn	    mrpcim_info.xgmac_port0_tx_any_frms, "%u");
2817221167Sgnn
2818221167Sgnn	__HAL_AUX_ENTRY("xgmac_port2_rx_any_frms",
2819221167Sgnn	    mrpcim_info.xgmac_port2_rx_any_frms, "%u");
2820221167Sgnn	__HAL_AUX_ENTRY("xgmac_port1_rx_any_frms",
2821221167Sgnn	    mrpcim_info.xgmac_port1_rx_any_frms, "%u");
2822221167Sgnn	__HAL_AUX_ENTRY("xgmac_port0_rx_any_frms",
2823221167Sgnn	    mrpcim_info.xgmac_port0_rx_any_frms, "%u");
2824221167Sgnn
2825221167Sgnn	__HAL_AUX_ENTRY_END(bufsize, retsize);
2826221167Sgnn
2827221167Sgnn	return (VXGE_HAL_OK);
2828221167Sgnn}
2829221167Sgnn
2830221167Sgnn/*
2831221167Sgnn * vxge_hal_aux_vpath_ring_dump - Dump vpath ring.
2832221167Sgnn * @vpath_handle: Vpath handle.
2833221167Sgnn *
2834221167Sgnn * Dump vpath ring.
2835221167Sgnn */
2836221167Sgnnvxge_hal_status_e
2837221167Sgnnvxge_hal_aux_vpath_ring_dump(vxge_hal_vpath_h vpath_handle)
2838221167Sgnn{
2839221167Sgnn	u32 i;
2840221167Sgnn	char buffer[4096];
2841221167Sgnn	__hal_ring_t *ring;
2842221167Sgnn	vxge_hal_rxd_h rxdh;
2843221167Sgnn	__hal_virtualpath_t *vpath;
2844221167Sgnn	vxge_hal_ring_rxd_1_t *rxd1;
2845221167Sgnn	vxge_hal_ring_rxd_3_t *rxd3;
2846221167Sgnn	vxge_hal_ring_rxd_5_t *rxd5;
2847221167Sgnn
2848221167Sgnn	vxge_assert(vpath_handle != NULL);
2849221167Sgnn
2850221167Sgnn	vpath = (__hal_virtualpath_t *)
2851221167Sgnn	    ((__hal_vpath_handle_t *) vpath_handle)->vpath;
2852221167Sgnn
2853221167Sgnn	ring = (__hal_ring_t *) vpath->ringh;
2854221167Sgnn
2855221167Sgnn	vxge_os_println("********* vxge RING DUMP BEGIN **********");
2856221167Sgnn
2857221167Sgnn	vxge_os_println("********* vxge RING RXD LIST **********");
2858221167Sgnn
2859221167Sgnn	__hal_channel_for_each_dtr(&ring->channel, rxdh, i) {
2860221167Sgnn
2861221167Sgnn		(void) vxge_os_snprintf(buffer, sizeof(buffer),
2862221167Sgnn		    "%d : 0x"VXGE_OS_STXFMT, i, (ptr_t) rxdh);
2863221167Sgnn
2864221167Sgnn		vxge_os_println(buffer);
2865221167Sgnn
2866221167Sgnn		switch (ring->buffer_mode) {
2867221167Sgnn		case 1:
2868221167Sgnn			rxd1 = (vxge_hal_ring_rxd_1_t *) rxdh;
2869221167Sgnn			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2870221167Sgnn			    "\thost_control = 0x"VXGE_OS_LLXFMT", "
2871221167Sgnn			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2872221167Sgnn			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2873221167Sgnn			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT,
2874221167Sgnn			    rxd1->host_control, rxd1->control_0,
2875221167Sgnn			    rxd1->control_1, rxd1->buffer0_ptr);
2876221167Sgnn			break;
2877221167Sgnn		case 3:
2878221167Sgnn			rxd3 = (vxge_hal_ring_rxd_3_t *) rxdh;
2879221167Sgnn			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2880221167Sgnn			    "\thost_control = 0x"VXGE_OS_LLXFMT", "
2881221167Sgnn			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2882221167Sgnn			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2883221167Sgnn			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT", "
2884221167Sgnn			    "buffer1_ptr = 0x"VXGE_OS_LLXFMT", "
2885221167Sgnn			    "buffer2_ptr = 0x"VXGE_OS_LLXFMT,
2886221167Sgnn			    rxd3->host_control, rxd3->control_0,
2887221167Sgnn			    rxd3->control_1, rxd3->buffer0_ptr,
2888221167Sgnn			    rxd3->buffer1_ptr, rxd3->buffer2_ptr);
2889221167Sgnn			break;
2890221167Sgnn		case 5:
2891221167Sgnn			rxd5 = (vxge_hal_ring_rxd_5_t *) rxdh;
2892221167Sgnn			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2893221167Sgnn			    "\thost_control = 0x%x, "
2894221167Sgnn			    "control_0 = 0x"VXGE_OS_LLXFMT", "
2895221167Sgnn			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2896221167Sgnn			    "control_2 = 0x%x, "
2897221167Sgnn			    "buffer0_ptr = 0x"VXGE_OS_LLXFMT", "
2898221167Sgnn			    "buffer1_ptr = 0x"VXGE_OS_LLXFMT", "
2899221167Sgnn			    "buffer2_ptr = 0x"VXGE_OS_LLXFMT", "
2900221167Sgnn			    "buffer3_ptr = 0x"VXGE_OS_LLXFMT", "
2901221167Sgnn			    "buffer4_ptr = 0x"VXGE_OS_LLXFMT,
2902221167Sgnn			    rxd5->host_control, rxd5->control_0,
2903221167Sgnn			    rxd5->control_1, rxd5->control_2,
2904221167Sgnn			    rxd5->buffer0_ptr, rxd5->buffer1_ptr,
2905221167Sgnn			    rxd5->buffer2_ptr, rxd5->buffer3_ptr,
2906221167Sgnn			    rxd5->buffer4_ptr);
2907221167Sgnn			break;
2908221167Sgnn		default:
2909221167Sgnn			continue;
2910221167Sgnn		}
2911221167Sgnn
2912221167Sgnn		vxge_os_println(buffer);
2913221167Sgnn	}
2914221167Sgnn
2915221167Sgnn	vxge_os_println("******* vxge RING RXD LIST END **********");
2916221167Sgnn
2917221167Sgnn	vxge_os_println("********* vxge RING DUMP END **********");
2918221167Sgnn
2919221167Sgnn	return (VXGE_HAL_OK);
2920221167Sgnn}
2921221167Sgnn
2922221167Sgnn/*
2923221167Sgnn * vxge_hal_aux_vpath_fifo_dump - Dump vpath fifo.
2924221167Sgnn * @vpath_handle: Vpath handle.
2925221167Sgnn *
2926221167Sgnn * Dump vpath fifo.
2927221167Sgnn */
2928221167Sgnnvxge_hal_status_e
2929221167Sgnnvxge_hal_aux_vpath_fifo_dump(vxge_hal_vpath_h vpath_handle)
2930221167Sgnn{
2931221167Sgnn	u32 i, j;
2932221167Sgnn	char buffer[4096];
2933221167Sgnn	__hal_fifo_t *fifo;
2934221167Sgnn	vxge_hal_txdl_h txdlh;
2935221167Sgnn	__hal_virtualpath_t *vpath;
2936221167Sgnn	vxge_hal_fifo_txd_t *txd;
2937221167Sgnn	__hal_fifo_txdl_priv_t *txdl_priv;
2938221167Sgnn
2939221167Sgnn	vxge_assert(vpath_handle != NULL);
2940221167Sgnn
2941221167Sgnn	vpath = (__hal_virtualpath_t *)
2942221167Sgnn	    ((__hal_vpath_handle_t *) vpath_handle)->vpath;
2943221167Sgnn
2944221167Sgnn	fifo = (__hal_fifo_t *) vpath->fifoh;
2945221167Sgnn
2946221167Sgnn	vxge_os_println("********* vxge FIFO DUMP BEGIN **********");
2947221167Sgnn
2948221167Sgnn	vxge_os_println("********* vxge FIFO TXDL LIST **********");
2949221167Sgnn
2950221167Sgnn	__hal_channel_for_each_dtr(&fifo->channel, txdlh, j) {
2951221167Sgnn
2952221167Sgnn		(void) vxge_os_snprintf(buffer, sizeof(buffer),
2953221167Sgnn		    "TXDL %d : 0x"VXGE_OS_STXFMT, j, (ptr_t) txdlh);
2954221167Sgnn
2955221167Sgnn		vxge_os_println(buffer);
2956221167Sgnn
2957221167Sgnn		txdl_priv = VXGE_HAL_FIFO_HAL_PRIV(fifo, txdlh);
2958221167Sgnn
2959221167Sgnn		for (i = 0, txd = (vxge_hal_fifo_txd_t *) txdlh;
2960221167Sgnn		    i < txdl_priv->frags; i++, txd++) {
2961221167Sgnn
2962221167Sgnn			(void) vxge_os_snprintf(buffer, sizeof(buffer),
2963221167Sgnn			    "\tcontrol_0 = 0x"VXGE_OS_LLXFMT", "
2964221167Sgnn			    "control_1 = 0x"VXGE_OS_LLXFMT", "
2965221167Sgnn			    "buffer_ptr = 0x"VXGE_OS_LLXFMT", "
2966221167Sgnn			    "host_control = 0x"VXGE_OS_LLXFMT,
2967221167Sgnn			    txd->control_0, txd->control_1,
2968221167Sgnn			    txd->buffer_pointer, txd->host_control);
2969221167Sgnn
2970221167Sgnn			vxge_os_println(buffer);
2971221167Sgnn		}
2972221167Sgnn
2973221167Sgnn	}
2974221167Sgnn
2975221167Sgnn	vxge_os_println("******* vxge FIFO TXDL LIST END **********");
2976221167Sgnn
2977221167Sgnn	vxge_os_println("********* vxge FIFO DUMP END **********");
2978221167Sgnn
2979221167Sgnn	return (VXGE_HAL_OK);
2980221167Sgnn}
2981221167Sgnn
2982221167Sgnn/*
2983221167Sgnn * vxge_hal_aux_device_dump - Dump driver "about" info and device state.
2984221167Sgnn * @devh: HAL device handle.
2985221167Sgnn *
2986221167Sgnn * Dump driver & device "about" info and device state,
2987221167Sgnn * including all BAR0 registers, hardware and software statistics, PCI
2988221167Sgnn * configuration space.
2989221167Sgnn */
2990221167Sgnnvxge_hal_status_e
2991221167Sgnnvxge_hal_aux_device_dump(vxge_hal_device_h devh)
2992221167Sgnn{
2993221167Sgnn	vxge_hal_status_e status = VXGE_HAL_OK;
2994221167Sgnn	__hal_device_t *hldev = (__hal_device_t *) devh;
2995221167Sgnn	int retsize;
2996221167Sgnn	u32 offset, i;
2997221167Sgnn	u64 retval;
2998221167Sgnn
2999221167Sgnn	vxge_assert(hldev->dump_buf != NULL);
3000221167Sgnn
3001221167Sgnn	vxge_os_println("********* vxge DEVICE DUMP BEGIN **********");
3002221167Sgnn
3003221167Sgnn	status = vxge_hal_aux_about_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3004221167Sgnn	    hldev->dump_buf, &retsize);
3005221167Sgnn	if (status != VXGE_HAL_OK)
3006221167Sgnn		goto error;
3007221167Sgnn
3008221167Sgnn	vxge_os_println(hldev->dump_buf);
3009221167Sgnn
3010221167Sgnn	vxge_os_println("******* PCI Config Reg **********");
3011221167Sgnn
3012221167Sgnn	status = vxge_hal_aux_pci_config_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3013221167Sgnn	    hldev->dump_buf, &retsize);
3014221167Sgnn	if (status != VXGE_HAL_OK)
3015221167Sgnn		goto error;
3016221167Sgnn
3017221167Sgnn	vxge_os_println(hldev->dump_buf);
3018221167Sgnn
3019221167Sgnn	vxge_os_println("******* Legacy Reg **********");
3020221167Sgnn
3021221167Sgnn	for (offset = 0; offset < sizeof(vxge_hal_legacy_reg_t); offset += 8) {
3022221167Sgnn		status = vxge_hal_mgmt_reg_read(devh,
3023221167Sgnn		    vxge_hal_mgmt_reg_type_legacy, 0, offset, &retval);
3024221167Sgnn
3025221167Sgnn		if (status != VXGE_HAL_OK)
3026221167Sgnn			goto error;
3027221167Sgnn
3028221167Sgnn		if (!retval)
3029221167Sgnn			continue;
3030221167Sgnn
3031221167Sgnn		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3032221167Sgnn		    (u32) (retval >> 32), (u32) retval);
3033221167Sgnn	}
3034221167Sgnn	vxge_os_println("\n");
3035221167Sgnn
3036221167Sgnn	vxge_os_println("******* TOC Reg *********");
3037221167Sgnn
3038221167Sgnn	for (offset = 0; offset < sizeof(vxge_hal_toc_reg_t); offset += 8) {
3039221167Sgnn		status = vxge_hal_mgmt_reg_read(devh,
3040221167Sgnn		    vxge_hal_mgmt_reg_type_toc, 0, offset, &retval);
3041221167Sgnn		if (status != VXGE_HAL_OK)
3042221167Sgnn			goto error;
3043221167Sgnn
3044221167Sgnn		if (!retval)
3045221167Sgnn			continue;
3046221167Sgnn
3047221167Sgnn		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3048221167Sgnn		    (u32) (retval >> 32), (u32) retval);
3049221167Sgnn	}
3050221167Sgnn	vxge_os_println("\n");
3051221167Sgnn
3052221167Sgnn	vxge_os_println("******* Common Reg **********");
3053221167Sgnn
3054221167Sgnn	for (offset = 0; offset < sizeof(vxge_hal_common_reg_t); offset += 8) {
3055221167Sgnn		status = vxge_hal_mgmt_reg_read(devh,
3056221167Sgnn		    vxge_hal_mgmt_reg_type_common, 0, offset, &retval);
3057221167Sgnn		if (status != VXGE_HAL_OK)
3058221167Sgnn			goto error;
3059221167Sgnn
3060221167Sgnn		if (!retval)
3061221167Sgnn			continue;
3062221167Sgnn
3063221167Sgnn		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3064221167Sgnn		    (u32) (retval >> 32), (u32) retval);
3065221167Sgnn	}
3066221167Sgnn	vxge_os_println("\n");
3067221167Sgnn
3068221167Sgnn	for (i = 0; i < VXGE_HAL_TITAN_PCICFGMGMT_REG_SPACES; i++) {
3069221167Sgnn		vxge_os_printf("****** PCI Config Mgmt Reg : %d ********\n", i);
3070221167Sgnn
3071221167Sgnn		for (offset = 0; offset < sizeof(vxge_hal_pcicfgmgmt_reg_t);
3072221167Sgnn		    offset += 8) {
3073221167Sgnn			status = vxge_hal_mgmt_reg_read(devh,
3074221167Sgnn			    vxge_hal_mgmt_reg_type_pcicfgmgmt,
3075221167Sgnn			    i, offset, &retval);
3076221167Sgnn			if (status != VXGE_HAL_OK)
3077221167Sgnn				continue;
3078221167Sgnn
3079221167Sgnn			if (!retval)
3080221167Sgnn				continue;
3081221167Sgnn
3082221167Sgnn			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3083221167Sgnn			    (u32) (retval >> 32), (u32) retval);
3084221167Sgnn		}
3085221167Sgnn	}
3086221167Sgnn	vxge_os_println("\n");
3087221167Sgnn
3088221167Sgnn	vxge_os_println("******* MRPCIM Reg **********");
3089221167Sgnn
3090221167Sgnn	for (offset = 0; offset < sizeof(vxge_hal_mrpcim_reg_t);
3091221167Sgnn	    offset += 8) {
3092221167Sgnn		status = vxge_hal_mgmt_reg_read(devh,
3093221167Sgnn		    vxge_hal_mgmt_reg_type_mrpcim, 0, offset, &retval);
3094221167Sgnn		if (status != VXGE_HAL_OK)
3095221167Sgnn			continue;
3096221167Sgnn
3097221167Sgnn		if (!retval)
3098221167Sgnn			continue;
3099221167Sgnn
3100221167Sgnn		vxge_os_printf("0x%04x 0x%08x%08x", offset,
3101221167Sgnn		    (u32) (retval >> 32), (u32) retval);
3102221167Sgnn	}
3103221167Sgnn	vxge_os_println("\n");
3104221167Sgnn
3105221167Sgnn	for (i = 0; i < VXGE_HAL_TITAN_SRPCIM_REG_SPACES; i++) {
3106221167Sgnn		vxge_os_printf("******* SRPCIM Reg : %d **********\n", i);
3107221167Sgnn
3108221167Sgnn		for (offset = 0; offset < sizeof(vxge_hal_srpcim_reg_t);
3109221167Sgnn		    offset += 8) {
3110221167Sgnn			status = vxge_hal_mgmt_reg_read(devh,
3111221167Sgnn			    vxge_hal_mgmt_reg_type_srpcim, i, offset, &retval);
3112221167Sgnn			if (status != VXGE_HAL_OK)
3113221167Sgnn				continue;
3114221167Sgnn
3115221167Sgnn			if (!retval)
3116221167Sgnn				continue;
3117221167Sgnn
3118221167Sgnn			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3119221167Sgnn			    (u32) (retval >> 32), (u32) retval);
3120221167Sgnn		}
3121221167Sgnn	}
3122221167Sgnn	vxge_os_println("\n");
3123221167Sgnn
3124221167Sgnn	for (i = 0; i < VXGE_HAL_TITAN_VPMGMT_REG_SPACES; i++) {
3125221167Sgnn		vxge_os_printf("******* VPATH MGMT Reg : %d **********\n", i);
3126221167Sgnn
3127221167Sgnn		for (offset = 0; offset < sizeof(vxge_hal_vpmgmt_reg_t);
3128221167Sgnn		    offset += 8) {
3129221167Sgnn			status = vxge_hal_mgmt_reg_read(devh,
3130221167Sgnn			    vxge_hal_mgmt_reg_type_vpmgmt, i, offset, &retval);
3131221167Sgnn			if (status != VXGE_HAL_OK)
3132221167Sgnn				continue;
3133221167Sgnn
3134221167Sgnn			if (!retval)
3135221167Sgnn				continue;
3136221167Sgnn
3137221167Sgnn			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3138221167Sgnn			    (u32) (retval >> 32), (u32) retval);
3139221167Sgnn		}
3140221167Sgnn	}
3141221167Sgnn	vxge_os_println("\n");
3142221167Sgnn
3143221167Sgnn	for (i = 0; i < VXGE_HAL_TITAN_VPATH_REG_SPACES; i++) {
3144221167Sgnn		vxge_os_printf("******* VPATH Reg : %d **********\n", i);
3145221167Sgnn
3146221167Sgnn		for (offset = 0; offset < sizeof(vxge_hal_vpath_reg_t);
3147221167Sgnn		    offset += 8) {
3148221167Sgnn			status = vxge_hal_mgmt_reg_read(devh,
3149221167Sgnn			    vxge_hal_mgmt_reg_type_vpath, i, offset, &retval);
3150221167Sgnn			if (status != VXGE_HAL_OK)
3151221167Sgnn				continue;
3152221167Sgnn
3153221167Sgnn			if (!retval)
3154221167Sgnn				continue;
3155221167Sgnn
3156221167Sgnn			vxge_os_printf("0x%04x 0x%08x%08x", offset,
3157221167Sgnn			    (u32) (retval >> 32), (u32) retval);
3158221167Sgnn		}
3159221167Sgnn	}
3160221167Sgnn
3161221167Sgnn	vxge_os_println("\n");
3162221167Sgnn
3163221167Sgnn	status = vxge_hal_aux_stats_mrpcim_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3164221167Sgnn	    hldev->dump_buf,
3165221167Sgnn	    &retsize);
3166221167Sgnn	if (status == VXGE_HAL_OK) {
3167221167Sgnn		vxge_os_println("******* MRPCIM Stats **********");
3168221167Sgnn		vxge_os_println(hldev->dump_buf);
3169221167Sgnn	}
3170221167Sgnn
3171221167Sgnn	vxge_os_println("******* Device Stats **********");
3172221167Sgnn
3173221167Sgnn	status = vxge_hal_aux_stats_device_read(hldev, VXGE_HAL_DUMP_BUF_SIZE,
3174221167Sgnn	    hldev->dump_buf, &retsize);
3175221167Sgnn	if (status != VXGE_HAL_OK)
3176221167Sgnn		goto error;
3177221167Sgnn
3178221167Sgnn	vxge_os_println(hldev->dump_buf);
3179221167Sgnn
3180221167Sgnn	vxge_os_println("********* DEVICE DUMP END **********");
3181221167Sgnn
3182221167Sgnnerror:
3183221167Sgnn	return (status);
3184221167Sgnn}
3185