ql_ioctl.h revision 250661
1250661Sdavidcs/* 2250661Sdavidcs * Copyright (c) 2013-2014 Qlogic Corporation 3250661Sdavidcs * All rights reserved. 4250661Sdavidcs * 5250661Sdavidcs * Redistribution and use in source and binary forms, with or without 6250661Sdavidcs * modification, are permitted provided that the following conditions 7250661Sdavidcs * are met: 8250661Sdavidcs * 9250661Sdavidcs * 1. Redistributions of source code must retain the above copyright 10250661Sdavidcs * notice, this list of conditions and the following disclaimer. 11250661Sdavidcs * 2. Redistributions in binary form must reproduce the above copyright 12250661Sdavidcs * notice, this list of conditions and the following disclaimer in the 13250661Sdavidcs * documentation and/or other materials provided with the distribution. 14250661Sdavidcs * 15250661Sdavidcs * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16250661Sdavidcs * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17250661Sdavidcs * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18250661Sdavidcs * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 19250661Sdavidcs * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20250661Sdavidcs * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21250661Sdavidcs * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22250661Sdavidcs * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23250661Sdavidcs * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24250661Sdavidcs * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25250661Sdavidcs * POSSIBILITY OF SUCH DAMAGE. 26250661Sdavidcs * 27250661Sdavidcs * $FreeBSD: head/sys/dev/qlxgbe/ql_ioctl.h 250661 2013-05-15 17:03:09Z davidcs $ 28250661Sdavidcs */ 29250661Sdavidcs/* 30250661Sdavidcs * File: ql_ioctl.h 31250661Sdavidcs * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656. 32250661Sdavidcs */ 33250661Sdavidcs 34250661Sdavidcs#ifndef _QL_IOCTL_H_ 35250661Sdavidcs#define _QL_IOCTL_H_ 36250661Sdavidcs 37250661Sdavidcs#include <sys/ioccom.h> 38250661Sdavidcs 39250661Sdavidcsstruct qla_reg_val { 40250661Sdavidcs uint16_t rd; 41250661Sdavidcs uint16_t direct; 42250661Sdavidcs uint32_t reg; 43250661Sdavidcs uint32_t val; 44250661Sdavidcs}; 45250661Sdavidcstypedef struct qla_reg_val qla_reg_val_t; 46250661Sdavidcs 47250661Sdavidcsstruct qla_rd_flash { 48250661Sdavidcs uint32_t off; 49250661Sdavidcs uint32_t data; 50250661Sdavidcs}; 51250661Sdavidcstypedef struct qla_rd_flash qla_rd_flash_t; 52250661Sdavidcs 53250661Sdavidcsstruct qla_wr_flash { 54250661Sdavidcs uint32_t off; 55250661Sdavidcs uint32_t size; 56250661Sdavidcs void *buffer; 57250661Sdavidcs uint32_t pattern; 58250661Sdavidcs}; 59250661Sdavidcstypedef struct qla_wr_flash qla_wr_flash_t; 60250661Sdavidcs 61250661Sdavidcsstruct qla_erase_flash { 62250661Sdavidcs uint32_t off; 63250661Sdavidcs uint32_t size; 64250661Sdavidcs}; 65250661Sdavidcstypedef struct qla_erase_flash qla_erase_flash_t; 66250661Sdavidcs 67250661Sdavidcsstruct qla_rd_pci_ids { 68250661Sdavidcs uint16_t ven_id; 69250661Sdavidcs uint16_t dev_id; 70250661Sdavidcs uint16_t subsys_ven_id; 71250661Sdavidcs uint16_t subsys_dev_id; 72250661Sdavidcs uint8_t rev_id; 73250661Sdavidcs}; 74250661Sdavidcstypedef struct qla_rd_pci_ids qla_rd_pci_ids_t; 75250661Sdavidcs 76250661Sdavidcs/* 77250661Sdavidcs * structure encapsulating the value to read/write from/to offchip (MS) memory 78250661Sdavidcs */ 79250661Sdavidcsstruct qla_offchip_mem_val { 80250661Sdavidcs uint16_t rd; 81250661Sdavidcs uint64_t off; 82250661Sdavidcs uint32_t data_lo; 83250661Sdavidcs uint32_t data_hi; 84250661Sdavidcs uint32_t data_ulo; 85250661Sdavidcs uint32_t data_uhi; 86250661Sdavidcs}; 87250661Sdavidcstypedef struct qla_offchip_mem_val qla_offchip_mem_val_t; 88250661Sdavidcs 89250661Sdavidcsstruct qla_rd_fw_dump { 90250661Sdavidcs uint16_t pci_func; 91250661Sdavidcs uint32_t template_size; 92250661Sdavidcs void *md_template; 93250661Sdavidcs}; 94250661Sdavidcstypedef struct qla_rd_fw_dump qla_rd_fw_dump_t; 95250661Sdavidcs 96250661Sdavidcs/* 97250661Sdavidcs * Read/Write Register 98250661Sdavidcs */ 99250661Sdavidcs#define QLA_RDWR_REG _IOWR('q', 1, qla_reg_val_t) 100250661Sdavidcs 101250661Sdavidcs/* 102250661Sdavidcs * Read Flash 103250661Sdavidcs */ 104250661Sdavidcs#define QLA_RD_FLASH _IOWR('q', 2, qla_rd_flash_t) 105250661Sdavidcs 106250661Sdavidcs/* 107250661Sdavidcs * Write Flash 108250661Sdavidcs */ 109250661Sdavidcs#define QLA_WR_FLASH _IOWR('q', 3, qla_wr_flash_t) 110250661Sdavidcs 111250661Sdavidcs/* 112250661Sdavidcs * Read Offchip (MS) Memory 113250661Sdavidcs */ 114250661Sdavidcs#define QLA_RDWR_MS_MEM _IOWR('q', 4, qla_offchip_mem_val_t) 115250661Sdavidcs 116250661Sdavidcs/* 117250661Sdavidcs * Erase Flash 118250661Sdavidcs */ 119250661Sdavidcs#define QLA_ERASE_FLASH _IOWR('q', 5, qla_erase_flash_t) 120250661Sdavidcs 121250661Sdavidcs/* 122250661Sdavidcs * Read PCI IDs 123250661Sdavidcs */ 124250661Sdavidcs#define QLA_RD_PCI_IDS _IOWR('q', 6, qla_rd_pci_ids_t) 125250661Sdavidcs 126250661Sdavidcs/* 127250661Sdavidcs * Read Minidump Template Size 128250661Sdavidcs */ 129250661Sdavidcs#define QLA_RD_FW_DUMP_SIZE _IOWR('q', 7, qla_rd_fw_dump_t) 130250661Sdavidcs 131250661Sdavidcs/* 132250661Sdavidcs * Read Minidump Template 133250661Sdavidcs */ 134250661Sdavidcs#define QLA_RD_FW_DUMP _IOWR('q', 8, qla_rd_fw_dump_t) 135250661Sdavidcs 136250661Sdavidcs#endif /* #ifndef _QL_IOCTL_H_ */ 137