Commit 1f65105f authored by Tomer Tayar's avatar Tomer Tayar Committed by Oded Gabbay
Browse files

habanalabs: Read upper bits of trace buffer from RWPHI



The trace buffer address is 40 bits wide.
The end of the buffer is set in the RWP register (lower 32 bits), and in
the RWPHI register (upper 8 bits).
Currently only the lower 32 bits are read, and this patch fixes it and
concatenates the upper 8 bits to the output address.

Signed-off-by: default avatarTomer Tayar <ttayar@habana.ai>
Reviewed-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent e4c814aa
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -425,8 +425,18 @@ static int goya_config_etr(struct hl_device *hdev,
		WREG32(base_reg + 0x28, 0);
		WREG32(base_reg + 0x304, 0);

		if (params->output_size >= sizeof(u32))
			*(u32 *) params->output = RREG32(base_reg + 0x18);
		if (params->output_size >= sizeof(u64)) {
			u32 rwp, rwphi;

			/*
			 * The trace buffer address is 40 bits wide. The end of
			 * the buffer is set in the RWP register (lower 32
			 * bits), and in the RWPHI register (upper 8 bits).
			 */
			rwp = RREG32(base_reg + 0x18);
			rwphi = RREG32(base_reg + 0x3c) & 0xff;
			*(u64 *) params->output = ((u64) rwphi << 32) | rwp;
		}
	}

	return 0;