| 1 | /* SPDX-License-Identifier: MIT */ |
| 2 | /* |
| 3 | * Copyright © 2023 Intel Corporation |
| 4 | */ |
| 5 | |
| 6 | #ifndef _XE_GPU_COMMANDS_H_ |
| 7 | #define _XE_GPU_COMMANDS_H_ |
| 8 | |
| 9 | #include "regs/xe_reg_defs.h" |
| 10 | |
| 11 | #define XY_CTRL_SURF_COPY_BLT ((2 << 29) | (0x48 << 22) | 3) |
| 12 | #define SRC_ACCESS_TYPE_SHIFT 21 |
| 13 | #define DST_ACCESS_TYPE_SHIFT 20 |
| 14 | #define CCS_SIZE_MASK GENMASK(17, 8) |
| 15 | #define XE2_CCS_SIZE_MASK GENMASK(18, 9) |
| 16 | #define XY_CTRL_SURF_MOCS_MASK GENMASK(31, 26) |
| 17 | #define XE2_XY_CTRL_SURF_MOCS_INDEX_MASK GENMASK(31, 28) |
| 18 | #define NUM_CCS_BYTES_PER_BLOCK 256 |
| 19 | #define NUM_BYTES_PER_CCS_BYTE(_xe) (GRAPHICS_VER(_xe) >= 20 ? 512 : 256) |
| 20 | |
| 21 | #define XY_FAST_COLOR_BLT_CMD (2 << 29 | 0x44 << 22) |
| 22 | #define XY_FAST_COLOR_BLT_DEPTH_32 (2 << 19) |
| 23 | #define XY_FAST_COLOR_BLT_DW 16 |
| 24 | #define XY_FAST_COLOR_BLT_MOCS_MASK GENMASK(27, 22) |
| 25 | #define XE2_XY_FAST_COLOR_BLT_MOCS_INDEX_MASK GENMASK(27, 24) |
| 26 | #define XY_FAST_COLOR_BLT_MEM_TYPE_SHIFT 31 |
| 27 | |
| 28 | #define XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22) |
| 29 | #define XY_FAST_COPY_BLT_DEPTH_32 (3<<24) |
| 30 | #define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31) |
| 31 | #define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30) |
| 32 | #define XE2_XY_FAST_COPY_BLT_MOCS_INDEX_MASK GENMASK(23, 20) |
| 33 | |
| 34 | #define MEM_COPY_CMD (2 << 29 | 0x5a << 22 | 0x8) |
| 35 | #define MEM_COPY_PAGE_COPY_MODE REG_BIT(19) |
| 36 | #define MEM_COPY_MATRIX_COPY REG_BIT(17) |
| 37 | #define MEM_COPY_SRC_MOCS_INDEX_MASK GENMASK(31, 28) |
| 38 | #define MEM_COPY_DST_MOCS_INDEX_MASK GENMASK(6, 3) |
| 39 | |
| 40 | #define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22) |
| 41 | #define PVC_MEM_SET_CMD_LEN_DW 7 |
| 42 | #define PVC_MEM_SET_MATRIX REG_BIT(17) |
| 43 | #define PVC_MEM_SET_DATA_FIELD GENMASK(31, 24) |
| 44 | /* Bspec lists field as [6:0], but index alone is from [6:1] */ |
| 45 | #define PVC_MEM_SET_MOCS_INDEX_MASK GENMASK(6, 1) |
| 46 | #define XE2_MEM_SET_MOCS_INDEX_MASK GENMASK(6, 3) |
| 47 | |
| 48 | #define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|((len)-2)) |
| 49 | |
| 50 | #define PIPE_CONTROL0_L3_READ_ONLY_CACHE_INVALIDATE BIT(10) /* gen12 */ |
| 51 | #define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* gen12 */ |
| 52 | |
| 53 | #define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE (1<<29) |
| 54 | #define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28) |
| 55 | #define PIPE_CONTROL_AMFS_FLUSH (1<<25) |
| 56 | #define PIPE_CONTROL_GLOBAL_GTT_IVB (1<<24) |
| 57 | #define PIPE_CONTROL_LRI_POST_SYNC BIT(23) |
| 58 | #define PIPE_CONTROL_STORE_DATA_INDEX (1<<21) |
| 59 | #define PIPE_CONTROL_CS_STALL (1<<20) |
| 60 | #define PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET (1<<19) |
| 61 | #define PIPE_CONTROL_TLB_INVALIDATE BIT(18) |
| 62 | #define PIPE_CONTROL_PSD_SYNC (1<<17) |
| 63 | #define PIPE_CONTROL_QW_WRITE (1<<14) |
| 64 | #define PIPE_CONTROL_DEPTH_STALL (1<<13) |
| 65 | #define PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH (1<<12) |
| 66 | #define PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE (1<<11) |
| 67 | #define PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE (1<<10) |
| 68 | #define PIPE_CONTROL_INDIRECT_STATE_DISABLE (1<<9) |
| 69 | #define PIPE_CONTROL_FLUSH_ENABLE (1<<7) |
| 70 | #define PIPE_CONTROL_DC_FLUSH_ENABLE (1<<5) |
| 71 | #define PIPE_CONTROL_VF_CACHE_INVALIDATE (1<<4) |
| 72 | #define PIPE_CONTROL_CONST_CACHE_INVALIDATE (1<<3) |
| 73 | #define PIPE_CONTROL_STATE_CACHE_INVALIDATE (1<<2) |
| 74 | #define PIPE_CONTROL_STALL_AT_SCOREBOARD (1<<1) |
| 75 | #define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<<0) |
| 76 | |
| 77 | #endif |
| 78 | |