> > The right approach IMHO is to convert devices to use bus-specific > > functions to access memory. The bus specific functions should have > > a device argument as the first parameter. > > As for ATS, the internal api to handle the device's dma reqeust needs > a notion of a translated vs. an untranslated request. IOW, if qemu ever > had a device with ATS support, the device would use its local cache to > translate the dma address and then submit a translated request to the > pci bus (effectively doing a raw cpu physical memory* in that case).
Really? Can you provide an documentation to support this claim? My impression is that there is no difference between translated and untranslated devices, and the translation is explicitly disabled by software. Paul