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