xref: /freebsd-13.1/sys/dev/firewire/00README (revision 33f4bcca)
13c60ba66SKatsushi Kobayashi$FreeBSD$
23c60ba66SKatsushi Kobayashi
33c60ba66SKatsushi KobayashiIEEE 1394 support for FreeBSD-5.X and 4.X.
43c60ba66SKatsushi Kobayashi
53c60ba66SKatsushi Kobayashi1. Introduction
63c60ba66SKatsushi Kobayashi
73c60ba66SKatsushi Kobayashi	  This tarball contains IEEE1394(FireWire) driver which is first
83c60ba66SKatsushi Kobayashi	written by Katsushi Kobayashi[1] <[email protected]> and
93c60ba66SKatsushi Kobayashi	modified by Hidetoshi Shimokawa <[email protected]>.
103c60ba66SKatsushi Kobayashi	Please note this driver is still under development.
113c60ba66SKatsushi Kobayashi	You can find latest snapshots under:
12*33f4bccaSEitan Adler		https://people.freebsd.org/~simokawa/
133c60ba66SKatsushi Kobayashi	named firewire-2002XXXX.tar.gz
143c60ba66SKatsushi Kobayashi
153c60ba66SKatsushi Kobayashi	The driver consists of 6 parts:
163c60ba66SKatsushi Kobayashi
173c60ba66SKatsushi Kobayashi	- fwohci.c/fwohci_pci.c
183c60ba66SKatsushi Kobayashi		OHCI[2] driver
193c60ba66SKatsushi Kobayashi			- IEEE1394 link/phy chip control
203c60ba66SKatsushi Kobayashi	- firewire.c
213c60ba66SKatsushi Kobayashi		Chip independent driver
223c60ba66SKatsushi Kobayashi			- CSR
233c60ba66SKatsushi Kobayashi			- Transaction
243c60ba66SKatsushi Kobayashi			- Character devices for userland
253c60ba66SKatsushi Kobayashi	- fwmem.c
263c60ba66SKatsushi Kobayashi		/dev/fwmem0: physical memory of a remote node.
273c60ba66SKatsushi Kobayashi	- sbp.c
283c60ba66SKatsushi Kobayashi		SBP-II[3] (a.k.a. SCSI over FireWire) driver
293c60ba66SKatsushi Kobayashi
303c60ba66SKatsushi Kobayashi	- if_fwe.c
313c60ba66SKatsushi Kobayashi		NON-Standard implementation of Ethernet over FireWire.
323c60ba66SKatsushi Kobayashi
333c60ba66SKatsushi Kobayashi	- bus_mgm.c (userland)
343c60ba66SKatsushi Kobayashi		Bus management function for user.
353c60ba66SKatsushi Kobayashi		show topology map, change gap count, bus reset, etc.
363c60ba66SKatsushi Kobayashi
373c60ba66SKatsushi Kobayashi2. Installation
383c60ba66SKatsushi Kobayashi
393c60ba66SKatsushi Kobayashi	Suppose you have kernel source at /sys.
403c60ba66SKatsushi Kobayashi
413c60ba66SKatsushi Kobayashi	- Extract tarball at root directory.
423c60ba66SKatsushi Kobayashi	- cd /sys/dev/firewire
433c60ba66SKatsushi Kobayashi	- make
443c60ba66SKatsushi Kobayashi	- make install
453c60ba66SKatsushi Kobayashi	- make load
463c60ba66SKatsushi Kobayashi
473c60ba66SKatsushi Kobayashi3. SBP-II support (sbp)
483c60ba66SKatsushi Kobayashi
493c60ba66SKatsushi Kobayashi	- You need CAM(SCSI) support in your kernel.
503c60ba66SKatsushi Kobayashi	  If you are using FreeBSD-5 before 2002/03/23 or FreeBSD-4 before
513c60ba66SKatsushi Kobayashi	  2002/4/8, you need to apply CAM-patch in this archive
523c60ba66SKatsushi Kobayashi	  to handle HDD's(T_RBC or T_DIRECT which doesn't support READ_6).
533c60ba66SKatsushi Kobayashi
543c60ba66SKatsushi Kobayashi	- If you connect a few firewire devices only, try the following to
553c60ba66SKatsushi Kobayashi	  reduce gap overhead.
563c60ba66SKatsushi Kobayashi
573c60ba66SKatsushi Kobayashi		- ./bus_mgm -g 8
583c60ba66SKatsushi Kobayashi
593c60ba66SKatsushi Kobayashi4. Ethernet over FireWire (if_fwe)
603c60ba66SKatsushi Kobayashi
613c60ba66SKatsushi Kobayashi	  This is a sample driver for ethernet emulation. Please note this
623c60ba66SKatsushi Kobayashi	does NOT conform to any standards like IP over FireWire(RFC2734[4]).
633c60ba66SKatsushi Kobayashi	It just sends ethernet frames encapsulated in asynchronous stream
643c60ba66SKatsushi Kobayashi	packets. It doesn't scale because it does something like unicast over		multicast, but it's easy to be implemented and you can use any
653c60ba66SKatsushi Kobayashi	facilities what ethernet can do. (ipv6, bridging, vlan etc.)
663c60ba66SKatsushi Kobayashi
673c60ba66SKatsushi Kobayashi	  It also has DEVICE_POLLING[5] support. To enable it, edit your
683c60ba66SKatsushi Kobayashi	kernel config file and Makefile.fwe then rebuild kernel and if_fwe.ko.
693c60ba66SKatsushi Kobayashi
703c60ba66SKatsushi Kobayashi5. FireWire for Kernel Hackers
713c60ba66SKatsushi Kobayashi
723c60ba66SKatsushi Kobayashi          As you know, IEEE1394 is a bus and OHCI supports physical access
733c60ba66SKatsushi Kobayashi	to the host memory. This means that you can access the remote
743c60ba66SKatsushi Kobayashi	host over firewire without software support at the remote host.
753c60ba66SKatsushi Kobayashi	In other words, you can investigate remote host's physical memory
763c60ba66SKatsushi Kobayashi	whether its OS is alive or crashed or hangs up.
773c60ba66SKatsushi Kobayashi
783c60ba66SKatsushi Kobayashi	  You need to apply KVMLIB-patch and rebuild libkvm then rebuild ps,
793c60ba66SKatsushi Kobayashi	dmesg and gdb those are statically linked.
803c60ba66SKatsushi Kobayashi	You may want to apply GDB-patch in this archive to get same behavior
813c60ba66SKatsushi Kobayashi	as gdb with /dev/mem or want to insert savectx(&dumppcb) into panic(),
823c60ba66SKatsushi Kobayashi	breakpoint() and so on to emulation crash dump.
833c60ba66SKatsushi Kobayashi
843c60ba66SKatsushi Kobayashi	  You have to determine target node_id manually at this point.
853c60ba66SKatsushi Kobayashi	(guess using bus_mgm -t or dmesg)
863c60ba66SKatsushi Kobayashi	(Targets should be specified by EUI64 in the future)
873c60ba66SKatsushi Kobayashi
883c60ba66SKatsushi Kobayashi	# sysctl kern.firewire.fwmem_node=[node_id]
893c60ba66SKatsushi Kobayashi
903c60ba66SKatsushi Kobayashi	# ps -agx -M /dev/fwmem0 -N /sys/i386/compile/GENERIC/kernel
913c60ba66SKatsushi Kobayashi	# dmesg -M /dev/fwmem0 -N /sys/i386/compile/GENERIC/kernel
923c60ba66SKatsushi Kobayashi	# gdb -k -c /dev/fwmem0 /sys/i386/compile/GENERIC/kernel.debug
933c60ba66SKatsushi Kobayashi	# dd if=/dev/fwmem0 of=vmcore bs=1m count=[phys. memory in MB]
943c60ba66SKatsushi Kobayashi
953c60ba66SKatsushi Kobayashi	remote gdb at 400,000,000 bps :-)
963c60ba66SKatsushi Kobayashi
973c60ba66SKatsushi Kobayashi
983c60ba66SKatsushi Kobayashi6. DV
993c60ba66SKatsushi Kobayashi	I have not tested yet.
1003c60ba66SKatsushi Kobayashi
1013c60ba66SKatsushi Kobayashi7. Tested HW
1023c60ba66SKatsushi Kobayashi
1033c60ba66SKatsushi Kobayashi	OS
1043c60ba66SKatsushi Kobayashi	- FreeBSD-4/i386
1053c60ba66SKatsushi Kobayashi	- FreeBSD-4/alpha
1063c60ba66SKatsushi Kobayashi	- FreeBSD-5/i386
1073c60ba66SKatsushi Kobayashi
1083c60ba66SKatsushi Kobayashi	* Not tested on SMP.
1093c60ba66SKatsushi Kobayashi	* Not tested on big-endian machine...
1103c60ba66SKatsushi Kobayashi
1113c60ba66SKatsushi Kobayashi	OHCI
1123c60ba66SKatsushi Kobayashi	- Texas Instruments TSB12LV26 (PCI)
1133c60ba66SKatsushi Kobayashi	- Texas Instruments TSB43AA22 (PCI/Cardbus)
1143c60ba66SKatsushi Kobayashi
1153c60ba66SKatsushi Kobayashi	* There might be phy probing problem but most of the OHCI
1163c60ba66SKatsushi Kobayashi	  chips should work.
1173c60ba66SKatsushi Kobayashi	* Tested with multiple firewire buses.
1183c60ba66SKatsushi Kobayashi
1193c60ba66SKatsushi Kobayashi	SBP-II
1203c60ba66SKatsushi Kobayashi	- HDD: Logitec USB/FireWire LHD-P30FU
1213c60ba66SKatsushi Kobayashi	- HDD: Yano A-dish 120GB
1223c60ba66SKatsushi Kobayashi	- HDD: Yano B-Max 320GB
1233c60ba66SKatsushi Kobayashi		The repository of cvsup2.jp.freebsd.org is on this device.
1243c60ba66SKatsushi Kobayashi	- HDD: Personal Storage 3000XT 160GB
1253c60ba66SKatsushi Kobayashi		The last sector of this drive cannot be accessed..
1263c60ba66SKatsushi Kobayashi	- DVD-RAM: Panasonic LF-D340JD
1273c60ba66SKatsushi Kobayashi	- SCSI-FireWire converter: Yano FWSCSI-01
1283c60ba66SKatsushi Kobayashi		We can recognize only 1 device/lun at this point
1293c60ba66SKatsushi Kobayashi	- HDD: iPod, PowerBook G4 (target mode)
1303c60ba66SKatsushi Kobayashi		Reported by ikob
1313c60ba66SKatsushi Kobayashi	- Scanner: Epson GT-9700F
1323c60ba66SKatsushi Kobayashi		Now works!!
1333c60ba66SKatsushi Kobayashi		Sane-backend needs a patch(SANE-patch in this archive).
1343c60ba66SKatsushi Kobayashi
1353c60ba66SKatsushi Kobayashi	if_fwe
1363c60ba66SKatsushi Kobayashi	- IPv4, IPv6, bridging, vlan.
1373c60ba66SKatsushi Kobayashi	- You need at least two FreeBSD machines with this driver to use.
1383c60ba66SKatsushi Kobayashi
1393c60ba66SKatsushi KobayashiReferences:
1403c60ba66SKatsushi Kobayashi[1] ftp://ftp.uec.ac.jp/pub/firewire/beta/
1413c60ba66SKatsushi Kobayashi[2] http://developer.intel.com/technology/1394/download/ohci_11.htm
1423c60ba66SKatsushi Kobayashi[3] http://www.t10.org/scsi-3.htm
1433c60ba66SKatsushi Kobayashi[4] http://www.faqs.org/rfcs/rfc2734.html
1443c60ba66SKatsushi Kobayashi[5] http://info.iet.unipi.it/~luigi/polling/
1453c60ba66SKatsushi Kobayashi
1463c60ba66SKatsushi Kobayashi
1473c60ba66SKatsushi KobayashiHidetoshi Shimokawa
1483c60ba66SKatsushi Kobayashi[email protected]
149