.. | .. |
---|
26 | 26 | |
---|
27 | 27 | #include "nbio_v6_1.h" |
---|
28 | 28 | #include "nbio_v7_0.h" |
---|
| 29 | +#include "nbio_v7_4.h" |
---|
29 | 30 | |
---|
30 | | -#define SOC15_FLUSH_GPU_TLB_NUM_WREG 4 |
---|
31 | | -#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT 1 |
---|
| 31 | +#define SOC15_FLUSH_GPU_TLB_NUM_WREG 6 |
---|
| 32 | +#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT 3 |
---|
32 | 33 | |
---|
33 | 34 | extern const struct amd_ip_funcs soc15_common_ip_funcs; |
---|
34 | 35 | |
---|
.. | .. |
---|
41 | 42 | u32 or_mask; |
---|
42 | 43 | }; |
---|
43 | 44 | |
---|
| 45 | +struct soc15_reg_rlcg { |
---|
| 46 | + u32 hwip; |
---|
| 47 | + u32 instance; |
---|
| 48 | + u32 segment; |
---|
| 49 | + u32 reg; |
---|
| 50 | +}; |
---|
| 51 | + |
---|
| 52 | +struct soc15_reg_entry { |
---|
| 53 | + uint32_t hwip; |
---|
| 54 | + uint32_t inst; |
---|
| 55 | + uint32_t seg; |
---|
| 56 | + uint32_t reg_offset; |
---|
| 57 | + uint32_t reg_value; |
---|
| 58 | + uint32_t se_num; |
---|
| 59 | + uint32_t instance; |
---|
| 60 | +}; |
---|
| 61 | + |
---|
| 62 | +struct soc15_allowed_register_entry { |
---|
| 63 | + uint32_t hwip; |
---|
| 64 | + uint32_t inst; |
---|
| 65 | + uint32_t seg; |
---|
| 66 | + uint32_t reg_offset; |
---|
| 67 | + bool grbm_indexed; |
---|
| 68 | +}; |
---|
| 69 | + |
---|
| 70 | +struct soc15_ras_field_entry { |
---|
| 71 | + const char *name; |
---|
| 72 | + uint32_t hwip; |
---|
| 73 | + uint32_t inst; |
---|
| 74 | + uint32_t seg; |
---|
| 75 | + uint32_t reg_offset; |
---|
| 76 | + uint32_t sec_count_mask; |
---|
| 77 | + uint32_t sec_count_shift; |
---|
| 78 | + uint32_t ded_count_mask; |
---|
| 79 | + uint32_t ded_count_shift; |
---|
| 80 | +}; |
---|
| 81 | + |
---|
44 | 82 | #define SOC15_REG_ENTRY(ip, inst, reg) ip##_HWIP, inst, reg##_BASE_IDX, reg |
---|
| 83 | + |
---|
| 84 | +#define SOC15_REG_ENTRY_OFFSET(entry) (adev->reg_offset[entry.hwip][entry.inst][entry.seg] + entry.reg_offset) |
---|
45 | 85 | |
---|
46 | 86 | #define SOC15_REG_GOLDEN_VALUE(ip, inst, reg, and_mask, or_mask) \ |
---|
47 | 87 | { ip##_HWIP, inst, reg##_BASE_IDX, reg, and_mask, or_mask } |
---|
48 | 88 | |
---|
| 89 | +#define SOC15_REG_FIELD(reg, field) reg##__##field##_MASK, reg##__##field##__SHIFT |
---|
| 90 | + |
---|
49 | 91 | void soc15_grbm_select(struct amdgpu_device *adev, |
---|
50 | 92 | u32 me, u32 pipe, u32 queue, u32 vmid); |
---|
| 93 | +void soc15_set_virt_ops(struct amdgpu_device *adev); |
---|
51 | 94 | int soc15_set_ip_blocks(struct amdgpu_device *adev); |
---|
52 | 95 | |
---|
53 | 96 | void soc15_program_register_sequence(struct amdgpu_device *adev, |
---|
.. | .. |
---|
56 | 99 | |
---|
57 | 100 | int vega10_reg_base_init(struct amdgpu_device *adev); |
---|
58 | 101 | int vega20_reg_base_init(struct amdgpu_device *adev); |
---|
| 102 | +int arct_reg_base_init(struct amdgpu_device *adev); |
---|
59 | 103 | |
---|
| 104 | +void vega10_doorbell_index_init(struct amdgpu_device *adev); |
---|
| 105 | +void vega20_doorbell_index_init(struct amdgpu_device *adev); |
---|
60 | 106 | #endif |
---|