Date: Fri, 09 May 1997 18:28:49 -0600 From: "Justin T. Gibbs" <gibbs@plutotech.com> To: Guido Kollerie <gkoller@pi.net> Cc: freebsd-scsi@FreeBSD.ORG Subject: Re: Common Access Method && SCSI drivers Message-ID: <199705092330.RAA03255@pluto.plutotech.com> In-Reply-To: Your message of "Fri, 09 May 1997 23:07:32 BST." <Chameleon.863213242.guido@kinchenna>
next in thread | previous in thread | raw e-mail | index | archive | help
>Hello,
>
>I asked this little while back but didn't got a response. I'm
>still curious though so I'll ask it again. How is the
>implementation of the Common Access Method (CAM) proceeding?
Copyright (c) 1992-1997 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
FreeBSD 3.0-CURRENT #14: Thu May 8 09:56:23 MDT 1997
gibbs@narnia.plutotech.com:/usr/src/sys.cam/compile/DM
CPU: Pentium (133.29-MHz 586-class CPU)
Origin = "GenuineIntel" Id = 0x52b Stepping=11
Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory = 33554432 (32768K bytes)
avail memory = 30928896 (30204K bytes)
Probing for devices on PCI bus 0:
chip0 <Intel 82437FX PCI cache memory controller> rev 1 on pci0:0:0
chip1 <Intel 82371FB PCI-ISA bridge> rev 2 on pci0:7:0
chip2 <Intel 82371FB IDE interface> rev 2 on pci0:7:1
fxp0 <Intel EtherExpress Pro 10/100B Ethernet> rev 1 int a irq 15 on pci0:9:0
fxp0: Ethernet address 00:a0:c9:48:d0:91
ahc0 <Adaptec 2940 Ultra SCSI host adapter> rev 0 int a irq 9 on pci0:10:0
ahc0: aic7880 Wide Channel, SCSI Id=7, 16 SCBs
vga0 <VGA-compatible display device> rev 227 int a irq 12 on pci0:11:0
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
sio0: reserved for low-level i/o
sio0 not found at 0x3f8
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
npx0 on motherboard
npx0: INT 16 interface
ccd0-3: Concatenated disk drivers
da1 at ahc0 bus 0 target 1 lun 0
da1: <SEAGATE ST32155N 0318> Fixed Direct Access SCSI2 device
da1: 20MB/s (20MHz sync offset 15) Tagged Queueing Enabled
da1: 2049MB (4197405 512 byte sectors: 255H 63S/T 261C)
da3 at ahc0 bus 0 target 3 lun 0
da3: <SEAGATE ST32155N 0318> Fixed Direct Access SCSI2 device
da3: 20MB/s (20MHz sync offset 15) Tagged Queueing Enabled
da3: 2049MB (4197405 512 byte sectors: 255H 63S/T 261C)
da2 at ahc0 bus 0 target 2 lun 0
da2: <SEAGATE ST32155N 0318> Fixed Direct Access SCSI2 device
da2: 20MB/s (20MHz sync offset 15) Tagged Queueing Enabled
da2: 2049MB (4197405 512 byte sectors: 255H 63S/T 261C)
da0 at ahc0 bus 0 target 0 lun 0
da0: <SEAGATE ST32155N 0532> Fixed Direct Access SCSI2 device
da0: 20MB/s (20MHz sync offset 15) Tagged Queueing Enabled
da0: 2049MB (4197405 512 byte sectors: 255H 63S/T 261C)
I've been running multi-user on this code for the past few days.
There is only support for direct access devices at the moment and
only for aic7xxx cards. You'll notice that the device probes happen
at the end of the output. This is because all device probing relies
on interrupts meaning that multiple devices and busses can be probed
in parallel. It also makes dumps the only case where any type of
polling is required which makes the code much simpler.
It seems that my second and fourth disk are a little bit faster than the
others in responding to a read capacity command. I hope people don't
mind if their devices a listed "out of order" on boot. 8-)
>Will it be a real CAM implementation or will it just be based
>on it?
It is CAM plus extensions. CAM didn't offer any way to ensure
resource fairness and only offered two levels of scheduling (actually
CAM 3 takes this to 4, but that's still pretty coarse). My
implementation is round-robin per priority level using a u_int32_t
to represent the priority.
I'm working on documentation and cleaning up some error recovery code
and as soon as I'm done with that, I'll post a URL with information
about my implementation.
>And what about the current SCSI drivers, which of them
>are being (or will be) modified to adher to CAM?
I plan on personally completing the aic7xxx driver, an AdvanSys
driver, the 1542 and 1742 driver, and perhaps the Buslogic driver.
I'll also offer whatever assistance I can to anyone who is willing
to help convert drivers since my goal is to support them all.
Unfortunately, I can only really ensure that there is working
support for the cards I have access to.
>A more or less related question. Which of SCSI drivers are
>being actively maintained. Judging from the amount of traffic
>Adaptec related driver questions (and answers) generate, I know
>the Adaptec driver is. Tekram has written it's own, and Simon
>Shapiro is working on a DPT driver. But what about the other
>SCSI drivers?
I know of active maintainers only for the NCR and aic7xxx drivers.
The DPT driver is "on the way". Drivers that need work are:
aha 1542 driver
There have been a few recent bug reports. I'm working on
getting documentation and have a 1542C here to play with.
bha Buslogic Multimaster cards
I have some documentation, but this driver will need a lot of
work to make it fully functional. Tagged queueing and support
for the maximum number of transactions on the varying cards are
at the top of the list. I have a BT747 to test changes with,
but the 958 and 968 are more "interesting".
aic 1522 and aic6360 cards
NetBSD has done a lot of cleanup in this driver, but in addition
to leveraging off of that work, the driver should be enhanced to
support DMA transfers and tagged queueing. I'm working on
getting the documenation for these guys too, but I don't have
any hardware to test with (Warner is close by though and he
has some of these).
seagate, wd7000, ultrastore, etc.
The other drivers need general cleanup. If there are people who
have the documentation for these cards or spare hardware laying
about, it would be great if they could send them to me so I can
find maintainers and/or test changes here.
>--
>Guido Kollerie
--
Justin T. Gibbs
===========================================
FreeBSD: Turning PCs into workstations
===========================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705092330.RAA03255>
