a23fd118e437af0a7877dd313db8fdaa3537c675yl * CDDL HEADER START
a23fd118e437af0a7877dd313db8fdaa3537c675yl * The contents of this file are subject to the terms of the
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Common Development and Distribution License (the "License").
a23fd118e437af0a7877dd313db8fdaa3537c675yl * You may not use this file except in compliance with the License.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See the License for the specific language governing permissions
a23fd118e437af0a7877dd313db8fdaa3537c675yl * and limitations under the License.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * When distributing Covered Code, include this CDDL HEADER in each
a23fd118e437af0a7877dd313db8fdaa3537c675yl * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * If applicable, add the following below this CDDL HEADER, with the
a23fd118e437af0a7877dd313db8fdaa3537c675yl * fields enclosed by brackets "[]" replaced with your own identifying
a23fd118e437af0a7877dd313db8fdaa3537c675yl * information: Portions Copyright [yyyy] [name of copyright owner]
a23fd118e437af0a7877dd313db8fdaa3537c675yl * CDDL HEADER END
8347601bcb0a439f6e50fc36b4039a73d08700e1yl * Copyright (c) 2002-2006 Neterion, Inc.
a23fd118e437af0a7877dd313db8fdaa3537c675yl#define __hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \
a23fd118e437af0a7877dd313db8fdaa3537c675yl if (retsize < 0 || retsize >= bufsize) return XGE_HAL_ERR_OUT_OF_SPACE;
a23fd118e437af0a7877dd313db8fdaa3537c675yl#define __hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \
a23fd118e437af0a7877dd313db8fdaa3537c675yl retsize = xge_os_sprintf(retbuf, fmt, key, XGE_HAL_AUX_SEPA, value); \
a23fd118e437af0a7877dd313db8fdaa3537c675yl __hal_aux_snprintf(ptr, leftsize, "%s%c"fmt"\n", key, value, entrysize)
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_bar0_read - Read and format Xframe BAR0 register.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @offset: Register offset in the BAR0 space.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read Xframe register from BAR0 space. The result is formatted as an ascii string.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_reg_read().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_bar0_read(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_mgmt_reg_read(devh, 0, offset, &retval);
7eced415e5dd557aef2d78483b5a7785f0e13670xw *retsize = xge_os_snprintf(retbuf, bufsize, "0x%04X%c0x%08X%08X\n",
7eced415e5dd557aef2d78483b5a7785f0e13670xw offset, XGE_HAL_AUX_SEPA, (u32)(retval>>32), (u32)retval);
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_bar1_read - Read and format Xframe BAR1 register.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @offset: Register offset in the BAR1 space.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read Xframe register from BAR1 space. The result is formatted as ascii string.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_reg_read().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_bar1_read(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_mgmt_reg_read(devh, 1, offset, &retval);
7eced415e5dd557aef2d78483b5a7785f0e13670xw *retsize = xge_os_snprintf(retbuf, bufsize, "0x%04X%c0x%08X%08X\n",
7eced415e5dd557aef2d78483b5a7785f0e13670xw offset, XGE_HAL_AUX_SEPA, (u32)(retval>>32), (u32)retval);
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_bar0_write - Write BAR0 register.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @offset: Register offset in the BAR0 space.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @value: Regsister value (to write).
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Write BAR0 register.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_reg_write().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_bar0_write(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_about_read - Retrieve and format about info.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Retrieve about info (using xge_hal_mgmt_about()) and sprintf it
a23fd118e437af0a7877dd313db8fdaa3537c675yl * into the provided @retbuf.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_FAIL - Failed to retrieve the information.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_about(), xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_about_read(xge_hal_device_h devh, int bufsize,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("subsys_vendor", about_info.subsys_vendor, "0x%x");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("subsys_device", about_info.subsys_device, "0x%x");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("board_rev", about_info.board_rev, "0x%x");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vendor_name", about_info.vendor_name, "%s");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("chip_name", about_info.chip_name, "%s");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("hal_major", about_info.hal_major, "%s");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("hal_minor", about_info.hal_minor, "%s");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("hal_build", about_info.hal_build, "%s");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_tmac_read - Read TMAC hardware statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read TMAC hardware statistics. This is a subset of stats counters
a23fd118e437af0a7877dd313db8fdaa3537c675yl * from xge_hal_stats_hw_info_t{}.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{},
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_pci_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_tmac_read(xge_hal_device_h devh, int bufsize,
7eced415e5dd557aef2d78483b5a7785f0e13670xw if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_data_octets", hw.tmac_data_octets, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_bcst_frms", hw.tmac_bcst_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_mcst_frms", hw.tmac_mcst_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_pause_ctrl_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_ucst_frms", hw.tmac_ucst_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_ttl_octets", hw.tmac_ttl_octets, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_any_err_frms", hw.tmac_any_err_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_nucst_frms", hw.tmac_nucst_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_ttl_less_fb_octets", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("tmac_vld_ip_octets", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw for (i = 0; i < XGE_HAL_MAC_LINKS; i++) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw for (i = 0; i < XGE_HAL_MAC_AGGREGATORS; i++) {
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_rmac_read - Read RMAC hardware statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read RMAC hardware statistics. This is a subset of stats counters
a23fd118e437af0a7877dd313db8fdaa3537c675yl * from xge_hal_stats_hw_info_t{}.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{},
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_pci_read(), xge_hal_aux_stats_tmac_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_rmac_read(xge_hal_device_h devh, int bufsize,
7eced415e5dd557aef2d78483b5a7785f0e13670xw if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_data_octets", hw.rmac_data_octets, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_vld_frms", hw.rmac_vld_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_fcs_err_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_vld_bcst_frms", hw.rmac_vld_bcst_frms,
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_vld_mcst_frms", hw.rmac_vld_mcst_frms,
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_pause_ctrl_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_unsup_ctrl_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_octets", hw.rmac_ttl_octets, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_discarded_frms", hw.rmac_discarded_frms,
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_drop_events", hw.rmac_drop_events, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_less_fb_octets", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_usized_frms", hw.rmac_usized_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_frag_frms", hw.rmac_frag_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_osized_frms", hw.rmac_osized_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_jabber_frms", hw.rmac_jabber_frms, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_65_127_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_128_255_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_256_511_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_512_1023_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_ttl_1024_1518_frms", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_hdr_err_ip", hw.rmac_hdr_err_ip, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_err_drp_udp", hw.rmac_err_drp_udp, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_xgmii_err_sym", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_pause_cnt", hw.rmac_pause_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_xgmii_data_err_cnt", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_xgmii_ctrl_err_cnt", (unsigned long long)
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rmac_accepted_ip", hw.rmac_accepted_ip, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw for (i = 0; i < XGE_HAL_MAC_LINKS; i++) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw for (i = 0; i < XGE_HAL_MAC_AGGREGATORS; i++) {
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_herc_enchanced - Get Hercules hardware statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read Hercules device hardware statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{},
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_herc_enchanced(xge_hal_device_h devh,
7eced415e5dd557aef2d78483b5a7785f0e13670xw if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) {
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_frms_oflow", hw.tmac_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_data_octets_oflow", hw.tmac_data_octets_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_mcst_frms_oflow", hw.tmac_mcst_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_bcst_frms_oflow", hw.tmac_bcst_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_ttl_octets_oflow", hw.tmac_ttl_octets_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_ucst_frms_oflow", hw.tmac_ucst_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_nucst_frms_oflow", hw.tmac_nucst_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_any_err_frms_oflow", hw.tmac_any_err_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_vlan_frms", (unsigned long long)hw.tmac_vlan_frms,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_vld_ip_oflow", hw.tmac_vld_ip_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_drop_ip_oflow", hw.tmac_drop_ip_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_icmp_oflow", hw.tmac_icmp_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_rst_tcp_oflow", hw.tmac_rst_tcp_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tmac_udp_oflow", hw.tmac_udp_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tpa_unknown_protocol", hw.tpa_unknown_protocol, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tpa_parse_failure", hw.tpa_parse_failure, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_vld_frms_oflow", hw.rmac_vld_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_data_octets_oflow", hw.rmac_data_octets_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_vld_mcst_frms_oflow", hw.rmac_vld_mcst_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_vld_bcst_frms_oflow", hw.rmac_vld_bcst_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_ttl_octets_oflow", hw.rmac_ttl_octets_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_drop_events_oflow", hw.rmac_drop_events_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_usized_frms_oflow", hw.rmac_usized_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_osized_frms_oflow", hw.rmac_osized_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_frag_frms_oflow", hw.rmac_frag_frms_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_jabber_frms_oflow", hw.rmac_jabber_frms_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_ip_oflow", hw.rmac_ip_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_drop_ip_oflow", hw.rmac_drop_ip_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_icmp_oflow", hw.rmac_icmp_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_udp_oflow", hw.rmac_udp_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_err_drp_udp_oflow", hw.rmac_err_drp_udp_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_pause_cnt_oflow", hw.rmac_pause_cnt_oflow, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_fcs_discard", hw.rmac_fcs_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_len_discard", hw.rmac_len_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_da_discard", hw.rmac_da_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_pf_discard", hw.rmac_pf_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_rts_discard", hw.rmac_rts_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_red_discard", hw.rmac_red_discard, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_ingm_full_discard", hw.rmac_ingm_full_discard,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rmac_accepted_ip_oflow", hw.rmac_accepted_ip_oflow,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("link_fault_cnt", hw.link_fault_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_rmac_read - Read PCI hardware statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read PCI statistics counters, including number of PCI read and
a23fd118e437af0a7877dd313db8fdaa3537c675yl * write transactions, PCI retries, discards, etc.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * This is a subset of stats counters from xge_hal_stats_hw_info_t{}.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{},
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_pci_read(xge_hal_device_h devh, int bufsize,
7eced415e5dd557aef2d78483b5a7785f0e13670xw if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) {
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("new_rd_req_cnt", hw.new_rd_req_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("new_rd_req_rtry_cnt", hw.new_rd_req_rtry_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("wr_rtry_rd_ack_cnt", hw.wr_rtry_rd_ack_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("new_wr_req_rtry_cnt", hw.new_wr_req_rtry_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("new_wr_req_cnt", hw.new_wr_req_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rd_rtry_wr_ack_cnt", hw.rd_rtry_wr_ack_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_hal_read - Read HAL (layer) statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read HAL statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not
a23fd118e437af0a7877dd313db8fdaa3537c675yl * currently available.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_hal_read(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("tx_traffic_intr_cnt", devstat.tx_traffic_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("txpic_intr_cnt", devstat.txpic_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("txdma_intr_cnt", devstat.txdma_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("txmac_intr_cnt", devstat.txmac_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("txxgxs_intr_cnt", devstat.txxgxs_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("rxpic_intr_cnt", devstat.rxpic_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("rxdma_intr_cnt", devstat.rxdma_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("rxmac_intr_cnt", devstat.rxmac_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("rxxgxs_intr_cnt", devstat.rxxgxs_intr_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("mc_intr_cnt", devstat.mc_intr_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("not_xge_intr_cnt", devstat.not_xge_intr_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("traffic_intr_cnt", devstat.traffic_intr_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("total_intr_cnt", devstat.total_intr_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("soft_reset_cnt", devstat.soft_reset_cnt, "%u");
8347601bcb0a439f6e50fc36b4039a73d08700e1yl if (hldev->config.rxufca_hi_lim != hldev->config.rxufca_lo_lim &&
a23fd118e437af0a7877dd313db8fdaa3537c675yl /* for each opened rx channel */
a23fd118e437af0a7877dd313db8fdaa3537c675yl channel = xge_container_of(item, xge_hal_channel_t, item);
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "ring%d_", channel->post_qid);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "reserve_free_swaps_cnt", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.reserve_free_swaps_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "avg_compl_per_intr_cnt", dest_size);
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY(key, chstat.avg_compl_per_intr_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl /* for each opened tx channel */
a23fd118e437af0a7877dd313db8fdaa3537c675yl channel = xge_container_of(item, xge_hal_channel_t, item);
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "fifo%d_", channel->post_qid);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "reserve_free_swaps_cnt", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.reserve_free_swaps_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "avg_compl_per_intr_cnt", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.avg_compl_per_intr_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "total_posts_many", dest_size);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "avg_buffers_per_post", dest_size);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "total_posts_dtrs_many", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.total_posts_dtrs_many, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "total_posts_frags_many", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.total_posts_frags_many, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "total_posts_dang_dtrs", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.total_posts_dang_dtrs, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "total_posts_dang_frags", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY(key, chstat.total_posts_dang_frags, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_sw_dev_read - Read software device statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read software-maintained device statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not
a23fd118e437af0a7877dd313db8fdaa3537c675yl * currently available.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_stats_sw_dev_read(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("sm_err_cnt",sw_dev_err_stats.sm_err_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("single_ecc_err_cnt",sw_dev_err_stats.single_ecc_err_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("double_ecc_err_cnt",sw_dev_err_stats.double_ecc_err_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("ecc_err_cnt", sw_dev_err_stats.ecc_err_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("parity_err_cnt",sw_dev_err_stats.parity_err_cnt, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("serr_cnt",sw_dev_err_stats.serr_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw t_code_cnt = sw_dev_err_stats.rxd_t_code_err_cnt[t_code];
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(buf, sizeof(buf), "rxd_t_code_%d", t_code);
a23fd118e437af0a7877dd313db8fdaa3537c675yl t_code_cnt = sw_dev_err_stats.txd_t_code_err_cnt[t_code];
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(buf, sizeof(buf), "txd_t_code_%d", t_code);
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_transceiver_temp_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_transceiver_temp_low",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_laser_bias_current_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_laser_bias_current_low",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_laser_output_power_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("alarm_laser_output_power_low",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_transceiver_temp_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_transceiver_temp_low",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_laser_bias_current_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_laser_bias_current_low",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_laser_output_power_high",sw_dev_err_stats.
8347601bcb0a439f6e50fc36b4039a73d08700e1yl __HAL_AUX_ENTRY("warn_laser_output_power_low",sw_dev_err_stats.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_pci_config_read - Retrieve and format PCI Configuration
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Retrieve about info (using xge_hal_mgmt_pci_config()) and sprintf it
a23fd118e437af0a7877dd313db8fdaa3537c675yl * into the provided @retbuf.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_mgmt_pci_config(), xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_pci_config_read(xge_hal_device_h devh, int bufsize,
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vendor_id", pci_config.vendor_id, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("device_id", pci_config.device_id, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("command", pci_config.command, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("revision", pci_config.revision, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pciClass1", pci_config.pciClass[0], "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pciClass2", pci_config.pciClass[1], "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pciClass3", pci_config.pciClass[2], "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("latency_timer", pci_config.latency_timer, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("header_type", pci_config.header_type, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("base_addr0_lo", pci_config.base_addr0_lo, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("base_addr0_hi", pci_config.base_addr0_hi, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("base_addr1_lo", pci_config.base_addr1_lo, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("base_addr1_hi", pci_config.base_addr1_hi, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("not_Implemented2", pci_config.not_Implemented2,
a23fd118e437af0a7877dd313db8fdaa3537c675yl "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("cardbus_cis_pointer", pci_config.cardbus_cis_pointer,
a23fd118e437af0a7877dd313db8fdaa3537c675yl "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("subsystem_vendor_id", pci_config.subsystem_vendor_id,
a23fd118e437af0a7877dd313db8fdaa3537c675yl "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("subsystem_id", pci_config.subsystem_id, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("rom_base", pci_config.rom_base, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("interrupt_line", pci_config.interrupt_line, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("interrupt_pin", pci_config.interrupt_pin, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("min_grant", pci_config.min_grant, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("max_latency", pci_config.max_latency, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_cap_id", pci_config.msi_cap_id, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_next_ptr", pci_config.msi_next_ptr, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_control", pci_config.msi_control, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_lower_address", pci_config.msi_lower_address,
a23fd118e437af0a7877dd313db8fdaa3537c675yl "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_higher_address", pci_config.msi_higher_address,
a23fd118e437af0a7877dd313db8fdaa3537c675yl "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_data", pci_config.msi_data, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("msi_unused", pci_config.msi_unused, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vpd_cap_id", pci_config.vpd_cap_id, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vpd_next_cap", pci_config.vpd_next_cap, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vpd_addr", pci_config.vpd_addr, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("vpd_data", pci_config.vpd_data, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pcix_cap", pci_config.pcix_cap, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pcix_next_cap", pci_config.pcix_next_cap, "0x%02X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pcix_command", pci_config.pcix_command, "0x%04X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("pcix_status", pci_config.pcix_status, "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl if (xge_hal_device_check_id(devh) == XGE_HAL_CARD_HERC) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw for (i = 0; i < (XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE - 0x68)/4; i++) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "%03x:", 4*i + 0x68);
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY(key, *((int *)pci_config.rsvd_b1 + i), "0x%08X");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_channel_read - Read channels information.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read HAL statistics.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_device_dump().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_channel_read(xge_hal_device_h devh,
a23fd118e437af0a7877dd313db8fdaa3537c675yl /* for each opened rx channel */
a23fd118e437af0a7877dd313db8fdaa3537c675yl channel = xge_container_of(item, xge_hal_channel_t, item);
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "ring%d_", channel->post_qid);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "reserve_threshold", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl /* for each opened tx channel */
a23fd118e437af0a7877dd313db8fdaa3537c675yl channel = xge_container_of(item, xge_hal_channel_t, item);
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "fifo%d_", channel->post_qid);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "reserve_threshold", dest_size);
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_dump - Dump driver "about" info and device state.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Dump driver & device "about" info and device state,
a23fd118e437af0a7877dd313db8fdaa3537c675yl * including all BAR0 registers, hardware and software statistics, PCI
a23fd118e437af0a7877dd313db8fdaa3537c675yl * configuration space.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_about_read(), xge_hal_mgmt_reg_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_pci_config_read(), xge_hal_aux_stats_sw_dev_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(),
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_channel_read(), xge_hal_aux_stats_hal_read().
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns:
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
a23fd118e437af0a7877dd313db8fdaa3537c675yl xge_os_println("********* xge DEVICE DUMP BEGIN **********");
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_about_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_mgmt_reg_read(hldev, 0, offset*8, &retval);
a23fd118e437af0a7877dd313db8fdaa3537c675yl if (!retval) continue;
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_pci_config_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_stats_tmac_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_stats_rmac_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_stats_pci_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) {
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_stats_sw_dev_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_channel_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl status = xge_hal_aux_stats_hal_read(hldev, XGE_HAL_DUMP_BUF_SIZE,
a23fd118e437af0a7877dd313db8fdaa3537c675yl xge_os_println("********* XFRAME DEVICE DUMP END **********");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_driver_config_read - Read Driver configuration.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read driver configuration,
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_device_config_read().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_aux_driver_config_read(int bufsize, char *retbuf, int *retsize)
a23fd118e437af0a7877dd313db8fdaa3537c675yl __HAL_AUX_ENTRY("queue size max", drv_config.queue_size_max, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl * xge_hal_aux_device_config_read - Read device configuration.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @devh: HAL device handle.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @bufsize: Buffer size.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retbuf: Buffer pointer.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * @retsize: Size of the result. Cannot be greater than @bufsize.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Read device configuration,
a23fd118e437af0a7877dd313db8fdaa3537c675yl * Returns: XGE_HAL_OK - success.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
a23fd118e437af0a7877dd313db8fdaa3537c675yl * See also: xge_hal_aux_driver_config_read().
a23fd118e437af0a7877dd313db8fdaa3537c675ylxge_hal_status_e xge_hal_aux_device_config_read(xge_hal_device_h devh,
7eced415e5dd557aef2d78483b5a7785f0e13670xw dev_config = (xge_hal_device_config_t *) xge_os_malloc(hldev->pdev,
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("isr_polling_count", dev_config->isr_polling_cnt, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("latency_timer", dev_config->latency_timer, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("mmrb_count", dev_config->mmrb_count, "%d");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("shared_splits", dev_config->shared_splits, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("pci_freq_mherz", dev_config->pci_freq_mherz, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("intr_mode", dev_config->intr_mode, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("sched_timer_us", dev_config->sched_timer_us, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rxufca_intr_thres", dev_config->rxufca_intr_thres, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rxufca_lo_lim", dev_config->rxufca_lo_lim, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rxufca_hi_lim", dev_config->rxufca_hi_lim, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rxufca_lbolt_period", dev_config->rxufca_lbolt_period, "%u");
a23fd118e437af0a7877dd313db8fdaa3537c675yl for(i = 0; i < XGE_HAL_MAX_RING_NUM; i++)
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "backoff_interval_us", dest_size);
7eced415e5dd557aef2d78483b5a7785f0e13670xw xge_os_strlcpy(dest_addr, "indicate_max_pkts", dest_size);
8347601bcb0a439f6e50fc36b4039a73d08700e1yl for (i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) {
8347601bcb0a439f6e50fc36b4039a73d08700e1yl for (j = 0; j < XGE_HAL_MAX_FIFO_TTI_NUM; j++) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw (void) xge_os_snprintf(key, sizeof(key), "fifo%d_tti%02d_", i,
8347601bcb0a439f6e50fc36b4039a73d08700e1yl /* and bimodal TTIs */
8347601bcb0a439f6e50fc36b4039a73d08700e1yl for (i=0; i<XGE_HAL_MAX_RING_NUM; i++) {
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("dump_on_serr", dev_config->dump_on_serr, "%u");
7eced415e5dd557aef2d78483b5a7785f0e13670xw __HAL_AUX_ENTRY("rth_bucket_size", dev_config->rth_bucket_size, "%u");