xref: /freebsd/sys/dev/qlxgbe/ql_ioctl.h (revision 6a62bec0)
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