Emulating a SCSI device

Nate Lawson nate at root.org
Wed Jun 4 23:41:58 PDT 2003


On Tue, 3 Jun 2003, Aniruddha Bohra wrote:
> Nate Lawson wrote:
> >On Tue, 27 May 2003, Aniruddha Bohra wrote:
> >>    I am trying to write a SIM module for FreeBSD which basically
> >>emulates a SCSI controller with a disk attached at target 0 lun 0.
> >
> >What is your hardware?  Are you using sys/cam/scsi/scsi_target and
> >src/share/examples/scsi_target?
>
> There is a LSI logic(mpt) SCSI controller in the system. However that is
> immaterial as
> I am trying to get a large memory buffer to act as a disk.
> I would emulate a SCSI controller, so will handle the low level SCSI
> commands myself by accessing the
> memory.
>
> I will look at the above.

I still am unclear about what you are trying to do.  Are you trying to
emulate an HBA?  In that case, just take isp(4) or ahc(4) and strip things
down to *_attach() and *_action().

> >>    I go as far as the action function of the controller getting called
> >>with a XPT_PATH_INQ - where I fill in the fake data.

Which controller do you mean?  You said above the controller is not
relevant.

> >>    Nothing happens after that. I have looked for documentation
> >>of how to get the psuedo disk attached to the da driver but did
> >>not make much headway.
> >
> >You have to call xpt_done() on the CCB to send it back to the caller.
>
> I do that - Is there something special that I need to write in the ccb
> header so that the caller
> identifies the "device" as a disk ?

Let's start over with you explaining what you are trying to do and I can
give you an answer.

-Nate


More information about the freebsd-scsi mailing list