Submitted by: Sheldon Hearn

Miscellaneous fixes.
This commit is contained in:
Gerard Roudier 2000-06-04 14:58:40 +00:00
parent 1b24d0eff5
commit 334705dd0f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=61245

View File

@ -93,16 +93,16 @@ and
.Tn 53C1010 .Tn 53C1010
PCI SCSI controllers. PCI SCSI controllers.
.Pp .Pp
Driver features include support for wide SCSI busses, fast10, fast20, Driver features include support for wide SCSI busses and fast10, fast20,
fast40 and fast80-dt synchronous data transfers depending on controller fast40 and fast80-dt synchronous data transfers depending on controller
capabilities. capabilities.
It also provides generic SCSI features as tagged command It also provides generic SCSI features such as tagged command
queuing and auto-request sense. queuing and auto-request sense.
This driver is configured by default This driver is configured by default
for a maximum of 446 outstanding commands per bus, 8 LUNs per target for a maximum of 446 outstanding commands per bus, 8 LUNs per target
and 64 tagged tasks per LUN. and 64 tagged tasks per LUN.
These numbers are not so limited by design, These numbers are not so much limited by design
as have been considered reasonable values for current SCSI technology. as they are considered reasonable values for current SCSI technology.
These values can be increased by changing appropriate These values can be increased by changing appropriate
constants in driver header files (not recommended). constants in driver header files (not recommended).
.Pp .Pp
@ -122,67 +122,67 @@ is never stalled waiting for CPU attention in normal situations.
also uses LOAD/STORE SCRIPTS instructions for chips that support it. also uses LOAD/STORE SCRIPTS instructions for chips that support it.
Only the early 810, 815 and 825 NCR chips do not support LOAD/STORE. Only the early 810, 815 and 825 NCR chips do not support LOAD/STORE.
Use of LOAD/STORE instead of MEMORY MOVE allows SCRIPTS to access IO Use of LOAD/STORE instead of MEMORY MOVE allows SCRIPTS to access IO
registers internally to the chip (no external PCI cycles). registers internal to the chip (no external PCI cycles).
As a result, the driver guarantees that no PCI self-mastering will occur As a result, the driver guarantees that no PCI self-mastering will occur
for chips that support LOAD/STORE. for chips that support LOAD/STORE.
.Pp .Pp
LOAD/STORE instructions are also faster than MEMORY MOVE because LOAD/STORE instructions are also faster than MEMORY MOVE because
they do not involve the chip DMA fifo and are coded on 2 DWORDs they do not involve the chip DMA FIFO and are coded on 2 DWORDs
instead of 3. instead of 3.
.Pp .Pp
For the early NCR 810, 815 and 825 chips, the driver uses a separate For the early NCR 810, 815 and 825 chips, the driver uses a separate
SCRIPTS set that uses MEMORY MOVE instructions for data movements. SCRIPTS set that uses MEMORY MOVE instructions for data movements.
This is because LOAD/STORE are not supported by these chips. This is because LOAD/STORE are not supported by these chips.
.Pp .Pp
HVD/LVD capable controllers (895, 895A, 896, 897 and 1010) report HVD/LVD capable controllers (895, 895A, 896, and 897) report
the actual bus mode from the STEST4 chip IO registers. the actual bus mode in the STEST4 chip IO registers.
This feature This feature
allows to safely probe against bus mode and to set up the chip allows the driver to safely probe against bus mode and to set up the chip
accordingly. accordingly.
By default the driver only supports HVD for these chips. By default the driver only supports HVD for these chips.
For other chips that can support HVD but not LVD, the driver has to probe For other chips that can support HVD but not LVD, the driver has to probe
implementation dependent registers (GPIO) in order to detect HVD bus mode. implementation dependent registers (GPIO) in order to detect HVD bus mode.
Only HVD implementations that conform with Symbios Logic recommendation can Only HVD implementations that conform with Symbios Logic recommendations can
be detected by the driver. be detected by the driver.
When the When the
.Ar SYM_SETUP_SCSI_DIFF .Ar SYM_SETUP_SCSI_DIFF
kernel is provided kernel option is assigned
as value 1, the driver will also probe against HVD for 825a, 875, 876 and a value of 1, the driver will also probe against HVD for 825a, 875, 876 and
885 chips, assuming Symbios Logic compatible implementation of HVD. 885 chips, assuming Symbios Logic compatible implementation of HVD.
.Pp .Pp
When supplied as 0, the When the
.Ar SYM_SETUP_PCI_PARITY .Ar SYM_SETUP_PCI_PARITY
kernel configuration option is assigned a value of 0, the
indicates the driver not to enable PCI parity checking. driver will not enable PCI parity checking for 53C8XX devices.
PCI parity PCI parity
checking should not be an option for PCI SCSI controllers, but some checking should not be an option for PCI SCSI controllers, but some
systems have been reported to fail using 53C8XX chips due to spurious or systems have been reported to fail using 53C8XX chips, due to spurious or
permanent PCI parity errors detected. permanent PCI parity errors detected.
This option is supplied for This option is supplied for
convenience but it is not recommended nor supported. convenience but it is neither recommended nor supported.
.Pp .Pp
The generic The generic
.Nm ncr .Xr ncr 4
driver also supports SYM53C8XX based PCI SCSI controllers, driver also supports SYM53C8XX based PCI SCSI controllers,
except for the SYM53C1010 that is only supported by the except for the SYM53C1010, which is only supported by the
.Nm .Nm
driver. driver.
.Pp .Pp
By default, when both the By default, when both the
.Nm ncr .Xr ncr 4
and and
.Nm .Nm
drivers are configured, the drivers are configured, the
.Nm .Nm
driver takes precedence over the driver takes precedence over the
.Nm ncr .Xr ncr 4
driver. driver.
User can indicate a balancing of chip types between the two drivers The user can indicate a balancing of chip types between the two drivers
by defining the by defining the
.Ar SYM_SETUP_LP_PROBE_MAP .Ar SYM_SETUP_LP_PROBE_MAP
kernel configuration option as follows: kernel configuration option as follows:
.Bl -column "Bit " "53C8XXA, 53C8XX, 53C8XX, 53C8XX, 53C8XX, 53C8XX" .Bl -column "Bit " "53C8XXA, 53C8XX, 53C8XX, 53C8XX, 53C8XX, 53C8XX"
.Em Bit Devices attached by ncr instead .Em Bit Devices to be attached by ncr instead
0x01 53C810a, 53C860 0x01 53C810a, 53C860
0x02 53C825a, 53C875, 53C876, 53C885, 53C895 0x02 53C825a, 53C875, 53C876, 53C885, 53C895
0x04 53C895a, 53C896, 53C897, 53C1510d 0x04 53C895a, 53C896, 53C897, 53C1510d
@ -191,11 +191,11 @@ kernel configuration option as follows:
.Pp .Pp
For example, if For example, if
.Ar SYM_SETUP_LP_PROBE_MAP .Ar SYM_SETUP_LP_PROBE_MAP
is supplied with value 0x41, the is supplied with the value 0x41, the
.Nm ncr .Xr ncr 4
driver will attach to 53C810, 53C815, 53C825, 53C810a, and 53C860 based driver will attach to 53C810, 53C815, 53C825, 53C810a, and 53C860 based
controllers. controllers,
And the and the
.Nm .Nm
driver will attach to all other 53C8XX based controllers. driver will attach to all other 53C8XX based controllers.
.Pp .Pp
@ -204,17 +204,22 @@ When only the
driver is configured, the driver is configured, the
.Ar SYM_SETUP_LP_PROBE_MAP .Ar SYM_SETUP_LP_PROBE_MAP
option has no effect. option has no effect.
Thus in this case the Thus, in this case, the
.Nm .Nm
driver will attach all 53C8XX based controllers present in the system. driver will attach all 53C8XX based controllers present in the system.
.Pp .Pp
This driver offers other options that are not currently exported to user. This driver offers other options
They are defined and documented in the sym_conf.h driver file. that are not currently exported to the user.
It is not They are defined and documented in the
recommended to change these options unless absolute need. .Pa sym_conf.h
driver file.
Changing these options is not recommended unless absolutely necessary.
Some of these Some of these
options are planned to be exported through SYSCTL or equivalent mechanism options are planned to be exported through
in a further driver release and therefore, no compatibility is guaranteed. .Xr sysctl 3
or an equivalent mechanism
in a future driver releases and therefore,
no compatibility is guaranteed.
.Pp .Pp
At initialization, the driver tries to detect and read user settings from At initialization, the driver tries to detect and read user settings from
controller NVRAM. controller NVRAM.
@ -247,7 +252,7 @@ Devices that are configured as disabled for 'scan' in the NVRAM are not
reported to CAM at system start-up. reported to CAM at system start-up.
They can be discovered later using They can be discovered later using
the the
.Nm camcontrol rescan .Ql camcontrol rescan
command. command.
.Pp .Pp
The table below summarizes the main features and capabilities of the The table below summarizes the main features and capabilities of the
@ -284,22 +289,25 @@ No known bugs.
.Sh AUTHORS .Sh AUTHORS
The The
.Nm .Nm
driver has been written by Gerard Roudier and is derived from the driver was written by
.An Gerard Roudier
and is derived from the
Linux sym53c8xx driver from the same author. Linux sym53c8xx driver from the same author.
The sym53c8xx driver is derived from the ncr53c8xx driver that had been The sym53c8xx driver is derived from the ncr53c8xx driver,
a port of the which was ported from the
.Fx .Fx
.Nm ncr .Xr ncr 4
driver to Linux-1.2.13. driver to Linux-1.2.13.
The original The original
.Nm ncr .Xr ncr 4
driver was written for 386BSD and driver was written for 386BSD and
.Fx .Fx
by Wolfgang Stanglmeier and Stefan Esser. by
.An Wolfgang Stanglmeier
and
.An Stefan Esser .
.Sh HISTORY .Sh HISTORY
The The
.Nm .Nm
driver appeared in driver appeared in
.Fx 4.0 . .Fx 4.0 .