Dave> Hmm, interesting. A big part of what I'm doing to the driver
Dave> right now is plugging in calls to the PCI DMA interfaces.
That's fine (actually, it's more than that: it's great!).
Dave> So unless the underlying implementation is aware of these
Dave> platform limitations and "doing the right thing", I'm adding
Dave> a bunch of bounce buffer activity for many ia64 platforms.
Dave> That would be too bad.
The idea is to do something along these lines:
o Use PCA DMA interface for managing all DMA buffers.
o If sizeof(dma_addr_t) > 4, turn on DAC mode and call
pci_set_dma_mask(dev, MAX_ADDR), where MAX_ADDR is the maximum
address that can be reached by the controller (i.e.,
0xffffffffffffffff for a truly 64-bit-capable PCI controller).
This way, everything should work out correctly and with good
performance on all imaginable platforms (ia64 with and without
hardware I/O TLB, plain x86, x86 with >4GB RAM, SPARC64 with 32-bit
dma_addr_t, etc.).
--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/