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:
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
@ -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>
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user