dev-amdgpu: Add user-mode TranslationGen to SDMA
RLC queue do translation using user mode addresses. To support this, add the final aperture translation needed to the SDMA engine. Change-Id: I25841e240e3b44f66d26d503ab52b54379daa49a Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/63032 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
This commit is contained in:
@@ -137,7 +137,12 @@ SDMAEngine::getDeviceAddress(Addr raw_addr)
|
||||
TranslationGenPtr
|
||||
SDMAEngine::translate(Addr vaddr, Addr size)
|
||||
{
|
||||
if (gpuDevice->getVM().inAGP(vaddr)) {
|
||||
if (cur_vmid > 0) {
|
||||
// Only user translation is available to user queues (vmid > 0)
|
||||
return TranslationGenPtr(new AMDGPUVM::UserTranslationGen(
|
||||
&gpuDevice->getVM(), walker,
|
||||
cur_vmid, vaddr, size));
|
||||
} else if (gpuDevice->getVM().inAGP(vaddr)) {
|
||||
// Use AGP translation gen
|
||||
return TranslationGenPtr(
|
||||
new AMDGPUVM::AGPTranslationGen(&gpuDevice->getVM(), vaddr, size));
|
||||
|
||||
Reference in New Issue
Block a user