The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/firewire/00README

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: f33b31a37b458e9fa6566785ed751090


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.