1*14b24e2bSVaishali Kulkarni /* 2*14b24e2bSVaishali Kulkarni * CDDL HEADER START 3*14b24e2bSVaishali Kulkarni * 4*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the 5*14b24e2bSVaishali Kulkarni * Common Development and Distribution License, v.1, (the "License"). 6*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License. 7*14b24e2bSVaishali Kulkarni * 8*14b24e2bSVaishali Kulkarni * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*14b24e2bSVaishali Kulkarni * or http://opensource.org/licenses/CDDL-1.0. 10*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions 11*14b24e2bSVaishali Kulkarni * and limitations under the License. 12*14b24e2bSVaishali Kulkarni * 13*14b24e2bSVaishali Kulkarni * When distributing Covered Code, include this CDDL HEADER in each 14*14b24e2bSVaishali Kulkarni * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*14b24e2bSVaishali Kulkarni * If applicable, add the following below this CDDL HEADER, with the 16*14b24e2bSVaishali Kulkarni * fields enclosed by brackets "[]" replaced with your own identifying 17*14b24e2bSVaishali Kulkarni * information: Portions Copyright [yyyy] [name of copyright owner] 18*14b24e2bSVaishali Kulkarni * 19*14b24e2bSVaishali Kulkarni * CDDL HEADER END 20*14b24e2bSVaishali Kulkarni */ 21*14b24e2bSVaishali Kulkarni 22*14b24e2bSVaishali Kulkarni /* 23*14b24e2bSVaishali Kulkarni * Copyright 2014-2017 Cavium, Inc. 24*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the Common Development 25*14b24e2bSVaishali Kulkarni * and Distribution License, v.1, (the "License"). 26*14b24e2bSVaishali Kulkarni 27*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License. 28*14b24e2bSVaishali Kulkarni 29*14b24e2bSVaishali Kulkarni * You can obtain a copy of the License at available 30*14b24e2bSVaishali Kulkarni * at http://opensource.org/licenses/CDDL-1.0 31*14b24e2bSVaishali Kulkarni 32*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions and 33*14b24e2bSVaishali Kulkarni * limitations under the License. 34*14b24e2bSVaishali Kulkarni */ 35*14b24e2bSVaishali Kulkarni 36*14b24e2bSVaishali Kulkarni /**************************************************************************** 37*14b24e2bSVaishali Kulkarni * 38*14b24e2bSVaishali Kulkarni * Name: nvm_fcoe_cfg.h 39*14b24e2bSVaishali Kulkarni * 40*14b24e2bSVaishali Kulkarni * Description: NVM config file for FCoE configurations 41*14b24e2bSVaishali Kulkarni * 42*14b24e2bSVaishali Kulkarni * Created: 04/11/2016 43*14b24e2bSVaishali Kulkarni * 44*14b24e2bSVaishali Kulkarni * Version: 0.3 45*14b24e2bSVaishali Kulkarni * 46*14b24e2bSVaishali Kulkarni ****************************************************************************/ 47*14b24e2bSVaishali Kulkarni 48*14b24e2bSVaishali Kulkarni #ifndef NVM_FCOE_CFG_H 49*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_H 50*14b24e2bSVaishali Kulkarni 51*14b24e2bSVaishali Kulkarni #define NUM_OF_FCOE_TARGET_PER_PF 8 52*14b24e2bSVaishali Kulkarni #define NUM_OF_FCOE_PF_SUPPORTED 4 // One PF per Port 53*14b24e2bSVaishali Kulkarni 54*14b24e2bSVaishali Kulkarni union nvm_fc_world_wide_address 55*14b24e2bSVaishali Kulkarni { 56*14b24e2bSVaishali Kulkarni u8 byte[8]; 57*14b24e2bSVaishali Kulkarni u32 value[2]; 58*14b24e2bSVaishali Kulkarni }; 59*14b24e2bSVaishali Kulkarni 60*14b24e2bSVaishali Kulkarni union nvm_fc_lun 61*14b24e2bSVaishali Kulkarni { 62*14b24e2bSVaishali Kulkarni u8 byte[8]; 63*14b24e2bSVaishali Kulkarni u32 value[2]; 64*14b24e2bSVaishali Kulkarni }; 65*14b24e2bSVaishali Kulkarni 66*14b24e2bSVaishali Kulkarni 67*14b24e2bSVaishali Kulkarni 68*14b24e2bSVaishali Kulkarni struct nvm_fcoe_generic 69*14b24e2bSVaishali Kulkarni { 70*14b24e2bSVaishali Kulkarni u32 ctrl_flags; /* 0x0 */ 71*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_WORLD_LOGIN 0x00000001 72*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_SELECTIVE_LOGIN 0x00000002 73*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_FIP_VLAN_DISCOVERY 0x00000004 74*14b24e2bSVaishali Kulkarni 75*14b24e2bSVaishali Kulkarni u32 retry_count; /* 0x4 */ 76*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_FABRIC_LOGIN_RETRY_MASK 0x000000FF 77*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_FABRIC_LOGIN_RETRY_OFFSET 0 78*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_TARGET_LOGIN_RETRY_MASK 0x0000FF00 79*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_GEN_TARGET_LOGIN_RETRY_OFFSET 8 80*14b24e2bSVaishali Kulkarni 81*14b24e2bSVaishali Kulkarni u32 rsvd[30]; /* 0x8 */ 82*14b24e2bSVaishali Kulkarni }; 83*14b24e2bSVaishali Kulkarni 84*14b24e2bSVaishali Kulkarni struct nvm_fcoe_initiator 85*14b24e2bSVaishali Kulkarni { 86*14b24e2bSVaishali Kulkarni u32 fip_vlan; /* 0x0 */ 87*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_INITIATOR_FIP_DEFAULT_VLAN_MASK 0x00000FFF 88*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_INITIATOR_FIP_DEFAULT_VLAN_OFFSET 0 89*14b24e2bSVaishali Kulkarni 90*14b24e2bSVaishali Kulkarni union nvm_fc_world_wide_address node_name; /* 0x4 */ 91*14b24e2bSVaishali Kulkarni union nvm_fc_world_wide_address port_name; /* 0xC */ 92*14b24e2bSVaishali Kulkarni 93*14b24e2bSVaishali Kulkarni u32 rsvd[27]; /* 0x14 */ 94*14b24e2bSVaishali Kulkarni }; 95*14b24e2bSVaishali Kulkarni 96*14b24e2bSVaishali Kulkarni struct nvm_fcoe_target 97*14b24e2bSVaishali Kulkarni { 98*14b24e2bSVaishali Kulkarni u32 ctrl_flags; /* 0x0 */ 99*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_TARGET_ENABLED 0x00000001 100*14b24e2bSVaishali Kulkarni 101*14b24e2bSVaishali Kulkarni union nvm_fc_world_wide_address port_name; /* 0x4 */ 102*14b24e2bSVaishali Kulkarni union nvm_fc_lun lun; /* 0xC */ 103*14b24e2bSVaishali Kulkarni 104*14b24e2bSVaishali Kulkarni u32 rsvd[27]; /* 0x14 */ 105*14b24e2bSVaishali Kulkarni }; 106*14b24e2bSVaishali Kulkarni 107*14b24e2bSVaishali Kulkarni struct nvm_fcoe_block 108*14b24e2bSVaishali Kulkarni { 109*14b24e2bSVaishali Kulkarni u32 id; /* 0x0 */ 110*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_MAPPED_PF_ID_MASK 0x0000000F 111*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_MAPPED_PF_ID_OFFSET 0 112*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_CTRL_FLAG_MASK 0x00000FF0 113*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_CTRL_FLAG_OFFSET 4 114*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_CTRL_FLAG_IS_NOT_EMPTY (1 << 0) 115*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_CTRL_FLAG_PF_MAPPED (1 << 1) 116*14b24e2bSVaishali Kulkarni 117*14b24e2bSVaishali Kulkarni u32 rsvd_1[8]; /* 0x4 */ 118*14b24e2bSVaishali Kulkarni 119*14b24e2bSVaishali Kulkarni struct nvm_fcoe_generic generic; /* 0x24 */ 120*14b24e2bSVaishali Kulkarni struct nvm_fcoe_initiator initiator; /* 0xA4 */ 121*14b24e2bSVaishali Kulkarni struct nvm_fcoe_target target[NUM_OF_FCOE_TARGET_PER_PF]; /* 0x124 */ 122*14b24e2bSVaishali Kulkarni 123*14b24e2bSVaishali Kulkarni u32 rsvd[183]; /* 0x524 */ 124*14b24e2bSVaishali Kulkarni /* total size - 0x800 - 2048 bytes - 2K blocks */ 125*14b24e2bSVaishali Kulkarni }; 126*14b24e2bSVaishali Kulkarni 127*14b24e2bSVaishali Kulkarni struct nvm_fcoe_cfg 128*14b24e2bSVaishali Kulkarni { 129*14b24e2bSVaishali Kulkarni u32 id; /* 0x0 */ 130*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_VERSION_MINOR_MASK 0x000000FF 131*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_VERSION_MAJOR_MASK 0x0000FF00 132*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_SIGNATURE_MASK 0xFFFF0000 133*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_SIGNATURE 0x46430000 // FC - FCoE Config 134*14b24e2bSVaishali Kulkarni 135*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_VERSION_MAJOR 0 136*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_VERSION_MINOR 6 137*14b24e2bSVaishali Kulkarni #define NVM_FCOE_CFG_BLK_VERSION (NVM_FCOE_CFG_BLK_VERSION_MAJOR << 8) | NVM_FCOE_CFG_BLK_VERSION_MINOR; 138*14b24e2bSVaishali Kulkarni 139*14b24e2bSVaishali Kulkarni struct nvm_fcoe_block block[NUM_OF_FCOE_PF_SUPPORTED]; /* 0x4 */ 140*14b24e2bSVaishali Kulkarni 141*14b24e2bSVaishali Kulkarni }; 142*14b24e2bSVaishali Kulkarni 143*14b24e2bSVaishali Kulkarni #endif 144*14b24e2bSVaishali Kulkarni 145