mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 10:32:15 +02:00
Added dma clear
This commit is contained in:
parent
7ca21ae04b
commit
345bf56a82
@ -1 +1,2 @@
|
||||
void vnDmaClear32(Vn* vn, iova_t dst, u32 val, size_t size);
|
||||
void vnDmaClear64(Vn* vn, iova_t dst, u64 val, size_t size);
|
||||
|
26
nx/source/nvidia/cmds/dma_clear.c
Normal file
26
nx/source/nvidia/cmds/dma_clear.c
Normal 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)
|
||||
);
|
||||
}
|
@ -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)
|
||||
);
|
||||
}
|
Loading…
Reference in New Issue
Block a user