#ifndef NVM_FCOE_CFG_H
#define NVM_FCOE_CFG_H
#define NUM_OF_FCOE_TARGET_PER_PF 8
#define NUM_OF_FCOE_PF_SUPPORTED 4
union nvm_fc_world_wide_address
{
u8 byte[8];
u32 value[2];
};
union nvm_fc_lun
{
u8 byte[8];
u32 value[2];
};
struct nvm_fcoe_generic
{
u32 ctrl_flags;
#define NVM_FCOE_CFG_GEN_WORLD_LOGIN 0x00000001
#define NVM_FCOE_CFG_GEN_SELECTIVE_LOGIN 0x00000002
#define NVM_FCOE_CFG_GEN_FIP_VLAN_DISCOVERY 0x00000004
u32 retry_count;
#define NVM_FCOE_CFG_GEN_FABRIC_LOGIN_RETRY_MASK 0x000000FF
#define NVM_FCOE_CFG_GEN_FABRIC_LOGIN_RETRY_OFFSET 0
#define NVM_FCOE_CFG_GEN_TARGET_LOGIN_RETRY_MASK 0x0000FF00
#define NVM_FCOE_CFG_GEN_TARGET_LOGIN_RETRY_OFFSET 8
u32 rsvd[30];
};
struct nvm_fcoe_initiator
{
u32 fip_vlan;
#define NVM_FCOE_CFG_INITIATOR_FIP_DEFAULT_VLAN_MASK 0x00000FFF
#define NVM_FCOE_CFG_INITIATOR_FIP_DEFAULT_VLAN_OFFSET 0
union nvm_fc_world_wide_address node_name;
union nvm_fc_world_wide_address port_name;
u32 rsvd[27];
};
struct nvm_fcoe_target
{
u32 ctrl_flags;
#define NVM_FCOE_CFG_TARGET_ENABLED 0x00000001
union nvm_fc_world_wide_address port_name;
union nvm_fc_lun lun;
u32 rsvd[27];
};
struct nvm_fcoe_block
{
u32 id;
#define NVM_FCOE_CFG_BLK_MAPPED_PF_ID_MASK 0x0000000F
#define NVM_FCOE_CFG_BLK_MAPPED_PF_ID_OFFSET 0
#define NVM_FCOE_CFG_BLK_CTRL_FLAG_MASK 0x00000FF0
#define NVM_FCOE_CFG_BLK_CTRL_FLAG_OFFSET 4
#define NVM_FCOE_CFG_BLK_CTRL_FLAG_IS_NOT_EMPTY (1 << 0)
#define NVM_FCOE_CFG_BLK_CTRL_FLAG_PF_MAPPED (1 << 1)
u32 rsvd_1[8];
struct nvm_fcoe_generic generic;
struct nvm_fcoe_initiator initiator;
struct nvm_fcoe_target target[NUM_OF_FCOE_TARGET_PER_PF];
u32 rsvd[183];
};
struct nvm_fcoe_cfg
{
u32 id;
#define NVM_FCOE_CFG_BLK_VERSION_MINOR_MASK 0x000000FF
#define NVM_FCOE_CFG_BLK_VERSION_MAJOR_MASK 0x0000FF00
#define NVM_FCOE_CFG_BLK_SIGNATURE_MASK 0xFFFF0000
#define NVM_FCOE_CFG_BLK_SIGNATURE 0x46430000
#define NVM_FCOE_CFG_BLK_VERSION_MAJOR 0
#define NVM_FCOE_CFG_BLK_VERSION_MINOR 6
#define NVM_FCOE_CFG_BLK_VERSION (NVM_FCOE_CFG_BLK_VERSION_MAJOR << 8) | NVM_FCOE_CFG_BLK_VERSION_MINOR;
struct nvm_fcoe_block block[NUM_OF_FCOE_PF_SUPPORTED];
};
#endif