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