2 # (C) COPYRIGHT 2012-2015 ARM Limited. All rights reserved.
4 # This program is free software and is provided to you under the terms of the
5 # GNU General Public License version 2 as published by the Free Software
6 # Foundation, and any use by you of this program is subject to the terms
9 # A copy of the licence is included with the program, and can also be obtained
10 # from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
11 # Boston, MA 02110-1301, USA.
17 menuconfig MALI_MIDGARD
18 tristate "Mali Midgard series support"
19 select GPU_TRACEPOINTS if ANDROID
22 Enable this option to build support for a ARM Mali Midgard GPU.
24 To compile this driver as a module, choose M here:
25 this will generate a single module, called mali_kbase.
27 config MALI_GATOR_SUPPORT
28 bool "Streamline support via Gator"
29 depends on MALI_MIDGARD
32 Adds diagnostic support for use with the ARM Streamline Performance Analyzer.
33 You will need the Gator device driver already loaded before loading this driver when enabling
34 Streamline debug support.
35 This is a legacy interface required by older versions of Streamline.
37 config MALI_MIDGARD_DVFS
38 bool "Enable legacy DVFS"
39 depends on MALI_MIDGARD && !MALI_DEVFREQ && !MALI_PLATFORM_DEVICETREE
42 Choose this option to enable legacy DVFS in the Mali Midgard DDK.
44 config MALI_MIDGARD_ENABLE_TRACE
45 bool "Enable kbase tracing"
46 depends on MALI_MIDGARD
49 Enables tracing in kbase. Trace log available through
50 the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled
53 bool "devfreq support for Mali"
54 depends on MALI_MIDGARD && PM_DEVFREQ
56 Support devfreq for Mali.
58 Using the devfreq framework and, by default, the simpleondemand
59 governor, the frequency of Mali will be dynamically selected from the
63 bool "DMA_BUF fence support for Mali"
64 depends on MALI_MIDGARD && !KDS
67 Support DMA_BUF fences for Mali.
69 This option should only be enabled if KDS is not present and
70 the Linux Kernel has built in support for DMA_BUF fences.
72 # MALI_EXPERT configuration options
74 menuconfig MALI_EXPERT
75 depends on MALI_MIDGARD
76 bool "Enable Expert Settings"
79 Enabling this option and modifying the default settings may produce a driver with performance or
82 config MALI_PRFCNT_SET_SECONDARY
83 bool "Use secondary set of performance counters"
84 depends on MALI_MIDGARD && MALI_EXPERT
87 Select this option to use secondary set of performance counters. Kernel
88 features that depend on an access to the primary set of counters may
89 become unavailable. Enabling this option will prevent power management
90 from working optimally and may cause instrumentation tools to return
95 config MALI_PLATFORM_FAKE
96 bool "Enable fake platform device support"
97 depends on MALI_MIDGARD && MALI_EXPERT
100 When you start to work with the Mali Midgard series device driver the platform-specific code of
101 the Linux kernel for your platform may not be complete. In this situation the kernel device driver
102 supports creating the platform device outside of the Linux platform-specific code.
103 Enable this option if would like to use a platform device configuration from within the device driver.
106 prompt "Platform configuration"
107 depends on MALI_MIDGARD && MALI_EXPERT
108 default MALI_PLATFORM_DEVICETREE
110 Select the SOC platform that contains a Mali Midgard GPU
112 config MALI_PLATFORM_DEVICETREE
113 bool "Device Tree platform"
116 Select this option to use Device Tree with the Mali driver.
118 When using this option the Mali driver will get the details of the
119 GPU hardware from the Device Tree. This means that the same driver
120 binary can run on multiple platforms as long as all the GPU hardware
121 details are described in the device tree.
123 Device Tree is the recommended method for the Mali driver platform
126 config MALI_PLATFORM_VEXPRESS
127 depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
128 bool "Versatile Express"
129 config MALI_PLATFORM_VEXPRESS_VIRTEX7_40MHZ
130 depends on ARCH_VEXPRESS && (ARCH_VEXPRESS_CA9X4 || ARCH_VEXPRESS_CA15X4)
131 bool "Versatile Express w/Virtex7 @ 40Mhz"
132 config MALI_PLATFORM_GOLDFISH
133 depends on ARCH_GOLDFISH
134 bool "Android Goldfish virtual CPU"
135 config MALI_PLATFORM_PBX
136 depends on ARCH_REALVIEW && REALVIEW_EB_A9MP && MACH_REALVIEW_PBX
137 bool "Realview PBX-A9"
138 config MALI_PLATFORM_THIRDPARTY
139 bool "Third Party Platform"
142 config MALI_PLATFORM_THIRDPARTY_NAME
143 depends on MALI_MIDGARD && MALI_PLATFORM_THIRDPARTY && MALI_EXPERT
144 string "Third party platform name"
146 Enter the name of a third party platform that is supported. The third part configuration
147 file must be in midgard/config/tpip/mali_kbase_config_xxx.c where xxx is the name
152 depends on MALI_MIDGARD && MALI_EXPERT
155 Select this option for increased checking and reporting of errors.
157 config MALI_FENCE_DEBUG
158 bool "Debug sync fence usage"
159 depends on MALI_MIDGARD && MALI_EXPERT && SYNC
160 default y if MALI_DEBUG
162 Select this option to enable additional checking and reporting on the
163 use of sync fences in the Mali driver.
165 This will add a 3s timeout to all sync fence waits in the Mali
166 driver, so that when work for Mali has been waiting on a sync fence
167 for a long time a debug message will be printed, detailing what fence
168 is causing the block, and which dependent Mali atoms are blocked as a
171 The timeout can be changed at runtime through the js_soft_timeout
172 device attribute, where the timeout is specified in milliseconds.
176 depends on MALI_MIDGARD && MALI_EXPERT
179 This can be used to test the driver in a simulated environment
180 whereby the hardware is not physically present. If the hardware is physically
181 present it will not be used. This can be used to test the majority of the
182 driver without needing actual hardware or for software benchmarking.
183 All calls to the simulated hardware will complete immediately as if the hardware
186 config MALI_ERROR_INJECT
187 bool "Error injection"
188 depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI
191 Enables insertion of errors to test module failure and recovery mechanisms.
193 config MALI_TRACE_TIMELINE
194 bool "Timeline tracing"
195 depends on MALI_MIDGARD && MALI_EXPERT
198 Enables timeline tracing through the kernel tracepoint system.
200 config MALI_SYSTEM_TRACE
201 bool "Enable system event tracing support"
202 depends on MALI_MIDGARD && MALI_EXPERT
205 Choose this option to enable system trace events for each
206 kbase event. This is typically used for debugging but has
207 minimal overhead when not in use. Enable only if you know what
210 config MALI_GPU_MMU_AARCH64
211 bool "Use AArch64 page tables"
212 depends on MALI_MIDGARD && MALI_EXPERT
215 Use AArch64 format page tables for the GPU instead of LPAE-style.
216 The two formats have the same functionality and performance but a
217 future GPU may deprecate or remove the legacy LPAE-style format.
219 The LPAE-style format is supported on all Midgard and current Bifrost
220 GPUs. Enabling AArch64 format restricts the driver to only supporting
225 source "drivers/gpu/arm/midgard/platform/Kconfig"