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>