Print this page
Just the 5719/5720 changes

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/bge/bge_hw.h
          +++ new/usr/src/uts/common/io/bge/bge_hw.h
↓ open down ↓ 15 lines elided ↑ open up ↑
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24   */
  25   25  
       26 +/*
       27 + * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
       28 + */
       29 +
  26   30  #ifndef _BGE_HW_H
  27   31  #define _BGE_HW_H
  28   32  
  29   33  #ifdef __cplusplus
  30   34  extern "C" {
  31   35  #endif
  32   36  
  33   37  #include <sys/types.h>
  34   38  
  35   39  
↓ open down ↓ 25 lines elided ↑ open up ↑
  61   65  #define DEVICE_ID_5704C                 0x1648
  62   66  #define DEVICE_ID_5704S                 0x16a8
  63   67  #define DEVICE_ID_5704                  0x1649
  64   68  #define DEVICE_ID_5705C                 0x1653
  65   69  #define DEVICE_ID_5705_2                0x1654
  66   70  #define DEVICE_ID_5717                  0x1655
  67   71  #define DEVICE_ID_5718                  0x1656
  68   72  #define DEVICE_ID_5724                  0x165c
  69   73  #define DEVICE_ID_5705M                 0x165d
  70   74  #define DEVICE_ID_5705MA3               0x165e
       75 +#define DEVICE_ID_5719                  0x1657
       76 +#define DEVICE_ID_5720                  0x165f
  71   77  #define DEVICE_ID_5705F                 0x166e
  72   78  #define DEVICE_ID_5780                  0x166a
  73   79  #define DEVICE_ID_5782                  0x1696
  74   80  #define DEVICE_ID_5784M                 0x1698
  75   81  #define DEVICE_ID_5785                  0x1699
  76   82  #define DEVICE_ID_5787                  0x169b
  77   83  #define DEVICE_ID_5787M                 0x1693
  78   84  #define DEVICE_ID_5788                  0x169c
  79   85  #define DEVICE_ID_5789                  0x169d
  80   86  #define DEVICE_ID_5751                  0x1677
↓ open down ↓ 16 lines elided ↑ open up ↑
  97  103  #define DEVICE_ID_5761E                 0x1680
  98  104  #define DEVICE_ID_5761S                 0x1688
  99  105  #define DEVICE_ID_5761SE                0x1689
 100  106  #define DEVICE_ID_5764                  0x1684
 101  107  #define DEVICE_ID_5906                  0x1712
 102  108  #define DEVICE_ID_5906M                 0x1713
 103  109  #define DEVICE_ID_57760                 0x1690
 104  110  #define DEVICE_ID_57780                 0x1692
 105  111  #define DEVICE_ID_57788                 0x1691
 106  112  #define DEVICE_ID_57790                 0x1694
      113 +#define DEVICE_ID_57781                 0x16b1
      114 +#define DEVICE_ID_57785                 0x16b5
      115 +#define DEVICE_ID_57761                 0x16b0
      116 +#define DEVICE_ID_57765                 0x16b4
      117 +#define DEVICE_ID_57791                 0x16b2
      118 +#define DEVICE_ID_57795                 0x16b6
      119 +#define DEVICE_ID_57762                 0x1682
      120 +#define DEVICE_ID_57766                 0x1686
      121 +#define DEVICE_ID_57786                 0x16b3
      122 +#define DEVICE_ID_57782                 0x16b7
 107  123  
 108  124  #define REVISION_ID_5700_B0             0x10
 109  125  #define REVISION_ID_5700_B2             0x12
 110  126  #define REVISION_ID_5700_B3             0x13
 111  127  #define REVISION_ID_5700_C0             0x20
 112  128  #define REVISION_ID_5700_C1             0x21
 113  129  #define REVISION_ID_5700_C2             0x22
 114  130  
 115  131  #define REVISION_ID_5701_A0             0x08
 116  132  #define REVISION_ID_5701_A2             0x12
↓ open down ↓ 71 lines elided ↑ open up ↑
 188  204                  ((bgep->chipid.device == DEVICE_ID_5721) ||\
 189  205                  (bgep->chipid.device == DEVICE_ID_5751) ||\
 190  206                  (bgep->chipid.device == DEVICE_ID_5751M) ||\
 191  207                  (bgep->chipid.device == DEVICE_ID_5752) ||\
 192  208                  (bgep->chipid.device == DEVICE_ID_5752M) ||\
 193  209                  (bgep->chipid.device == DEVICE_ID_5789))
 194  210  
 195  211  #define DEVICE_5717_SERIES_CHIPSETS(bgep) \
 196  212                  (bgep->chipid.device == DEVICE_ID_5717) ||\
 197  213                  (bgep->chipid.device == DEVICE_ID_5718) ||\
      214 +                (bgep->chipid.device == DEVICE_ID_5719) ||\
      215 +                (bgep->chipid.device == DEVICE_ID_5720) ||\
 198  216                  (bgep->chipid.device == DEVICE_ID_5724)
 199  217  
 200  218  #define DEVICE_5723_SERIES_CHIPSETS(bgep) \
 201  219                  ((bgep->chipid.device == DEVICE_ID_5723) ||\
 202  220                  (bgep->chipid.device == DEVICE_ID_5761) ||\
 203  221                  (bgep->chipid.device == DEVICE_ID_5761E) ||\
 204  222                  (bgep->chipid.device == DEVICE_ID_5761S) ||\
 205  223                  (bgep->chipid.device == DEVICE_ID_5761SE) ||\
 206  224                  (bgep->chipid.device == DEVICE_ID_5764) ||\
 207  225                  (bgep->chipid.device == DEVICE_ID_5784M) ||\
↓ open down ↓ 6 lines elided ↑ open up ↑
 214  232  #define DEVICE_5714_SERIES_CHIPSETS(bgep) \
 215  233                  ((bgep->chipid.device == DEVICE_ID_5714C) ||\
 216  234                  (bgep->chipid.device == DEVICE_ID_5714S) ||\
 217  235                  (bgep->chipid.device == DEVICE_ID_5715C) ||\
 218  236                  (bgep->chipid.device == DEVICE_ID_5715S))
 219  237  
 220  238  #define DEVICE_5906_SERIES_CHIPSETS(bgep) \
 221  239                  ((bgep->chipid.device == DEVICE_ID_5906) ||\
 222  240                  (bgep->chipid.device == DEVICE_ID_5906M))
 223  241  
      242 +
      243 +#define CHIP_TYPE_5705_PLUS   (1 << 0)
      244 +#define CHIP_TYPE_5750_PLUS   (1 << 1)
      245 +#define CHIP_TYPE_5780_CLASS  (1 << 2)
      246 +#define CHIP_TYPE_5755_PLUS   (1 << 3)
      247 +#define CHIP_TYPE_57765_CLASS (1 << 4)
      248 +#define CHIP_TYPE_57765_PLUS  (1 << 5)
      249 +#define CHIP_TYPE_5717_PLUS   (1 << 6)
      250 +
      251 +#define DEVICE_IS_57765_PLUS(bgep) \
      252 +        (bgep->chipid.chip_type & CHIP_TYPE_57765_PLUS)
      253 +#define DEVICE_IS_5755_PLUS(bgep) \
      254 +        (bgep->chipid.chip_type & CHIP_TYPE_5755_PLUS)
      255 +
 224  256  /*
 225  257   * Second section:
 226  258   *      Offsets of important registers & definitions for bits therein
 227  259   */
 228  260  
 229  261  /*
 230  262   * PCI-X registers & bits
 231  263   */
 232  264  #define PCIX_CONF_COMM                  0x42
 233  265  #define PCIX_COMM_RELAXED               0x0002
 234  266  
 235  267  /*
 236  268   * Miscellaneous Host Control Register, in PCI config space
 237  269   */
 238  270  #define PCI_CONF_BGE_MHCR               0x68
 239  271  #define MHCR_CHIP_REV_MASK              0xffff0000
      272 +#define MHCR_CHIP_REV_SHIFT             16
 240  273  #define MHCR_ENABLE_TAGGED_STATUS_MODE  0x00000200
 241  274  #define MHCR_MASK_INTERRUPT_MODE        0x00000100
 242  275  #define MHCR_ENABLE_INDIRECT_ACCESS     0x00000080
 243  276  #define MHCR_ENABLE_REGISTER_WORD_SWAP  0x00000040
 244  277  #define MHCR_ENABLE_CLOCK_CONTROL_WRITE 0x00000020
 245  278  #define MHCR_ENABLE_PCI_STATE_WRITE     0x00000010
 246  279  #define MHCR_ENABLE_ENDIAN_WORD_SWAP    0x00000008
 247  280  #define MHCR_ENABLE_ENDIAN_BYTE_SWAP    0x00000004
 248  281  #define MHCR_MASK_PCI_INT_OUTPUT        0x00000002
 249  282  #define MHCR_CLEAR_INTERRUPT_INTA       0x00000001
 250  283  
 251      -#define MHCR_CHIP_REV_5700_B0           0x71000000
 252      -#define MHCR_CHIP_REV_5700_B2           0x71020000
 253      -#define MHCR_CHIP_REV_5700_B3           0x71030000
 254      -#define MHCR_CHIP_REV_5700_C0           0x72000000
 255      -#define MHCR_CHIP_REV_5700_C1           0x72010000
 256      -#define MHCR_CHIP_REV_5700_C2           0x72020000
      284 +#define MHCR_CHIP_REV_5703_A0           0x1000
      285 +#define MHCR_CHIP_REV_5704_A0           0x2000
      286 +#define MHCR_CHIP_REV_5751_A0           0x4000
      287 +#define MHCR_CHIP_REV_5721_A0           0x4100
      288 +#define MHCR_CHIP_REV_5755_A0           0xa000
      289 +#define MHCR_CHIP_REV_5755_A1           0xa001
      290 +#define MHCR_CHIP_REV_5719_A0           0x05719000
      291 +#define MHCR_CHIP_REV_5720_A0           0x05720000
 257  292  
 258      -#define MHCR_CHIP_REV_5701_A0           0x00000000
 259      -#define MHCR_CHIP_REV_5701_A2           0x00020000
 260      -#define MHCR_CHIP_REV_5701_A3           0x00030000
 261      -#define MHCR_CHIP_REV_5701_A5           0x01050000
      293 +#define MHCR_CHIP_ASIC_REV(ChipRevId)   ((ChipRevId) >> 12)
      294 +#define MHCR_CHIP_ASIC_REV_5700         0x07
      295 +#define MHCR_CHIP_ASIC_REV_5701         0x00
      296 +#define MHCR_CHIP_ASIC_REV_5703         0x01
      297 +#define MHCR_CHIP_ASIC_REV_5704         0x02
      298 +#define MHCR_CHIP_ASIC_REV_5705         0x03
      299 +#define MHCR_CHIP_ASIC_REV_5750         0x04
      300 +#define MHCR_CHIP_ASIC_REV_5752         0x06
      301 +#define MHCR_CHIP_ASIC_REV_5780         0x08
      302 +#define MHCR_CHIP_ASIC_REV_5714         0x09
      303 +#define MHCR_CHIP_ASIC_REV_5755         0x0a
      304 +#define MHCR_CHIP_ASIC_REV_5787         0x0b
      305 +#define MHCR_CHIP_ASIC_REV_5906         0x0c
      306 +#define MHCR_CHIP_ASIC_REV_PRODID       0x0f
      307 +#define MHCR_CHIP_ASIC_REV_5784         0x5784
      308 +#define MHCR_CHIP_ASIC_REV_5761         0x5761
      309 +#define MHCR_CHIP_ASIC_REV_5785         0x5785
      310 +#define MHCR_CHIP_ASIC_REV_5717         0x5717
      311 +#define MHCR_CHIP_ASIC_REV_5719         0x5719
      312 +#define MHCR_CHIP_ASIC_REV_5720         0x5720
      313 +#define MHCR_CHIP_ASIC_REV_57780        0x57780
      314 +#define MHCR_CHIP_ASIC_REV_57765        0x57785
      315 +#define MHCR_CHIP_ASIC_REV_57766        0x57766
 262  316  
 263      -#define MHCR_CHIP_REV_5702_A0           0x10000000
 264      -#define MHCR_CHIP_REV_5702_A1           0x10010000
 265      -#define MHCR_CHIP_REV_5702_A2           0x10020000
 266      -
 267      -#define MHCR_CHIP_REV_5703_A0           0x10000000
 268      -#define MHCR_CHIP_REV_5703_A1           0x10010000
 269      -#define MHCR_CHIP_REV_5703_A2           0x10020000
 270      -#define MHCR_CHIP_REV_5703_B0           0x11000000
 271      -#define MHCR_CHIP_REV_5703_B1           0x11010000
 272      -
 273      -#define MHCR_CHIP_REV_5704_A0           0x20000000
 274      -#define MHCR_CHIP_REV_5704_A1           0x20010000
 275      -#define MHCR_CHIP_REV_5704_A2           0x20020000
 276      -#define MHCR_CHIP_REV_5704_A3           0x20030000
 277      -#define MHCR_CHIP_REV_5704_B0           0x21000000
 278      -
 279      -#define MHCR_CHIP_REV_5705_A0           0x30000000
 280      -#define MHCR_CHIP_REV_5705_A1           0x30010000
 281      -#define MHCR_CHIP_REV_5705_A2           0x30020000
 282      -#define MHCR_CHIP_REV_5705_A3           0x30030000
 283      -#define MHCR_CHIP_REV_5705_A5           0x30050000
 284      -
 285      -#define MHCR_CHIP_REV_5782_A0           0x30030000
 286      -#define MHCR_CHIP_REV_5782_A1           0x30030088
 287      -
 288      -#define MHCR_CHIP_REV_5788_A1           0x30050000
 289      -
 290      -#define MHCR_CHIP_REV_5751_A0           0x40000000
 291      -#define MHCR_CHIP_REV_5751_A1           0x40010000
 292      -
 293      -#define MHCR_CHIP_REV_5721_A0           0x41000000
 294      -#define MHCR_CHIP_REV_5721_A1           0x41010000
 295      -
 296      -#define MHCR_CHIP_REV_5714_A0           0x50000000
 297      -#define MHCR_CHIP_REV_5714_A1           0x90010000
 298      -
 299      -#define MHCR_CHIP_REV_5715_A0           0x50000000
 300      -#define MHCR_CHIP_REV_5715_A1           0x90010000
 301      -
 302      -#define MHCR_CHIP_REV_5715S_A0          0x50000000
 303      -#define MHCR_CHIP_REV_5715S_A1          0x90010000
 304      -
 305      -#define MHCR_CHIP_REV_5754_A0           0xb0000000
 306      -#define MHCR_CHIP_REV_5754_A1           0xb0010000
 307      -
 308      -#define MHCR_CHIP_REV_5787_A0           0xb0000000
 309      -#define MHCR_CHIP_REV_5787_A1           0xb0010000
 310      -#define MHCR_CHIP_REV_5787_A2           0xb0020000
 311      -
 312      -#define MHCR_CHIP_REV_5755_A0           0xa0000000
 313      -#define MHCR_CHIP_REV_5755_A1           0xa0010000
 314      -
 315      -#define MHCR_CHIP_REV_5906_A0           0xc0000000
 316      -#define MHCR_CHIP_REV_5906_A1           0xc0010000
 317      -#define MHCR_CHIP_REV_5906_A2           0xc0020000
 318      -
 319      -#define MHCR_CHIP_REV_5723_A0           0xf0000000
 320      -#define MHCR_CHIP_REV_5723_A1           0xf0010000
 321      -#define MHCR_CHIP_REV_5723_A2           0xf0020000
 322      -#define MHCR_CHIP_REV_5723_B0           0xf1000000
 323      -
 324      -#define MHCR_CHIP_ASIC_REV(ChipRevId)   ((ChipRevId) & 0xf0000000)
 325      -#define MHCR_CHIP_ASIC_REV_5700         (0x7 << 28)
 326      -#define MHCR_CHIP_ASIC_REV_5701         (0x0 << 28)
 327      -#define MHCR_CHIP_ASIC_REV_5703         (0x1 << 28)
 328      -#define MHCR_CHIP_ASIC_REV_5704         (0x2 << 28)
 329      -#define MHCR_CHIP_ASIC_REV_5705         (0x3 << 28)
 330      -#define MHCR_CHIP_ASIC_REV_5721_5751    (0x4 << 28)
 331      -#define MHCR_CHIP_ASIC_REV_5714         (0x5 << 28)
 332      -#define MHCR_CHIP_ASIC_REV_5752         (0x6 << 28)
 333      -#define MHCR_CHIP_ASIC_REV_5754         (0xb << 28)
 334      -#define MHCR_CHIP_ASIC_REV_5787         ((uint32_t)0xb << 28)
 335      -#define MHCR_CHIP_ASIC_REV_5755         ((uint32_t)0xa << 28)
 336      -#define MHCR_CHIP_ASIC_REV_5715         ((uint32_t)0x9 << 28)
 337      -#define MHCR_CHIP_ASIC_REV_5906         ((uint32_t)0xc << 28)
 338      -#define MHCR_CHIP_ASIC_REV_5723         ((uint32_t)0xf << 28)
 339      -
 340      -
 341  317  /*
 342  318   * PCI DMA read/write Control Register, in PCI config space
 343  319   *
 344  320   * Note that several fields previously defined here have been deleted
 345  321   * as they are not implemented in the 5703/4.
 346  322   *
 347  323   * Note: the value of this register is critical.  It is possible to
 348  324   * cause various unpleasant effects (DTOs, transaction deadlock, etc)
 349  325   * by programming the wrong value.  The value #defined below has been
 350  326   * tested and shown to avoid all known problems.  If it is to be changed,
↓ open down ↓ 120 lines elided ↑ open up ↑
 471  447  #define PCI_CONF_DEV_CTRL               0xd8
 472  448  #define PCI_CONF_DEV_CTRL_5723          0xd4
 473  449  #define READ_REQ_SIZE_MAX               0x5000
 474  450  #define DEV_CTRL_NO_SNOOP               0x0800
 475  451  #define DEV_CTRL_RELAXED                0x0010
 476  452  
 477  453  #define PCI_CONF_DEV_STUS               0xda
 478  454  #define PCI_CONF_DEV_STUS_5723          0xd6
 479  455  #define DEVICE_ERROR_STUS               0xf
 480  456  
      457 +#define PCI_CONF_PRODID_ASICREV         0x000000bc
      458 +#define PCI_CONF_GEN2_PRODID_ASICREV    0x000000f4
      459 +#define PCI_CONF_GEN15_PRODID_ASICREV   0x000000fc
      460 +
 481  461  #define NIC_MEM_WINDOW_OFFSET           0x00008000      /* 32k  */
 482  462  
 483  463  /*
 484  464   * Where to find things in NIC-local (on-chip) memory
 485  465   */
 486  466  #define NIC_MEM_SEND_RINGS              0x0100
 487  467  #define NIC_MEM_SEND_RING(ring)         (0x0100+16*(ring))
 488  468  #define NIC_MEM_RECV_RINGS              0x0200
 489  469  #define NIC_MEM_RECV_RING(ring)         (0x0200+16*(ring))
 490  470  #define NIC_MEM_STATISTICS              0x0300
↓ open down ↓ 55 lines elided ↑ open up ↑
 546  526  #define RCV_DATA_COMPLETION_MODE_REG    0x2800
 547  527  #define RCV_BD_INITIATOR_MODE_REG       0x2c00
 548  528  #define RCV_BD_COMPLETION_MODE_REG      0x3000
 549  529  #define RCV_LIST_SELECTOR_MODE_REG      0x3400
 550  530  
 551  531  #define MBUF_CLUSTER_FREE_MODE_REG      0x3800
 552  532  #define HOST_COALESCE_MODE_REG          0x3c00
 553  533  #define MEMORY_ARBITER_MODE_REG         0x4000
 554  534  #define BUFFER_MANAGER_MODE_REG         0x4400
 555  535  #define READ_DMA_MODE_REG               0x4800
      536 +#define READ_DMA_RESERVED_CONTROL_REG   0x4900
 556  537  #define WRITE_DMA_MODE_REG              0x4c00
 557  538  #define DMA_COMPLETION_MODE_REG         0x6400
 558  539  
 559  540  /*
 560  541   * Other bits in some of the above state machine control registers
 561  542   */
 562  543  
 563  544  /*
 564  545   * Transmit MAC Mode Register
 565  546   * (TRANSMIT_MAC_MODE_REG, 0x045c)
 566  547   */
      548 +#define TRANSMIT_MODE_HTX2B_CNT_DN_MODE 0x00800000
      549 +#define TRANSMIT_MODE_HTX2B_JMB_FRM_LEN 0x00400000
      550 +#define TRANSMIT_MODE_MBUF_LOCKUP_FIX   0x00000100
 567  551  #define TRANSMIT_MODE_LONG_PAUSE        0x00000040
 568  552  #define TRANSMIT_MODE_BIG_BACKOFF       0x00000020
 569  553  #define TRANSMIT_MODE_FLOW_CONTROL      0x00000010
 570  554  
 571  555  /*
 572  556   * Receive MAC Mode Register
 573  557   * (RECEIVE_MAC_MODE_REG, 0x0468)
 574  558   */
 575  559  #define RECEIVE_MODE_KEEP_VLAN_TAG      0x00000400
 576  560  #define RECEIVE_MODE_NO_CRC_CHECK       0x00000200
↓ open down ↓ 47 lines elided ↑ open up ↑
 624  608  
 625  609  /*
 626  610   * Buffer Manager Mode Register
 627  611   * (BUFFER_MANAGER_MODE_REG, 0x4400)
 628  612   *
 629  613   * In addition to the usual error-attn common to most state machines
 630  614   * this register has a separate bit for attn on running-low-on-mbufs
 631  615   */
 632  616  #define BUFF_MGR_TEST_MODE              0x00000008
 633  617  #define BUFF_MGR_MBUF_LOW_ATTN_ENABLE   0x00000010
      618 +#define BUFF_MGR_NO_TX_UNDERRUN         0x80000000
 634  619  
 635  620  #define BUFF_MGR_ALL_ATTN_BITS          0x00000014
 636  621  
 637  622  /*
 638  623   * Read and Write DMA Mode Registers (READ_DMA_MODE_REG,
 639      - * 0x4800 and WRITE_DMA_MODE_REG, 0x4c00)
      624 + * 0x4800, READ_DMA_RESERVED_CONTROL_REG, 0x4900,
      625 + * WRITE_DMA_MODE_REG, 0x4c00)
 640  626   *
 641  627   * These registers each contain a 2-bit priority field, which controls
 642  628   * the relative priority of that type of DMA (read vs. write vs. MSI),
 643  629   * and a set of bits that control whether ATTN is asserted on each
 644  630   * particular condition
 645  631   */
 646  632  #define DMA_PRIORITY_MASK               0xc0000000
 647  633  #define DMA_PRIORITY_SHIFT              30
 648  634  #define ALL_DMA_ATTN_BITS               0x000003fc
 649  635  
      636 +#define RDMA_RSRVCTRL_FIFO_OFLW_FIX      0x00000004
      637 +#define RDMA_RSRVCTRL_FIFO_LWM_1_5K      0x00000c00
      638 +#define RDMA_RSRVCTRL_FIFO_LWM_MASK      0x00000ff0
      639 +#define RDMA_RSRVCTRL_FIFO_HWM_1_5K      0x000c0000
      640 +#define RDMA_RSRVCTRL_FIFO_HWM_MASK      0x000ff000
      641 +#define RDMA_RSRVCTRL_TXMRGN_320B        0x28000000
      642 +#define RDMA_RSRVCTRL_TXMRGN_MASK        0xffe00000
      643 +
      644 +
 650  645  /*
 651  646   * BCM5755, 5755M, 5906, 5906M only
 652  647   * 1 - Enable Fix. Device will send out the status block before
 653  648   *     the interrupt message
 654  649   * 0 - Disable fix. Device will send out the interrupt message
 655  650   *     before the status block
 656  651   */
 657  652  #define DMA_STATUS_TAG_FIX_CQ12384      0x20000000
 658  653  
      654 +/* 5720 only */
      655 +#define DMA_H2BNC_VLAN_DET              0x20000000
      656 +
      657 +
 659  658  /*
 660  659   * End of state machine control register definitions
 661  660   */
 662  661  
 663  662  
 664  663  /*
 665  664   * High priority mailbox registers.
 666  665   * Mailbox Registers (8 bytes each, but high half unused)
 667  666   */
 668  667  #define INTERRUPT_MBOX_0_REG            0x0200
↓ open down ↓ 117 lines elided ↑ open up ↑
 786  785  #define MAC_ADDRESS_REGS_MAX            4
 787  786  
 788  787  /*
 789  788   * More MAC Registers ...
 790  789   */
 791  790  #define MAC_TX_RANDOM_BACKOFF_REG       0x0438
 792  791  #define MAC_RX_MTU_SIZE_REG             0x043c
 793  792  #define MAC_RX_MTU_DEFAULT              0x000005f2      /* 1522 */
 794  793  #define MAC_TX_LENGTHS_REG              0x0464
 795  794  #define MAC_TX_LENGTHS_DEFAULT          0x00002620
      795 +#define MAC_TX_LENGTHS_JMB_FRM_LEN_MSK   0x00ff0000
      796 +#define MAC_TX_LENGTHS_CNT_DWN_VAL_MSK   0xff000000
 796  797  
 797  798  /*
 798  799   * MII access registers
 799  800   */
 800  801  #define MI_COMMS_REG                    0x044c
 801  802  #define MI_COMMS_START                  0x20000000
 802  803  #define MI_COMMS_READ_FAILED            0x10000000
 803  804  #define MI_COMMS_COMMAND_MASK           0x0c000000
 804  805  #define MI_COMMS_COMMAND_READ           0x08000000
 805  806  #define MI_COMMS_COMMAND_WRITE          0x04000000
↓ open down ↓ 268 lines elided ↑ open up ↑
1074 1075   * Receive Buffer Descriptor Ring Replenish Threshold Registers
1075 1076   */
1076 1077  #define MINI_RCV_BD_REPLENISH_REG       0x2c14
1077 1078  #define MINI_RCV_BD_REPLENISH_DEFAULT   0x00000080      /* 128  */
1078 1079  #define STD_RCV_BD_REPLENISH_REG        0x2c18
1079 1080  #define STD_RCV_BD_REPLENISH_DEFAULT    0x00000002      /* 2    */
1080 1081  #define JUMBO_RCV_BD_REPLENISH_REG      0x2c1c
1081 1082  #define JUMBO_RCV_BD_REPLENISH_DEFAULT  0x00000020      /* 32   */
1082 1083  
1083 1084  /*
1084      - * CPMU registers (5717/5718 only)
     1085 + * CPMU registers (5717/5718/5719/5720 only)
1085 1086   */
1086      -#define CPMU_STATUS_REG 0x362c
1087      -#define CPMU_STATUS_FUN_NUM     0x20000000
     1087 +#define CPMU_CLCK_ORIDE_REG             0x3624
     1088 +#define CPMU_CLCK_ORIDE_MAC_ORIDE_EN    0x80000000
1088 1089  
     1090 +#define CPMU_STATUS_REG                 0x362c
     1091 +#define CPMU_STATUS_FUN_NUM_5717        0x20000000
     1092 +#define CPMU_STATUS_FUN_NUM_5719        0xc0000000
     1093 +#define CPMU_STATUS_FUN_NUM_5719_SHIFT  30
     1094 +
     1095 +
1089 1096  /*
1090 1097   * Host Coalescing Engine Control Registers
1091 1098   */
1092 1099  #define RCV_COALESCE_TICKS_REG          0x3c08
1093 1100  #define RCV_COALESCE_TICKS_DEFAULT      0x00000096      /* 150  */
1094 1101  #define SEND_COALESCE_TICKS_REG         0x3c0c
1095 1102  #define SEND_COALESCE_TICKS_DEFAULT     0x00000096      /* 150  */
1096 1103  #define RCV_COALESCE_MAX_BD_REG         0x3c10
1097 1104  #define RCV_COALESCE_MAX_BD_DEFAULT     0x0000000a      /* 10   */
1098 1105  #define SEND_COALESCE_MAX_BD_REG        0x3c14
↓ open down ↓ 97 lines elided ↑ open up ↑
1196 1203  /*
1197 1204   * V? RISC Registerss
1198 1205   */
1199 1206  #define VCPU_STATUS_REG                 0x5100
1200 1207  #define VCPU_INIT_DONE                  0x04000000
1201 1208  #define VCPU_DRV_RESET                  0x08000000
1202 1209  
1203 1210  #define VCPU_EXT_CTL                    0x6890
1204 1211  #define VCPU_EXT_CTL_HALF               0x00400000
1205 1212  
     1213 +#define GRC_FASTBOOT_PC                 0x6894
     1214 +
1206 1215  #define FTQ_RESET_REG                   0x5c00
1207 1216  
1208 1217  #define MSI_MODE_REG                    0x6000
1209 1218  #define MSI_PRI_HIGHEST                 0xc0000000
1210 1219  #define MSI_MSI_ENABLE                  0x00000002
1211 1220  #define MSI_ERROR_ATTENTION             0x0000001c
1212 1221  
1213 1222  #define MSI_STATUS_REG                  0x6004
1214 1223  
1215 1224  #define MODE_CONTROL_REG                0x6800
1216 1225  #define MODE_ROUTE_MCAST_TO_RX_RISC     0x40000000
1217 1226  #define MODE_4X_NIC_SEND_RINGS          0x20000000
1218 1227  #define MODE_INT_ON_FLOW_ATTN           0x10000000
1219 1228  #define MODE_INT_ON_DMA_ATTN            0x08000000
1220 1229  #define MODE_INT_ON_MAC_ATTN            0x04000000
1221 1230  #define MODE_INT_ON_RXRISC_ATTN         0x02000000
1222 1231  #define MODE_INT_ON_TXRISC_ATTN         0x01000000
1223 1232  #define MODE_RECV_NO_PSEUDO_HDR_CSUM    0x00800000
1224 1233  #define MODE_SEND_NO_PSEUDO_HDR_CSUM    0x00100000
     1234 +#define MODE_HTX2B_ENABLE               0x00040000
1225 1235  #define MODE_HOST_SEND_BDS              0x00020000
1226 1236  #define MODE_HOST_STACK_UP              0x00010000
1227 1237  #define MODE_FORCE_32_BIT_PCI           0x00008000
     1238 +#define MODE_B2HRX_ENABLE               0x00008000
1228 1239  #define MODE_NO_INT_ON_RECV             0x00004000
1229 1240  #define MODE_NO_INT_ON_SEND             0x00002000
1230 1241  #define MODE_ALLOW_BAD_FRAMES           0x00000800
1231 1242  #define MODE_NO_CRC                     0x00000400
1232 1243  #define MODE_NO_FRAME_CRACKING          0x00000200
     1244 +#define MODE_WORD_SWAP_B2HRX_DATA       0x00000080
     1245 +#define MODE_BYTE_SWAP_B2HRX_DATA       0x00000040
1233 1246  #define MODE_WORD_SWAP_FRAME            0x00000020
1234 1247  #define MODE_BYTE_SWAP_FRAME            0x00000010
1235 1248  #define MODE_WORD_SWAP_NONFRAME         0x00000004
1236 1249  #define MODE_BYTE_SWAP_NONFRAME         0x00000002
1237 1250  #define MODE_UPDATE_ON_COAL_ONLY        0x00000001
1238 1251  
1239 1252  /*
1240 1253   * Miscellaneous Configuration Register
1241 1254   *
1242 1255   * This contains various bits relating to power control (which differ
↓ open down ↓ 8 lines elided ↑ open up ↑
1251 1264   *
1252 1265   * The Timer Prescaler field must be programmed so that the timer period
1253 1266   * is as near as possible to 1us.  The value in this field should be
1254 1267   * the Core Clock frequency in MHz minus 1.  From my reading of the PRM,
1255 1268   * the Core Clock should always be 66MHz (independently of the bus speed,
1256 1269   * at least for PCI rather than PCI-X), so this register must be set to
1257 1270   * the value 0x82 ((66-1) << 1).
1258 1271   */
1259 1272  #define CORE_CLOCK_MHZ                  66
1260 1273  #define MISC_CONFIG_REG                 0x6804
1261      -#define MISC_CONFIG_GRC_RESET_DISABLE   0x20000000
     1274 +#define MISC_CONFIG_GRC_RESET_DISABLE   0x20000000
1262 1275  #define MISC_CONFIG_GPHY_POWERDOWN_OVERRIDE 0x04000000
1263 1276  #define MISC_CONFIG_POWERDOWN           0x00100000
1264 1277  #define MISC_CONFIG_POWER_STATE         0x00060000
1265 1278  #define MISC_CONFIG_PRESCALE_MASK       0x000000fe
1266 1279  #define MISC_CONFIG_RESET_BIT           0x00000001
1267 1280  #define MISC_CONFIG_DEFAULT             (((CORE_CLOCK_MHZ)-1) << 1)
1268 1281  #define MISC_CONFIG_EPHY_IDDQ           0x00200000
1269 1282  
1270 1283  /*
1271 1284   * Miscellaneous Local Control Register (MLCR)
↓ open down ↓ 300 lines elided ↑ open up ↑
1572 1585  #define BGE_RECV_RINGS_MAX_5705         1
1573 1586  #define BGE_BUFF_RINGS_MAX              3       /* jumbo/std/mini (mini */
1574 1587                                                  /* only with ext mem)   */
1575 1588  
1576 1589  #define BGE_SEND_SLOTS_MAX              512
1577 1590  #define BGE_STD_SLOTS_MAX               512
1578 1591  #define BGE_JUMBO_SLOTS_MAX             256
1579 1592  #define BGE_MINI_SLOTS_MAX              1024
1580 1593  #define BGE_RECV_SLOTS_MAX              2048
1581 1594  #define BGE_RECV_SLOTS_5705             512
     1595 +#define BGE_RECV_SLOTS_5717             1024
1582 1596  #define BGE_RECV_SLOTS_5782             512
1583 1597  #define BGE_RECV_SLOTS_5721             512
1584 1598  
1585 1599  /*
1586 1600   * Hardware-defined Ring Control Block
1587 1601   */
1588 1602  typedef struct {
1589 1603          uint64_t        host_ring_addr;
1590 1604  #ifdef  _BIG_ENDIAN
1591 1605          uint16_t        max_len;
↓ open down ↓ 523 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX