
                          Broadcom Corporation
                          16215 Alton Parkway,
                          Irvine, CA 92619-7013
			  
                              Release Notes
                       Broadcom BCM5820 Linux Driver
                               08/03/2001

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

  Introduction
  Limitations
  Packaging
  Installing Source RPM Package
  Statistics support through snmp agent.
  Building Driver From TAR File
  Patching PCI Files
  Rebuilding the RedHat 7.0 Enterprise Kernel Source Tree
  Revision History
  
			       
Introduction
============

This file describes the Linux driver for Broadcom's BCM5820 Cryptonet SSL Accellorator Chip. 


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

The current version of the driver has only been tested on Redhat 7.0 Linux distributions for i386 (kernel version  2.2.16), and Redhat 7.1 distrabutions for i386 (kernel version 2.4.2). The driver has only been tested as a loadable module.
The following installation procedures work with the aforementioned distributions. Minor modification may be required to install the driver on other Linux distribution.


Packaging
=========

The driver is released in two packaging formats, source RPM and compressed tar
formats. The file names for the two packages are bcm5820-<version>.src.rpm and
bcm5820-<version>.tgz respectively. Identical files to build the driver are
included in both packages.


Installing Source RPM Package
=============================

1. Install the source RPM package:

   rpm -i bcm5820-<version>.src.rpm

2. CD to the RPM path and build the binary driver for your kernel:

   cd /usr/src/{redhat,OpenLinux,turbo, ..}
   rpm -bb SPECS/bcm5820.spec

Note that the RPM path is different for different Linux distributions.

3. Install the newly built package:

   rpm -i RPMS/i386/bcm5820-<version>.i386.rpm

   This command will do the following:

   a) The driver will be installed as 
      /lib/modules/<kernel_version>/kernel/drivers/char/bcm5820.o
   b) The driver will be automatically loaded
   c) The driver will be setup to load at boot
   d) The diagnostics file will be installed as
      /usr/bin/b58diag
   e) The SSL libary files will be installed as
      /usr/lib/libubsec.a
      /usr/lib/libubsec.so
   f) The script file for driver to load at boot is installed as
      /etc/rc.d/init.d/bcm5820
   g) The release file (this file) is installed as
      /usr/src/broadcom/cryptonet/release.txt
   h) A number of files files containing PCI vendor and device information will be patched with information on the BCM5820 chip. The patch files will be installed as
      /usr/src/broadcom/cryptonet/pci5820.patch70
      /usr/src/broadcom/cryptonet/pci5820.patch71

Uninstall - RPM package
=======================
To uninstall RPM package,

    % rpm -e bcm5820-{version}

This uninstall command will remove all the files and patches done with install command. It will also unload the driver.

Statistics support through SNMP agent:
======================================

BCM5820 Linux driver version 1.09 and above supports obtaining statistics through NET-SNMP agent distributed
with RedHat Linux version 7.0 and above. For details see /usr/share/doc/broadcom/cryptonet/readme.snmp 


Building Driver From TAR File
=============================

1. Create a directory and extract the files:

   tar -xvzf bcm5820-<version>.tgz

2. Build the driver bcm5820.o as a loadable module:

   make rebuild

3.Test the driver by loading it: 

   make load

4.Complete the installation: 

   make install

Note driver is not loaded via this command, but will 
be loaded at boot once "make install" is done. 

5. Unload driver
   make unload

6. Uninstall
   make uninstall


Rebuilding the RedHat 7.0 Enterprise Kernel Source Tree
=======================================================
			       
1. Introduction

This section describes how to rebuild the RedHat 7.0 Enterprise
source tree for the purpose of loading the bcm5820 driver module
with the RedHat 7.0 2.2.16-22enterprise kernel. Without the rebuild,
the 5820 dirver cannot be loaded.
 

2. Pre-requisites

RedHat Kernel Source: kernel-source-2.2.16-22.i386.rpm
Kernel Source Patches: kernel-2.2.16-22.src.rpm
KGCC: kgcc-1.1.2-40.i386.rpm


3. Verify Pre-requisites

rpm -q kernel-source
rpm -q kernel-2.2.16-22.src
rpm -q kgcc

If the kernel-source-2.2.16-22.i386.rpm or kgcc-1.1.2-40.i386.rpm
files are not installed, you may obtain the files from your RedHat 7.0
Binary CD-ROM or from:
ftp://ftp.redhat.com/redhat/linux/7.0/en/os/i386/RedHat/RPMS/

If the kernel-2.2.16.22.src.rpm package is not installed, you may
obtain the file from your RedHat Source CD-ROM or from:
ftp://ftp.redhat.com/redhat/linux/7.0/en/os/i386/SRPMS/

4. Install Pre-requisites if needed

Skip this process and go to "Copy the Patch Files" if
you were able to successfully query for these packages using rpm -q

rpm -ivh kernel-source-2.2.16-22.i386.rpm
rpm -ivh kernel-2.2.16-22.src.rpm
rpm -ivh kgcc-1.1.2-40.i386.rpm

Note: You may need to manually create the /usr/src/redhat/ directory
if the installation of kernel-2.2.16-22.src.rpm should fail.


5. Copy the Patch Files and Patch Kernel

Make sure that you have a symlink for your Kernel source directory to
/usr/src/linux before your proceed.

Example: /usr/src/linux --> /usr/src/linux-2.2.16

Change directory to /usr/src and copy the below patch files into the
working directory.  Note that in the example, there is one space and
one "dot" following the word patch.

cd /usr/src/
cp redhat/SOURCES/linux-2.2.16-lfs.patch .
cp redhat/SOURCES/linux-2.2.16-lfs-bigmem.patch .
patch -p0 -f < linux-2.2.16-lfs.patch
patch -p0 -f < linux-2.2.16-lfs-bigmem.patch

Note: You must have kernel-2.2.16-22.src.rpm installed to complete this
step.


6. Rebuild the source tree

Change directory to /usr/src/linux and run "make mrproper" to clean up
your source.

make mrproper

Copy the old RedHat Enterprise configuration file to the working
directory while renaming it to .config

cp configs/kernel-2.2.16-i686-enterprise.config .config

Run "make oldconfig" to configure the Enterprise Kernel sourctree with
the original parameters set by RedHat in .config.  Finally run "make dep".

make oldconfig
make dep


7. Correct the Version Header file

With your favorite text editor modify /usr/src/linux/include/linux/version.h

Find the line that reads:
#define UTS_RELEASE "2.2.16-22"

Change to:
#define UTS_RELEASE "2.2.16-22enterprise"

Save your changes.
Done. You may now build the bcm5820 driver module.


Revision History
================

1.08 (05/24/01) Intial Creation
   - First release of the driver for BCM5820 chips.
1.09 (06/07/01) 
   - SNMP support
   - It has the following bugs resolved:
           Prod00001620 Prod00001590 Prod00001589 Prod00001593
   - In addition, new targets are added in the Makefile -
	make tarball -f rpm/Makefile
	make rpmball -f rpm/Makefile
1.10 (06/19/01)
   - Fix reference for snmp documentation.
   - Snmp Trap documentation, implementation.
1.11 (06/22/01)
   - Failover support
   - Hidden option for simulating failover.
   - Directed card support in diagnostics.
   - It has the following bugs resolved:
	  Prod00001764
1.12 (07/13/01)
   - It has the following bug fixes
          Prod00001823
          SNMP bug (snmpwalk does not work in 1.11)
1.16 (07/31/01)
   - Open source License
   - Cleanup
   - Failover bug fix.
1.17 (08/03/01)
   - Mainatanance release

