EN JA
BCE(4)
BCE(4) FreeBSD Kernel Interfaces Manual BCE(4)

名称

bceBroadcom NetXtreme II (BCM5706/5708/5709/5716) PCI/PCIe Gigabit イーサネットアダプタドライバ

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device miibus
device bce

もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:

if_bce_load="YES"

解説

bce ドライバは、 BCM5706, BCM5708, BCM5709 と BCM5716 イーサネットコントローラを含む Broadcom の NetXtreme II 製品ファミリをサポートします。

NetXtreme II 製品ファミリは、同じコントローラのすべてで、標準の L2 イーサネットトラフィックに加えて、 TCP Offload Engine (TOE)、Remote DMA (RDMA) と iSCSI アクセラレーションをサポートする様々な Converged NIC (または、 CNIC) イーサネットコントローラで構成されます。

次の機能は、 FreeBSD の下で bce ドライバでサポートされます:

  • IP/TCP/UDP checksum offload
  • Jumbo frames (up to 9022 bytes)
  • VLAN tag stripping
  • Interrupt coalescing
  • 10/100/1000Mbps operation in full-duplex mode
  • 10/100Mbps operation in half-duplex mode

bce ドライバは、次のメディアタイプをサポートします:

autoselect
メディアタイプとオプションの自動選択を有効にします。ユーザは、 rc.conf(5) にメディアオプションを加えることによって、手動で自動選択モードを無効にできます。
10baseT/UTP
10Mbps オペレーションを設定します。 ifconfig(8)mediaopt オプションも 全二重 または 半二重 モードのいずれかを選択するために使用できます。
100baseTX
100Mbps (ファーストイーサネット) オペレーションを設定します。 ifconfig(8)mediaopt オプションも 全二重 または 半二重 モードのいずれかを選択するために使用できます。
1000baseSX
1000Mbps オペレーションを設定します。 全二重 モードのみこの速度でサポートされます。
1000baseT
ツイストペア上の 1000baseT オペレーションを設定します。 全二重 モードのみサポートされます。
2500BaseSX
2500Mbps オペレーションを設定します。 全二重 モードのみサポートされます。

bce ドライバは、次のメディアオプションをサポートします:

full-duplex
全二重オペレーションを強制的に設定します。
half-duplex
半二重オペレーションを強制的に設定します。

このデバイスの設定についてのより詳しい情報については、 ifconfig(8) を参照してください。

ハードウェア

bce ドライバは、次を含んでギガビットイーサネットコントローラの Broadcom NetXtreme II ファミリに基づく様々な NIC のサポートを行います:

  • Broadcom NetXtreme II BCM5706 1000Base-SX
  • Broadcom NetXtreme II BCM5706 1000Base-T
  • Broadcom NetXtreme II BCM5708 1000Base-SX
  • Broadcom NetXtreme II BCM5708 1000Base-T
  • Broadcom NetXtreme II BCM5709 1000Base-SX
  • Broadcom NetXtreme II BCM5709 1000Base-T
  • Broadcom NetXtreme II BCM5716 1000Base-T
  • Dell PowerEdge 1950 integrated BCM5708 NIC
  • Dell PowerEdge 2950 integrated BCM5708 NIC
  • Dell PowerEdge R710 integrated BCM5709 NIC
  • HP NC370F Multifunction Gigabit Server Adapter
  • HP NC370T Multifunction Gigabit Server Adapter
  • HP NC370i Multifunction Gigabit Server Adapter
  • HP NC371i Multifunction Gigabit Server Adapter
  • HP NC373F PCIe Multifunc Giga Server Adapter
  • HP NC373T PCIe Multifunction Gig Server Adapter
  • HP NC373i Multifunction Gigabit Server Adapter
  • HP NC373m Multifunction Gigabit Server Adapter
  • HP NC374m PCIe Multifunction Adapter
  • HP NC380T PCIe DP Multifunc Gig Server Adapter
  • HP NC382T PCIe DP Multifunction Gigabit Server Adapter
  • HP NC382i DP Multifunction Gigabit Server Adapter
  • HP NC382m DP 1GbE Multifunction BL-c Adapter

SYSCTL 変数

次の変数は、 sysctl(8) 変数と loader(8) 調整変数の両方で利用可能です:
hw.bce.verbose
コンソールへの冗長なログ記録と出力を有効に/無効にします。デバッグのために役に立ちます (デフィルトは、0)。
hw.bce.msi_enable
MSI サポートを有効に/無効にします (デフィルトは、1)。
hw.bce.tso_enable
TSO サポートを有効に/無効にします (デフィルトは、1)。
hw.bce.strict_rx_mtu
厳密な RX フレームサイズのチェックを有効に/無効にします (デフィルトは、0)。
hw.bce.hdr_split
フレームヘッダ/ペイロードの分割を有効に/無効にします (デフィルトは、1)。
hw.bce.rx_pages
ドライバによってパケットを受信するするために割り当てられたメモリページの数を設定します。整列問題のために、この値は、1、2、4 または 8 のみ設定できます (デフィルトは、2)。
hw.bce.tx_pages
ドライバによってパケットを送信するために割り当てられたメモリページの数を設定します。整列問題のために、この値は、1、2、4 または 8 のみ設定できます (デフィルトは、2)。
hw.bce.rx_ticks
RX 処理活動のために状態ブロックの更新を生成する前にウェートするマイクロ秒チック (tick) 単位の時間。 0-100 の値が有効です。 0 の値は、この状態ブロック更新を無効にします。また、hw.bce.rx_quick_cons_trip が 0 であるなら、0 に設定することはできません (デフィルトは、18)。
hw.bce.rx_ticks_int
状態ブロック更新を生成する前に RX 割込処理の間にウェートするマイクロ秒チック (tick) 単位の時間。 0-100 の値が有効です。有効な値は、0-100 の範囲です。 0 の値は、この状態ブロック更新を無効にします (デフィルトは、18)。
hw.bce.rx_quick_cons_trip
状態ブロックが生成される前に、終了しなければならない、RX Quick BD Chain エントリの数。 0-256 の値が有効です。 0 の値は、この状態ブロック更新を無効にします。また、hw.bce.rx_ticks が 0 であるなら、0 に設定することはできません (デフィルトは、6)。
hw.bce.rx_quick_cons_trip_int
状態ブロックが割込処理の間に生成される前に、終了しなければならない、 RX クイック BD エントリの数。 0-256 の値が有効です。 0 の値は、この状態ブロック更新を無効にします (デフィルトは、6)。
hw.bce.tx_ticks
状態ブロック更新が TX 活動のために生成される前に、ウェートするマイクロ秒チック (tick) 単位の時間。 0-100 の値が有効です。 0 の値は、この状態ブロック更新を無効にします。また、hw.bce.tx_quick_cons_trip が 0 であるなら、0 に設定することはできません (デフィルトは、80)。
hw.bce.tx_ticks_int
状態ブロック更新が TX 活動のために生成される前に、割込処理でウェートするマイクロ秒チック (tick) 単位の時間。 0-100 の値が有効です。 0 の値は、この状態ブロック更新を無効にします (デフィルトは、80)。
hw.bce.tx_cons_trip
状態ブロックが生成される前に、終了しなければならない、 TX Quick BD Chain エントリの数。 0-100 の値が有効です。 0 の値は、この状態ブロック更新を無効にします。また、hw.bce.tx_ticks が 0 であるなら、0 に設定することはできません (デフィルトは、20)。
hw.bce.tx_cons_trip_int
状態ブロックが割り込みの間に生成される前に、終了しなければならない、 TX Quick BD Chain エントリの数。 0-100 の値が有効です。 0 の値は、この状態ブロック更新を無効にします (デフィルトは、20)。

診断

bce%d: PCI memory allocation failed!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: PCI map interrupt failed!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: Unsupported controller revision (%c%d)
ドライバは、使用中のコントローラリビジョンをサポートしません。
bce%d: Controller initialization failed!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: NVRAM test failed!
ドライバは、正しくコントローラ NVRAM にアクセスすることができませんでした。
bce%d: DMA resource allocation failed!
ドライバは、コントローラのホストメモリデータ構造をセットアップするためのメモリを DMA に割り付けることができませんでした。
bce%d: Interface allocation failed!
ドライバは、コントローラのためのネットワークインタフェースを作成することができませんでした。
bce%d: PHY probe failed!
ドライバは、コントローラによって使用される PHY にアクセスすることができませんでした。
bce%d: Failed to setup IRQ!
ドライバは、IRQ ハンドラを初期化することができませんでした。
bce%d: Error: PHY read timeout!
ドライバは、タイムアウトの期間の期限が切れる前に PHY レジスタを読み込むことができませんでした。
bce%d: PHY write timeout!
ドライバは、タイムアウトが起こったので、 PHY レジスタに書き込むことができませんでした。
bce%d: Timeout error reading NVRAM at offset 0x%08X!
ドライバは、タイムアウトが起こったので、 NVRAM に書き込むことができませんでした。
bce%d: Unknown Flash NVRAM found!
ドライバは、使用される NVRAM デバイスを認識しません、したがって、正しくそれにアクセスすることができません。
bce%d: Invalid NVRAM magic value!
ドライバは、NVRAM を読み込むことができません、または NVRAM が不正です。
bce%d: Invalid Manufacturing Information NVRAM CRC!
ドライバは、NVRAM を読み込むことができません、または NVRAM が不正です。
bce%d: Invalid Feature Configuration Information NVRAM CRC!
ドライバは、 NVRAM を読み込むことができません、または NVRAM が不正です。
bce%d: DMA mapping error!
ドライバは、メモリをコントローラによって必要とされた DMA のアドレス可能な空間にマップすることができませんでした。
bce%d: Could not allocate parent DMA tag!
ドライバは、PCI 互換 DMA タグを割り付けることができませんでした。
bce%d: Could not allocate status block DMA tag!
ドライバは、コントローラの状態ブロックのための DMA タグを割り付けることができませんでした。
bce%d: Could not allocate status block DMA memory!
ドライバは、コントローラの状態ブロックのための DMA アドレス可能なメモリを割り付けることができませんでした。
bce%d: Could not map status block DMA memory!
ドライバは、状態ブロックメモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Could not allocate statistics block DMA tag!
ドライバは、コントローラの統計ブロックのための DMA タグを割り付けることができませんでした。
bce%d: Could not allocate statistics block DMA memory!
ドライバは、コントローラの統計ブロックのための DMA アドレス可能なメモリを割り付けることができませんでした。
bce%d: Could not map statistics block DMA memory!
ドライバは、統計ブロックメモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Could not allocate TX descriptor chain DMA tag!
ドライバは、コントローラの TX チェーンのための DMA タグを割り付けることができませんでした。
bce%d: Could not allocate TX descriptor chain DMA memory!
ドライバは、コントローラの TX チェーンのための DMA アドレス可能なメモリを割り付けることができませんでした。
bce%d: Could not map TX descriptor chain DMA memory!
ドライバは、TX 記述子チェーンメモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Could not allocate TX mbuf DMA tag!
ドライバは、コントローラの TX mbuf メモリのための DMA タグを割り付けることができませんでした。
bce%d: Unable to create TX mbuf DMA map!
ドライバは、TX mbuf メモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Could not allocate RX descriptor chain DMA tag!
ドライバは、コントローラの RX チェーンのための DMA タグを割り付けることができませんでした。
bce%d: Could not allocate RX descriptor chain
ドライバは、コントローラの RX チェーンのための DMA アドレス可能なメモリを割り付けることができませんでした。
bce%d: Could not map RX descriptor chain DMA memory!
ドライバは、RX 記述子チェーンメモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Could not allocate RX mbuf DMA tag!
ドライバは、コントローラの RX mbuf メモリのための DMA タグを割り付けることができませんでした。
bce%d: Unable to create RX mbuf DMA map!
ドライバは、RX mbuf メモリをコントローラの DMA アドレス空間にマップすることができませんでした。
bce%d: Firmware synchronization timeout!
ドライバは、コントローラで実行されるファームウェアに同期することができませんでした。ファームウェアは、停止されるか、またはハングアップするかもしれません。
bce%d: Invalid Ethernet address!
ドライバは、NVRAM から有効なイーサネット MAC アドレスを読み込むことができませんでした。
bce%d: Reset failed!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: Byte swap is incorrect!
ドライバは、致命的な初期化エラーに遭遇しました。使用中の CPU アーキテクチャとシステムチップセットの詳細とともに作者に連絡してください。
bce%d: Firmware did not complete initialization!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: Bootcode not running!
ドライバは、致命的な初期化エラーに遭遇しました。
bce%d: Error mapping mbuf into RX chain!
ドライバは、RX mbuf を DMA のアドレス可能なメモリにマップすることができませんでした。
bce%d: Error filling RX chain: rx_bd[0x%04X]!
ドライバは、初期化の間に RX チェーンを満たすのに十分な mbuf を割り付けることができませんでした。システムで利用可能な mbuf の数を増やしてみるか、システムメモリを増加させるか、またはジャンボなフレームを使用するなら、十分な 9KB mbuf が利用可能か確かめてください。
bce%d: Failed to allocate new mbuf, incoming frame dropped!
ドライバは、 RX チェーンのための新しい mbuf を割り付けることができないで、プロセスの着信フレームを落として、受信したフレームのための mbuf を再利用しました。システムで利用可能な mbuf の数を増加してみるか、またはシステムのメモリを増加してください。
bce%d: Controller reset failed!
致命的な初期化エラーが発生しました。
bce%d: Controller initialization failed!
致命的な初期化エラーが発生しました。
bce%d: Block initialization failed!
致命的な初期化エラーが発生しました。
bce%d: Error mapping mbuf into TX chain!
ドライバは、TX mbuf を DMA アドレス可能なメモリにマップすることができませんでした。
bce%d: Error registering poll function!
ドライバは、ポーリング関数を登録する試みの間にエラーを受信しました。
bce%d: Changing VLAN_MTU not supported.
VLAN MTU を変更することは現在、ドライバによってサポートされていません。
bce%d: Cannot change VLAN_HWTAGGING while management firmware (ASF/IPMI/UMP) is running!
ASF/IPMI/UMP をサポートする管理ファームウェアは、VLAN タグストリップがコントローラで有効にされることを必要とします。
bce%d: Changing VLAN_HWTAGGING not supported!
VLAN タグストリップを無効にすることは、現在、ドライバによってサポートされていません。
bce%d: Watchdog timeout occurred, resetting!
デバイスは、ネットワークに応答することを停止したか、ケーブル接続に関する問題があるか、またはドライバの論理的な問題が起こりました。
bce%d: Fatal attention detected: 0x%08X!
コントローラハードウェアの故障が起こりました。問題が続くなら、コントローラを取り替えてください。

サポート

一般的な情報とサポートについては、 Broadcom NIC Open Source Developer Resource Site に行ってください: http://www.broadcom.com/support/ethernet_nic/open_source.php

歴史

bce デバイスドライバは、 FreeBSD 6.1 ではじめて登場しました。

作者

bce ドライバは、 David Christensen <davidch@broadcom.com>によって書かれました。
June 4, 2012 FreeBSD