freebsd-dev/sys
Matt Jacob 83cdc1a2b0 Roll revision levels. Add support for the Qlogic 2200 (warn about
not having SCSI_ISP_SCCLUN config defined if we don't have f/w for
the 2200- it's resident firmware uses SCCLUN (65535 luns)). Change
the way the default LoopID is gathered (it's now a platform specific
define so that some attempt at a synthetic WWN can be made in case
NVRAM isn't readable).

Change initialization of options a bit- don't use ADISC. Set
FullDuplex mode if config options tells us to do so. Do not use
FULL_LOGIN after LIP- it's the right thing to do but it causes too
much loop disruption (Loop Resets). Sanity check some default
values. Redo construction of port and node WWNs based upon what we
have- if we have 2 in the top nibble, we can have distinct port
and node WWNs. Clean up some SCCLUN related code that we obviously
had never compiled (:-(). Audit commands coming int ispscsicmd and
don't throw commands at Fibre devices that do not have Class 3
service parameters TARGET ROLE defined.

Clean up f/w initialization a bit. Add Fabric support (or at least
the first blush of it). Whew - way too much to describe here.
Basically, after a LIP, hang out until we see a Loop Up or a Port
DataBase Change async event, then see if we're on a Fabric
(GET_PORT_NAME of FL_PORT_ID). If we are, try and scan the fabric
controller for fabric devices using the GetAllNext SNS subcommand.
As we find devices, announce them to the outer layer. Try and do
some guard code for broken (Brocade) SNS servers (that get stuck
in loops- gotta maybe do this a different way using the GP_ID3 cmd
instead).  Then do a scan of the lower (local loop) ids using a
GET_PORT_NAME to see if the f/w has logged into anything at that
loop id. If so, then do a GET_PORT_DATABASE command.  Do this scan
into a local database. At this point we can say the loop is 'Ready'.
After this, we merge our local loop port database with our stored
port database- in a as yet to be really fully exercised fashion we
try and follow the logic of something having moved around. The
first time we see something at a Loop ID, we fix it, for the purpose
of this system instance, at that Loop ID. If things shift around
so it ends up somewhere else, we still keep it at this Loop ID (our
'Target') but use the new (moved) Loop ID when we actually throw
commands at it. Check for insane cases of different Loop IDs both
claiming to have the same WWN- if that happens, invalidate both.
Notify the outer layer of devices that have arrived and devices
that have gone away. *Finally*, when this is done, search the
softc's database of Fabric devices and perform logout/login actions.
The Qlogic f/w maintains logout/login for all local loop devices.
We have to maintain logout/login for fabric devices- total PITA.
Expect to see this area undergo more change over time.
1999-07-02 23:06:38 +00:00
..
alpha Fix last delta which reinitialized nextpaddr to zero each time through the 1999-07-02 05:05:51 +00:00
amd64 Lightly overhaul the memory sizing code again. 1999-07-02 20:33:32 +00:00
boot Document the hw.physmem tunable. (There should be arch-specific tunable 1999-07-02 20:38:05 +00:00
cam int/long printf format problems on the Alpha. 1999-07-01 19:56:50 +00:00
coda Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
compat
compile
conf Replicate changes to i386 to do tags. I doesn't work yet 'coz ctags dumps 1999-07-02 04:16:57 +00:00
contrib No longer need to set B_ASYNC flag since BUF_KERNPROC now 1999-06-29 15:57:40 +00:00
ddb Quiet warnings on Alpha. (db_expr_t is a long on alpha, int on x86) 1999-07-01 19:42:56 +00:00
dev Roll revision levels. Add support for the Qlogic 2200 (warn about 1999-07-02 23:06:38 +00:00
fs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
geom Initialize and hold locks for ccd generated bufs.. 1999-06-27 09:28:43 +00:00
gnu Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
i4b devsw and cdevsw_add() changes for i4b. 1999-06-01 08:46:56 +00:00
i386 Lightly overhaul the memory sizing code again. 1999-07-02 20:33:32 +00:00
isa Allocate the port resource when attaching the keyboard controller, 1999-06-29 17:35:09 +00:00
isofs/cd9660 Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
kern Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
libkern Add a fast version of bcmp which compares longwords at a time. 1999-06-19 16:30:28 +00:00
miscfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
modules Use the correct value for banksize so splash_pcx works in LFB modes. 1999-06-28 13:52:29 +00:00
msdosfs move <sys/systm.h> before <sys/buf.h> 1999-07-01 22:12:39 +00:00
net Fix a printf int/long problem on the Alpha 1999-07-01 22:14:51 +00:00
netatalk
netatm
netinet In in_pcbconnect(), check the return value from in_pcbbind() and 1999-06-25 23:46:47 +00:00
netipx
netkey
netnatm
netns
nfs Fix warning. va_fsid is udev_t, which is int32_t. No need to use %lx. 1999-07-01 13:32:54 +00:00
nfsclient Fix warning. va_fsid is udev_t, which is int32_t. No need to use %lx. 1999-07-01 13:32:54 +00:00
nfsserver Submitted by: "David E. Cross" <crossd@cs.rpi.edu> 1999-06-30 04:29:13 +00:00
ntfs Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
pc98 Sync with sys/i386/i386/userconfig.c revision 1.147. 1999-06-30 13:30:58 +00:00
pccard Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
pci Change the cast in pci_map_port() from u_short * to pci_port_t * so it 1999-07-02 04:17:16 +00:00
posix4
powerpc Add alpha_platform_setup_ide_intr() and alpha_platform_assign_pciintr() 1999-07-01 22:47:53 +00:00
rpc
svr4
sys Prototype for alpha_fix_srm_checksum(). 1999-07-01 20:34:28 +00:00
tools Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
ufs No longer need to set B_ASYNC flag since BUF_KERNPROC now 1999-06-29 15:57:40 +00:00
vm Fix some int/long printf problems for the Alpha 1999-07-01 19:53:43 +00:00
Makefile Use MACHINE_ARCH instead of MACHINE to check x86 architecture. 1999-06-03 10:38:07 +00:00