xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# (C) COPYRIGHT 2012-2023 ARM Limited. All rights reserved.
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun# This program is free software and is provided to you under the terms of the
6*4882a593Smuzhiyun# GNU General Public License version 2 as published by the Free Software
7*4882a593Smuzhiyun# Foundation, and any use by you of this program is subject to the terms
8*4882a593Smuzhiyun# of such GNU license.
9*4882a593Smuzhiyun#
10*4882a593Smuzhiyun# This program is distributed in the hope that it will be useful,
11*4882a593Smuzhiyun# but WITHOUT ANY WARRANTY; without even the implied warranty of
12*4882a593Smuzhiyun# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13*4882a593Smuzhiyun# GNU General Public License for more details.
14*4882a593Smuzhiyun#
15*4882a593Smuzhiyun# You should have received a copy of the GNU General Public License
16*4882a593Smuzhiyun# along with this program; if not, you can access it online at
17*4882a593Smuzhiyun# http://www.gnu.org/licenses/gpl-2.0.html.
18*4882a593Smuzhiyun#
19*4882a593Smuzhiyun#
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunmenuconfig MALI_BIFROST
22*4882a593Smuzhiyun	tristate "Mali Bifrost series support"
23*4882a593Smuzhiyun	select GPU_TRACEPOINTS if ANDROID
24*4882a593Smuzhiyun	select DMA_SHARED_BUFFER
25*4882a593Smuzhiyun	select FW_LOADER
26*4882a593Smuzhiyun	default n
27*4882a593Smuzhiyun	help
28*4882a593Smuzhiyun	  Enable this option to build support for a ARM Mali Bifrost GPU.
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
31*4882a593Smuzhiyun	  this will generate a single module, called mali_kbase.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunif MALI_BIFROST
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig MALI_PLATFORM_NAME
36*4882a593Smuzhiyun	depends on MALI_BIFROST
37*4882a593Smuzhiyun	string "Platform name"
38*4882a593Smuzhiyun	default "devicetree"
39*4882a593Smuzhiyun	help
40*4882a593Smuzhiyun	  Enter the name of the desired platform configuration directory to
41*4882a593Smuzhiyun	  include in the build. 'platform/$(MALI_PLATFORM_NAME)/Kbuild' must
42*4882a593Smuzhiyun	  exist.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunchoice
45*4882a593Smuzhiyun	prompt "Mali HW backend"
46*4882a593Smuzhiyun	depends on MALI_BIFROST
47*4882a593Smuzhiyun	default MALI_REAL_HW
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunconfig MALI_REAL_HW
50*4882a593Smuzhiyun	bool "Enable build of Mali kernel driver for real HW"
51*4882a593Smuzhiyun	depends on MALI_BIFROST
52*4882a593Smuzhiyun	help
53*4882a593Smuzhiyun	  This is the default HW backend.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig MALI_BIFROST_NO_MALI
56*4882a593Smuzhiyun	bool "Enable build of Mali kernel driver for No Mali"
57*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
58*4882a593Smuzhiyun	help
59*4882a593Smuzhiyun	  This can be used to test the driver in a simulated environment
60*4882a593Smuzhiyun	  whereby the hardware is not physically present. If the hardware is physically
61*4882a593Smuzhiyun	  present it will not be used. This can be used to test the majority of the
62*4882a593Smuzhiyun	  driver without needing actual hardware or for software benchmarking.
63*4882a593Smuzhiyun	  All calls to the simulated hardware will complete immediately as if the hardware
64*4882a593Smuzhiyun	  completed the task.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunendchoice
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunmenu "Platform specific options"
70*4882a593Smuzhiyunsource "drivers/gpu/arm/bifrost/platform/Kconfig"
71*4882a593Smuzhiyunendmenu
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconfig MALI_CSF_SUPPORT
74*4882a593Smuzhiyun	bool "Enable Mali CSF based GPU support"
75*4882a593Smuzhiyun	default n
76*4882a593Smuzhiyun	help
77*4882a593Smuzhiyun	  Enables support for CSF based GPUs.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig MALI_BIFROST_DEVFREQ
80*4882a593Smuzhiyun	bool "Enable devfreq support for Mali"
81*4882a593Smuzhiyun	depends on MALI_BIFROST && PM_DEVFREQ
82*4882a593Smuzhiyun	select DEVFREQ_GOV_SIMPLE_ONDEMAND
83*4882a593Smuzhiyun	default y
84*4882a593Smuzhiyun	help
85*4882a593Smuzhiyun	  Support devfreq for Mali.
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	  Using the devfreq framework and, by default, the simple on-demand
88*4882a593Smuzhiyun	  governor, the frequency of Mali will be dynamically selected from the
89*4882a593Smuzhiyun	  available OPPs.
90*4882a593Smuzhiyun
91*4882a593Smuzhiyunconfig MALI_BIFROST_DVFS
92*4882a593Smuzhiyun	bool "Enable legacy DVFS"
93*4882a593Smuzhiyun	depends on MALI_BIFROST && !MALI_BIFROST_DEVFREQ
94*4882a593Smuzhiyun	default n
95*4882a593Smuzhiyun	help
96*4882a593Smuzhiyun	  Choose this option to enable legacy DVFS in the Mali Midgard DDK.
97*4882a593Smuzhiyun
98*4882a593Smuzhiyunconfig MALI_BIFROST_GATOR_SUPPORT
99*4882a593Smuzhiyun	bool "Enable Streamline tracing support"
100*4882a593Smuzhiyun	depends on MALI_BIFROST
101*4882a593Smuzhiyun	default y
102*4882a593Smuzhiyun	help
103*4882a593Smuzhiyun	  Enables kbase tracing used by the Arm Streamline Performance Analyzer.
104*4882a593Smuzhiyun	  The tracepoints are used to derive GPU activity charts in Streamline.
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunconfig MALI_BIFROST_ENABLE_TRACE
107*4882a593Smuzhiyun	bool "Enable kbase tracing"
108*4882a593Smuzhiyun	depends on MALI_BIFROST
109*4882a593Smuzhiyun	default y if MALI_BIFROST_DEBUG
110*4882a593Smuzhiyun	default n
111*4882a593Smuzhiyun	help
112*4882a593Smuzhiyun	  Enables tracing in kbase. Trace log available through
113*4882a593Smuzhiyun	  the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled
114*4882a593Smuzhiyun
115*4882a593Smuzhiyunconfig MALI_ARBITER_SUPPORT
116*4882a593Smuzhiyun	bool "Enable arbiter support for Mali"
117*4882a593Smuzhiyun	depends on MALI_BIFROST && !MALI_CSF_SUPPORT
118*4882a593Smuzhiyun	default n
119*4882a593Smuzhiyun	help
120*4882a593Smuzhiyun	  Enable support for the arbiter interface in the driver.
121*4882a593Smuzhiyun	  This allows an external arbiter to manage driver access
122*4882a593Smuzhiyun	  to GPU hardware in a virtualized environment
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun	  If unsure, say N.
125*4882a593Smuzhiyun
126*4882a593Smuzhiyunconfig MALI_DMA_BUF_MAP_ON_DEMAND
127*4882a593Smuzhiyun	bool "Enable map imported dma-bufs on demand"
128*4882a593Smuzhiyun	depends on MALI_BIFROST
129*4882a593Smuzhiyun	default n
130*4882a593Smuzhiyun	help
131*4882a593Smuzhiyun	  This option will cause kbase to set up the GPU mapping of imported
132*4882a593Smuzhiyun	  dma-buf when needed to run atoms. This is the legacy behavior.
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	  This is intended for testing and the option will get removed in the
135*4882a593Smuzhiyun	  future.
136*4882a593Smuzhiyun
137*4882a593Smuzhiyunconfig MALI_DMA_BUF_LEGACY_COMPAT
138*4882a593Smuzhiyun	bool "Enable legacy compatibility cache flush on dma-buf map"
139*4882a593Smuzhiyun	depends on MALI_BIFROST && !MALI_DMA_BUF_MAP_ON_DEMAND
140*4882a593Smuzhiyun	default n
141*4882a593Smuzhiyun	help
142*4882a593Smuzhiyun	  This option enables compatibility with legacy dma-buf mapping
143*4882a593Smuzhiyun	  behavior, then the dma-buf is mapped on import, by adding cache
144*4882a593Smuzhiyun	  maintenance where MALI_DMA_BUF_MAP_ON_DEMAND would do the mapping,
145*4882a593Smuzhiyun	  including a cache flush.
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	  This option might work-around issues related to missing cache
148*4882a593Smuzhiyun	  flushes in other drivers. This only has an effect for clients using
149*4882a593Smuzhiyun	  UK 11.18 or older. For later UK versions it is not possible.
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig MALI_CORESIGHT
152*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_CSF_SUPPORT && !MALI_BIFROST_NO_MALI
153*4882a593Smuzhiyun	bool "Enable Kbase CoreSight tracing support"
154*4882a593Smuzhiyun	default n
155*4882a593Smuzhiyun
156*4882a593Smuzhiyunmenuconfig MALI_BIFROST_EXPERT
157*4882a593Smuzhiyun	depends on MALI_BIFROST
158*4882a593Smuzhiyun	bool "Enable Expert Settings"
159*4882a593Smuzhiyun	default n
160*4882a593Smuzhiyun	help
161*4882a593Smuzhiyun	  Enabling this option and modifying the default settings may produce
162*4882a593Smuzhiyun	  a driver with performance or other limitations.
163*4882a593Smuzhiyun
164*4882a593Smuzhiyunif MALI_BIFROST_EXPERT
165*4882a593Smuzhiyun
166*4882a593Smuzhiyunconfig LARGE_PAGE_ALLOC_OVERRIDE
167*4882a593Smuzhiyun	bool "Override default setting of 2MB pages"
168*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
169*4882a593Smuzhiyun	default n
170*4882a593Smuzhiyun	help
171*4882a593Smuzhiyun	  An override config for LARGE_PAGE_ALLOC config.
172*4882a593Smuzhiyun	  When LARGE_PAGE_ALLOC_OVERRIDE is Y, 2MB page allocation will be
173*4882a593Smuzhiyun	  enabled by LARGE_PAGE_ALLOC. When this is N, the feature will be
174*4882a593Smuzhiyun	  enabled when GPU HW satisfies requirements.
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun	  If in doubt, say N
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunconfig LARGE_PAGE_ALLOC
179*4882a593Smuzhiyun	bool "Attempt to allocate 2MB pages"
180*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
181*4882a593Smuzhiyun	default n
182*4882a593Smuzhiyun	help
183*4882a593Smuzhiyun	  Rather than allocating all GPU memory page-by-page, attempt to
184*4882a593Smuzhiyun	  allocate 2MB pages from the kernel. This reduces TLB pressure and
185*4882a593Smuzhiyun	  helps to prevent memory fragmentation.
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun	  Note this config applies only when LARGE_PAGE_ALLOC_OVERRIDE config
188*4882a593Smuzhiyun	  is enabled and enabling this on a GPU HW that does not satisfy
189*4882a593Smuzhiyun	  requirements can cause serious problem.
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun	  If in doubt, say N
192*4882a593Smuzhiyun
193*4882a593Smuzhiyunconfig MALI_MEMORY_FULLY_BACKED
194*4882a593Smuzhiyun	bool "Enable memory fully physically-backed"
195*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
196*4882a593Smuzhiyun	default n
197*4882a593Smuzhiyun	help
198*4882a593Smuzhiyun	  This option enables full physical backing of all virtual
199*4882a593Smuzhiyun	  memory allocations in the kernel. Notice that this build
200*4882a593Smuzhiyun	  option only affects allocations of grow-on-GPU-page-fault
201*4882a593Smuzhiyun	  memory.
202*4882a593Smuzhiyun
203*4882a593Smuzhiyunconfig MALI_CORESTACK
204*4882a593Smuzhiyun	bool "Enable support of GPU core stack power control"
205*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
206*4882a593Smuzhiyun	default n
207*4882a593Smuzhiyun	help
208*4882a593Smuzhiyun	  Enabling this feature on supported GPUs will let the driver powering
209*4882a593Smuzhiyun	  on/off the GPU core stack independently without involving the Power
210*4882a593Smuzhiyun	  Domain Controller. This should only be enabled on platforms which
211*4882a593Smuzhiyun	  integration of the PDC to the Mali GPU is known to be problematic.
212*4882a593Smuzhiyun	  This feature is currently only supported on t-Six and t-HEx GPUs.
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	  If unsure, say N.
215*4882a593Smuzhiyun
216*4882a593Smuzhiyuncomment "Platform options"
217*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
218*4882a593Smuzhiyun
219*4882a593Smuzhiyunconfig MALI_BIFROST_ERROR_INJECT
220*4882a593Smuzhiyun	bool "Enable No Mali error injection"
221*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT && MALI_BIFROST_NO_MALI
222*4882a593Smuzhiyun	default n
223*4882a593Smuzhiyun	help
224*4882a593Smuzhiyun	  Enables insertion of errors to test module failure and recovery mechanisms.
225*4882a593Smuzhiyun
226*4882a593Smuzhiyuncomment "Debug options"
227*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
228*4882a593Smuzhiyun
229*4882a593Smuzhiyunconfig MALI_BIFROST_DEBUG
230*4882a593Smuzhiyun	bool "Enable debug build"
231*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
232*4882a593Smuzhiyun	default n
233*4882a593Smuzhiyun	help
234*4882a593Smuzhiyun	  Select this option for increased checking and reporting of errors.
235*4882a593Smuzhiyun
236*4882a593Smuzhiyunconfig MALI_BIFROST_FENCE_DEBUG
237*4882a593Smuzhiyun	bool "Enable debug sync fence usage"
238*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT && SYNC_FILE
239*4882a593Smuzhiyun	default y if MALI_BIFROST_DEBUG
240*4882a593Smuzhiyun	help
241*4882a593Smuzhiyun	  Select this option to enable additional checking and reporting on the
242*4882a593Smuzhiyun	  use of sync fences in the Mali driver.
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun	  This will add a 3s timeout to all sync fence waits in the Mali
245*4882a593Smuzhiyun	  driver, so that when work for Mali has been waiting on a sync fence
246*4882a593Smuzhiyun	  for a long time a debug message will be printed, detailing what fence
247*4882a593Smuzhiyun	  is causing the block, and which dependent Mali atoms are blocked as a
248*4882a593Smuzhiyun	  result of this.
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun	  The timeout can be changed at runtime through the js_soft_timeout
251*4882a593Smuzhiyun	  device attribute, where the timeout is specified in milliseconds.
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig MALI_BIFROST_SYSTEM_TRACE
254*4882a593Smuzhiyun	bool "Enable system event tracing support"
255*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
256*4882a593Smuzhiyun	default y if MALI_BIFROST_DEBUG
257*4882a593Smuzhiyun	default n
258*4882a593Smuzhiyun	help
259*4882a593Smuzhiyun	  Choose this option to enable system trace events for each
260*4882a593Smuzhiyun	  kbase event. This is typically used for debugging but has
261*4882a593Smuzhiyun	  minimal overhead when not in use. Enable only if you know what
262*4882a593Smuzhiyun	  you are doing.
263*4882a593Smuzhiyun
264*4882a593Smuzhiyuncomment "Instrumentation options"
265*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
266*4882a593Smuzhiyun
267*4882a593Smuzhiyunchoice
268*4882a593Smuzhiyun	prompt "Select Performance counters set"
269*4882a593Smuzhiyun	default MALI_PRFCNT_SET_PRIMARY
270*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
271*4882a593Smuzhiyun
272*4882a593Smuzhiyunconfig MALI_PRFCNT_SET_PRIMARY
273*4882a593Smuzhiyun	bool "Primary"
274*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
275*4882a593Smuzhiyun	help
276*4882a593Smuzhiyun	  Select this option to use primary set of performance counters.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyunconfig MALI_BIFROST_PRFCNT_SET_SECONDARY
279*4882a593Smuzhiyun	bool "Secondary"
280*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
281*4882a593Smuzhiyun	help
282*4882a593Smuzhiyun	  Select this option to use secondary set of performance counters. Kernel
283*4882a593Smuzhiyun	  features that depend on an access to the primary set of counters may
284*4882a593Smuzhiyun	  become unavailable. Enabling this option will prevent power management
285*4882a593Smuzhiyun	  from working optimally and may cause instrumentation tools to return
286*4882a593Smuzhiyun	  bogus results.
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun	  If unsure, use MALI_PRFCNT_SET_PRIMARY.
289*4882a593Smuzhiyun
290*4882a593Smuzhiyunconfig MALI_PRFCNT_SET_TERTIARY
291*4882a593Smuzhiyun	bool "Tertiary"
292*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
293*4882a593Smuzhiyun	help
294*4882a593Smuzhiyun	  Select this option to use tertiary set of performance counters. Kernel
295*4882a593Smuzhiyun	  features that depend on an access to the primary set of counters may
296*4882a593Smuzhiyun	  become unavailable. Enabling this option will prevent power management
297*4882a593Smuzhiyun	  from working optimally and may cause instrumentation tools to return
298*4882a593Smuzhiyun	  bogus results.
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun	  If unsure, use MALI_PRFCNT_SET_PRIMARY.
301*4882a593Smuzhiyun
302*4882a593Smuzhiyunendchoice
303*4882a593Smuzhiyun
304*4882a593Smuzhiyunconfig MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS
305*4882a593Smuzhiyun	bool "Enable runtime selection of performance counters set via debugfs"
306*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT && DEBUG_FS
307*4882a593Smuzhiyun	default n
308*4882a593Smuzhiyun	help
309*4882a593Smuzhiyun	  Select this option to make the secondary set of performance counters
310*4882a593Smuzhiyun	  available at runtime via debugfs. Kernel features that depend on an
311*4882a593Smuzhiyun	  access to the primary set of counters may become unavailable.
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun	  If no runtime debugfs option is set, the build time counter set
314*4882a593Smuzhiyun	  choice will be used.
315*4882a593Smuzhiyun
316*4882a593Smuzhiyun	  This feature is unsupported and unstable, and may break at any time.
317*4882a593Smuzhiyun	  Enabling this option will prevent power management from working
318*4882a593Smuzhiyun	  optimally and may cause instrumentation tools to return bogus results.
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun	  No validation is done on the debugfs input. Invalid input could cause
321*4882a593Smuzhiyun	  performance counter errors. Valid inputs are the values accepted by
322*4882a593Smuzhiyun	  the SET_SELECT bits of the PRFCNT_CONFIG register as defined in the
323*4882a593Smuzhiyun	  architecture specification.
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun	  If unsure, say N.
326*4882a593Smuzhiyun
327*4882a593Smuzhiyunconfig MALI_JOB_DUMP
328*4882a593Smuzhiyun	bool "Enable system level support needed for job dumping"
329*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
330*4882a593Smuzhiyun	default n
331*4882a593Smuzhiyun	help
332*4882a593Smuzhiyun	  Choose this option to enable system level support needed for
333*4882a593Smuzhiyun	  job dumping. This is typically used for instrumentation but has
334*4882a593Smuzhiyun	  minimal overhead when not in use. Enable only if you know what
335*4882a593Smuzhiyun	  you are doing.
336*4882a593Smuzhiyun
337*4882a593Smuzhiyuncomment "Workarounds"
338*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
339*4882a593Smuzhiyun
340*4882a593Smuzhiyunconfig MALI_PWRSOFT_765
341*4882a593Smuzhiyun	bool "Enable workaround for PWRSOFT-765"
342*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
343*4882a593Smuzhiyun	default n
344*4882a593Smuzhiyun	help
345*4882a593Smuzhiyun	  PWRSOFT-765 fixes devfreq cooling devices issues. The fix was merged
346*4882a593Smuzhiyun	  in kernel v4.10, however if backported into the kernel then this
347*4882a593Smuzhiyun	  option must be manually selected.
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun	  If using kernel >= v4.10 then say N, otherwise if devfreq cooling
350*4882a593Smuzhiyun	  changes have been backported say Y to avoid compilation errors.
351*4882a593Smuzhiyun
352*4882a593Smuzhiyunconfig MALI_HW_ERRATA_1485982_NOT_AFFECTED
353*4882a593Smuzhiyun	bool "Disable workaround for BASE_HW_ISSUE_GPU2017_1336"
354*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT
355*4882a593Smuzhiyun	default n
356*4882a593Smuzhiyun	help
357*4882a593Smuzhiyun	  This option disables the default workaround for GPU2017-1336. The
358*4882a593Smuzhiyun	  workaround keeps the L2 cache powered up except for powerdown and reset.
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun	  The workaround introduces a limitation that will prevent the running of
361*4882a593Smuzhiyun	  protected mode content on fully coherent platforms, as the switch to IO
362*4882a593Smuzhiyun	  coherency mode requires the L2 to be turned off.
363*4882a593Smuzhiyun
364*4882a593Smuzhiyunconfig MALI_HW_ERRATA_1485982_USE_CLOCK_ALTERNATIVE
365*4882a593Smuzhiyun	bool "Use alternative workaround for BASE_HW_ISSUE_GPU2017_1336"
366*4882a593Smuzhiyun	depends on MALI_BIFROST && MALI_BIFROST_EXPERT && !MALI_HW_ERRATA_1485982_NOT_AFFECTED
367*4882a593Smuzhiyun	default n
368*4882a593Smuzhiyun	help
369*4882a593Smuzhiyun	  This option uses an alternative workaround for GPU2017-1336. Lowering
370*4882a593Smuzhiyun	  the GPU clock to a, platform specific, known good frequency before
371*4882a593Smuzhiyun	  powering down the L2 cache. The clock can be specified in the device
372*4882a593Smuzhiyun	  tree using the property, opp-mali-errata-1485982. Otherwise the
373*4882a593Smuzhiyun	  slowest clock will be selected.
374*4882a593Smuzhiyun
375*4882a593Smuzhiyunendif
376*4882a593Smuzhiyun
377*4882a593Smuzhiyunconfig MALI_ARBITRATION
378*4882a593Smuzhiyun	tristate "Enable Virtualization reference code"
379*4882a593Smuzhiyun	depends on MALI_BIFROST
380*4882a593Smuzhiyun	default n
381*4882a593Smuzhiyun	help
382*4882a593Smuzhiyun	  Enables the build of several reference modules used in the reference
383*4882a593Smuzhiyun	  virtualization setup for Mali
384*4882a593Smuzhiyun	  If unsure, say N.
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun# source "drivers/gpu/arm/bifrost/tests/Kconfig"
388*4882a593Smuzhiyun
389*4882a593Smuzhiyunendif
390