1*e6550b3eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
25df6d737SAbhijeet Joglekar /*
35df6d737SAbhijeet Joglekar  * Copyright 2008 Cisco Systems, Inc.  All rights reserved.
45df6d737SAbhijeet Joglekar  * Copyright 2007 Nuova Systems, Inc.  All rights reserved.
55df6d737SAbhijeet Joglekar  */
65df6d737SAbhijeet Joglekar #ifndef _VNIC_RESOURCE_H_
75df6d737SAbhijeet Joglekar #define _VNIC_RESOURCE_H_
85df6d737SAbhijeet Joglekar 
95df6d737SAbhijeet Joglekar #define VNIC_RES_MAGIC		0x766E6963L	/* 'vnic' */
105df6d737SAbhijeet Joglekar #define VNIC_RES_VERSION	0x00000000L
115df6d737SAbhijeet Joglekar 
125df6d737SAbhijeet Joglekar /* vNIC resource types */
135df6d737SAbhijeet Joglekar enum vnic_res_type {
145df6d737SAbhijeet Joglekar 	RES_TYPE_EOL,			/* End-of-list */
155df6d737SAbhijeet Joglekar 	RES_TYPE_WQ,			/* Work queues */
165df6d737SAbhijeet Joglekar 	RES_TYPE_RQ,			/* Receive queues */
175df6d737SAbhijeet Joglekar 	RES_TYPE_CQ,			/* Completion queues */
185df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD1,
195df6d737SAbhijeet Joglekar 	RES_TYPE_NIC_CFG,		/* Enet NIC config registers */
205df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD2,
215df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD3,
225df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD4,
235df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD5,
245df6d737SAbhijeet Joglekar 	RES_TYPE_INTR_CTRL,		/* Interrupt ctrl table */
255df6d737SAbhijeet Joglekar 	RES_TYPE_INTR_TABLE,		/* MSI/MSI-X Interrupt table */
265df6d737SAbhijeet Joglekar 	RES_TYPE_INTR_PBA,		/* MSI/MSI-X PBA table */
275df6d737SAbhijeet Joglekar 	RES_TYPE_INTR_PBA_LEGACY,	/* Legacy intr status */
285df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD6,
295df6d737SAbhijeet Joglekar 	RES_TYPE_RSVD7,
305df6d737SAbhijeet Joglekar 	RES_TYPE_DEVCMD,		/* Device command region */
315df6d737SAbhijeet Joglekar 	RES_TYPE_PASS_THRU_PAGE,	/* Pass-thru page */
325ed827a6SSatish Kharat 	RES_TYPE_SUBVNIC,               /* subvnic resource type */
335ed827a6SSatish Kharat 	RES_TYPE_MQ_WQ,                 /* MQ Work queues */
345ed827a6SSatish Kharat 	RES_TYPE_MQ_RQ,                 /* MQ Receive queues */
355ed827a6SSatish Kharat 	RES_TYPE_MQ_CQ,                 /* MQ Completion queues */
365ed827a6SSatish Kharat 	RES_TYPE_DEPRECATED1,           /* Old version of devcmd 2 */
375ed827a6SSatish Kharat 	RES_TYPE_DEPRECATED2,           /* Old version of devcmd 2 */
385ed827a6SSatish Kharat 	RES_TYPE_DEVCMD2,               /* Device control region */
395df6d737SAbhijeet Joglekar 
405df6d737SAbhijeet Joglekar 	RES_TYPE_MAX,			/* Count of resource types */
415df6d737SAbhijeet Joglekar };
425df6d737SAbhijeet Joglekar 
435df6d737SAbhijeet Joglekar struct vnic_resource_header {
445df6d737SAbhijeet Joglekar 	u32 magic;
455df6d737SAbhijeet Joglekar 	u32 version;
465df6d737SAbhijeet Joglekar };
475df6d737SAbhijeet Joglekar 
485df6d737SAbhijeet Joglekar struct vnic_resource {
495df6d737SAbhijeet Joglekar 	u8 type;
505df6d737SAbhijeet Joglekar 	u8 bar;
515df6d737SAbhijeet Joglekar 	u8 pad[2];
525df6d737SAbhijeet Joglekar 	u32 bar_offset;
535df6d737SAbhijeet Joglekar 	u32 count;
545df6d737SAbhijeet Joglekar };
555df6d737SAbhijeet Joglekar 
565df6d737SAbhijeet Joglekar #endif /* _VNIC_RESOURCE_H_ */
57