1f10a77bbSDavid C Somayajulu /* 235291c22SDavid C Somayajulu * Copyright (c) 2013-2016 Qlogic Corporation 3f10a77bbSDavid C Somayajulu * All rights reserved. 4f10a77bbSDavid C Somayajulu * 5f10a77bbSDavid C Somayajulu * Redistribution and use in source and binary forms, with or without 6f10a77bbSDavid C Somayajulu * modification, are permitted provided that the following conditions 7f10a77bbSDavid C Somayajulu * are met: 8f10a77bbSDavid C Somayajulu * 9f10a77bbSDavid C Somayajulu * 1. Redistributions of source code must retain the above copyright 10f10a77bbSDavid C Somayajulu * notice, this list of conditions and the following disclaimer. 11f10a77bbSDavid C Somayajulu * 2. Redistributions in binary form must reproduce the above copyright 12f10a77bbSDavid C Somayajulu * notice, this list of conditions and the following disclaimer in the 13f10a77bbSDavid C Somayajulu * documentation and/or other materials provided with the distribution. 14f10a77bbSDavid C Somayajulu * 15f10a77bbSDavid C Somayajulu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16f10a77bbSDavid C Somayajulu * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17f10a77bbSDavid C Somayajulu * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18f10a77bbSDavid C Somayajulu * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 19f10a77bbSDavid C Somayajulu * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20f10a77bbSDavid C Somayajulu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21f10a77bbSDavid C Somayajulu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22f10a77bbSDavid C Somayajulu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23f10a77bbSDavid C Somayajulu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24f10a77bbSDavid C Somayajulu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25f10a77bbSDavid C Somayajulu * POSSIBILITY OF SUCH DAMAGE. 26f10a77bbSDavid C Somayajulu * 27f10a77bbSDavid C Somayajulu * $FreeBSD$ 28f10a77bbSDavid C Somayajulu */ 29f10a77bbSDavid C Somayajulu /* 30f10a77bbSDavid C Somayajulu * File: ql_ioctl.h 31f10a77bbSDavid C Somayajulu * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656. 32f10a77bbSDavid C Somayajulu */ 33f10a77bbSDavid C Somayajulu 34f10a77bbSDavid C Somayajulu #ifndef _QL_IOCTL_H_ 35f10a77bbSDavid C Somayajulu #define _QL_IOCTL_H_ 36f10a77bbSDavid C Somayajulu 37f10a77bbSDavid C Somayajulu #include <sys/ioccom.h> 38f10a77bbSDavid C Somayajulu 39f10a77bbSDavid C Somayajulu struct qla_reg_val { 40f10a77bbSDavid C Somayajulu uint16_t rd; 41f10a77bbSDavid C Somayajulu uint16_t direct; 42f10a77bbSDavid C Somayajulu uint32_t reg; 43f10a77bbSDavid C Somayajulu uint32_t val; 44f10a77bbSDavid C Somayajulu }; 45f10a77bbSDavid C Somayajulu typedef struct qla_reg_val qla_reg_val_t; 46f10a77bbSDavid C Somayajulu 47f10a77bbSDavid C Somayajulu struct qla_rd_flash { 48f10a77bbSDavid C Somayajulu uint32_t off; 49f10a77bbSDavid C Somayajulu uint32_t data; 50f10a77bbSDavid C Somayajulu }; 51f10a77bbSDavid C Somayajulu typedef struct qla_rd_flash qla_rd_flash_t; 52f10a77bbSDavid C Somayajulu 53f10a77bbSDavid C Somayajulu struct qla_wr_flash { 54f10a77bbSDavid C Somayajulu uint32_t off; 55f10a77bbSDavid C Somayajulu uint32_t size; 56f10a77bbSDavid C Somayajulu void *buffer; 57f10a77bbSDavid C Somayajulu uint32_t pattern; 58f10a77bbSDavid C Somayajulu }; 59f10a77bbSDavid C Somayajulu typedef struct qla_wr_flash qla_wr_flash_t; 60f10a77bbSDavid C Somayajulu 61f10a77bbSDavid C Somayajulu struct qla_erase_flash { 62f10a77bbSDavid C Somayajulu uint32_t off; 63f10a77bbSDavid C Somayajulu uint32_t size; 64f10a77bbSDavid C Somayajulu }; 65f10a77bbSDavid C Somayajulu typedef struct qla_erase_flash qla_erase_flash_t; 66f10a77bbSDavid C Somayajulu 67f10a77bbSDavid C Somayajulu struct qla_rd_pci_ids { 68f10a77bbSDavid C Somayajulu uint16_t ven_id; 69f10a77bbSDavid C Somayajulu uint16_t dev_id; 70f10a77bbSDavid C Somayajulu uint16_t subsys_ven_id; 71f10a77bbSDavid C Somayajulu uint16_t subsys_dev_id; 72f10a77bbSDavid C Somayajulu uint8_t rev_id; 73f10a77bbSDavid C Somayajulu }; 74f10a77bbSDavid C Somayajulu typedef struct qla_rd_pci_ids qla_rd_pci_ids_t; 75f10a77bbSDavid C Somayajulu 76f10a77bbSDavid C Somayajulu /* 77f10a77bbSDavid C Somayajulu * structure encapsulating the value to read/write from/to offchip (MS) memory 78f10a77bbSDavid C Somayajulu */ 79f10a77bbSDavid C Somayajulu struct qla_offchip_mem_val { 80f10a77bbSDavid C Somayajulu uint16_t rd; 81f10a77bbSDavid C Somayajulu uint64_t off; 82f10a77bbSDavid C Somayajulu uint32_t data_lo; 83f10a77bbSDavid C Somayajulu uint32_t data_hi; 84f10a77bbSDavid C Somayajulu uint32_t data_ulo; 85f10a77bbSDavid C Somayajulu uint32_t data_uhi; 86f10a77bbSDavid C Somayajulu }; 87f10a77bbSDavid C Somayajulu typedef struct qla_offchip_mem_val qla_offchip_mem_val_t; 88f10a77bbSDavid C Somayajulu 89f10a77bbSDavid C Somayajulu struct qla_rd_fw_dump { 90f10a77bbSDavid C Somayajulu uint16_t pci_func; 916a62bec0SDavid C Somayajulu uint32_t minidump_size; 926a62bec0SDavid C Somayajulu void *minidump; 93f10a77bbSDavid C Somayajulu }; 94f10a77bbSDavid C Somayajulu typedef struct qla_rd_fw_dump qla_rd_fw_dump_t; 95f10a77bbSDavid C Somayajulu 96f10a77bbSDavid C Somayajulu /* 97f10a77bbSDavid C Somayajulu * Read/Write Register 98f10a77bbSDavid C Somayajulu */ 99f10a77bbSDavid C Somayajulu #define QLA_RDWR_REG _IOWR('q', 1, qla_reg_val_t) 100f10a77bbSDavid C Somayajulu 101f10a77bbSDavid C Somayajulu /* 102f10a77bbSDavid C Somayajulu * Read Flash 103f10a77bbSDavid C Somayajulu */ 104f10a77bbSDavid C Somayajulu #define QLA_RD_FLASH _IOWR('q', 2, qla_rd_flash_t) 105f10a77bbSDavid C Somayajulu 106f10a77bbSDavid C Somayajulu /* 107f10a77bbSDavid C Somayajulu * Write Flash 108f10a77bbSDavid C Somayajulu */ 109f10a77bbSDavid C Somayajulu #define QLA_WR_FLASH _IOWR('q', 3, qla_wr_flash_t) 110f10a77bbSDavid C Somayajulu 111f10a77bbSDavid C Somayajulu /* 112f10a77bbSDavid C Somayajulu * Read Offchip (MS) Memory 113f10a77bbSDavid C Somayajulu */ 114f10a77bbSDavid C Somayajulu #define QLA_RDWR_MS_MEM _IOWR('q', 4, qla_offchip_mem_val_t) 115f10a77bbSDavid C Somayajulu 116f10a77bbSDavid C Somayajulu /* 117f10a77bbSDavid C Somayajulu * Erase Flash 118f10a77bbSDavid C Somayajulu */ 119f10a77bbSDavid C Somayajulu #define QLA_ERASE_FLASH _IOWR('q', 5, qla_erase_flash_t) 120f10a77bbSDavid C Somayajulu 121f10a77bbSDavid C Somayajulu /* 122f10a77bbSDavid C Somayajulu * Read PCI IDs 123f10a77bbSDavid C Somayajulu */ 124f10a77bbSDavid C Somayajulu #define QLA_RD_PCI_IDS _IOWR('q', 6, qla_rd_pci_ids_t) 125f10a77bbSDavid C Somayajulu 126f10a77bbSDavid C Somayajulu /* 127f10a77bbSDavid C Somayajulu * Read Minidump Template Size 128f10a77bbSDavid C Somayajulu */ 129f10a77bbSDavid C Somayajulu #define QLA_RD_FW_DUMP_SIZE _IOWR('q', 7, qla_rd_fw_dump_t) 130f10a77bbSDavid C Somayajulu 131f10a77bbSDavid C Somayajulu /* 132f10a77bbSDavid C Somayajulu * Read Minidump Template 133f10a77bbSDavid C Somayajulu */ 134f10a77bbSDavid C Somayajulu #define QLA_RD_FW_DUMP _IOWR('q', 8, qla_rd_fw_dump_t) 135f10a77bbSDavid C Somayajulu 136f10a77bbSDavid C Somayajulu #endif /* #ifndef _QL_IOCTL_H_ */ 137