           Additional Installation Notes for Various Linux Distributions
                       Broadcom BCM5700 Linux Driver
                              Version 7.4.12
                                12/17/2004

                          Broadcom Corporation
                          16215 Alton Parkway,
                          Irvine, CA 92619-7013

                Copyright (c) 2000-2004 Broadcom Corporation
                           All rights reserved


Table of Contents
=================

  Introduction
  Limitations
  Prerequisites
  Prepare Kernel Source Tree (United Linux 1.0 Distributions)
  Enable Loadable Module Support on Turbolinux 10
  Prepare Cross-Compiler and Kernel Source Tree on ppc64 (SuSE SLES8 ppc)
  Remove tg3 Driver
  Edit /etc/modules.conf
  Patching PCI Files (Red Hat - Optional)
  Patching module-info Files (Red Hat - Optional)
  Network Installation (Red Hat)
  Message-"no version for "struct_module" found"

Introduction
============

This file contains additional installation notes for the Broadcom NetXtreme
bcm5700 Linux driver that are specific to certain Linux distributions. General
installation notes are contained in README.TXT.


Limitations
===========

The current version of the driver has been tested on selected Linux
distributions for i386, ia64, and x86_64. Limited testing has also
been done on PPC64 systems. Testing is normally focused on the
following distributions:

   Red Hat 9.0, 2.1AS and 3.0EL
   SuSE 9.0 and SLES8
   UnitedLinux 1.0
   Mandrake 9.2
 

Prerequisites
=============

In order to compile your Broadcom NetXtreme Linux driver, you must first
have a properly compiled kernel source tree which matches your running
kernel.  You must also have a working C/C++ compiler and all the associated
dependencies installed before attempting to compile the driver.
 
On Red Hat distributions, if you have opted for a custom installation, you
need to select "Development Tools" and "Kernel Development" to install
the necessary tools and kernel source tree.
   
On United Linux based distributions, you must change the software packages
installed by default when presented with the Installation Settings.  Under
software selelction, select "Detailed Selection".  In this area ensure that
"C/C++ Compiler and Tools" is selected.  This should install the C/C++
compiler as well as the kernel-source files.
   
For further assistance, please review your Linux documentation. 
    
      
Prepare Kernel Source Tree (United Linux 1.0 Distributions)
===========================================================
       
The following instructions pertain only to United Linux 1.0 based
distributions (SuSE 8.x, SCO4.0, etc.)  These steps are not
needed for Red Hat, Mandrake and other similar distributions.
        
1. Prepare the kernel source tree.  These steps may be necessary in order to
   compile a driver that will match your running kernel.
	
   cd /usr/src/linux-<kernel_version>.SuSE
   cp /boot/vmlinuz.config .config
   cp /boot/vmlinuz.version.h include/linux/version.h
   cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h
   make oldconfig
   make dep

2. Now build and install the Broadcom Linux driver using either the rpm or
   tar archive installation files. The procedures are found in README.TXT.
					      
					       
Enable Loadable Module Support on Turboilinux 10 
================================================

When attempting to compile the driver, the following message may be displayed:

   The present kernel configuration has modules disabled. Type 'make config'
   and enable loadable module support. Then build a kernel with module
   support enabled.

Do the following to enable loadable module support:

   cp /usr/src/configs/kernel-x.x.x-i586.config /usr/src/.config


Prepare Cross-Compiler and Kernel Source Tree on ppc64 (SuSE SLES8 ppc)
=======================================================================

1. Install the kernel source tree (e.g. 2.4.21-111-pseries64).

2. Install the ppc64 cross-compile binutils.

3. cd to the Linux kernel source directory (e.g. /usr/src/linux)

4. Edit the top level kernel Makefile and change the CROSS_COMPILE variable
   to:

   CROSS_COMPILE=/opt/cross/bin/powerpc64-linux-

   (Verify that this is the correct path to the cross-compile binutils)

5. Run the following to prepare the kernel source tree:

   make distclean
   cp arch/ppc64/defconfig.pseries .config
   make oldconfig
   make dep

6. Now build and install the Broadcom Linux driver using either the rpm or
   tar archive installation files. The procedures are found in README.TXT.
					      
       
Remove tg3 Driver
=================
					        
Many newer distributions and newer kernels may already contain and use the
tg3 driver by default for Broadcom BCM5700 series devices. While tg3 is a fully
functioning driver written by Red Hat, Broadcom recommends users to use
the bcm5700 driver written and tested by Broadcom.
						
1. Use ifconfig to bring down all interfaces used by tg3, then use `rmmod` to
   remove the module if loaded.  The following assumes eth0 and eth1 are both
   Broadcom devices using the tg3 driver.

   ifconfig eth0 down
   ifconfig eth1 down
   rmmod tg3
								    
2. Now it may be necessary to manually edit your /etc/modules.conf file to
   allow the bcm5700 driver to load at boot time instead of the tg3 driver.  See
   below.


Edit /etc/modules.conf
======================
									
If there is an alias entry in your /etc/modules.conf file referencing the
tg3 driver, make sure that you replace tg3 with bcm5700.  Otherwise, add the
entry below if necessary.
									 
Example:

alias eth0 bcm5700
									       

Patching PCI Files (Red Hat - Optional)
=======================================

To use the Red Hat kudzu hardware detection utility, and to list the
BCM5700 series devices using lspci, a number of files containing PCI vendor
and device information need to be patched with information on the BCM5700
series NICs. Patch files for Red Hat some of the latest Red Hat distributions
are included. Apply the appropriate patch by running the patch command.
For example, on Red Hat 9.0 for i386, apply the patch by doing the following:

   patch -N -p1 -d /usr < pci-rh90-i386.patch

Run kudzu:

   kudzu


Patching module-info Files (Red Hat - Optional)
===============================================

To use Red Hat's graphical network administration tool neat, the module-info
files need to be patched. Apply the appropriate patch by running the patch
command. For example, on Red Hat 8.0 for i386, apply the patch by doing the
following:

   patch -N -p1 -d /boot < modinfo-rh80-i386.patch

Run neat:

   neat


Network Installation (Red Hat)
==============================

For network installations through NFS, FTP, or HTTP (using a network boot disk
or PXE), a driver diskette that contains the bcm5700 driver is needed.  The
driver diskette images for the most recent Red Hat versions are included. Boot
drivers for other Linux versions can be compiled by modifying the Makefile and
the make environment. Further information is available from Red Hat's website.

To create the driver diskette, select the appropriate image file, gunzip it,
and do the following:

dd if=dd.img of=/dev/fd0H1440.


Message -"no version for "struct_module" found"
==============================================
If you see this message, bring the kernel version.h file up to date by 
executing the following command, then remake the bcm5700 module.

(cd /usr/src/linux; make include/linux/version.h)

