lkml.org 
[lkml]   [2009]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: ohci1396_dma=early nogo on an imac?
Justin P. Mattock wrote:
> Seems the macbook shows the init ohci1394_dma
> activating, but using this on an imac has no affects.
> is this device supported yet or is this still in the process of being
> developed?(event though the imac is 1394 800 port).
>
> At the moment my machine boots up 2.6.30.4 but will not bootup
> the latest git. If the early dma option is possible with the imac9,1
> I can send out a post with the error, and see if somebody might know.
> (but if this isn't possible then Ill take the 40$
> for the cable and and spend it on beer)...

init_ohci1394_dma is supposed to work on all OHCI-1394 compliant
controllers. This includes all FireWire controllers in all iMac models
ever made. (However, init_ohci1394_dma's initialization is a
trimmed-down version of ohci1394's, and is much much less widely tested
than the ohci1394 driver, hence there may be things which work in the
latter but not quite in the former. If so, it should be fixed.)

But note that there is an important limitation in init_ohci1394_dma:
After it opened the DMA filters, there must be no subsequent FireWire
bus reset. When a bus reset happens, the controller immediately filters
everything again ( = disallows remote DMA). To compensate for that,
init_ohci1394_dma would have to have an IRQ handler which handles bus
reset IRQ events. (And the CPU must not lock up before you need it to
handle the IRQ.)

Causes for a bus reset are:
- Something was plugged out or into the bus.
- One of the nodes on the bus changed its configuration (e.g.
a disk enclosure finished spinning up its drive mechanism after
power-on).
- One of the nodes on the bus (the one which volunteers to be the
so-called isochronous resource manager or bus manager) resets
the bus to enable or optimize some bus functions.
To avoid all this, its best if you only have a single other node (as
debugger console) plugged in, have it already powered on and running the
1394 driver stack at the moment when your test PC starts
init_ohci1394_dma, you use the old ieee1394 + ohci1394 + raw1394 drivers
on the debugger console, and set ieee1394's disable_irm=1 parameter
there (disable isochronous resource manager). The new replacement
drivers firewire-core + firewire-ohci don't have such a parameter, i.e.
always run some bus manager functions which might get in the way of
remote DMA to an init_ohci1394_dma running node.
--
Stefan Richter
-=====-==--= =--- =---=
http://arcgraph.de/sr/


\
 
 \ /
  Last update: 2009-08-17 17:09    [W:0.149 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site