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 DEVICE_POLLING[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