Messages in this thread | | | From | Bret Indrelee <> | Subject | RE: Specifying properly the PCI driver model on all linux archite ctur es, (ioremap(), bus_to_virt() ...) | Date | Wed, 3 Nov 1999 14:56:21 -0600 |
| |
Martin Mares [mailto:mj@ucw.cz] wrote: > > 2) Using the contents of base_address[] as a target address > for peer to > > peer DMA on PCI? > > This is close to impossible. Consider the case of two > devices on different > PCI buses which are not visible from each other.
Correction: Linux can't do this.
Solaris is designed to be able to handle this, because it has an intermediate nexus driver layer that can create the proper mapping.
You still have a few problems with things like making sure all posted writes have completed. Since the transfers take a different path than CPU accesses, I'm not sure of all the complications that can occur here. Seems that reading from both devices should handle it assuming that the CPU is the root of the device tree and you don't have a PPB built as a crossbar.
In any case, you are correct that peer-to-peer transfers between PCI devices adds a LOT of complications.
-Bret
------------------------------------------------------------- SBS Technologies, Connectivity Products ... solutions for real-time connectivity
Bret Indrelee, Engineer SBS Technologies, Inc., Connectivity Products 1284 Corporate Center Drive, St. Paul MN 55121 Direct: (651) 905-4731 Main: (651) 905-4700 Fax: (651) 905-4701 E-mail: bindrelee@sbs-cp.com http://www.sbs.com -------------------------------------------------------------
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |