Date: Tue, 19 Nov 2002 10:15:16 -0800 (PST) From: Buzz Slye <buzz@gaia.arc.nasa.gov> To: freebsd-firewire@freebsd.org Subject: Kodak on firewire Message-ID: <Pine.GSO.4.44.0211191013040.1262-100000@mono.arc.nasa.gov>
next in thread | raw e-mail | index | archive | help
Hi, I am going to try this one again. This time it really is a Kodak camera, not an Oxford disk. (The result fails the same way.) The Kodak is not a SCSI device. The Kodak camera is logged in and attached by SBP-II as follows: firewire0: node_id = 0x8800ffc0, non CYCLEMASTER mode firewire0: 2 nodes, maxhop <= 1, cable IRM = 0 (me) fw_set_bus_manager: 63->0 (loop=0) send phy_config root_node=-1 gap_count=1 start AT DMA status=11 firewire0:Discover new S400 device ID:00e0263d00006323 bus_explore done Device Kodal Pro Back Plus sbp_post_explore sbp_post_explore: EUI:00e0263d00006323 spec=0 key=0. sbp_alloc_target sbp_probe_target 0 sbp0:0:0 sbp_mgm_orb sbp0:0:0 LOGIN sbp0:0:0 sbp_enqueue_ocb orb=0x42008 in physical memory sbp0:0:0 ordered:0 type:16 EUI:00e0263d00006323 node:1 speed:2 maxrec:10 new! sbp0:0:0 'Kodak' '(null)' '000000' sbp0:0:0 sbp_login_callback sbp resp: 0 len: 48 off: 0 sbp ffc00c10 ffc10001 00000000 00200000 sbp 41000000 00042008 00000000 00000000 sbp 00000000 00000000 00000000 00000000 received address 0x0 sbp0:0:0 ORB status src:1 resp:0 dead:0 len:1 stat:0 orb:0 00042008 sbp0:0:0 No additional information to report orb: 0x42008 next: 0x0, flags 0 sbp0:0:0 login: len 12, ID 0, cmd 0000fffff0020000, recon_hold 0 sbp0:0:0 sbp_busy_timeout sbp0:0:0 sbp_but_timeout_callback sbp0:0:0 sbp_agent_reset sbp0:0:0 sbp_do_attach sbp0:0:0 sbp_cam_scan_lun sbp0:0:0 XPT_PATH_INQ:. sbp0:0:0 XPT_PATH_INQ:. sbp0:0:0 XPT_SCSI_IO: cmd: 12 00 00 00 24 00 00 00 10 00, flags: 0x40, 6b cmd/36b data/18b sense ORB 80000000 00000000 ffc00000 0004215c ORB 8a900000 12000000 24000000 00000000 sbp0:0:0 sbp_enqueue_ocb orb=0x4213c in physical memory sbp0:0:0 sbp_orb_pointer sbp0:0:0 sbp_cmd_callback sbp resp: 0 len: 48 off: 0 sbp ffc01810 ffc10001 00000000 00200000 sbp 47000000 0004213c 0b50500d 80000000 sbp 00000000 00000000 00000000 00000000 received address 0x0 sbp0:0:0 ORB status src:1 resp:0 dead:0 len:7 stat:0 orb:0 0004213c sbp0:0:0 No additional information to report orb: 0x4213c next: 0x0, flags 1 sbp0:0:0 XPT_SCSI_IO: cmd: 12 00 00 00 24 00 00 00 10 00, flags: 0x40, 6b cmd/36b data/18b sense sbp0:0:0 SCSI status b sfmt 0 valid 0 key 0 code 50 qlfr d len 7 sbp_scsi_status: unknown scsi status sbp0:0:0 sbp_fix_inq_data ..... the last 18 lines above are repeated several times ..... sbp0:0:0 sbp_cam_callback I now would like to run a program which accesses the camera directly through firewire.c by way of iotcl. (This is what fw_tap.c does to run the ethernet code.) After opening "/dev/fw1" and allocating asyreq, I have the following: asyreq->req.type = FWASREQEUI; asyreq->req.sped = FWSPD_S400; asyreq->req.len = 120; asyreq->req.dst.eui.hi = DEVICE_EUI_HI; asyreq->req.dst.eui.lo = DEVICE_EUI_LO; asyreq->pkt.mode.common.tcode = FWTCODE_WREQB; asyreq->pkt.mode.wreqb.len = htons(24); asyreq->pkt.mode.wreqb.src = 0; /* ??? */ asyreq->pkt.mode.wreqb.dest_lo = htonl((int)resp); /* ??? */ asyreq->pkt.mode.wreqb.payload[0] = htonl(1 << 31); asyreq->pkt.mode.wreqb.payload[3] = 0; /* ??? */ asyreq->pkt.mode.wreqb.payload[4] = htonl(0x8a900000); asyreq->pkt.mode.wreqb.payload[5] = htonl(0x12000000); asyreq->pkt.mode.wreqb.payload[6] = htonl(0x24000000); ioctl(fd, FW_ASYREQ, asyreq); Note that the inquiry command (the first byte of the command data block, i.e., the 0x12 in payload[5]) is the same as already sent by SBP-II. See the above XPT_SCSI_IO. This results in: fw_rcv: unknown response tcode=2 src=0xffc1 tl=34 rt=0 data=0x84511a82 try ad-hoc work around!! no use... The command orb has been sent, but the response fails. A look at the code for firewire.c shows that this message is generated because a call to fw_tl2xfer indicates that the response destination does not agree with the original source. How can I get the response back to my program ? Thanx, Robert Slye MS 242-4 NASA/Ames Research Center Moffett Field, CA 94035 buzz@gaia.arc.nasa.gov To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-firewire" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.44.0211191013040.1262-100000>