Added dma clear

This commit is contained in:
plutooo 2018-04-15 21:04:03 +02:00
parent 7ca21ae04b
commit 345bf56a82
3 changed files with 27 additions and 14 deletions

View File

@ -1 +1,2 @@
void vnDmaClear32(Vn* vn, iova_t dst, u32 val, size_t size); void vnDmaClear32(Vn* vn, iova_t dst, u32 val, size_t size);
void vnDmaClear64(Vn* vn, iova_t dst, u64 val, size_t size);

View File

@ -0,0 +1,26 @@
#include <switch.h>
#include <string.h>
void vnDmaClear32(Vn* vn, iova_t dst, u32 val, size_t size) {
vnAddCmd(
vn,
NvIncr(4, NvRegDma_RemapConstant, val),
NvIncr(4, NvRegDma_RemapControl, 0x30000 | (NvRegDmaRemapValue_Constant0 * 0x1111)),
NvIncr(4, NvRegDma_SourceAddr, dst>>32, dst, dst>>32, dst),
NvIncr(4, NvRegDma_DestinationWidth, size/4, 1),
NvIncr(4, NvRegDma_Count, size),
NvIncr(4, NvRegDma_Launch, 0x586)
);
}
void vnDmaClear64(Vn* vn, iova_t dst, u64 val, size_t size) {
vnAddCmd(
vn,
NvIncr(4, NvRegDma_RemapConstant, val, val>>32),
NvIncr(4, NvRegDma_RemapControl, 0x30000 | (NvRegDmaRemapValue_Constant0 * 0x1010) | (NvRegDmaRemapValue_Constant1 * 0x0101)),
NvIncr(4, NvRegDma_SourceAddr, dst>>32, dst, dst>>32, dst),
NvIncr(4, NvRegDma_DestinationWidth, size/4, 1),
NvIncr(4, NvRegDma_Count, size),
NvIncr(4, NvRegDma_Launch, 0x586)
);
}

View File

@ -1,14 +0,0 @@
#include <switch.h>
#include <string.h>
void vnDmaClear32(Vn* vn, iova_t dst, u32 val, size_t size) {
vnAddCmd(
vn,
NvIncr(4, NvRegDma_RemapConstant, val),
NvIncr(4, NvRegDma_RemapControl, 0x30000 | (NvRegDmaRemapValue_Constant0 * 0x1111)),
NvIncr(4, NvRegDma_SourceAddr, dst>>32, dst, dst>>32, dst),
NvIncr(4, NvRegDma_DestinationWidth, size/4, 1),
NvIncr(4, NvRegDma_Count, size),
NvIncr(4, NvRegDma_Launch, 0x586)
);
}