Programming the Ethernet Controllers
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 50
Programming the Ethernet Controllers
See
for the revision levels of the Ethernet controllers. Host software can use the PCI
Revision ID and Chip ID information in the PCI configuration registers to determine the revision level of the
Ethernet controller on the board, and then load the appropriate workarounds described in the errata sheets.
Choice of host access mode determines the mailboxes:
• Host standard mode uses the high-priority mailboxes (see
“Mailbox Registers” on page 92
).
• Indirect mode uses the low-priority mailboxes (see
“Mailbox Registers” on page 92
).
The reference documents for Ethernet controller software development include this manual and the errata
documentation (see
) that provide the necessary information for writing a host-
based device driver. The Broadcom Linux
®
driver (a.k.a. “tg3”) is also a very good reference source for writing
your own driver.
The programming model for the NetXtreme/NetLink Ethernet controllers does not depend on OS or processor
instruction sets. Programmers using Motorola
®
68000, Intel
®
x86, or DEC Alpha host instruction sets can
leverage this document to aid in device driver development. Concepts provided in this document are also
applicable to device drivers native to any operating system (i.e., DOS, UNIX
®
, Microsoft
®
, or Novell
®
).
c.
“Miscellaneous Host Control Register (offset: 0x68)” on page 282
. The lower 16 bits are don’t cares for
determining chip id.
d.
“Product ASIC ID (offset: 0xF4)” on page 300
or determining ASIC ID.
e.
See the appropriate errata documentation for the errata information and resolutions.
Note:
If you are using silicon revision A0 of the BCM5718, you must load a “patch” image
(ap5718.012) into the boot code NVRAM in addition to the usual legacy boot code image common to
all NetXtreme/NetLink controllers. This extra patch image, which masquerades as “Management
Firmware”, works around an issue with A0 silicon in which the device may fail to load reliably and
execute the primary boot code image. This issue is fixed in BCM5718 B0 and is not an issue in
BCM5719 or BCM5720.