| # |
| # (C) COPYRIGHT 2012-2019 ARM Limited. All rights reserved. |
| # |
| # This program is free software and is provided to you under the terms of the |
| # GNU General Public License version 2 as published by the Free Software |
| # Foundation, and any use by you of this program is subject to the terms |
| # of such GNU licence. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program; if not, you can access it online at |
| # http://www.gnu.org/licenses/gpl-2.0.html. |
| # |
| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # |
| |
| |
| menuconfig MALI_MIDGARD |
| tristate "Mali Midgard series support" |
| select GPU_TRACEPOINTS if ANDROID |
| select DMA_SHARED_BUFFER |
| default n |
| help |
| Enable this option to build support for a ARM Mali Midgard GPU. |
| |
| To compile this driver as a module, choose M here: |
| this will generate a single module, called mali_kbase. |
| |
| config MALI_GATOR_SUPPORT |
| bool "Enable Streamline tracing support" |
| depends on MALI_MIDGARD |
| default y |
| help |
| Enables kbase tracing used by the Arm Streamline Performance Analyzer. |
| The tracepoints are used to derive GPU activity charts in Streamline. |
| |
| config MALI_MIDGARD_DVFS |
| bool "Enable legacy DVFS" |
| depends on MALI_MIDGARD && !MALI_DEVFREQ |
| default n |
| help |
| Choose this option to enable legacy DVFS in the Mali Midgard DDK. |
| |
| config MALI_MIDGARD_ENABLE_TRACE |
| bool "Enable kbase tracing" |
| depends on MALI_MIDGARD |
| default n |
| help |
| Enables tracing in kbase. Trace log available through |
| the "mali_trace" debugfs file, when the CONFIG_DEBUG_FS is enabled |
| |
| config MALI_DEVFREQ |
| bool "devfreq support for Mali" |
| depends on MALI_MIDGARD && PM_DEVFREQ |
| default y |
| help |
| Support devfreq for Mali. |
| |
| Using the devfreq framework and, by default, the simpleondemand |
| governor, the frequency of Mali will be dynamically selected from the |
| available OPPs. |
| |
| config MALI_DMA_FENCE |
| bool "DMA_BUF fence support for Mali" |
| depends on MALI_MIDGARD |
| default n |
| help |
| Support DMA_BUF fences for Mali. |
| |
| This option should only be enabled if the Linux Kernel has built in |
| support for DMA_BUF fences. |
| |
| config MALI_PLATFORM_NAME |
| depends on MALI_MIDGARD |
| string "Platform name" |
| default "devicetree" |
| help |
| Enter the name of the desired platform configuration directory to |
| include in the build. 'platform/$(MALI_PLATFORM_NAME)/Kbuild' must |
| exist. |
| |
| # MALI_EXPERT configuration options |
| |
| menuconfig MALI_EXPERT |
| depends on MALI_MIDGARD |
| bool "Enable Expert Settings" |
| default n |
| help |
| Enabling this option and modifying the default settings may produce a driver with performance or |
| other limitations. |
| |
| config MALI_CORESTACK |
| bool "Support controlling power to the GPU core stack" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Enabling this feature on supported GPUs will let the driver powering |
| on/off the GPU core stack independently without involving the Power |
| Domain Controller. This should only be enabled on platforms which |
| integration of the PDC to the Mali GPU is known to be problematic. |
| This feature is currently only supported on t-Six and t-HEx GPUs. |
| |
| If unsure, say N. |
| |
| config MALI_PLATFORM_POWER_DOWN_ONLY |
| bool "Support disabling the power down of individual cores" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Enabling this feature will let the driver avoid power down of the |
| shader cores, the tiler, and the L2 cache. |
| The entire GPU would be powered down at once through the platform |
| specific code. |
| This may be required for certain platform configurations only. |
| This also limits the available power policies. |
| |
| If unsure, say N. |
| |
| config MALI_DEBUG |
| bool "Debug build" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Select this option for increased checking and reporting of errors. |
| |
| config MALI_FENCE_DEBUG |
| bool "Debug sync fence usage" |
| depends on MALI_MIDGARD && MALI_EXPERT && (SYNC || SYNC_FILE) |
| default y if MALI_DEBUG |
| help |
| Select this option to enable additional checking and reporting on the |
| use of sync fences in the Mali driver. |
| |
| This will add a 3s timeout to all sync fence waits in the Mali |
| driver, so that when work for Mali has been waiting on a sync fence |
| for a long time a debug message will be printed, detailing what fence |
| is causing the block, and which dependent Mali atoms are blocked as a |
| result of this. |
| |
| The timeout can be changed at runtime through the js_soft_timeout |
| device attribute, where the timeout is specified in milliseconds. |
| |
| config MALI_NO_MALI |
| bool "No Mali" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| This can be used to test the driver in a simulated environment |
| whereby the hardware is not physically present. If the hardware is physically |
| present it will not be used. This can be used to test the majority of the |
| driver without needing actual hardware or for software benchmarking. |
| All calls to the simulated hardware will complete immediately as if the hardware |
| completed the task. |
| |
| config MALI_REAL_HW |
| def_bool !MALI_NO_MALI |
| |
| config MALI_ERROR_INJECT |
| bool "Error injection" |
| depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI |
| default n |
| help |
| Enables insertion of errors to test module failure and recovery mechanisms. |
| |
| config MALI_SYSTEM_TRACE |
| bool "Enable system event tracing support" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Choose this option to enable system trace events for each |
| kbase event. This is typically used for debugging but has |
| minimal overhead when not in use. Enable only if you know what |
| you are doing. |
| |
| config MALI_2MB_ALLOC |
| bool "Attempt to allocate 2MB pages" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Rather than allocating all GPU memory page-by-page, attempt to |
| allocate 2MB pages from the kernel. This reduces TLB pressure and |
| helps to prevent memory fragmentation. |
| |
| If in doubt, say N |
| |
| config MALI_PWRSOFT_765 |
| bool "PWRSOFT-765 ticket" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| PWRSOFT-765 fixes devfreq cooling devices issues. The fix was merged |
| in kernel v4.10, however if backported into the kernel then this |
| option must be manually selected. |
| |
| If using kernel >= v4.10 then say N, otherwise if devfreq cooling |
| changes have been backported say Y to avoid compilation errors. |
| |
| config MALI_MEMORY_FULLY_BACKED |
| bool "Memory fully physically-backed" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| This option enables full physical backing of all virtual |
| memory allocations in the kernel. Notice that this build |
| option only affects allocations of grow-on-GPU-page-fault |
| memory. |
| |
| config MALI_DMA_BUF_MAP_ON_DEMAND |
| bool "Map imported dma-bufs on demand" |
| depends on MALI_MIDGARD |
| default n |
| help |
| This option caused kbase to set up the GPU mapping of imported |
| dma-buf when needed to run atoms. This is the legacy behaviour. |
| |
| This is intended for testing and the option will get removed in the |
| future. |
| |
| config MALI_DMA_BUF_LEGACY_COMPAT |
| bool "Enable legacy compatibility cache flush on dma-buf map" |
| depends on MALI_MIDGARD && !MALI_DMA_BUF_MAP_ON_DEMAND |
| default y |
| help |
| This option enables compatibility with legacy dma-buf mapping |
| behavior, then the dma-buf is mapped on import, by adding cache |
| maintenance where MALI_DMA_BUF_MAP_ON_DEMAND would do the mapping, |
| including a cache flush. |
| |
| config MALI_HW_ERRATA_1485982_NOT_AFFECTED |
| bool "Disable workaround for BASE_HW_ISSUE_GPU2017_1336" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| This option disables the default workaround for GPU2017-1336. The |
| workaround keeps the L2 cache powered up except for powerdown and reset. |
| |
| The workaround introduces a limitation that will prevent the running of |
| protected mode content on fully coherent platforms, as the switch to IO |
| coherency mode requires the L2 to be turned off. |
| |
| config MALI_HW_ERRATA_1485982_USE_CLOCK_ALTERNATIVE |
| bool "Use alternative workaround for BASE_HW_ISSUE_GPU2017_1336" |
| depends on MALI_MIDGARD && MALI_EXPERT && !MALI_HW_ERRATA_1485982_NOT_AFFECTED |
| default n |
| help |
| This option uses an alternative workaround for GPU2017-1336. Lowering |
| the GPU clock to a, platform specific, known good frequeuncy before |
| powering down the L2 cache. The clock can be specified in the device |
| tree using the property, opp-mali-errata-1485982. Otherwise the |
| slowest clock will be selected. |
| |
| # Instrumentation options. |
| |
| config MALI_JOB_DUMP |
| bool "Enable system level support needed for job dumping" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Choose this option to enable system level support needed for |
| job dumping. This is typically used for instrumentation but has |
| minimal overhead when not in use. Enable only if you know what |
| you are doing. |
| |
| config MALI_PRFCNT_SET_SECONDARY |
| bool "Use secondary set of performance counters" |
| depends on MALI_MIDGARD && MALI_EXPERT |
| default n |
| help |
| Select this option to use secondary set of performance counters. Kernel |
| features that depend on an access to the primary set of counters may |
| become unavailable. Enabling this option will prevent power management |
| from working optimally and may cause instrumentation tools to return |
| bogus results. |
| |
| If unsure, say N. |
| |
| source "drivers/gpu/arm/midgard/platform/Kconfig" |
| source "drivers/gpu/arm/midgard/tests/Kconfig" |