| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: if_bnx.c,v 1.38 2010/12/11 14:19:29 pgoyette Exp $ */ | | 1 | /* $NetBSD: if_bnx.c,v 1.39 2010/12/11 14:28:38 martin Exp $ */ |
2 | /* $OpenBSD: if_bnx.c,v 1.85 2009/11/09 14:32:41 dlg Exp $ */ | | 2 | /* $OpenBSD: if_bnx.c,v 1.85 2009/11/09 14:32:41 dlg Exp $ */ |
3 | | | 3 | |
4 | /*- | | 4 | /*- |
5 | * Copyright (c) 2006 Broadcom Corporation | | 5 | * Copyright (c) 2006 Broadcom Corporation |
6 | * David Christensen <davidch@broadcom.com>. All rights reserved. | | 6 | * David Christensen <davidch@broadcom.com>. All rights reserved. |
7 | * | | 7 | * |
8 | * Redistribution and use in source and binary forms, with or without | | 8 | * Redistribution and use in source and binary forms, with or without |
9 | * modification, are permitted provided that the following conditions | | 9 | * modification, are permitted provided that the following conditions |
10 | * are met: | | 10 | * are met: |
11 | * | | 11 | * |
12 | * 1. Redistributions of source code must retain the above copyright | | 12 | * 1. Redistributions of source code must retain the above copyright |
13 | * notice, this list of conditions and the following disclaimer. | | 13 | * notice, this list of conditions and the following disclaimer. |
14 | * 2. Redistributions in binary form must reproduce the above copyright | | 14 | * 2. Redistributions in binary form must reproduce the above copyright |
| @@ -25,27 +25,27 @@ | | | @@ -25,27 +25,27 @@ |
25 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | | 25 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
26 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | | 26 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
27 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 27 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
28 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 28 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
29 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 29 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
30 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | | 30 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
31 | * THE POSSIBILITY OF SUCH DAMAGE. | | 31 | * THE POSSIBILITY OF SUCH DAMAGE. |
32 | */ | | 32 | */ |
33 | | | 33 | |
34 | #include <sys/cdefs.h> | | 34 | #include <sys/cdefs.h> |
35 | #if 0 | | 35 | #if 0 |
36 | __FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.3 2006/04/13 14:12:26 ru Exp $"); | | 36 | __FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.3 2006/04/13 14:12:26 ru Exp $"); |
37 | #endif | | 37 | #endif |
38 | __KERNEL_RCSID(0, "$NetBSD: if_bnx.c,v 1.38 2010/12/11 14:19:29 pgoyette Exp $"); | | 38 | __KERNEL_RCSID(0, "$NetBSD: if_bnx.c,v 1.39 2010/12/11 14:28:38 martin Exp $"); |
39 | | | 39 | |
40 | /* | | 40 | /* |
41 | * The following controllers are supported by this driver: | | 41 | * The following controllers are supported by this driver: |
42 | * BCM5706C A2, A3 | | 42 | * BCM5706C A2, A3 |
43 | * BCM5706S A2, A3 | | 43 | * BCM5706S A2, A3 |
44 | * BCM5708C B1, B2 | | 44 | * BCM5708C B1, B2 |
45 | * BCM5708S B1, B2 | | 45 | * BCM5708S B1, B2 |
46 | * BCM5709C A1, C0 | | 46 | * BCM5709C A1, C0 |
47 | * BCM5716 C0 | | 47 | * BCM5716 C0 |
48 | * | | 48 | * |
49 | * The following controllers are not supported by this driver: | | 49 | * The following controllers are not supported by this driver: |
50 | * | | 50 | * |
51 | * BCM5706C A0, A1 | | 51 | * BCM5706C A0, A1 |
| @@ -3095,32 +3095,32 @@ bnx_init_context(struct bnx_softc *sc) | | | @@ -3095,32 +3095,32 @@ bnx_init_context(struct bnx_softc *sc) |
3095 | } | | 3095 | } |
3096 | } else { | | 3096 | } else { |
3097 | u_int32_t vcid_addr, offset; | | 3097 | u_int32_t vcid_addr, offset; |
3098 | | | 3098 | |
3099 | /* | | 3099 | /* |
3100 | * For the 5706/5708, context memory is local to | | 3100 | * For the 5706/5708, context memory is local to |
3101 | * the controller, so initialize the controller | | 3101 | * the controller, so initialize the controller |
3102 | * context memory. | | 3102 | * context memory. |
3103 | */ | | 3103 | */ |
3104 | | | 3104 | |
3105 | vcid_addr = GET_CID_ADDR(96); | | 3105 | vcid_addr = GET_CID_ADDR(96); |
3106 | while (vcid_addr) { | | 3106 | while (vcid_addr) { |
3107 | | | 3107 | |
3108 | vcid_addr -= PHY_BNX_CTX_SIZE; | | 3108 | vcid_addr -= BNX_PHY_CTX_SIZE; |
3109 | | | 3109 | |
3110 | REG_WR(sc, BNX_CTX_VIRT_ADDR, 0); | | 3110 | REG_WR(sc, BNX_CTX_VIRT_ADDR, 0); |
3111 | REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr); | | 3111 | REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr); |
3112 | | | 3112 | |
3113 | for(offset = 0; offset < PHY_BNX_CTX_SIZE; offset += 4) { | | 3113 | for(offset = 0; offset < BNX_PHY_CTX_SIZE; offset += 4) { |
3114 | CTX_WR(sc, 0x00, offset, 0); | | 3114 | CTX_WR(sc, 0x00, offset, 0); |
3115 | } | | 3115 | } |
3116 | | | 3116 | |
3117 | REG_WR(sc, BNX_CTX_VIRT_ADDR, vcid_addr); | | 3117 | REG_WR(sc, BNX_CTX_VIRT_ADDR, vcid_addr); |
3118 | REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr); | | 3118 | REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr); |
3119 | } | | 3119 | } |
3120 | } | | 3120 | } |
3121 | } | | 3121 | } |
3122 | | | 3122 | |
3123 | /****************************************************************************/ | | 3123 | /****************************************************************************/ |
3124 | /* Fetch the permanent MAC address of the controller. */ | | 3124 | /* Fetch the permanent MAC address of the controller. */ |
3125 | /* */ | | 3125 | /* */ |
3126 | /* Returns: */ | | 3126 | /* Returns: */ |
| @@ -3401,27 +3401,27 @@ bnx_chipinit(struct bnx_softc *sc) | | | @@ -3401,27 +3401,27 @@ bnx_chipinit(struct bnx_softc *sc) |
3401 | val = REG_RD(sc, BNX_MQ_CONFIG); | | 3401 | val = REG_RD(sc, BNX_MQ_CONFIG); |
3402 | val &= ~BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE; | | 3402 | val &= ~BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE; |
3403 | val |= BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_256; | | 3403 | val |= BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_256; |
3404 | | | 3404 | |
3405 | /* Enable bins used on the 5709. */ | | 3405 | /* Enable bins used on the 5709. */ |
3406 | if (BNX_CHIP_NUM(sc) == BNX_CHIP_NUM_5709) { | | 3406 | if (BNX_CHIP_NUM(sc) == BNX_CHIP_NUM_5709) { |
3407 | val |= BNX_MQ_CONFIG_BIN_MQ_MODE; | | 3407 | val |= BNX_MQ_CONFIG_BIN_MQ_MODE; |
3408 | if (BNX_CHIP_ID(sc) == BNX_CHIP_ID_5709_A1) | | 3408 | if (BNX_CHIP_ID(sc) == BNX_CHIP_ID_5709_A1) |
3409 | val |= BNX_MQ_CONFIG_HALT_DIS; | | 3409 | val |= BNX_MQ_CONFIG_HALT_DIS; |
3410 | } | | 3410 | } |
3411 | | | 3411 | |
3412 | REG_WR(sc, BNX_MQ_CONFIG, val); | | 3412 | REG_WR(sc, BNX_MQ_CONFIG, val); |
3413 | | | 3413 | |
3414 | val = 0x10000 + (MAX_CID_CNT * MB_KERNEL_BNX_CTX_SIZE); | | 3414 | val = 0x10000 + (MAX_CID_CNT * BNX_MB_KERNEL_CTX_SIZE); |
3415 | REG_WR(sc, BNX_MQ_KNL_BYP_WIND_START, val); | | 3415 | REG_WR(sc, BNX_MQ_KNL_BYP_WIND_START, val); |
3416 | REG_WR(sc, BNX_MQ_KNL_WIND_END, val); | | 3416 | REG_WR(sc, BNX_MQ_KNL_WIND_END, val); |
3417 | | | 3417 | |
3418 | val = (BCM_PAGE_BITS - 8) << 24; | | 3418 | val = (BCM_PAGE_BITS - 8) << 24; |
3419 | REG_WR(sc, BNX_RV2P_CONFIG, val); | | 3419 | REG_WR(sc, BNX_RV2P_CONFIG, val); |
3420 | | | 3420 | |
3421 | /* Configure page size. */ | | 3421 | /* Configure page size. */ |
3422 | val = REG_RD(sc, BNX_TBDR_CONFIG); | | 3422 | val = REG_RD(sc, BNX_TBDR_CONFIG); |
3423 | val &= ~BNX_TBDR_CONFIG_PAGE_SIZE; | | 3423 | val &= ~BNX_TBDR_CONFIG_PAGE_SIZE; |
3424 | val |= (BCM_PAGE_BITS - 8) << 24 | 0x40; | | 3424 | val |= (BCM_PAGE_BITS - 8) << 24 | 0x40; |
3425 | REG_WR(sc, BNX_TBDR_CONFIG, val); | | 3425 | REG_WR(sc, BNX_TBDR_CONFIG, val); |
3426 | | | 3426 | |
3427 | #if 0 | | 3427 | #if 0 |