xref: /openbmc/linux/drivers/scsi/snic/vnic_resource.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*dfb99b05SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2*dfb99b05SThomas Gleixner /* Copyright 2014 Cisco Systems, Inc.  All rights reserved. */
3c8806b6cSNarsimhulu Musini 
4c8806b6cSNarsimhulu Musini #ifndef _VNIC_RESOURCE_H_
5c8806b6cSNarsimhulu Musini #define _VNIC_RESOURCE_H_
6c8806b6cSNarsimhulu Musini 
7c8806b6cSNarsimhulu Musini #define VNIC_RES_MAGIC		0x766E6963L	/* 'vnic' */
8c8806b6cSNarsimhulu Musini #define VNIC_RES_VERSION	0x00000000L
9c8806b6cSNarsimhulu Musini 
10c8806b6cSNarsimhulu Musini /* vNIC resource types */
11c8806b6cSNarsimhulu Musini enum vnic_res_type {
12c8806b6cSNarsimhulu Musini 	RES_TYPE_EOL,			/* End-of-list */
13c8806b6cSNarsimhulu Musini 	RES_TYPE_WQ,			/* Work queues */
14c8806b6cSNarsimhulu Musini 	RES_TYPE_RQ,			/* Receive queues */
15c8806b6cSNarsimhulu Musini 	RES_TYPE_CQ,			/* Completion queues */
16c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD1,
17c8806b6cSNarsimhulu Musini 	RES_TYPE_NIC_CFG,		/* Enet NIC config registers */
18c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD2,
19c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD3,
20c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD4,
21c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD5,
22c8806b6cSNarsimhulu Musini 	RES_TYPE_INTR_CTRL,		/* Interrupt ctrl table */
23c8806b6cSNarsimhulu Musini 	RES_TYPE_INTR_TABLE,		/* MSI/MSI-X Interrupt table */
24c8806b6cSNarsimhulu Musini 	RES_TYPE_INTR_PBA,		/* MSI/MSI-X PBA table */
25c8806b6cSNarsimhulu Musini 	RES_TYPE_INTR_PBA_LEGACY,	/* Legacy intr status */
26c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD6,
27c8806b6cSNarsimhulu Musini 	RES_TYPE_RSVD7,
28c8806b6cSNarsimhulu Musini 	RES_TYPE_DEVCMD,		/* Device command region */
29c8806b6cSNarsimhulu Musini 	RES_TYPE_PASS_THRU_PAGE,	/* Pass-thru page */
30c8806b6cSNarsimhulu Musini 	RES_TYPE_SUBVNIC,		/* subvnic resource type */
31c8806b6cSNarsimhulu Musini 	RES_TYPE_MQ_WQ,			/* MQ Work queues */
32c8806b6cSNarsimhulu Musini 	RES_TYPE_MQ_RQ,			/* MQ Receive queues */
33c8806b6cSNarsimhulu Musini 	RES_TYPE_MQ_CQ,			/* MQ Completion queues */
34c8806b6cSNarsimhulu Musini 	RES_TYPE_DEPRECATED1,		/* Old version of devcmd 2 */
35c8806b6cSNarsimhulu Musini 	RES_TYPE_DEPRECATED2,		/* Old version of devcmd 2 */
36c8806b6cSNarsimhulu Musini 	RES_TYPE_DEVCMD2,		/* Device control region */
37c8806b6cSNarsimhulu Musini 
38c8806b6cSNarsimhulu Musini 	RES_TYPE_MAX,			/* Count of resource types */
39c8806b6cSNarsimhulu Musini };
40c8806b6cSNarsimhulu Musini 
41c8806b6cSNarsimhulu Musini struct vnic_resource_header {
42c8806b6cSNarsimhulu Musini 	u32 magic;
43c8806b6cSNarsimhulu Musini 	u32 version;
44c8806b6cSNarsimhulu Musini };
45c8806b6cSNarsimhulu Musini 
46c8806b6cSNarsimhulu Musini struct vnic_resource {
47c8806b6cSNarsimhulu Musini 	u8 type;
48c8806b6cSNarsimhulu Musini 	u8 bar;
49c8806b6cSNarsimhulu Musini 	u8 pad[2];
50c8806b6cSNarsimhulu Musini 	u32 bar_offset;
51c8806b6cSNarsimhulu Musini 	u32 count;
52c8806b6cSNarsimhulu Musini };
53c8806b6cSNarsimhulu Musini 
54c8806b6cSNarsimhulu Musini #endif /* _VNIC_RESOURCE_H_ */
55