| /* |
| * This file and its contents are supplied under the terms of the |
| * Common Development and Distribution License ("CDDL"), version 1.0. |
| * You may only use this file in accordance with the terms of version |
| * 1.0 of the CDDL. |
| * |
| * A full copy of the text of the CDDL should have accompanied this |
| * source. A copy of the CDDL is also available via the Internet at |
| * http://www.illumos.org/license/CDDL. |
| */ |
| |
| /* |
| * This file is part of the Chelsio T4 support code. |
| * |
| * Copyright (C) 2011-2013 Chelsio Communications. All rights reserved. |
| * |
| * This program is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this |
| * release for licensing terms and conditions. |
| */ |
| |
| #ifndef __T4NEX_H |
| #define __T4NEX_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define T4_IOCTL ((('t' << 16) | '4') << 8) |
| #define T4_IOCTL_PCIGET32 (T4_IOCTL + 1) |
| #define T4_IOCTL_PCIPUT32 (T4_IOCTL + 2) |
| #define T4_IOCTL_GET32 (T4_IOCTL + 3) |
| #define T4_IOCTL_PUT32 (T4_IOCTL + 4) |
| #define T4_IOCTL_REGDUMP (T4_IOCTL + 5) |
| #define T4_IOCTL_SGE_CONTEXT (T4_IOCTL + 6) |
| #define T4_IOCTL_DEVLOG (T4_IOCTL + 7) |
| #define T4_IOCTL_GET_MEM (T4_IOCTL + 8) |
| #define T4_IOCTL_GET_TID_TAB (T4_IOCTL + 9) |
| #define T4_IOCTL_GET_MBOX (T4_IOCTL + 10) |
| #define T4_IOCTL_GET_CIM_LA (T4_IOCTL + 11) |
| #define T4_IOCTL_GET_CIM_QCFG (T4_IOCTL + 12) |
| #define T4_IOCTL_GET_CIM_IBQ (T4_IOCTL + 13) |
| #define T4_IOCTL_GET_EDC (T4_IOCTL + 14) |
| #define T4_IOCTL_LOAD_FW (T4_IOCTL + 15) |
| |
| enum { |
| T4_CTXT_EGRESS, |
| T4_CTXT_INGRESS, |
| T4_CTXT_FLM |
| }; |
| |
| struct t4_reg32_cmd { |
| uint32_t reg; |
| uint32_t value; |
| }; |
| |
| #define T4_REGDUMP_SIZE (160 * 1024) |
| #define T5_REGDUMP_SIZE (332 * 1024) |
| struct t4_regdump { |
| uint32_t version; |
| uint32_t len; |
| uint8_t *data; |
| }; |
| |
| struct t4_sge_context { |
| uint32_t version; |
| uint32_t mem_id; |
| uint32_t addr; |
| uint32_t len; |
| uint8_t *data; |
| }; |
| |
| struct t4_mem_range { |
| uint32_t addr; |
| uint32_t len; |
| uint32_t *data; |
| }; |
| |
| struct t4_tid_info { |
| uint32_t len; |
| uint32_t *data; |
| }; |
| |
| struct t4_mbox { |
| uint32_t len; |
| uint32_t *data; |
| }; |
| |
| struct t4_cim_la { |
| uint32_t len; |
| uint32_t *data; |
| }; |
| |
| struct t4_ibq { |
| uint32_t len; |
| uint32_t *data; |
| }; |
| |
| struct t4_edc { |
| uint32_t len; |
| uint32_t mem; |
| uint32_t pos; |
| char *data; |
| }; |
| |
| struct t4_cim_qcfg { |
| uint16_t base[14]; |
| uint16_t size[14]; |
| uint16_t thres[6]; |
| uint32_t stat[4 * (6 + 8)]; |
| uint32_t obq_wr[2 * (8)]; |
| uint32_t num_obq; |
| }; |
| |
| #define T4_DEVLOG_SIZE 32768 |
| struct t4_devlog { |
| uint32_t len; |
| uint32_t data[0]; |
| }; |
| |
| struct t4_ldfw { |
| uint32_t len; |
| uint32_t data[0]; |
| }; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __T4NEX_H */ |