Date: Sat, 27 Mar 1999 16:46:25 -0700 From: "Justin T. Gibbs" <gibbs@plutotech.com> To: "Matthew N. Dodd" <winter@jurai.net> Cc: "Justin T. Gibbs" <gibbs@plutotech.com>, "Kenneth D. Merry" <ken@plutotech.com>, scsi@FreeBSD.ORG Subject: Re: CAM entry point for SCSI-to-Ethernet device. Message-ID: <199903272355.QAA90534@pluto.plutotech.com> In-Reply-To: Your message of "Mon, 22 Mar 1999 14:08:52 EST." <Pine.BSF.4.02.9903221406280.2158-100000@sasami.jurai.net>
index | next in thread | previous in thread | raw e-mail
>> I had ethernet devices in mind when I setup the interrupt framework >> for CAM. > >You're sick man. :) Nah. I just noticed that NetBSD had such a driver and planned accordingly. >> But you can. Give me a little time, and I'll finish the support for this >> in the bus dma framework and hook it up in the controller drivers. You >> will need to set the CAM_SCATTER_VALID flag in the ccb-ccb_h.flags and >> not set the CAM_SG_LIST_PHYS flag. S/G lists with physical addresses >> (really bus addresses) are already supported by all controllers. > >Where might I see examples of this in action, or better yet, docs >describing its use? This ability will greatly reduce the overhead of >transmitting a packet. (Not that this device doesn't suck in other ways.) There really isn't a good document for this other than the CAM and bus dma header files (sys/cam/cam_ccb.h and sys/machine/include/bus.h). If you wish to use bus addresses, allocate an array of bus_dma_segment_ts, fill them in, send the address of the list in the data pointer of the SCSI I/O CCB, set the CCB segment count, and set the SG and SG_PHYS flags in the CCB. For KVA segments, the interface will be similar with the substitution of struct iovec for bus_dma_segment_t, but this hasn't been implemented yet. -- Justin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the messagehelp
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903272355.QAA90534>
