1dee1ad47SJeff Kirsher /******************************************************************************* 2dee1ad47SJeff Kirsher 3dee1ad47SJeff Kirsher Intel 10 Gigabit PCI Express Linux driver 494971820SDon Skidmore Copyright(c) 1999 - 2012 Intel Corporation. 5dee1ad47SJeff Kirsher 6dee1ad47SJeff Kirsher This program is free software; you can redistribute it and/or modify it 7dee1ad47SJeff Kirsher under the terms and conditions of the GNU General Public License, 8dee1ad47SJeff Kirsher version 2, as published by the Free Software Foundation. 9dee1ad47SJeff Kirsher 10dee1ad47SJeff Kirsher This program is distributed in the hope it will be useful, but WITHOUT 11dee1ad47SJeff Kirsher ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12dee1ad47SJeff Kirsher FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13dee1ad47SJeff Kirsher more details. 14dee1ad47SJeff Kirsher 15dee1ad47SJeff Kirsher You should have received a copy of the GNU General Public License along with 16dee1ad47SJeff Kirsher this program; if not, write to the Free Software Foundation, Inc., 17dee1ad47SJeff Kirsher 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 18dee1ad47SJeff Kirsher 19dee1ad47SJeff Kirsher The full GNU General Public License is included in this distribution in 20dee1ad47SJeff Kirsher the file called "COPYING". 21dee1ad47SJeff Kirsher 22dee1ad47SJeff Kirsher Contact Information: 23dee1ad47SJeff Kirsher e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 24dee1ad47SJeff Kirsher Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 25dee1ad47SJeff Kirsher 26dee1ad47SJeff Kirsher *******************************************************************************/ 27dee1ad47SJeff Kirsher 28dee1ad47SJeff Kirsher #ifndef _IXGBE_FCOE_H 29dee1ad47SJeff Kirsher #define _IXGBE_FCOE_H 30dee1ad47SJeff Kirsher 31dee1ad47SJeff Kirsher #include <scsi/fc/fc_fs.h> 32dee1ad47SJeff Kirsher #include <scsi/fc/fc_fcoe.h> 33dee1ad47SJeff Kirsher 34dee1ad47SJeff Kirsher /* shift bits within STAT fo FCSTAT */ 35dee1ad47SJeff Kirsher #define IXGBE_RXDADV_FCSTAT_SHIFT 4 36dee1ad47SJeff Kirsher 37dee1ad47SJeff Kirsher /* ddp user buffer */ 38dee1ad47SJeff Kirsher #define IXGBE_BUFFCNT_MAX 256 /* 8 bits bufcnt */ 39dee1ad47SJeff Kirsher #define IXGBE_FCPTR_ALIGN 16 40dee1ad47SJeff Kirsher #define IXGBE_FCPTR_MAX (IXGBE_BUFFCNT_MAX * sizeof(dma_addr_t)) 41dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_4KB 0x0 42dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_8KB 0x1 43dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_16KB 0x2 44dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_64KB 0x3 45dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_MAX 65536 /* 64KB max */ 46dee1ad47SJeff Kirsher #define IXGBE_FCBUFF_MIN 4096 /* 4KB min */ 47dee1ad47SJeff Kirsher #define IXGBE_FCOE_DDP_MAX 512 /* 9 bits xid */ 48dee1ad47SJeff Kirsher 49dee1ad47SJeff Kirsher /* Default traffic class to use for FCoE */ 50dee1ad47SJeff Kirsher #define IXGBE_FCOE_DEFTC 3 51dee1ad47SJeff Kirsher 52dee1ad47SJeff Kirsher /* fcerr */ 53dee1ad47SJeff Kirsher #define IXGBE_FCERR_BADCRC 0x00100000 54dee1ad47SJeff Kirsher 55dee1ad47SJeff Kirsher /* FCoE DDP for target mode */ 56dee1ad47SJeff Kirsher #define __IXGBE_FCOE_TARGET 1 57dee1ad47SJeff Kirsher 58dee1ad47SJeff Kirsher struct ixgbe_fcoe_ddp { 59dee1ad47SJeff Kirsher int len; 60dee1ad47SJeff Kirsher u32 err; 61dee1ad47SJeff Kirsher unsigned int sgc; 62dee1ad47SJeff Kirsher struct scatterlist *sgl; 63dee1ad47SJeff Kirsher dma_addr_t udp; 64dee1ad47SJeff Kirsher u64 *udl; 65dee1ad47SJeff Kirsher struct pci_pool *pool; 66dee1ad47SJeff Kirsher }; 67dee1ad47SJeff Kirsher 68dee1ad47SJeff Kirsher struct ixgbe_fcoe { 69dee1ad47SJeff Kirsher struct pci_pool **pool; 70dee1ad47SJeff Kirsher atomic_t refcnt; 71dee1ad47SJeff Kirsher spinlock_t lock; 72dee1ad47SJeff Kirsher struct ixgbe_fcoe_ddp ddp[IXGBE_FCOE_DDP_MAX]; 73dee1ad47SJeff Kirsher unsigned char *extra_ddp_buffer; 74dee1ad47SJeff Kirsher dma_addr_t extra_ddp_buffer_dma; 75dee1ad47SJeff Kirsher unsigned long mode; 767b859ebcSAmir Hanania u64 __percpu *pcpu_noddp; 777b859ebcSAmir Hanania u64 __percpu *pcpu_noddp_ext_buff; 78dee1ad47SJeff Kirsher #ifdef CONFIG_IXGBE_DCB 79dee1ad47SJeff Kirsher u8 up; 80dee1ad47SJeff Kirsher #endif 81dee1ad47SJeff Kirsher }; 82dee1ad47SJeff Kirsher 83dee1ad47SJeff Kirsher #endif /* _IXGBE_FCOE_H */ 84