101f2e4eaSScott Feldman /* 229046f9bSVasanthy Kolluri * Copyright 2008-2010 Cisco Systems, Inc. All rights reserved. 301f2e4eaSScott Feldman * Copyright 2007 Nuova Systems, Inc. All rights reserved. 401f2e4eaSScott Feldman * 501f2e4eaSScott Feldman * This program is free software; you may redistribute it and/or modify 601f2e4eaSScott Feldman * it under the terms of the GNU General Public License as published by 701f2e4eaSScott Feldman * the Free Software Foundation; version 2 of the License. 801f2e4eaSScott Feldman * 901f2e4eaSScott Feldman * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1001f2e4eaSScott Feldman * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1101f2e4eaSScott Feldman * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1201f2e4eaSScott Feldman * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 1301f2e4eaSScott Feldman * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 1401f2e4eaSScott Feldman * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 1501f2e4eaSScott Feldman * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1601f2e4eaSScott Feldman * SOFTWARE. 1701f2e4eaSScott Feldman * 1801f2e4eaSScott Feldman */ 1901f2e4eaSScott Feldman 2001f2e4eaSScott Feldman #ifndef _VNIC_RESOURCE_H_ 2101f2e4eaSScott Feldman #define _VNIC_RESOURCE_H_ 2201f2e4eaSScott Feldman 2301f2e4eaSScott Feldman #define VNIC_RES_MAGIC 0x766E6963L /* 'vnic' */ 2401f2e4eaSScott Feldman #define VNIC_RES_VERSION 0x00000000L 2590cf0b53SRoopa Prabhu #define MGMTVNIC_MAGIC 0x544d474dL /* 'MGMT' */ 2690cf0b53SRoopa Prabhu #define MGMTVNIC_VERSION 0x00000000L 2790cf0b53SRoopa Prabhu 2890cf0b53SRoopa Prabhu /* The MAC address assigned to the CFG vNIC is fixed. */ 2990cf0b53SRoopa Prabhu #define MGMTVNIC_MAC { 0x02, 0x00, 0x54, 0x4d, 0x47, 0x4d } 3001f2e4eaSScott Feldman 3101f2e4eaSScott Feldman /* vNIC resource types */ 3201f2e4eaSScott Feldman enum vnic_res_type { 3301f2e4eaSScott Feldman RES_TYPE_EOL, /* End-of-list */ 3401f2e4eaSScott Feldman RES_TYPE_WQ, /* Work queues */ 3501f2e4eaSScott Feldman RES_TYPE_RQ, /* Receive queues */ 3601f2e4eaSScott Feldman RES_TYPE_CQ, /* Completion queues */ 3701f2e4eaSScott Feldman RES_TYPE_RSVD1, 3801f2e4eaSScott Feldman RES_TYPE_NIC_CFG, /* Enet NIC config registers */ 3901f2e4eaSScott Feldman RES_TYPE_RSVD2, 4001f2e4eaSScott Feldman RES_TYPE_RSVD3, 4101f2e4eaSScott Feldman RES_TYPE_RSVD4, 4201f2e4eaSScott Feldman RES_TYPE_RSVD5, 4301f2e4eaSScott Feldman RES_TYPE_INTR_CTRL, /* Interrupt ctrl table */ 4401f2e4eaSScott Feldman RES_TYPE_INTR_TABLE, /* MSI/MSI-X Interrupt table */ 4501f2e4eaSScott Feldman RES_TYPE_INTR_PBA, /* MSI/MSI-X PBA table */ 4621fc578dSScott Feldman RES_TYPE_INTR_PBA_LEGACY, /* Legacy intr status */ 4701f2e4eaSScott Feldman RES_TYPE_RSVD6, 4801f2e4eaSScott Feldman RES_TYPE_RSVD7, 4901f2e4eaSScott Feldman RES_TYPE_DEVCMD, /* Device command region */ 5001f2e4eaSScott Feldman RES_TYPE_PASS_THRU_PAGE, /* Pass-thru page */ 51*fda3f52bSGovindarajulu Varadarajan RES_TYPE_SUBVNIC, /* subvnic resource type */ 52*fda3f52bSGovindarajulu Varadarajan RES_TYPE_MQ_WQ, /* MQ Work queues */ 53*fda3f52bSGovindarajulu Varadarajan RES_TYPE_MQ_RQ, /* MQ Receive queues */ 54*fda3f52bSGovindarajulu Varadarajan RES_TYPE_MQ_CQ, /* MQ Completion queues */ 55*fda3f52bSGovindarajulu Varadarajan RES_TYPE_DEPRECATED1, /* Old version of devcmd 2 */ 56*fda3f52bSGovindarajulu Varadarajan RES_TYPE_DEPRECATED2, /* Old version of devcmd 2 */ 57*fda3f52bSGovindarajulu Varadarajan RES_TYPE_DEVCMD2, /* Device control region */ 5801f2e4eaSScott Feldman 5901f2e4eaSScott Feldman RES_TYPE_MAX, /* Count of resource types */ 6001f2e4eaSScott Feldman }; 6101f2e4eaSScott Feldman 6201f2e4eaSScott Feldman struct vnic_resource_header { 6301f2e4eaSScott Feldman u32 magic; 6401f2e4eaSScott Feldman u32 version; 6501f2e4eaSScott Feldman }; 6601f2e4eaSScott Feldman 6790cf0b53SRoopa Prabhu struct mgmt_barmap_hdr { 6890cf0b53SRoopa Prabhu u32 magic; /* magic number */ 6990cf0b53SRoopa Prabhu u32 version; /* header format version */ 7090cf0b53SRoopa Prabhu u16 lif; /* loopback lif for mgmt frames */ 7190cf0b53SRoopa Prabhu u16 pci_slot; /* installed pci slot */ 7290cf0b53SRoopa Prabhu char serial[16]; /* card serial number */ 7390cf0b53SRoopa Prabhu }; 7490cf0b53SRoopa Prabhu 7501f2e4eaSScott Feldman struct vnic_resource { 7601f2e4eaSScott Feldman u8 type; 7701f2e4eaSScott Feldman u8 bar; 7801f2e4eaSScott Feldman u8 pad[2]; 7901f2e4eaSScott Feldman u32 bar_offset; 8001f2e4eaSScott Feldman u32 count; 8101f2e4eaSScott Feldman }; 8201f2e4eaSScott Feldman 8301f2e4eaSScott Feldman #endif /* _VNIC_RESOURCE_H_ */ 84