kfdtest: Add SDMA poll memory register packet support
The SDMA can wait on poll user memory. This is being added to
support per-SDMA queue reset testing.
[ROCm/ROCR-Runtime commit: a957b24153]
Este commit está contenido en:
cometido por
Kim, Jonathan
padre
599a20ee2d
commit
303cdb8f7e
@@ -213,6 +213,28 @@ void SDMATrapPacket::InitPacket(unsigned int eventID) {
|
||||
packetData.INT_CONTEXT_UNION.int_context = eventID;
|
||||
}
|
||||
|
||||
SDMAPollRegMemPacket::SDMAPollRegMemPacket(void *addr, int value) {
|
||||
InitPacket(addr, value);
|
||||
}
|
||||
|
||||
SDMAPollRegMemPacket::~SDMAPollRegMemPacket(void) {
|
||||
}
|
||||
|
||||
void SDMAPollRegMemPacket::InitPacket(void *addr, int value) {
|
||||
memset(&packetData, 0, SizeInBytes());
|
||||
|
||||
packetData.HEADER_UNION.op = SDMA_OP_POLL_REGMEM;
|
||||
packetData.HEADER_UNION.mem_poll = 1;
|
||||
packetData.HEADER_UNION.func = 0x3; // IsEqual.
|
||||
SplitU64(reinterpret_cast<unsigned long long>(addr),
|
||||
packetData.ADDR_LO_UNION.DW_1_DATA,
|
||||
packetData.ADDR_HI_UNION.DW_2_DATA);
|
||||
packetData.VALUE_UNION.value = value;
|
||||
packetData.MASK_UNION.mask = 0xffffffff; // Compare the whole content.
|
||||
packetData.DW5_UNION.interval = 0x04;
|
||||
packetData.DW5_UNION.retry_count = 0xfff;
|
||||
}
|
||||
|
||||
SDMATimePacket::SDMATimePacket(void *destaddr) {
|
||||
InitPacket(destaddr);
|
||||
}
|
||||
|
||||
Referencia en una nueva incidencia
Block a user