Messages in this thread | | | From | "Jakma, Paul" <> | Subject | RE: Alpha: virt_to_bus/GFP_DMA problem | Date | Fri, 10 Dec 1999 15:16:31 -0000 |
| |
> How can this work, if the device only respects the lower 24 bit of the > address it is given? If it sets up a DMA cycle at that address, > whereas system memory as seen from the bus starts at say 1GB, then the > behavior of the machine is unspecified: it may reject the cycle (I > guess, need to check PCI docs for that) or allow the DMA data to go > somewhere random - hopefully just into blue air. >
most of the PCI alpha's support scatter gather in the chipset. ie you can dynamically setup multiple bus->phys windows in the chipset.
so you could map any part of pci bus address to anywhere in physical space. With multiple windows you could even map a contigious pci bus space to a fragmented range of physical addresses.
Tru64 uses this for scatter gather support, even to 4GB+ phys addresses. However linux doesn't use this feature at all. On linux we just setup two 2GB static mappings.
> In this situation we simply have to say this device does not work in > this box and not allow it to be initialized. > > Ingo> probably the right solution is to introduce an Alpha-specific > Ingo> DMA24BIT zone? > > Hmmm, there are several devices out there that will only do 24bit, > 30bit and 31bit DMA respectively - we need a generic solution I think. >
support for the 21172/21174 style hardware scatter gather would be nice and generic.. :)
> Jes
paul jakma
- 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/
| |