L0 debugger - decanonize SDI address before adding to buffer

Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
This commit is contained in:
Yates, Brandon
2022-10-12 17:56:06 +00:00
committed by Compute-Runtime-Automation
parent 6bcb2ea063
commit 3fced92766
2 changed files with 8 additions and 1 deletions

View File

@@ -109,13 +109,16 @@ void DebuggerL0Hw<GfxFamily>::programSbaTrackingCommandsSingleAddressSpace(NEO::
auto miStoreSbaField = cmdStream.getSpaceForCmd<MI_STORE_DATA_IMM>();
auto gpuVaOfAddress = addressOfSDI + offsetToAddress;
auto gpuVaOfData = addressOfSDI + offsetToData;
const auto gpuVaOfDataDWORD1 = gpuVaOfData + 4;
const auto gmmHelper = device->getGmmHelper();
const auto gpuVaOfDataDWORD1 = gmmHelper->decanonize(gpuVaOfData + 4);
NEO::EncodeStoreMMIO<GfxFamily>::encode(miStoreRegMemLow, CS_GPR_R1, gpuVaOfAddress, false);
NEO::EncodeStoreMMIO<GfxFamily>::encode(miStoreRegMemHigh, CS_GPR_R1 + 4, gpuVaOfAddress + 4, false);
MI_STORE_DATA_IMM setSbaBufferAddress = GfxFamily::cmdInitStoreDataImm;
gpuVaOfData = gmmHelper->decanonize(gpuVaOfData);
setSbaBufferAddress.setAddress(gpuVaOfData);
setSbaBufferAddress.setStoreQword(false);
setSbaBufferAddress.setDataDword0(pair.second & 0xffffffff);

View File

@@ -188,9 +188,13 @@ HWTEST2_F(SingleAddressSpaceFixture, GivenNonZeroSbaAddressesWhenProgrammingSbaT
itor = find<MI_STORE_DATA_IMM *>(itor, cmdList.end());
ASSERT_NE(cmdList.end(), itor);
auto cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*itor);
EXPECT_LT(cmdSdi->TheStructure.Common.Address, 0xfffffffffffcuL);
itor = find<MI_STORE_DATA_IMM *>(itor, cmdList.end());
ASSERT_NE(cmdList.end(), itor);
cmdSdi = genCmdCast<MI_STORE_DATA_IMM *>(*itor);
EXPECT_LT(cmdSdi->TheStructure.Common.Address, 0xfffffffffffcuL);
itor = find<MI_ARB_CHECK *>(itor, cmdList.end());
ASSERT_NE(cmdList.end(), itor);