Skip site navigation (1)Skip section navigation (2)
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 message



help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903272355.QAA90534>