hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
 * Copyright (C) 2017 Linaro Ltd.
 */
#ifndef __VENUS_HFI_VENUS_IO_H__
#define __VENUS_HFI_VENUS_IO_H__
 
#define VBIF_BASE                0x80000
 
#define VBIF_AXI_HALT_CTRL0            0x208
#define VBIF_AXI_HALT_CTRL1            0x20c
 
#define VBIF_AXI_HALT_CTRL0_HALT_REQ        BIT(0)
#define VBIF_AXI_HALT_CTRL1_HALT_ACK        BIT(0)
#define VBIF_AXI_HALT_ACK_TIMEOUT_US        500000
 
#define CPU_BASE                0xc0000
 
#define CPU_CS_BASE                (CPU_BASE + 0x12000)
#define CPU_IC_BASE                (CPU_BASE + 0x1f000)
 
#define CPU_CS_A2HSOFTINTCLR            0x1c
 
#define VIDC_CTRL_INIT                0x48
#define VIDC_CTRL_INIT_RESERVED_BITS31_1_MASK    0xfffffffe
#define VIDC_CTRL_INIT_RESERVED_BITS31_1_SHIFT    1
#define VIDC_CTRL_INIT_CTRL_MASK        0x1
#define VIDC_CTRL_INIT_CTRL_SHIFT        0
 
/* HFI control status */
#define CPU_CS_SCIACMDARG0            0x4c
#define CPU_CS_SCIACMDARG0_MASK            0xff
#define CPU_CS_SCIACMDARG0_SHIFT        0x0
#define CPU_CS_SCIACMDARG0_ERROR_STATUS_MASK    0xfe
#define CPU_CS_SCIACMDARG0_ERROR_STATUS_SHIFT    0x1
#define CPU_CS_SCIACMDARG0_INIT_STATUS_MASK    0x1
#define CPU_CS_SCIACMDARG0_INIT_STATUS_SHIFT    0x0
#define CPU_CS_SCIACMDARG0_PC_READY        BIT(8)
#define CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK    BIT(30)
 
/* HFI queue table info */
#define CPU_CS_SCIACMDARG1            0x50
 
/* HFI queue table address */
#define CPU_CS_SCIACMDARG2            0x54
 
/* Venus cpu */
#define CPU_CS_SCIACMDARG3            0x58
 
#define SFR_ADDR                0x5c
#define MMAP_ADDR                0x60
#define UC_REGION_ADDR                0x64
#define UC_REGION_SIZE                0x68
 
#define CPU_CS_H2XSOFTINTEN_V6            0x148
 
#define CPU_CS_X2RPMH_V6            0x168
#define CPU_CS_X2RPMH_MASK0_BMSK_V6        0x1
#define CPU_CS_X2RPMH_MASK0_SHFT_V6        0x0
#define CPU_CS_X2RPMH_MASK1_BMSK_V6        0x2
#define CPU_CS_X2RPMH_MASK1_SHFT_V6        0x1
#define CPU_CS_X2RPMH_SWOVERRIDE_BMSK_V6    0x4
#define CPU_CS_X2RPMH_SWOVERRIDE_SHFT_V6    0x3
 
/* Relative to CPU_IC_BASE */
#define CPU_IC_SOFTINT                0x18
#define CPU_IC_SOFTINT_V6            0x150
#define CPU_IC_SOFTINT_H2A_MASK            0x8000
#define CPU_IC_SOFTINT_H2A_SHIFT        0xf
#define CPU_IC_SOFTINT_H2A_SHIFT_V6        0x0
 
/* Venus wrapper */
#define WRAPPER_BASE                0x000e0000
 
#define WRAPPER_HW_VERSION            0x00
#define WRAPPER_HW_VERSION_MAJOR_VERSION_MASK    0x78000000
#define WRAPPER_HW_VERSION_MAJOR_VERSION_SHIFT    28
#define WRAPPER_HW_VERSION_MINOR_VERSION_MASK    0xfff0000
#define WRAPPER_HW_VERSION_MINOR_VERSION_SHIFT    16
#define WRAPPER_HW_VERSION_STEP_VERSION_MASK    0xffff
 
#define WRAPPER_CLOCK_CONFIG            0x04
 
#define WRAPPER_INTR_STATUS            0x0c
#define WRAPPER_INTR_STATUS_A2HWD_MASK        0x10
#define WRAPPER_INTR_STATUS_A2HWD_SHIFT        0x4
#define WRAPPER_INTR_STATUS_A2H_MASK        0x4
#define WRAPPER_INTR_STATUS_A2H_SHIFT        0x2
 
#define WRAPPER_INTR_MASK            0x10
#define WRAPPER_INTR_MASK_A2HWD_BASK        0x10
#define WRAPPER_INTR_MASK_A2HWD_SHIFT        0x4
#define WRAPPER_INTR_MASK_A2HVCODEC_MASK    0x8
#define WRAPPER_INTR_MASK_A2HVCODEC_SHIFT    0x3
#define WRAPPER_INTR_MASK_A2HCPU_MASK        0x4
#define WRAPPER_INTR_MASK_A2HCPU_SHIFT        0x2
 
#define WRAPPER_INTR_STATUS_A2HWD_MASK_V6    0x8
#define WRAPPER_INTR_MASK_A2HWD_BASK_V6        0x8
 
#define WRAPPER_INTR_CLEAR            0x14
#define WRAPPER_INTR_CLEAR_A2HWD_MASK        0x10
#define WRAPPER_INTR_CLEAR_A2HWD_SHIFT        0x4
#define WRAPPER_INTR_CLEAR_A2H_MASK        0x4
#define WRAPPER_INTR_CLEAR_A2H_SHIFT        0x2
 
#define WRAPPER_POWER_STATUS            0x44
#define WRAPPER_VDEC_VCODEC_POWER_CONTROL    0x48
#define WRAPPER_VENC_VCODEC_POWER_CONTROL    0x4c
#define WRAPPER_DEBUG_BRIDGE_LPI_CONTROL_V6    0x54
#define WRAPPER_DEBUG_BRIDGE_LPI_STATUS_V6    0x58
#define WRAPPER_VDEC_VENC_AHB_BRIDGE_SYNC_RESET    0x64
 
#define WRAPPER_CPU_CLOCK_CONFIG        0x2000
#define WRAPPER_CPU_AXI_HALT            0x2008
#define WRAPPER_CPU_AXI_HALT_HALT        BIT(16)
#define WRAPPER_CPU_AXI_HALT_STATUS        0x200c
#define WRAPPER_CPU_AXI_HALT_STATUS_IDLE    BIT(24)
 
#define WRAPPER_CPU_CGC_DIS            0x2010
#define WRAPPER_CPU_STATUS            0x2014
#define WRAPPER_CPU_STATUS_WFI            BIT(0)
#define WRAPPER_SW_RESET            0x3000
#define WRAPPER_CPA_START_ADDR            0x1020
#define WRAPPER_CPA_END_ADDR            0x1024
#define WRAPPER_FW_START_ADDR            0x1028
#define WRAPPER_FW_END_ADDR            0x102C
#define WRAPPER_NONPIX_START_ADDR        0x1030
#define WRAPPER_NONPIX_END_ADDR            0x1034
#define WRAPPER_A9SS_SW_RESET            0x3000
#define WRAPPER_A9SS_SW_RESET_BIT        BIT(4)
 
/* Venus 4xx */
#define WRAPPER_VCODEC0_MMCC_POWER_STATUS    0x90
#define WRAPPER_VCODEC0_MMCC_POWER_CONTROL    0x94
 
#define WRAPPER_VCODEC1_MMCC_POWER_STATUS    0x110
#define WRAPPER_VCODEC1_MMCC_POWER_CONTROL    0x114
 
/* Venus 6xx */
#define WRAPPER_CORE_POWER_STATUS_V6        0x80
#define WRAPPER_CORE_POWER_CONTROL_V6        0x84
 
/* Wrapper TZ 6xx */
#define WRAPPER_TZ_BASE_V6            0x000c0000
#define WRAPPER_TZ_CPU_STATUS_V6        0x10
 
/* Venus AON */
#define AON_BASE_V6                0x000e0000
#define AON_WRAPPER_MVP_NOC_LPI_CONTROL        0x00
#define AON_WRAPPER_MVP_NOC_LPI_STATUS        0x04
 
#endif