/* * This file is part of the Chelsio FCoE driver for Linux. * * Copyright (c) 2008-2013 Chelsio Communications, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * OpenIB.org BSD license below: * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * 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 __CSIO_HW_CHIP_H__ #define __CSIO_HW_CHIP_H__ #include "csio_defs.h" /* Define MACRO values */ #define CSIO_HW_T5 … #define CSIO_T5_FCOE_ASIC … #define CSIO_HW_T6 … #define CSIO_T6_FCOE_ASIC … #define CSIO_HW_CHIP_MASK … #define T5_REGMAP_SIZE … #define FW_FNAME_T5 … #define FW_CFG_NAME_T5 … #define FW_FNAME_T6 … #define FW_CFG_NAME_T6 … #define CHELSIO_CHIP_CODE(version, revision) … #define CHELSIO_CHIP_FPGA … #define CHELSIO_CHIP_VERSION(code) … #define CHELSIO_CHIP_RELEASE(code) … #define CHELSIO_T5 … #define CHELSIO_T6 … enum chip_type { … }; static inline int csio_is_t5(uint16_t chip) { … } static inline int csio_is_t6(uint16_t chip) { … } /* Define MACRO DEFINITIONS */ #define CSIO_DEVICE(devid, idx) … #include "t4fw_api.h" #include "t4fw_version.h" #define FW_VERSION(chip) … #define FW_INTFVER(chip, intf) … struct fw_info { … }; /* Declare ENUMS */ enum { … }; enum { … }; /* Slow path handlers */ struct intr_info { … }; /* T4/T5 Chip specific ops */ struct csio_hw; struct csio_hw_chip_ops { … }; extern struct csio_hw_chip_ops t5_ops; #endif /* #ifndef __CSIO_HW_CHIP_H__ */