1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-26 16:18:31 +00:00

Update to the 0.12.0-19991127 patch + my header path & doc changes.

This commit is contained in:
David E. O'Brien 1999-11-28 01:35:29 +00:00
parent 8d2e981009
commit 8fac250d9e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor-sys/sym/dist/; revision=53809
svn path=/vendor-sys/sym/0.12.0-19991127_deo/; revision=53811; tag=vendor/sym/0.12.0-19991127_deo
2 changed files with 98 additions and 29 deletions

View File

@ -68,22 +68,23 @@ Status:
FreeBSD 3.3 RELEASE FreeBSD 3.3 RELEASE
Latest revision: Latest revision:
sym-0.11.0-19991120 sym-0.12.0-19991127
Files to download: Files to download:
SYM-0.9.0-19991024.tar.gz SYM-0.9.0-19991024.tar.gz
PATCH-SYM-0.10.0-19991111.gz PATCH-SYM-0.10.0-19991111.gz
PATCH-SYM-0.11.0-19991120.gz PATCH-SYM-0.11.0-19991120.gz
PATCH-SYM-0.12.0-19991127.gz
Supported SCSI features: Supported SCSI features:
- Initiator mode - Initiator mode
- Wide 16 SCSI BUS - Wide 16 SCSI BUS
- FAST10 up to FAST80-DT synchronous data transfers (1) - FAST10 up to FAST80-DT synchronous data transfers
(depends on controller capabilities) (depends on controller capabilities)
- 64 luns per target - 64 luns per target
- 256 tags per lun - 256 tags per lun
- MDP (2) - MDP (1)
- BUS DEVICE RESET message - BUS DEVICE RESET message
- ABORT, ABORT TAG message (2) - ABORT, ABORT TAG message
Supported generic chip features: Supported generic chip features:
- On chip RAM - On chip RAM
@ -102,9 +103,7 @@ Others:
100% scalability. 100% scalability.
Notes: Notes:
(1) FAST80-DT only supported by the LSI53C1010 (1) Not yet reported. May not work as expected.
but not yet tested.
(2) Not yet reported. May not work as expected.
Files: Files:
README.sym this file README.sym this file
@ -121,20 +120,21 @@ be attached by the sym_hipd.c driver.
Installation: Installation:
1) Untar SYM-0.9.0-19991024.tar.gz 1) Untar SYM-0.9.0-19991024.tar.gz
2) Create the /usr/src/sys/dev/sym directory 2) Create the /usr/src/sys/dev/sym directory
2) Copy README.sym, sym_conf.h, sym_defs.h and sym_hipd.c to 3) Copy README.sym, sym_conf.h, sym_defs.h and sym_hipd.c to
/usr/src/sys/dev/sym/ /usr/src/sys/dev/sym/
3) Change to /usr/src/sys/ directory 4) Change to /usr/src/sys/ directory
4) If FreeBSD-4, apply the unified patch sym_sys.patch 5) If FreeBSD-4, apply the unified patch sym_sys.patch
(patch -p0 <sym_sys.patch) (patch -p0 <sym_sys.patch)
Otherwise, Otherwise,
If FreeBSD-3, apply the unified patch sym_sys_3.patch If FreeBSD-3, apply the unified patch sym_sys_3.patch
(patch -p0 <sym_sys_3.patch) (patch -p0 <sym_sys_3.patch)
Otherwise, leave here. ;) Otherwise, leave here. ;)
5) Change to /usr/src/sys/dev/sym directory 6) Change to /usr/src/sys/dev/sym directory
6) Update to SYM-0.11.0-19991120 7) Update to SYM-0.11.0-19991120
gzip -d <PATCH-SYM-0.10.0-19991111.gz | patch -p0 gzip -d <PATCH-SYM-0.10.0-19991111.gz | patch -p0
gzip -d <PATCH-SYM-0.11.0-19991120.gz | patch -p0 gzip -d <PATCH-SYM-0.11.0-19991120.gz | patch -p0
7) Add sym0 to your kernel configuration as indicated in patched LINT file. gzip -d <PATCH-SYM-0.12.0-19991127.gz | patch -p0
8) Add sym0 to your kernel configuration as indicated in patched LINT file.
Configure and make your kernel. Configure and make your kernel.
As seen from the shell history file (driver material assumed from /tmp), As seen from the shell history file (driver material assumed from /tmp),
@ -148,7 +148,53 @@ patch -p0 <dev/sym/sym_sys.patch # use sym_sys_3.patch if FreeBSD-3.X
cd dev/sym cd dev/sym
gzip -d </tmp/PATCH-SYM-0.10.0-19991111.gz | patch -p0 gzip -d </tmp/PATCH-SYM-0.10.0-19991111.gz | patch -p0
gzip -d </tmp/PATCH-SYM-0.11.0-19991120.gz | patch -p0 gzip -d </tmp/PATCH-SYM-0.11.0-19991120.gz | patch -p0
gzip -d </tmp/PATCH-SYM-0.12.0-19991127.gz | patch -p0
Configuring Ultra-3 DT data transfer support.
---------------------------------------------
If you have a board using the SYM53C1010 (only evaluation boards seem to
be available for now), you may want to give Ultra-3 DT transfer a try.
For the reasons that FreeBSD-CAM is not yet ready for Ultra-3 and that
early SYM53C1010 chips need some work-around for DT transfers to work
reliably, you must apply manually the following additionnal patch to your
kernel tree:
---------------------- Cut Here ------------------------
--- cam/scsi/scsi_all.c.00 1999/08/29 16:21:44
+++ cam/scsi/scsi_all.c 1999/11/23 22:11:22
@@ -2394,6 +2394,7 @@
u_int period_factor;
u_int period; /* in 10ths of ns */
} scsi_syncrates[] = {
+ { 0x09, 125 },
{ 0x0a, 250 },
{ 0x0b, 303 },
{ 0x0c, 500 }
--- pci/sym_conf.h.00 Fri Nov 26 22:58:59 1999
+++ pci/sym_conf.h Fri Nov 26 22:58:38 1999
@@ -69,6 +69,7 @@
* corresponding code will get useless.
*/
/* #define SYMCONF_BROKEN_U3EN_SUPPORT */
+#define SYMCONF_BROKEN_U3EN_SUPPORT
/*
* Use Normal IO instead of MMIO.
---------------------- Cut Here ------------------------
This change consist in allowing sync factor 9 support to be handled
by scsi_all.c and a compilation option to be defined in sym_conf.h.
The driver may only start a PPR negotiation if sync factor is 9.
This change has been only tested on FreeBSD-3.3 for the moment.
For the PPR negotiation to occur at system startup time, you need to
configure Ultra3 hard disks in the NVRAM for 80 Mega-transfers per second
Wide.
If you prefer to use camcontrol for such a negotiation to be performed after
system startup, then you have to rebuild either the libcam shareable library
with the patched version of scsi_all.c, on to rebuild camcontrol using
the new static version of the libcam library that includes the patched
version of scsi_all.o.
Warnings: Warnings:
- This driver uses LOAD/STORE instructions from SCRIPTS and therefore does - This driver uses LOAD/STORE instructions from SCRIPTS and therefore does
@ -163,8 +209,9 @@ Versionning:
They must be applied from directory: /usr/src/sys/dev/sym/ They must be applied from directory: /usr/src/sys/dev/sym/
- Version 1.0.0 will happen when the driver will be tested enough but this - Version 1.0.0 will happen when the driver will be tested enough but this
driver version will probably not officially support the C1010 (Ultra-3) driver version will probably not officially support the C1010 (Ultra-3)
since the testing hasn't started yet. Some 1.X.0 version will support the since the testing of Ultra3 has just started and FreeBSD-CAM is not yet
C1010 (DT data transfer). ready for the support of Ultra-3. Some 1.X.0 version will support
DT data transfer for the C1010.
- Version 2.0.0 is not planned for now, but will add support for host target - Version 2.0.0 is not planned for now, but will add support for host target
mode if it will ever exist. mode if it will ever exist.
@ -228,7 +275,7 @@ Change log:
Fix the LED support through GPIO0 for pre-896 chips. In fact some code Fix the LED support through GPIO0 for pre-896 chips. In fact some code
was wrongly conditionned by something that was never met. was wrongly conditionned by something that was never met.
Switch driver status to BETA-RELEASE given that this driver has been rock Switch driver status to BETA-RELEASE given that this driver has been rock
solid even if s small number of users seems to actually use it. solid even if a small number of users seems to actually use it.
* SYM-0.11.0-19991120 (diff file PATCH-SYM-0.11.0-19991120) * SYM-0.11.0-19991120 (diff file PATCH-SYM-0.11.0-19991120)
Rearrange a bit the initialisation code that deals with IO registers. Rearrange a bit the initialisation code that deals with IO registers.
@ -240,4 +287,11 @@ Change log:
LSI53C1010 tested with Asynchronous, FAST5, FAST10, FAST20 and FAST40 LSI53C1010 tested with Asynchronous, FAST5, FAST10, FAST20 and FAST40
data transfers. data transfers.
November 25 1999. "Gerard Roudier"<groudier@club-internet.fr> * SYM-0.12.0-19991127 (diff file PATCH-SYM-0.12.0-19991127)
Some testing in Ultra3 FAST-80 DT mode using a SYM53C1010 connected
to an ATLAS 4 Ultra3 disk. Required some tiny fix in the ppr nego code.
Some cosmetic changes in messages displayed under DEBUG.
Fix the chip table (and code) that made the driver wrongly attach
810 and 825 devices.
November 27 1999. "Gerard Roudier"<groudier@club-internet.fr>

View File

@ -56,7 +56,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#define SYM_DRIVER_NAME "sym-0.11.0-19991120" #define SYM_DRIVER_NAME "sym-0.12.0-19991127"
#include <pci.h> #include <pci.h>
#include <stddef.h> /* For offsetof */ #include <stddef.h> /* For offsetof */
@ -356,7 +356,7 @@ static int sym_debug = 0;
#define DEBUG_FLAGS sym_debug #define DEBUG_FLAGS sym_debug
#else #else
/* #define DEBUG_FLAGS (0x0631) */ /* #define DEBUG_FLAGS (0x0631) */
#define DEBUG_FLAGS (0x0) #define DEBUG_FLAGS (0x00)
#endif #endif
#define sym_verbose (np->verbose) #define sym_verbose (np->verbose)
@ -4281,8 +4281,12 @@ static int sym_prepare_nego(hcb_p np, ccb_p cp, int nego, u_char *msgptr)
/* /*
* For now, only use PPR with DT option if period factor = 9. * For now, only use PPR with DT option if period factor = 9.
*/ */
if (tp->tinfo.goal.period == 9) if (tp->tinfo.goal.period == 9) {
tp->tinfo.goal.options = PPR_OPT_DT; tp->tinfo.goal.width = BUS_16_BIT;
tp->tinfo.goal.options |= PPR_OPT_DT;
}
else
tp->tinfo.goal.options &= ~PPR_OPT_DT;
#endif #endif
/* /*
* Early C1010 chips need a work-around for DT * Early C1010 chips need a work-around for DT
@ -4340,7 +4344,9 @@ static int sym_prepare_nego(hcb_p np, ccb_p cp, int nego, u_char *msgptr)
if (nego) { if (nego) {
tp->nego_cp = cp; /* Keep track a nego will be performed */ tp->nego_cp = cp; /* Keep track a nego will be performed */
if (DEBUG_FLAGS & DEBUG_NEGO) { if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "nego msgout:", msgptr); sym_print_msg(cp, nego == NS_SYNC ? "sync msgout" :
nego == NS_WIDE ? "wide msgout" :
"ppr msgout", msgptr);
}; };
}; };
@ -4878,6 +4884,7 @@ static void sym_setwide(hcb_p np, ccb_p cp, u_char wide)
tp->tinfo.goal.width = tp->tinfo.current.width = wide; tp->tinfo.goal.width = tp->tinfo.current.width = wide;
tp->tinfo.current.offset = 0; tp->tinfo.current.offset = 0;
tp->tinfo.current.period = 0; tp->tinfo.current.period = 0;
tp->tinfo.current.options = 0;
neg.bus_width = wide ? BUS_16_BIT : BUS_8_BIT; neg.bus_width = wide ? BUS_16_BIT : BUS_8_BIT;
neg.sync_period = tp->tinfo.current.period; neg.sync_period = tp->tinfo.current.period;
neg.sync_offset = tp->tinfo.current.offset; neg.sync_offset = tp->tinfo.current.offset;
@ -4935,8 +4942,7 @@ static void sym_setpprot(hcb_p np, ccb_p cp, u_char dt, u_char ofs,
tp->tinfo.goal.width = tp->tinfo.current.width = wide; tp->tinfo.goal.width = tp->tinfo.current.width = wide;
tp->tinfo.goal.period = tp->tinfo.current.period = per; tp->tinfo.goal.period = tp->tinfo.current.period = per;
tp->tinfo.goal.offset = tp->tinfo.current.offset = ofs; tp->tinfo.goal.offset = tp->tinfo.current.offset = ofs;
tp->tinfo.current.offset= dt ? PPR_OPT_DT : 0; tp->tinfo.goal.options = tp->tinfo.current.options = dt;
tp->tinfo.goal.offset = tp->tinfo.current.offset = ofs;
neg.sync_period = tp->tinfo.current.period; neg.sync_period = tp->tinfo.current.period;
neg.sync_offset = tp->tinfo.current.offset; neg.sync_offset = tp->tinfo.current.offset;
neg.bus_width = wide ? BUS_16_BIT : BUS_8_BIT; neg.bus_width = wide ? BUS_16_BIT : BUS_8_BIT;
@ -7111,7 +7117,7 @@ static void sym_sync_nego(hcb_p np, tcb_p tp, ccb_p cp)
* Synchronous request message received. * Synchronous request message received.
*/ */
if (DEBUG_FLAGS & DEBUG_NEGO) { if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "sync msg in", np->msgin); sym_print_msg(cp, "sync msgin", np->msgin);
}; };
/* /*
@ -7212,7 +7218,7 @@ static void sym_ppr_nego(hcb_p np, tcb_p tp, ccb_p cp)
* Synchronous request message received. * Synchronous request message received.
*/ */
if (DEBUG_FLAGS & DEBUG_NEGO) { if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "sync msg in", np->msgin); sym_print_msg(cp, "ppr msgin", np->msgin);
}; };
/* /*
@ -7261,8 +7267,10 @@ static void sym_ppr_nego(hcb_p np, tcb_p tp, ccb_p cp)
} }
if (ofs) { if (ofs) {
if (dt && per < np->minsync_dt) if (dt) {
{chg = 1; per = np->minsync_dt;} if (per < np->minsync_dt)
{chg = 1; per = np->minsync_dt;}
}
else if (per < np->minsync) else if (per < np->minsync)
{chg = 1; per = np->minsync;} {chg = 1; per = np->minsync;}
if (req) { if (req) {
@ -7311,7 +7319,7 @@ static void sym_ppr_nego(hcb_p np, tcb_p tp, ccb_p cp)
cp->nego_status = NS_PPR; cp->nego_status = NS_PPR;
if (DEBUG_FLAGS & DEBUG_NEGO) { if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "sync msgout", np->msgout); sym_print_msg(cp, "ppr msgout", np->msgout);
} }
np->msgin [0] = M_NOOP; np->msgin [0] = M_NOOP;
@ -9507,9 +9515,15 @@ DATA_SET (pcidevice_set, sym_pci_driver);
#endif /* FreeBSD_4_Bus */ #endif /* FreeBSD_4_Bus */
static struct sym_pci_chip sym_pci_dev_table[] = { static struct sym_pci_chip sym_pci_dev_table[] = {
{PCI_ID_SYM53C810, 0x0f, "810", 4, 8, 4,
FE_ERL}
,
{PCI_ID_SYM53C810, 0xff, "810a", 4, 8, 4, {PCI_ID_SYM53C810, 0xff, "810a", 4, 8, 4,
FE_CACHE_SET|FE_LDSTR|FE_PFEN|FE_BOF} FE_CACHE_SET|FE_LDSTR|FE_PFEN|FE_BOF}
, ,
{PCI_ID_SYM53C825, 0x0f, "825", 6, 8, 4,
FE_WIDE|FE_BOF|FE_ERL|FE_DIFF}
,
{PCI_ID_SYM53C825, 0xff, "825a", 6, 8, 4, {PCI_ID_SYM53C825, 0xff, "825a", 6, 8, 4,
FE_WIDE|FE_CACHE0_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM|FE_DIFF} FE_WIDE|FE_CACHE0_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM|FE_DIFF}
, ,
@ -9602,6 +9616,7 @@ sym_find_pci_chip(pcici_t pci_tag)
continue; continue;
if (FE_LDSTR & chip->features) if (FE_LDSTR & chip->features)
return chip; return chip;
break;
} }
return 0; return 0;