Re: how to get virtual address from dma address

Jes Sorensen (jes@sunsite.dk)
07 Oct 2001 19:40:56 +0200


>>>>> "Paul" == Paul Mackerras <paulus@samba.org> writes:

Paul> Jes Sorensen writes:
>> I haven't looked at the ohci driver at all, however doesn't it
>> return anything but the dma address? No index, no offset, no
>> nothing? If thats the case, someone really needs to go visit the
>> designers with a large bat ;-(

Paul> The OHCI hardware works with linked lists of transfer
Paul> descriptors, using bus addresses for the pointers of course.
Paul> When a transfer descriptor is completed, it gets linked onto a
Paul> done-list by the hardware (on to the front of the list, so you
Paul> get the completed descriptors in reverse order).

Paul> There is no way to predict the completion order in general
Paul> because you can have transfers in progress to several different
Paul> devices, and to several endpoints on each device, at the same
Paul> time, which can each supply or accept data at different rates.

Ok, so this is actually quite similar to how the AceNIC does it,
however the great thing about the AceNIC descriptors is that it has an
opague field in the descriptor which you can use as an index into a
table or similar to dig out your dma descriptor addresses.

Jes
-
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/