Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Nov 2000 13:09:48 +0100 (CET)
From:      =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr>
To:        freebsd-scsi@freebsd.org, linux-scsi@vger.kernel.org
Subject:   Preliminary SYM-2 driver version available.
Message-ID:  <Pine.LNX.4.10.10011011301110.501-200000@linux.local>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]

Hello,

I am glad to announce the availability of a preliminary version of 
the SYM-2 driver. It is versionned sym-2.0.3.

The first official release will be sym-2.1.0 and will replace all 
the drivers for [ncr|sym|lsi][53c8xx|53c1010] PCI-SCSI controllers
I currently maintain, namely:

- Linux ncr53c8xx driver.
- Linux sym53c8xx driver.
- FreeBSD sym driver.

I used a variety of shoehorns in order to have O/S glue code as 
short as possible. :-)
The result is obviously not perfect, but it looks good enough for 
me to be quite happy of it. Hopefully version 2.1.0 will be better :).

The aim of SYM-2.1 is:
- To decrease time spent for maintainance, thus allowing more time 
  for development.
- To allow, at least me, to port the driver to some other O/S(es) in 
  a reasonnable time, if it ever makes interest.

SYM-2.0.3 can be downloaded from the following location:

ftp://ftp.tux.org/roudier/drivers/portable/experimental/sym-2.0.3-20001101.tar.gz

I only tried this driver version under Linux-2.2.16 and FreeBSD-4.0. It
does not, at least for the moment, provide more features than stock sym
drivers, but may well provide some additionnal bugs :-) due to the merge
and somes rewrite of the O/S glue code parts.

People who like playing with dangerous code should enjoy giving this 
prelimary sym-2 driver version a try (Btw, in fact, I am under the 
impression that this driver version does work quite well). :-)

Gérard.

[-- Attachment #2 --]
SYM-2 driver development README file                        2000-11-31

Current SYM driver version is 2.0.3.

This is a full-functionnal preliminary version of the multi-O/S 
SYM driver.

- Under FreeBSD, this driver is a full-featured replacement 
  of the stock `sym' driver, given that it is just the version 
  2 of this driver :). But it has only been tried on 
  FreeBSD-4.0/i386 for now.

- Under Linux, it replaces both sym53c8xx and ncr53c8xx drivers,
  with the following restrictions:
  1) The boot command line is not yet supported (backported).
  2) On-line commands through the proc/FS are not supported,
     and will not be, since this feature hasn't proven to be 
     this useful.
  3) It has only been tried on stock linux-2.2.16/i386, statically 
     linked with the kernel image.

sym-2 driver series todo list:
------------------------------
sym-2.0.0:	ACHIEVED
	Move O/S glue code to separate files.
	Make the driver work again under FreeBSD.
sym-2.0.X:	IN PROGRESS
	Implement glue code for Linux based on sym53c8xx 
	driver.
	Interface with the new SCSI error handling method.
sym-2.1.0:	PLANNED FOR SOON :-)
	Make the driver work under Linux.
	Make the driver work again under FreeBSD.
sym-2.1.X:
	Make the driver rock solid.
	Commit the resulted driver version.
sym-2.2.0:
	Add framework and main code for target mode support.
	Make the driver work again.
sym-2.2.X:
	Complete development of target mode support.
	Make this feature work reasonnably under FreeBSD.

This driver have tested it (a bit :)) under FreeBSD-4.0 and Linux-2.2.16.
The driver should probably compile and hopefully work under FreeBSD-4.X 
and probably under Linux-2.2.17/2.2.18.

SYM-2 driver series drop Support for Linux-2.0.x.
Support for FreeBSD 3.x will not be dropped, but the new driver 
version will not be committed to that branch.

Driver files:
-------------

FreeBSD specific files:
  FreeBSD/
    sym_glue.h	 Main header file - also contains O/S specific definitions
    sym_glue.c	 O/S specific code
    sym-2.0.3-kconf.diff  Tiny patch for kernel configuration files.

Linux specific files:
  Linux/
    sym53c8xx.h  Host template definition + kernel config wrapper
    sym_glue.h	 Main header file - also contains O/S specific definitions
    sym_glue.c	 O/S specific code
    sym-2.0.3-kconf.diff  Tiny patch for kernel configuration files.

Common driver files (not platform-specific) :
  Common/
    sym_conf.h	 Driver default configuration and options
    sym_defs.h	 SYMBIOS chips and SCSI related definitions
    sym_fw.h	 Firmware interface definitions
    sym_fw1.h	 NCR-Generic firmware
    sym_fw2.h	 LOAD/STORE based firmware
    sym_fw.c	 Firmware interface code
    sym_hipd.h	 Driver data structures and constants definitions
    sym_hipd.c	 Core driver code
    sym_misc.h	 For now LIST/QUEUE and byte ORDERING stuff
    sym_nvram.c	 NVRAM reading and parsing code

Installation under FreeBSD-4.0 (suggestion):
--------------------------------------------
The directory where the driver files have been dowloaded is denoted:
        <driver_source>

1) Save original driver files:
   # cd /usr/src/sys/dev/
   # mv sym sym-orig
   # mkdir sym

2) Add the new driver files:
   # cd <driver_source>
   # cp Common/*.h  Common/*.c  /usr/src/sys/dev/sym/
   # cp FreeBSD/*.h FreeBSD/*.c /usr/src/sys/dev/sym/

3) Save kernel config files that need changes:
   # cd /usr/sys/conf
   # mv files files-orig

4) Apply the tiny patch to 'conf/files'
   # cd /usr
   # cat <driver_source>/FreeBSD/sym-2.0.3-kconf.diff | patch -p0

For other FreeBSD versions, the diffs (4) may have to be 
applied manually. Btw, they are just tiny trivial changes.

Installation under Linux-2.2.16 (suggestion):
--------------------------------------------
1) Save original driver files:
   # cd /usr/src/linux/drivers/scsi
   # mkdir SAVED
   # mv sym53c8xx*.* SAVED/
   # mv ncr53c8xx*.* SAVED/

2) Add the new driver files:
   # cd <driver_source>
   # cp Common/*.h Common/*.c /usr/src/linux/drivers/scsi/
   # cp Linux/*.h  Linux/*.c  /usr/src/linux/drivers/scsi/

3) Save kernel files that need changes:
   # cd /usr/src/linux/drivers/scsi
   # mv Makefile Makefile-orig

4) Apply the tiny patch to the scsi Makefile:
   # cd /usr/src
   # cat <driver_source>/Linux/sym-2.0.3-kconf.diff | patch -p0

5) Configure the kernel for SYM53C8XX and not for NCR53C8XX.

For other Linux versions, the diffs (4) may have to be 
applied manually. Btw, they are just tiny trivial changes.

--
Gerard ROUDIER.  groudier@club-internet.fr, groudier@FreeBSD.org.

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10011011301110.501-200000>