156b2bdd1SGireesh Nagabhushana /* 256b2bdd1SGireesh Nagabhushana * This file and its contents are supplied under the terms of the 356b2bdd1SGireesh Nagabhushana * Common Development and Distribution License ("CDDL"), version 1.0. 456b2bdd1SGireesh Nagabhushana * You may only use this file in accordance with the terms of version 556b2bdd1SGireesh Nagabhushana * 1.0 of the CDDL. 656b2bdd1SGireesh Nagabhushana * 756b2bdd1SGireesh Nagabhushana * A full copy of the text of the CDDL should have accompanied this 856b2bdd1SGireesh Nagabhushana * source. A copy of the CDDL is also available via the Internet at 956b2bdd1SGireesh Nagabhushana * http://www.illumos.org/license/CDDL. 1056b2bdd1SGireesh Nagabhushana */ 1156b2bdd1SGireesh Nagabhushana 1256b2bdd1SGireesh Nagabhushana /* 1356b2bdd1SGireesh Nagabhushana * This file is part of the Chelsio T4 support code. 1456b2bdd1SGireesh Nagabhushana * 1556b2bdd1SGireesh Nagabhushana * Copyright (C) 2011-2013 Chelsio Communications. All rights reserved. 1656b2bdd1SGireesh Nagabhushana * 1756b2bdd1SGireesh Nagabhushana * This program is distributed in the hope that it will be useful, but WITHOUT 1856b2bdd1SGireesh Nagabhushana * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1956b2bdd1SGireesh Nagabhushana * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this 2056b2bdd1SGireesh Nagabhushana * release for licensing terms and conditions. 2156b2bdd1SGireesh Nagabhushana */ 2256b2bdd1SGireesh Nagabhushana 2356b2bdd1SGireesh Nagabhushana #ifndef __T4NEX_H 2456b2bdd1SGireesh Nagabhushana #define __T4NEX_H 2556b2bdd1SGireesh Nagabhushana 2656b2bdd1SGireesh Nagabhushana #ifdef __cplusplus 2756b2bdd1SGireesh Nagabhushana extern "C" { 2856b2bdd1SGireesh Nagabhushana #endif 2956b2bdd1SGireesh Nagabhushana 3056b2bdd1SGireesh Nagabhushana #define T4_IOCTL ((('t' << 16) | '4') << 8) 3156b2bdd1SGireesh Nagabhushana #define T4_IOCTL_PCIGET32 (T4_IOCTL + 1) 3256b2bdd1SGireesh Nagabhushana #define T4_IOCTL_PCIPUT32 (T4_IOCTL + 2) 3356b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET32 (T4_IOCTL + 3) 3456b2bdd1SGireesh Nagabhushana #define T4_IOCTL_PUT32 (T4_IOCTL + 4) 3556b2bdd1SGireesh Nagabhushana #define T4_IOCTL_REGDUMP (T4_IOCTL + 5) 3656b2bdd1SGireesh Nagabhushana #define T4_IOCTL_SGE_CONTEXT (T4_IOCTL + 6) 3756b2bdd1SGireesh Nagabhushana #define T4_IOCTL_DEVLOG (T4_IOCTL + 7) 3856b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_MEM (T4_IOCTL + 8) 3956b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_TID_TAB (T4_IOCTL + 9) 4056b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_MBOX (T4_IOCTL + 10) 4156b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_CIM_LA (T4_IOCTL + 11) 4256b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_CIM_QCFG (T4_IOCTL + 12) 4356b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_CIM_IBQ (T4_IOCTL + 13) 4456b2bdd1SGireesh Nagabhushana #define T4_IOCTL_GET_EDC (T4_IOCTL + 14) 455a9113e7SVishal Kulkarni #define T4_IOCTL_LOAD_FW (T4_IOCTL + 15) 46*7e6ad469SVishal Kulkarni #define T4_IOCTL_GET_CUDBG (T4_IOCTL + 16) 4756b2bdd1SGireesh Nagabhushana 4856b2bdd1SGireesh Nagabhushana enum { 4956b2bdd1SGireesh Nagabhushana T4_CTXT_EGRESS, 5056b2bdd1SGireesh Nagabhushana T4_CTXT_INGRESS, 5156b2bdd1SGireesh Nagabhushana T4_CTXT_FLM 5256b2bdd1SGireesh Nagabhushana }; 5356b2bdd1SGireesh Nagabhushana 5456b2bdd1SGireesh Nagabhushana struct t4_reg32_cmd { 5556b2bdd1SGireesh Nagabhushana uint32_t reg; 5656b2bdd1SGireesh Nagabhushana uint32_t value; 5756b2bdd1SGireesh Nagabhushana }; 5856b2bdd1SGireesh Nagabhushana 5956b2bdd1SGireesh Nagabhushana #define T4_REGDUMP_SIZE (160 * 1024) 60de483253SVishal Kulkarni #define T5_REGDUMP_SIZE (332 * 1024) 6156b2bdd1SGireesh Nagabhushana struct t4_regdump { 6256b2bdd1SGireesh Nagabhushana uint32_t version; 6356b2bdd1SGireesh Nagabhushana uint32_t len; 6456b2bdd1SGireesh Nagabhushana uint8_t *data; 6556b2bdd1SGireesh Nagabhushana }; 6656b2bdd1SGireesh Nagabhushana 6756b2bdd1SGireesh Nagabhushana struct t4_sge_context { 6856b2bdd1SGireesh Nagabhushana uint32_t version; 6956b2bdd1SGireesh Nagabhushana uint32_t mem_id; 7056b2bdd1SGireesh Nagabhushana uint32_t addr; 7156b2bdd1SGireesh Nagabhushana uint32_t len; 7256b2bdd1SGireesh Nagabhushana uint8_t *data; 7356b2bdd1SGireesh Nagabhushana }; 7456b2bdd1SGireesh Nagabhushana 7556b2bdd1SGireesh Nagabhushana struct t4_mem_range { 7656b2bdd1SGireesh Nagabhushana uint32_t addr; 7756b2bdd1SGireesh Nagabhushana uint32_t len; 7856b2bdd1SGireesh Nagabhushana uint32_t *data; 7956b2bdd1SGireesh Nagabhushana }; 8056b2bdd1SGireesh Nagabhushana 8156b2bdd1SGireesh Nagabhushana struct t4_tid_info { 8256b2bdd1SGireesh Nagabhushana uint32_t len; 8356b2bdd1SGireesh Nagabhushana uint32_t *data; 8456b2bdd1SGireesh Nagabhushana }; 8556b2bdd1SGireesh Nagabhushana 8656b2bdd1SGireesh Nagabhushana struct t4_mbox { 8756b2bdd1SGireesh Nagabhushana uint32_t len; 8856b2bdd1SGireesh Nagabhushana uint32_t *data; 8956b2bdd1SGireesh Nagabhushana }; 9056b2bdd1SGireesh Nagabhushana 9156b2bdd1SGireesh Nagabhushana struct t4_cim_la { 9256b2bdd1SGireesh Nagabhushana uint32_t len; 9356b2bdd1SGireesh Nagabhushana uint32_t *data; 9456b2bdd1SGireesh Nagabhushana }; 9556b2bdd1SGireesh Nagabhushana 9656b2bdd1SGireesh Nagabhushana struct t4_ibq { 9756b2bdd1SGireesh Nagabhushana uint32_t len; 9856b2bdd1SGireesh Nagabhushana uint32_t *data; 9956b2bdd1SGireesh Nagabhushana }; 10056b2bdd1SGireesh Nagabhushana 10156b2bdd1SGireesh Nagabhushana struct t4_edc { 10256b2bdd1SGireesh Nagabhushana uint32_t len; 10356b2bdd1SGireesh Nagabhushana uint32_t mem; 10456b2bdd1SGireesh Nagabhushana uint32_t pos; 10556b2bdd1SGireesh Nagabhushana char *data; 10656b2bdd1SGireesh Nagabhushana }; 10756b2bdd1SGireesh Nagabhushana 10856b2bdd1SGireesh Nagabhushana struct t4_cim_qcfg { 109de483253SVishal Kulkarni uint16_t base[14]; 110de483253SVishal Kulkarni uint16_t size[14]; 11156b2bdd1SGireesh Nagabhushana uint16_t thres[6]; 112de483253SVishal Kulkarni uint32_t stat[4 * (6 + 8)]; 113de483253SVishal Kulkarni uint32_t obq_wr[2 * (8)]; 114de483253SVishal Kulkarni uint32_t num_obq; 11556b2bdd1SGireesh Nagabhushana }; 11656b2bdd1SGireesh Nagabhushana 11756b2bdd1SGireesh Nagabhushana #define T4_DEVLOG_SIZE 32768 11856b2bdd1SGireesh Nagabhushana struct t4_devlog { 11956b2bdd1SGireesh Nagabhushana uint32_t len; 1205a9113e7SVishal Kulkarni uint32_t data[0]; 1215a9113e7SVishal Kulkarni }; 1225a9113e7SVishal Kulkarni 1235a9113e7SVishal Kulkarni struct t4_ldfw { 1245a9113e7SVishal Kulkarni uint32_t len; 1255a9113e7SVishal Kulkarni uint32_t data[0]; 12656b2bdd1SGireesh Nagabhushana }; 12756b2bdd1SGireesh Nagabhushana 128*7e6ad469SVishal Kulkarni struct t4_cudbg_dump { 129*7e6ad469SVishal Kulkarni uint8_t wr_flash; 130*7e6ad469SVishal Kulkarni uint8_t bitmap[16]; 131*7e6ad469SVishal Kulkarni uint32_t len; 132*7e6ad469SVishal Kulkarni uint32_t data[0]; 133*7e6ad469SVishal Kulkarni }; 134*7e6ad469SVishal Kulkarni 13556b2bdd1SGireesh Nagabhushana #ifdef __cplusplus 13656b2bdd1SGireesh Nagabhushana } 13756b2bdd1SGireesh Nagabhushana #endif 13856b2bdd1SGireesh Nagabhushana 13956b2bdd1SGireesh Nagabhushana #endif /* __T4NEX_H */ 140