| /* |
| * Copyright 2008-2010 Cisco Systems, Inc. All rights reserved. |
| * Copyright 2007 Nuova Systems, Inc. All rights reserved. |
| * |
| * This program is free software; you may redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; version 2 of the License. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| * SOFTWARE. |
| * |
| */ |
| |
| #ifndef _VNIC_RESOURCE_H_ |
| #define _VNIC_RESOURCE_H_ |
| |
| #define VNIC_RES_MAGIC 0x766E6963L /* 'vnic' */ |
| #define VNIC_RES_VERSION 0x00000000L |
| #define MGMTVNIC_MAGIC 0x544d474dL /* 'MGMT' */ |
| #define MGMTVNIC_VERSION 0x00000000L |
| |
| /* The MAC address assigned to the CFG vNIC is fixed. */ |
| #define MGMTVNIC_MAC { 0x02, 0x00, 0x54, 0x4d, 0x47, 0x4d } |
| |
| /* vNIC resource types */ |
| enum vnic_res_type { |
| RES_TYPE_EOL, /* End-of-list */ |
| RES_TYPE_WQ, /* Work queues */ |
| RES_TYPE_RQ, /* Receive queues */ |
| RES_TYPE_CQ, /* Completion queues */ |
| RES_TYPE_RSVD1, |
| RES_TYPE_NIC_CFG, /* Enet NIC config registers */ |
| RES_TYPE_RSVD2, |
| RES_TYPE_RSVD3, |
| RES_TYPE_RSVD4, |
| RES_TYPE_RSVD5, |
| RES_TYPE_INTR_CTRL, /* Interrupt ctrl table */ |
| RES_TYPE_INTR_TABLE, /* MSI/MSI-X Interrupt table */ |
| RES_TYPE_INTR_PBA, /* MSI/MSI-X PBA table */ |
| RES_TYPE_INTR_PBA_LEGACY, /* Legacy intr status */ |
| RES_TYPE_RSVD6, |
| RES_TYPE_RSVD7, |
| RES_TYPE_DEVCMD, /* Device command region */ |
| RES_TYPE_PASS_THRU_PAGE, /* Pass-thru page */ |
| RES_TYPE_SUBVNIC, /* subvnic resource type */ |
| RES_TYPE_MQ_WQ, /* MQ Work queues */ |
| RES_TYPE_MQ_RQ, /* MQ Receive queues */ |
| RES_TYPE_MQ_CQ, /* MQ Completion queues */ |
| RES_TYPE_DEPRECATED1, /* Old version of devcmd 2 */ |
| RES_TYPE_DEPRECATED2, /* Old version of devcmd 2 */ |
| RES_TYPE_DEVCMD2, /* Device control region */ |
| |
| RES_TYPE_MAX, /* Count of resource types */ |
| }; |
| |
| struct vnic_resource_header { |
| u32 magic; |
| u32 version; |
| }; |
| |
| struct mgmt_barmap_hdr { |
| u32 magic; /* magic number */ |
| u32 version; /* header format version */ |
| u16 lif; /* loopback lif for mgmt frames */ |
| u16 pci_slot; /* installed pci slot */ |
| char serial[16]; /* card serial number */ |
| }; |
| |
| struct vnic_resource { |
| u8 type; |
| u8 bar; |
| u8 pad[2]; |
| u32 bar_offset; |
| u32 count; |
| }; |
| |
| #endif /* _VNIC_RESOURCE_H_ */ |