isochronous reception routine for IEEE 1394 OHCI (fwohci). The
transmission part is under construction.
The minimum configuration options for this feature are:
# IEEE 1394 (i.LINK)
fwohci* at pci? dev ? function ?
pseudo-device fwiso 1
There are a number of issues here for anyone trying to use this today:
1. On my test drive the command engine on the drive seems to stall after the
inquire is done. So the mode sense times out for a long time before
aborting. This obviously needs to be tracked down and fixed.
However it does do a proper inquire:
scsibus0 at sbpscsi0: 1 target, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <Maxtor, 1394 storage, 60> disk fixed
2. This code is quite ugly in places as debug code was added to test things.
Definitly needs cleanup/documention in places where it's using command
structures. The structure for alloc'ing orbs, running them through the
command engine and getting state back is mostly set but implementation needs
an overhaul in places.
3. For testing I use the following config options:
fwohci* at cardbus? dev ? function ? # IEEE1394 Controller
fw* at fwbus?
options FW_DEBUG
options FWNODE_DEBUG
options P1212_DEBUG
options SBP2_DEBUG
options SBPSCSI_DEBUG
fwnode* at fwbus?
sbpscsi* at fwnode?
scsibus* at sbpscsi?
filling in unit location in the rom.
XXX: This all is really too welded together. The if_fw code should be
decoupled from this and simply be handed a method by which it can provide
the config rom back to the main code.
been tested on i386. It does not have any interface for useland to
get isochoronous stream. The isochoronous acquisition interface
should be determined.
my time shortage):
- Use 8 column for basic indent.
- Use 4 space for 2nd level indent.
- Use tab instead of 8 spaces.
- Don't put space before function call operator. That's unary operator.
- Wrap lines so that it fits in 80 columns.
Current status:
Only OHCI chip is supported (fwohci).
ping (IPv4) works with Sony's implementation (SmartConnect) on Win98.
sometimes works but not stable.
Not implemented yet:
IRM (Isochronous Resource Manager) functionality.
Link layer fragmentation.
Topology map.
More to do:
clean ups
MCAP
charactor device part
dhcp
There is no entry in GENERIC config file yet.
Follow sys/dev/ieee1394/IMPLEMENTATION to enable if_fw.
and bus-independent module that just begins to print things out. No real
code behind it. THIS IS A WORK IN PROGRESS. The *reg.h are woefully
incomplete.