KFDTest: Added gfx1010 SDMA fence packet support
Change-Id: I33d824353d77317363b73ddc52cd182f86b8bc66 Signed-off-by: shaoyunl <shaoyun.liu@amd.com> Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Tá an tiomantas seo le fáil i:
tiomanta ag
Shaoyun Liu
tuismitheoir
395750264d
tiomantas
5b44be1907
@@ -173,13 +173,16 @@ SDMAFencePacket::SDMAFencePacket(void) {
|
||||
|
||||
SDMAFencePacket::SDMAFencePacket(unsigned int familyId, void* destAddr, unsigned int data) {
|
||||
m_FamilyId = familyId;
|
||||
InitPacket(destAddr, data);
|
||||
if (m_FamilyId < FAMILY_NV)
|
||||
InitPacketCI(destAddr, data);
|
||||
else
|
||||
InitPacketNV(destAddr, data);
|
||||
}
|
||||
|
||||
SDMAFencePacket::~SDMAFencePacket(void) {
|
||||
}
|
||||
|
||||
void SDMAFencePacket::InitPacket(void* destAddr, unsigned int data) {
|
||||
void SDMAFencePacket::InitPacketCI(void* destAddr, unsigned int data) {
|
||||
memset(&packetData, 0, SizeInBytes());
|
||||
|
||||
packetData.HEADER_UNION.op = SDMA_OP_FENCE;
|
||||
@@ -191,6 +194,23 @@ void SDMAFencePacket::InitPacket(void* destAddr, unsigned int data) {
|
||||
packetData.DATA_UNION.data = data;
|
||||
}
|
||||
|
||||
void SDMAFencePacket::InitPacketNV(void * destAddr,unsigned int data) {
|
||||
memset(&packetData, 0, SizeInBytes());
|
||||
|
||||
/* GPA=0 becaue we use virtual address
|
||||
* Snoop = 1 because we want the write be CPU coherent
|
||||
* System = 1 because the memory is system memory
|
||||
* mtype = uncached, for the purpose of CPU coherent, L2 policy doesn't matter in this case
|
||||
*/
|
||||
packetData.HEADER_UNION.DW_0_DATA = (0 << 23) | (1 << 22) | (1 << 20) | (3 << 15) | SDMA_OP_FENCE;
|
||||
|
||||
SplitU64(reinterpret_cast<unsigned long long>(destAddr),
|
||||
packetData.ADDR_LO_UNION.DW_1_DATA, /*dst_addr_31_0*/
|
||||
packetData.ADDR_HI_UNION.DW_2_DATA); /*dst_addr_63_32*/
|
||||
|
||||
packetData.DATA_UNION.data = data;
|
||||
}
|
||||
|
||||
|
||||
SDMATrapPacket::SDMATrapPacket(unsigned int eventID) {
|
||||
InitPacket(eventID);
|
||||
|
||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir