xref: /freebsd/sys/dev/firewire/00README (revision 78d146160dc5339c9cdf7799551bcc442a6eb95b)
1
2IEEE 1394 support for FreeBSD-5.X and 4.X.
3
41. Introduction
5
6	  This tarball contains IEEE1394(FireWire) driver which is first
7	written by Katsushi Kobayashi[1] <ikob@koganei.wide.ad.jp> and
8	modified by Hidetoshi Shimokawa <simokawa@freebsd.org>.
9	Please note this driver is still under development.
10	You can find latest snapshots under:
11		https://people.freebsd.org/~simokawa/
12	named firewire-2002XXXX.tar.gz
13
14	The driver consists of 6 parts:
15
16	- fwohci.c/fwohci_pci.c
17		OHCI[2] driver
18			- IEEE1394 link/phy chip control
19	- firewire.c
20		Chip independent driver
21			- CSR
22			- Transaction
23			- Character devices for userland
24	- fwmem.c
25		/dev/fwmem0: physical memory of a remote node.
26	- sbp.c
27		SBP-II[3] (a.k.a. SCSI over FireWire) driver
28
29	- if_fwe.c
30		NON-Standard implementation of Ethernet over FireWire.
31
32	- bus_mgm.c (userland)
33		Bus management function for user.
34		show topology map, change gap count, bus reset, etc.
35
362. Installation
37
38	Suppose you have kernel source at /sys.
39
40	- Extract tarball at root directory.
41	- cd /sys/dev/firewire
42	- make
43	- make install
44	- make load
45
463. SBP-II support (sbp)
47
48	- You need CAM(SCSI) support in your kernel.
49	  If you are using FreeBSD-5 before 2002/03/23 or FreeBSD-4 before
50	  2002/4/8, you need to apply CAM-patch in this archive
51	  to handle HDD's(T_RBC or T_DIRECT which doesn't support READ_6).
52
53	- If you connect a few firewire devices only, try the following to
54	  reduce gap overhead.
55
56		- ./bus_mgm -g 8
57
584. Ethernet over FireWire (if_fwe)
59
60	  This is a sample driver for ethernet emulation. Please note this
61	does NOT conform to any standards like IP over FireWire(RFC2734[4]).
62	It just sends ethernet frames encapsulated in asynchronous stream
63	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
64	facilities what ethernet can do. (ipv6, bridging, vlan etc.)
65
66	  It also has DEVICE_POLLING[5] support. To enable it, edit your
67	kernel config file and Makefile.fwe then rebuild kernel and if_fwe.ko.
68
695. FireWire for Kernel Hackers
70
71          As you know, IEEE1394 is a bus and OHCI supports physical access
72	to the host memory. This means that you can access the remote
73	host over firewire without software support at the remote host.
74	In other words, you can investigate remote host's physical memory
75	whether its OS is alive or crashed or hangs up.
76
77	  You need to apply KVMLIB-patch and rebuild libkvm then rebuild ps,
78	dmesg and gdb those are statically linked.
79	You may want to apply GDB-patch in this archive to get same behavior
80	as gdb with /dev/mem or want to insert savectx(&dumppcb) into panic(),
81	breakpoint() and so on to emulation crash dump.
82
83	  You have to determine target node_id manually at this point.
84	(guess using bus_mgm -t or dmesg)
85	(Targets should be specified by EUI64 in the future)
86
87	# sysctl kern.firewire.fwmem_node=[node_id]
88
89	# ps -agx -M /dev/fwmem0 -N /sys/i386/compile/GENERIC/kernel
90	# dmesg -M /dev/fwmem0 -N /sys/i386/compile/GENERIC/kernel
91	# gdb -k -c /dev/fwmem0 /sys/i386/compile/GENERIC/kernel.debug
92	# dd if=/dev/fwmem0 of=vmcore bs=1m count=[phys. memory in MB]
93
94	remote gdb at 400,000,000 bps :-)
95
96
976. DV
98	I have not tested yet.
99
1007. Tested HW
101
102	OS
103	- FreeBSD-4/i386
104	- FreeBSD-4/alpha
105	- FreeBSD-5/i386
106
107	* Not tested on SMP.
108	* Not tested on big-endian machine...
109
110	OHCI
111	- Texas Instruments TSB12LV26 (PCI)
112	- Texas Instruments TSB43AA22 (PCI/Cardbus)
113
114	* There might be phy probing problem but most of the OHCI
115	  chips should work.
116	* Tested with multiple firewire buses.
117
118	SBP-II
119	- HDD: Logitec USB/FireWire LHD-P30FU
120	- HDD: Yano A-dish 120GB
121	- HDD: Yano B-Max 320GB
122		The repository of cvsup2.jp.freebsd.org is on this device.
123	- HDD: Personal Storage 3000XT 160GB
124		The last sector of this drive cannot be accessed..
125	- DVD-RAM: Panasonic LF-D340JD
126	- SCSI-FireWire converter: Yano FWSCSI-01
127		We can recognize only 1 device/lun at this point
128	- HDD: iPod, PowerBook G4 (target mode)
129		Reported by ikob
130	- Scanner: Epson GT-9700F
131		Now works!!
132		Sane-backend needs a patch(SANE-patch in this archive).
133
134	if_fwe
135	- IPv4, IPv6, bridging, vlan.
136	- You need at least two FreeBSD machines with this driver to use.
137
138References:
139[1] ftp://ftp.uec.ac.jp/pub/firewire/beta/
140[2] http://developer.intel.com/technology/1394/download/ohci_11.htm
141[3] http://www.t10.org/scsi-3.htm
142[4] http://www.faqs.org/rfcs/rfc2734.html
143[5] http://info.iet.unipi.it/~luigi/polling/
144
145
146Hidetoshi Shimokawa
147simokawa@freebsd.org
148