From 2bfaaa5f53c45ab7b4f6daba20e92ef6d16ab53b Mon Sep 17 00:00:00 2001 From: Sidath Senanayake Date: Thu, 17 Jun 2021 17:58:22 +0100 Subject: Mali Valhall DDK r32p1 BETA KMD Provenance: 59f633569 (collaborate/google/android/v_r32p1-00bet0) VX504X08X-BU-00000-r32p1-00bet0 - Valhall Android DDK VX504X08X-BU-60000-r32p1-00bet0 - Valhall Android Document Bundle VX504X08X-DC-11001-r32p1-00bet0 - Valhall Android DDK Software Errata VX504X08X-SW-99006-r32p1-00bet0 - Valhall Android Renderscript AOSP parts Signed-off-by: Sidath Senanayake Change-Id: I6c9fc6e1e9f2e58bc804eb79582ad7afaafdef1b --- mali_kbase/Kconfig | 345 +++++++++++++++++++++++++++++------------------------ 1 file changed, 190 insertions(+), 155 deletions(-) (limited to 'mali_kbase/Kconfig') diff --git a/mali_kbase/Kconfig b/mali_kbase/Kconfig index 098424f..368c269 100644 --- a/mali_kbase/Kconfig +++ b/mali_kbase/Kconfig @@ -18,11 +18,12 @@ # # - menuconfig MALI_MIDGARD tristate "Mali Midgard series support" select GPU_TRACEPOINTS if ANDROID select DMA_SHARED_BUFFER + select PM_DEVFREQ + select DEVFREQ_THERMAL default n help Enable this option to build support for a ARM Mali Midgard GPU. @@ -30,20 +31,43 @@ menuconfig MALI_MIDGARD To compile this driver as a module, choose M here: this will generate a single module, called mali_kbase. +if MALI_MIDGARD + +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)/Makefile' must + exist. + +config MALI_REAL_HW + depends on MALI_MIDGARD + def_bool !MALI_NO_MALI + +menu "Platform specific options" +source "drivers/gpu/arm/midgard/platform/Kconfig" +endmenu + config MALI_CSF_SUPPORT - bool "Mali CSF based GPU support" + bool "Enable Mali CSF based GPU support" depends on MALI_MIDGARD=m default n help Enables support for CSF based GPUs. -config MALI_GATOR_SUPPORT - bool "Enable Streamline tracing support" - depends on MALI_MIDGARD +config MALI_DEVFREQ + bool "Enable devfreq support for Mali" + depends on MALI_MIDGARD && PM_DEVFREQ + select DEVFREQ_GOV_SIMPLE_ONDEMAND default y help - Enables kbase tracing used by the Arm Streamline Performance Analyzer. - The tracepoints are used to derive GPU activity charts in Streamline. + Support devfreq for Mali. + + Using the devfreq framework and, by default, the simple on-demand + governor, the frequency of Mali will be dynamically selected from the + available OPPs. config MALI_MIDGARD_DVFS bool "Enable legacy DVFS" @@ -52,28 +76,25 @@ config MALI_MIDGARD_DVFS help Choose this option to enable legacy DVFS in the Mali Midgard DDK. +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_ENABLE_TRACE bool "Enable kbase tracing" depends on MALI_MIDGARD default y if MALI_DEBUG default n help - Enables tracing in kbase. Trace log available through + 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" + bool "Enable DMA_BUF fence support for Mali" depends on MALI_MIDGARD default n help @@ -82,18 +103,9 @@ config MALI_DMA_FENCE 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. - config MALI_ARBITER_SUPPORT bool "Enable arbiter support for Mali" - depends on MALI_MIDGARD + depends on MALI_MIDGARD && !MALI_CSF_SUPPORT default n help Enable support for the arbiter interface in the driver. @@ -102,85 +114,40 @@ config MALI_ARBITER_SUPPORT If unsure, say N. -# MALI_EXPERT configuration options - -menuconfig MALI_EXPERT +config MALI_DMA_BUF_MAP_ON_DEMAND + bool "Enable map imported dma-bufs on demand" 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_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. + This option caused kbase to set up the GPU mapping of imported + dma-buf when needed to run atoms. This is the legacy behavior. - The timeout can be changed at runtime through the js_soft_timeout - device attribute, where the timeout is specified in milliseconds. + This is intended for testing and the option will get removed in the + future. -config MALI_NO_MALI - bool "No Mali" - depends on MALI_MIDGARD && MALI_EXPERT +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 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. + 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_REAL_HW - def_bool !MALI_NO_MALI + This option might work-around issues related to missing cache + flushes in other drivers. This only has an effect for clients using + UK 11.18 or older. For later UK versions it is not possible. -config MALI_ERROR_INJECT - bool "Error injection" - depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI +menuconfig MALI_EXPERT + depends on MALI_MIDGARD + bool "Enable Expert Settings" default n help - Enables insertion of errors to test module failure and recovery mechanisms. + Enabling this option and modifying the default settings may produce + a driver with performance or other limitations. -config MALI_SYSTEM_TRACE - bool "Enable system event tracing support" - depends on MALI_MIDGARD && MALI_EXPERT - default y if MALI_DEBUG - 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. +if MALI_EXPERT config MALI_2MB_ALLOC bool "Attempt to allocate 2MB pages" @@ -193,20 +160,8 @@ config MALI_2MB_ALLOC 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" + bool "Enable memory fully physically-backed" depends on MALI_MIDGARD && MALI_EXPERT default n help @@ -215,76 +170,92 @@ config MALI_MEMORY_FULLY_BACKED 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 +config MALI_CORESTACK + bool "Enable support of GPU core stack power control" + depends on MALI_MIDGARD && MALI_EXPERT 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. + 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. -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 n - 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. + If unsure, say N. - This option might work-around issues related to missing cache - flushes in other drivers. This only has an effect for clients using - UK 11.18 or older. For later UK versions it is not possible. +comment "Platform options" + depends on MALI_MIDGARD && MALI_EXPERT -config MALI_HW_ERRATA_1485982_NOT_AFFECTED - bool "Disable workaround for BASE_HW_ISSUE_GPU2017_1336" +config MALI_NO_MALI + bool "Enable No Mali" 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. + 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_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 +config MALI_ERROR_INJECT + bool "Enable No Mali error injection" + depends on MALI_MIDGARD && MALI_EXPERT && MALI_NO_MALI 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. + Enables insertion of errors to test module failure and recovery mechanisms. config MALI_GEM5_BUILD bool "Enable build of Mali kernel driver for GEM5" - depends on MALI_MIDGARD + depends on MALI_MIDGARD && MALI_EXPERT default n help This option is to do a Mali GEM5 build. If unsure, say N. -# Instrumentation options. +comment "Debug options" + depends on MALI_MIDGARD && MALI_EXPERT -config MALI_JOB_DUMP - bool "Enable system level support needed for job dumping" +config MALI_DEBUG + bool "Enable debug build" 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 + Select this option for increased checking and reporting of errors. + +config MALI_FENCE_DEBUG + bool "Enable 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_SYSTEM_TRACE + bool "Enable system event tracing support" + depends on MALI_MIDGARD && MALI_EXPERT + default y if MALI_DEBUG + 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. +comment "Instrumentation options" + depends on MALI_MIDGARD && MALI_EXPERT + choice - prompt "Performance counters set" + prompt "Select Performance counters set" default MALI_PRFCNT_SET_PRIMARY depends on MALI_MIDGARD && MALI_EXPERT @@ -321,7 +292,7 @@ config MALI_PRFCNT_SET_TERTIARY endchoice config MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS - bool "Allow runtime selection of performance counters set via debugfs" + bool "Enable runtime selection of performance counters set via debugfs" depends on MALI_MIDGARD && MALI_EXPERT && DEBUG_FS default n help @@ -343,5 +314,69 @@ config MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS If unsure, say N. -source "drivers/gpu/arm/midgard/platform/Kconfig" +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. + +comment "Workarounds" + depends on MALI_MIDGARD && MALI_EXPERT + +config MALI_PWRSOFT_765 + bool "Enable workaround for PWRSOFT-765" + 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_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 frequency 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. + +endif + +config MALI_ARBITRATION + bool "Enable Virtualization reference code" + depends on MALI_MIDGARD + default n + help + Enables the build of several reference modules used in the reference + virtualization setup for Mali + If unsure, say N. + +if MALI_ARBITRATION +source "drivers/gpu/arm/midgard/arbitration/Kconfig" +endif + source "drivers/gpu/arm/midgard/tests/Kconfig" + +endif -- cgit v1.2.3