Name Date Size #Lines LOC

..--

00READMEHD02-Jan-20144.8 KiB157118

MakefileHD12-Feb-2019301 136

firewire.cHD02-Oct-201452.2 KiB2,2091,776

firewire.hHD23-Jun-20159.9 KiB429333

firewire_phy.hHD02-Jan-20143 KiB8738

firewirereg.hHD05-May-20208.4 KiB310250

fwcrom.cHD05-May-202014.6 KiB632514

fwdev.cHD10-Jan-201619.6 KiB862705

fwdma.cHD23-Jan-20256.1 KiB219157

fwdma.hHD02-Jan-20143.8 KiB11463

fwmem.cHD02-Jan-201410 KiB426331

fwmem.hHD02-Jan-20142.6 KiB5818

fwohci.cHD23-Jan-202574.1 KiB2,8822,483

fwohci_pci.cHD23-Jan-202512.9 KiB492372

fwohcireg.hHD02-Jan-201413.2 KiB443343

fwohcivar.hHD02-Jan-20143.1 KiB8443

iec13213.hHD02-Jan-20147.5 KiB251188

iec68113.hHD02-Jan-20143.7 KiB12986

00README

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