| /* |
| * Copyright (c) 2005-2009 Brocade Communications Systems, Inc. |
| * All rights reserved |
| * www.brocade.com |
| * |
| * Linux driver for Brocade Fibre Channel Host Bus Adapter. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License (GPL) Version 2 as |
| * published by the Free Software Foundation |
| * |
| * This program is distributed in the hope that it will be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * General Public License for more details. |
| */ |
| |
| /* |
| * bfi_cbreg.h crossbow host block register definitions |
| * |
| * !!! Do not edit. Auto generated. !!! |
| */ |
| |
| #ifndef __BFI_CBREG_H__ |
| #define __BFI_CBREG_H__ |
| |
| |
| #define HOSTFN0_INT_STATUS 0x00014000 |
| #define __HOSTFN0_INT_STATUS_LVL_MK 0x00f00000 |
| #define __HOSTFN0_INT_STATUS_LVL_SH 20 |
| #define __HOSTFN0_INT_STATUS_LVL(_v) ((_v) << __HOSTFN0_INT_STATUS_LVL_SH) |
| #define __HOSTFN0_INT_STATUS_P 0x000fffff |
| #define HOSTFN0_INT_MSK 0x00014004 |
| #define HOST_PAGE_NUM_FN0 0x00014008 |
| #define __HOST_PAGE_NUM_FN 0x000001ff |
| #define HOSTFN1_INT_STATUS 0x00014100 |
| #define __HOSTFN1_INT_STAT_LVL_MK 0x00f00000 |
| #define __HOSTFN1_INT_STAT_LVL_SH 20 |
| #define __HOSTFN1_INT_STAT_LVL(_v) ((_v) << __HOSTFN1_INT_STAT_LVL_SH) |
| #define __HOSTFN1_INT_STAT_P 0x000fffff |
| #define HOSTFN1_INT_MSK 0x00014104 |
| #define HOST_PAGE_NUM_FN1 0x00014108 |
| #define APP_PLL_400_CTL_REG 0x00014204 |
| #define __P_400_PLL_LOCK 0x80000000 |
| #define __APP_PLL_400_SRAM_USE_100MHZ 0x00100000 |
| #define __APP_PLL_400_RESET_TIMER_MK 0x000e0000 |
| #define __APP_PLL_400_RESET_TIMER_SH 17 |
| #define __APP_PLL_400_RESET_TIMER(_v) ((_v) << __APP_PLL_400_RESET_TIMER_SH) |
| #define __APP_PLL_400_LOGIC_SOFT_RESET 0x00010000 |
| #define __APP_PLL_400_CNTLMT0_1_MK 0x0000c000 |
| #define __APP_PLL_400_CNTLMT0_1_SH 14 |
| #define __APP_PLL_400_CNTLMT0_1(_v) ((_v) << __APP_PLL_400_CNTLMT0_1_SH) |
| #define __APP_PLL_400_JITLMT0_1_MK 0x00003000 |
| #define __APP_PLL_400_JITLMT0_1_SH 12 |
| #define __APP_PLL_400_JITLMT0_1(_v) ((_v) << __APP_PLL_400_JITLMT0_1_SH) |
| #define __APP_PLL_400_HREF 0x00000800 |
| #define __APP_PLL_400_HDIV 0x00000400 |
| #define __APP_PLL_400_P0_1_MK 0x00000300 |
| #define __APP_PLL_400_P0_1_SH 8 |
| #define __APP_PLL_400_P0_1(_v) ((_v) << __APP_PLL_400_P0_1_SH) |
| #define __APP_PLL_400_Z0_2_MK 0x000000e0 |
| #define __APP_PLL_400_Z0_2_SH 5 |
| #define __APP_PLL_400_Z0_2(_v) ((_v) << __APP_PLL_400_Z0_2_SH) |
| #define __APP_PLL_400_RSEL200500 0x00000010 |
| #define __APP_PLL_400_ENARST 0x00000008 |
| #define __APP_PLL_400_BYPASS 0x00000004 |
| #define __APP_PLL_400_LRESETN 0x00000002 |
| #define __APP_PLL_400_ENABLE 0x00000001 |
| #define APP_PLL_212_CTL_REG 0x00014208 |
| #define __P_212_PLL_LOCK 0x80000000 |
| #define __APP_PLL_212_RESET_TIMER_MK 0x000e0000 |
| #define __APP_PLL_212_RESET_TIMER_SH 17 |
| #define __APP_PLL_212_RESET_TIMER(_v) ((_v) << __APP_PLL_212_RESET_TIMER_SH) |
| #define __APP_PLL_212_LOGIC_SOFT_RESET 0x00010000 |
| #define __APP_PLL_212_CNTLMT0_1_MK 0x0000c000 |
| #define __APP_PLL_212_CNTLMT0_1_SH 14 |
| #define __APP_PLL_212_CNTLMT0_1(_v) ((_v) << __APP_PLL_212_CNTLMT0_1_SH) |
| #define __APP_PLL_212_JITLMT0_1_MK 0x00003000 |
| #define __APP_PLL_212_JITLMT0_1_SH 12 |
| #define __APP_PLL_212_JITLMT0_1(_v) ((_v) << __APP_PLL_212_JITLMT0_1_SH) |
| #define __APP_PLL_212_HREF 0x00000800 |
| #define __APP_PLL_212_HDIV 0x00000400 |
| #define __APP_PLL_212_P0_1_MK 0x00000300 |
| #define __APP_PLL_212_P0_1_SH 8 |
| #define __APP_PLL_212_P0_1(_v) ((_v) << __APP_PLL_212_P0_1_SH) |
| #define __APP_PLL_212_Z0_2_MK 0x000000e0 |
| #define __APP_PLL_212_Z0_2_SH 5 |
| #define __APP_PLL_212_Z0_2(_v) ((_v) << __APP_PLL_212_Z0_2_SH) |
| #define __APP_PLL_212_RSEL200500 0x00000010 |
| #define __APP_PLL_212_ENARST 0x00000008 |
| #define __APP_PLL_212_BYPASS 0x00000004 |
| #define __APP_PLL_212_LRESETN 0x00000002 |
| #define __APP_PLL_212_ENABLE 0x00000001 |
| #define HOST_SEM0_REG 0x00014230 |
| #define __HOST_SEMAPHORE 0x00000001 |
| #define HOST_SEM1_REG 0x00014234 |
| #define HOST_SEM2_REG 0x00014238 |
| #define HOST_SEM3_REG 0x0001423c |
| #define HOST_SEM0_INFO_REG 0x00014240 |
| #define HOST_SEM1_INFO_REG 0x00014244 |
| #define HOST_SEM2_INFO_REG 0x00014248 |
| #define HOST_SEM3_INFO_REG 0x0001424c |
| #define HOSTFN0_LPU0_CMD_STAT 0x00019000 |
| #define __HOSTFN0_LPU0_MBOX_INFO_MK 0xfffffffe |
| #define __HOSTFN0_LPU0_MBOX_INFO_SH 1 |
| #define __HOSTFN0_LPU0_MBOX_INFO(_v) ((_v) << __HOSTFN0_LPU0_MBOX_INFO_SH) |
| #define __HOSTFN0_LPU0_MBOX_CMD_STATUS 0x00000001 |
| #define LPU0_HOSTFN0_CMD_STAT 0x00019008 |
| #define __LPU0_HOSTFN0_MBOX_INFO_MK 0xfffffffe |
| #define __LPU0_HOSTFN0_MBOX_INFO_SH 1 |
| #define __LPU0_HOSTFN0_MBOX_INFO(_v) ((_v) << __LPU0_HOSTFN0_MBOX_INFO_SH) |
| #define __LPU0_HOSTFN0_MBOX_CMD_STATUS 0x00000001 |
| #define HOSTFN1_LPU1_CMD_STAT 0x00019014 |
| #define __HOSTFN1_LPU1_MBOX_INFO_MK 0xfffffffe |
| #define __HOSTFN1_LPU1_MBOX_INFO_SH 1 |
| #define __HOSTFN1_LPU1_MBOX_INFO(_v) ((_v) << __HOSTFN1_LPU1_MBOX_INFO_SH) |
| #define __HOSTFN1_LPU1_MBOX_CMD_STATUS 0x00000001 |
| #define LPU1_HOSTFN1_CMD_STAT 0x0001901c |
| #define __LPU1_HOSTFN1_MBOX_INFO_MK 0xfffffffe |
| #define __LPU1_HOSTFN1_MBOX_INFO_SH 1 |
| #define __LPU1_HOSTFN1_MBOX_INFO(_v) ((_v) << __LPU1_HOSTFN1_MBOX_INFO_SH) |
| #define __LPU1_HOSTFN1_MBOX_CMD_STATUS 0x00000001 |
| #define CPE_Q0_DEPTH 0x00010014 |
| #define CPE_Q0_PI 0x0001001c |
| #define CPE_Q0_CI 0x00010020 |
| #define CPE_Q1_DEPTH 0x00010034 |
| #define CPE_Q1_PI 0x0001003c |
| #define CPE_Q1_CI 0x00010040 |
| #define CPE_Q2_DEPTH 0x00010054 |
| #define CPE_Q2_PI 0x0001005c |
| #define CPE_Q2_CI 0x00010060 |
| #define CPE_Q3_DEPTH 0x00010074 |
| #define CPE_Q3_PI 0x0001007c |
| #define CPE_Q3_CI 0x00010080 |
| #define CPE_Q4_DEPTH 0x00010094 |
| #define CPE_Q4_PI 0x0001009c |
| #define CPE_Q4_CI 0x000100a0 |
| #define CPE_Q5_DEPTH 0x000100b4 |
| #define CPE_Q5_PI 0x000100bc |
| #define CPE_Q5_CI 0x000100c0 |
| #define CPE_Q6_DEPTH 0x000100d4 |
| #define CPE_Q6_PI 0x000100dc |
| #define CPE_Q6_CI 0x000100e0 |
| #define CPE_Q7_DEPTH 0x000100f4 |
| #define CPE_Q7_PI 0x000100fc |
| #define CPE_Q7_CI 0x00010100 |
| #define RME_Q0_DEPTH 0x00011014 |
| #define RME_Q0_PI 0x0001101c |
| #define RME_Q0_CI 0x00011020 |
| #define RME_Q1_DEPTH 0x00011034 |
| #define RME_Q1_PI 0x0001103c |
| #define RME_Q1_CI 0x00011040 |
| #define RME_Q2_DEPTH 0x00011054 |
| #define RME_Q2_PI 0x0001105c |
| #define RME_Q2_CI 0x00011060 |
| #define RME_Q3_DEPTH 0x00011074 |
| #define RME_Q3_PI 0x0001107c |
| #define RME_Q3_CI 0x00011080 |
| #define RME_Q4_DEPTH 0x00011094 |
| #define RME_Q4_PI 0x0001109c |
| #define RME_Q4_CI 0x000110a0 |
| #define RME_Q5_DEPTH 0x000110b4 |
| #define RME_Q5_PI 0x000110bc |
| #define RME_Q5_CI 0x000110c0 |
| #define RME_Q6_DEPTH 0x000110d4 |
| #define RME_Q6_PI 0x000110dc |
| #define RME_Q6_CI 0x000110e0 |
| #define RME_Q7_DEPTH 0x000110f4 |
| #define RME_Q7_PI 0x000110fc |
| #define RME_Q7_CI 0x00011100 |
| #define PSS_CTL_REG 0x00018800 |
| #define __PSS_I2C_CLK_DIV_MK 0x00030000 |
| #define __PSS_I2C_CLK_DIV_SH 16 |
| #define __PSS_I2C_CLK_DIV(_v) ((_v) << __PSS_I2C_CLK_DIV_SH) |
| #define __PSS_LMEM_INIT_DONE 0x00001000 |
| #define __PSS_LMEM_RESET 0x00000200 |
| #define __PSS_LMEM_INIT_EN 0x00000100 |
| #define __PSS_LPU1_RESET 0x00000002 |
| #define __PSS_LPU0_RESET 0x00000001 |
| |
| |
| /* |
| * These definitions are either in error/missing in spec. Its auto-generated |
| * from hard coded values in regparse.pl. |
| */ |
| #define __EMPHPOST_AT_4G_MK_FIX 0x0000001c |
| #define __EMPHPOST_AT_4G_SH_FIX 0x00000002 |
| #define __EMPHPRE_AT_4G_FIX 0x00000003 |
| #define __SFP_TXRATE_EN_FIX 0x00000100 |
| #define __SFP_RXRATE_EN_FIX 0x00000080 |
| |
| |
| /* |
| * These register definitions are auto-generated from hard coded values |
| * in regparse.pl. |
| */ |
| #define HOSTFN0_LPU_MBOX0_0 0x00019200 |
| #define HOSTFN1_LPU_MBOX0_8 0x00019260 |
| #define LPU_HOSTFN0_MBOX0_0 0x00019280 |
| #define LPU_HOSTFN1_MBOX0_8 0x000192e0 |
| |
| |
| /* |
| * These register mapping definitions are auto-generated from mapping tables |
| * in regparse.pl. |
| */ |
| #define BFA_IOC0_HBEAT_REG HOST_SEM0_INFO_REG |
| #define BFA_IOC0_STATE_REG HOST_SEM1_INFO_REG |
| #define BFA_IOC1_HBEAT_REG HOST_SEM2_INFO_REG |
| #define BFA_IOC1_STATE_REG HOST_SEM3_INFO_REG |
| #define BFA_FW_USE_COUNT HOST_SEM4_INFO_REG |
| |
| #define CPE_Q_DEPTH(__n) \ |
| (CPE_Q0_DEPTH + (__n) * (CPE_Q1_DEPTH - CPE_Q0_DEPTH)) |
| #define CPE_Q_PI(__n) \ |
| (CPE_Q0_PI + (__n) * (CPE_Q1_PI - CPE_Q0_PI)) |
| #define CPE_Q_CI(__n) \ |
| (CPE_Q0_CI + (__n) * (CPE_Q1_CI - CPE_Q0_CI)) |
| #define RME_Q_DEPTH(__n) \ |
| (RME_Q0_DEPTH + (__n) * (RME_Q1_DEPTH - RME_Q0_DEPTH)) |
| #define RME_Q_PI(__n) \ |
| (RME_Q0_PI + (__n) * (RME_Q1_PI - RME_Q0_PI)) |
| #define RME_Q_CI(__n) \ |
| (RME_Q0_CI + (__n) * (RME_Q1_CI - RME_Q0_CI)) |
| |
| #define CPE_Q_NUM(__fn, __q) (((__fn) << 2) + (__q)) |
| #define RME_Q_NUM(__fn, __q) (((__fn) << 2) + (__q)) |
| #define CPE_Q_MASK(__q) ((__q) & 0x3) |
| #define RME_Q_MASK(__q) ((__q) & 0x3) |
| |
| |
| /* |
| * PCI MSI-X vector defines |
| */ |
| enum { |
| BFA_MSIX_CPE_Q0 = 0, |
| BFA_MSIX_CPE_Q1 = 1, |
| BFA_MSIX_CPE_Q2 = 2, |
| BFA_MSIX_CPE_Q3 = 3, |
| BFA_MSIX_CPE_Q4 = 4, |
| BFA_MSIX_CPE_Q5 = 5, |
| BFA_MSIX_CPE_Q6 = 6, |
| BFA_MSIX_CPE_Q7 = 7, |
| BFA_MSIX_RME_Q0 = 8, |
| BFA_MSIX_RME_Q1 = 9, |
| BFA_MSIX_RME_Q2 = 10, |
| BFA_MSIX_RME_Q3 = 11, |
| BFA_MSIX_RME_Q4 = 12, |
| BFA_MSIX_RME_Q5 = 13, |
| BFA_MSIX_RME_Q6 = 14, |
| BFA_MSIX_RME_Q7 = 15, |
| BFA_MSIX_ERR_EMC = 16, |
| BFA_MSIX_ERR_LPU0 = 17, |
| BFA_MSIX_ERR_LPU1 = 18, |
| BFA_MSIX_ERR_PSS = 19, |
| BFA_MSIX_MBOX_LPU0 = 20, |
| BFA_MSIX_MBOX_LPU1 = 21, |
| BFA_MSIX_CB_MAX = 22, |
| }; |
| |
| /* |
| * And corresponding host interrupt status bit field defines |
| */ |
| #define __HFN_INT_CPE_Q0 0x00000001U |
| #define __HFN_INT_CPE_Q1 0x00000002U |
| #define __HFN_INT_CPE_Q2 0x00000004U |
| #define __HFN_INT_CPE_Q3 0x00000008U |
| #define __HFN_INT_CPE_Q4 0x00000010U |
| #define __HFN_INT_CPE_Q5 0x00000020U |
| #define __HFN_INT_CPE_Q6 0x00000040U |
| #define __HFN_INT_CPE_Q7 0x00000080U |
| #define __HFN_INT_RME_Q0 0x00000100U |
| #define __HFN_INT_RME_Q1 0x00000200U |
| #define __HFN_INT_RME_Q2 0x00000400U |
| #define __HFN_INT_RME_Q3 0x00000800U |
| #define __HFN_INT_RME_Q4 0x00001000U |
| #define __HFN_INT_RME_Q5 0x00002000U |
| #define __HFN_INT_RME_Q6 0x00004000U |
| #define __HFN_INT_RME_Q7 0x00008000U |
| #define __HFN_INT_ERR_EMC 0x00010000U |
| #define __HFN_INT_ERR_LPU0 0x00020000U |
| #define __HFN_INT_ERR_LPU1 0x00040000U |
| #define __HFN_INT_ERR_PSS 0x00080000U |
| #define __HFN_INT_MBOX_LPU0 0x00100000U |
| #define __HFN_INT_MBOX_LPU1 0x00200000U |
| #define __HFN_INT_MBOX1_LPU0 0x00400000U |
| #define __HFN_INT_MBOX1_LPU1 0x00800000U |
| #define __HFN_INT_CPE_MASK 0x000000ffU |
| #define __HFN_INT_RME_MASK 0x0000ff00U |
| |
| |
| /* |
| * crossbow memory map. |
| */ |
| #define PSS_SMEM_PAGE_START 0x8000 |
| #define PSS_SMEM_PGNUM(_pg0, _ma) ((_pg0) + ((_ma) >> 15)) |
| #define PSS_SMEM_PGOFF(_ma) ((_ma) & 0x7fff) |
| |
| /* |
| * End of crossbow memory map |
| */ |
| |
| |
| #endif /* __BFI_CBREG_H__ */ |
| |