protius at teryx.bobdbob.com
Wed Nov 10 15:32:12 PST 2004
I am attempting to use scsi_target to make a BSD box look like an
external firewire drive, and it /almost/ works, but not quite...
The machines are running 5.3-STABLE, cvsupped on November 7. They have
in their kernel config files: (among other things)
device firewire # FireWire bus code
device sbp # SCSI over FireWireRequires scbus and da)
device fwe # Ethernet over FireWirenon-standard!)
On the server machine, I run:
scsi_target 1:0:0 /dev/stripe/mm
There are no errors from scsi_target.
But, on the console appears:
Unknown service addr 0xffff:0xf0000210 WREQ0) src=0xffc0 data=200000f
I googled around for that message, and there was a suggestion to change
OWRITsc, OHCI_PREQHI, 0x7fffffff);
in fwohci.c to
OWRITsc, OHCI_PREQHI, 0xffffffff);
That didn't change anything...
On the client machine console appears:
fwohci0: BUS reset
fwohci0: node_id=0x8800ffc0, gen=2, non CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1
firewire0: bus manager 1
da4 at sbp0 bus 0 target 0 lun 0
da4: <FreeBSD TargetMode 0001> Fixed Direct Access SCSI-3 device
da4: 50.000MB/s transfers
da4: 34992MB71664928 512 byte sectors: 255H 63S/T 4460C)
Which is definately a good sign...
I then mount the disk read only, and everything is happy. On umounting
the disk, scsi_target coredumps... The core dump is actualy unusual,
it has only happened once in the five or ten times I've done this entire
So I restart scsi_target, and mount the disk read-write.
The mount succeeds with no errors. However the moment I attempt to
write something in the filesystem (IE: cat > foo), scsi_target on
the server machine goes nuts, and consumes all the CPU.
The client machine hangs, I assume waiting for IO. Then typicaly they
Is the unknown service address caused by something which FreeBSD as a
client does? It definately only happens when one trys to write.
What additional information would be useful?
I'm off to read firewire documentation now. :-)
tjohnson at bobdbob.com
More information about the freebsd-firewire