|  | /* | 
|  | * | 
|  | * (C) COPYRIGHT 2020 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 license. | 
|  | * | 
|  | * A copy of the license is included with the program) and can also be obtained | 
|  | * from Free Software Foundation) Inc.) 51 Franklin Street) Fifth Floor) | 
|  | * Boston) MA  02110-1301) USA. | 
|  | * | 
|  | */ | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/core_mask | 
|  | Description: | 
|  | This attribute is used to restrict the number of shader cores | 
|  | available in this instance, is useful for debugging purposes. | 
|  | Reading this attribute provides us mask of all cores available. | 
|  | Writing to it will set the current core mask. Doesn't | 
|  | allow disabling all the cores present in this instance. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/debug_command | 
|  | Description: | 
|  | This attribute is used to issue debug commands that supported | 
|  | by the driver. On reading it provides the list of debug commands | 
|  | that are supported, and writing back one of those commands will | 
|  | enable that debug option. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/dvfs_period | 
|  | Description: | 
|  | This is used to set the DVFS sampling period to be used by the | 
|  | driver, On reading it provides the current DVFS sampling period, | 
|  | on writing a value we set the DVFS sampling period. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/dummy_job_wa_info | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU that requires a GPU workaround | 
|  | to execute the dummy fragment job on all shader cores to | 
|  | workaround a hang issue. | 
|  |  | 
|  | Its a readonly attribute and on reading gives details on the | 
|  | options used with the dummy workaround. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/fw_timeout | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. This attribute is | 
|  | used to set the duration value in milliseconds for the | 
|  | waiting timeout used for a GPU status change request being | 
|  | acknowledged by the FW. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/gpuinfo | 
|  | Description: | 
|  | This attribute provides description of the present Mali GPU. | 
|  | Its a read only attribute provides details like GPU family, the | 
|  | number of cores, the hardware version and the raw product id. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/idle_hysteresis_time | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. This attribute is | 
|  | used to configure the timeout value in microseconds for the | 
|  | GPU idle handling. If GPU has been idle for this timeout | 
|  | period, then it is put to sleep for GPUs where sleep feature | 
|  | is supported or is powered down after suspending command | 
|  | stream groups. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/js_ctx_scheduling_mode | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. This attribute is used to set | 
|  | context scheduling priority for a job slot. | 
|  |  | 
|  | On Reading it provides the currently set job slot context | 
|  | priority. | 
|  |  | 
|  | Writing 0 to this attribute sets it to the mode were | 
|  | higher priority atoms will be scheduled first, regardless of | 
|  | the context they belong to. Newly-runnable higher priority atoms | 
|  | can preempt lower priority atoms currently running on the GPU, | 
|  | even if they belong to a different context. | 
|  |  | 
|  | Writing 1 to this attribute set it to the mode were the | 
|  | highest-priority atom will be chosen from each context in turn | 
|  | using a round-robin algorithm, so priority only has an effect | 
|  | within the context an atom belongs to. Newly-runnable higher | 
|  | priority atoms can preempt the lower priority atoms currently | 
|  | running on the GPU, but only if they belong to the same context. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/js_scheduling_period | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. Used to set the job scheduler | 
|  | tick period in nano-seconds. The Job Scheduler determines the | 
|  | jobs that are run on the GPU, and for how long, Job Scheduler | 
|  | makes decisions at a regular time interval determined by value | 
|  | in js_scheduling_period. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/js_softstop_always | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. Soft-stops are disabled when | 
|  | only a single context is present, this attribute is used to | 
|  | enable soft-stop when only a single context is present can be | 
|  | used for debug and unit-testing purposes. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/js_timeouts | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. It used to set the soft stop | 
|  | and hard stop times for the job scheduler. | 
|  |  | 
|  | Writing value 0 causes no change, or -1 to restore the | 
|  | default timeout. | 
|  |  | 
|  | The format used to set js_timeouts is | 
|  | "<soft_stop_ms> <soft_stop_ms_cl> <hard_stop_ms_ss> | 
|  | <hard_stop_ms_cl> <hard_stop_ms_dumping> <reset_ms_ss> | 
|  | <reset_ms_cl> <reset_ms_dumping>" | 
|  |  | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/lp_mem_pool_max_size | 
|  | Description: | 
|  | This attribute is used to set the maximum number of large pages | 
|  | memory pools that the driver can contain. Large pages are of | 
|  | size 2MB. On read it displays all the max size of all memory | 
|  | pools and can be used to modify each individual pools as well. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/lp_mem_pool_size | 
|  | Description: | 
|  | This attribute is used to set the number of large memory pages | 
|  | which should be	populated, changing this value may cause | 
|  | existing pages to be removed from the pool, or new pages to be | 
|  | created and then added to the pool. On read it will provide | 
|  | pool size for all available pools and we can modify individual | 
|  | pool. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/mem_pool_max_size | 
|  | Description: | 
|  | This attribute is used to set the maximum number of small pages | 
|  | for memory pools that the driver can contain. Here small pages | 
|  | are of size 4KB. On read it will display the max size for all | 
|  | available pools and allows us to set max size of | 
|  | individual pools. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/mem_pool_size | 
|  | Description: | 
|  | This attribute is used to set the number of small memory pages | 
|  | which should be populated, changing this value may cause | 
|  | existing pages to be removed from the pool, or new pages to | 
|  | be created and then added to the pool. On read it will provide | 
|  | pool size for all available pools and we can modify individual | 
|  | pool. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/device/mempool/ctx_default_max_size | 
|  | Description: | 
|  | This attribute is used to set maximum memory pool size for | 
|  | all the memory pool so that the maximum amount of free memory | 
|  | that each pool can hold is identical. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/device/mempool/lp_max_size | 
|  | Description: | 
|  | This attribute is used to set the maximum number of large pages | 
|  | for all memory pools that the driver can contain. | 
|  | Large pages are of size 2MB. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/device/mempool/max_size | 
|  | Description: | 
|  | This attribute is used to set the maximum number of small pages | 
|  | for all the memory pools that the driver can contain. | 
|  | Here small pages are of size 4KB. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/pm_poweroff | 
|  | Description: | 
|  | This attribute contains the current values, represented as the | 
|  | following space-separated integers: | 
|  | • PM_GPU_POWEROFF_TICK_NS. | 
|  | • PM_POWEROFF_TICK_SHADER. | 
|  | • PM_POWEROFF_TICK_GPU. | 
|  |  | 
|  | Example: | 
|  | echo 100000 4 4 > /sys/class/misc/mali0/device/pm_poweroff | 
|  |  | 
|  | Sets the following new values: 100,000ns tick, four ticks | 
|  | for shader power down, and four ticks for GPU power down. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/power_policy | 
|  | Description: | 
|  | This attribute is used to find the current power policy been | 
|  | used, reading will list the power policies available and | 
|  | enclosed in square bracket is the current one been selected. | 
|  |  | 
|  | Example: | 
|  | cat /sys/class/misc/mali0/device/power_policy | 
|  | [demand] coarse_demand always_on | 
|  |  | 
|  | To switch to a different policy at runtime write the valid entry | 
|  | name back to the attribute. | 
|  |  | 
|  | Example: | 
|  | echo "coarse_demand" > /sys/class/misc/mali0/device/power_policy | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/progress_timeout | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. This attribute | 
|  | is used to set the progress timeout value and read the current | 
|  | progress timeout value. | 
|  |  | 
|  | Progress timeout value is the maximum number of GPU cycles | 
|  | without forward progress to allow to elapse before terminating a | 
|  | GPU command queue group. | 
|  |  | 
|  | What:           /sys/class/misc/mali%u/device/mcu_shader_pwroff_timeout | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. The duration value unit | 
|  | is in micro-seconds and is used for configuring MCU shader Core power-off | 
|  | timer. The configured MCU shader Core power-off timer will only have | 
|  | effect when the host driver has delegated the shader cores | 
|  | power management to MCU. The supplied value will be | 
|  | recorded internally without any change. But the actual field | 
|  | value will be subject to core power-off timer source frequency | 
|  | scaling and maximum value limiting. The default source will be | 
|  | SYSTEM_TIMESTAMP counter. But in case the platform is not able | 
|  | to supply it, the GPU CYCLE_COUNTER source will be used as an | 
|  | alternative. | 
|  |  | 
|  | If we set the value to zero then MCU-controlled shader/tiler | 
|  | power management will be disabled. | 
|  |  | 
|  |  | 
|  | What:           /sys/class/misc/mali%u/device/csg_scheduling_period | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. The duration value unit | 
|  | is in milliseconds and is used for configuring csf scheduling | 
|  | tick duration. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/reset_timeout | 
|  | Description: | 
|  | This attribute is used to set the number of milliseconds to | 
|  | wait for the soft stop to complete for the GPU jobs before | 
|  | proceeding with the GPU reset. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/soft_job_timeout | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. It used to set the timeout | 
|  | value for waiting for any soft event to complete. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/scheduling/serialize_jobs | 
|  | Description: | 
|  | This attribute is available only with platform device that | 
|  | supports a Job Manager based GPU. | 
|  |  | 
|  | Various options available under this are: | 
|  | • none - for disabling serialization. | 
|  | • intra-slot - Serialize atoms within a slot, only one | 
|  | atom per job slot. | 
|  | • inter-slot - Serialize atoms between slots, only one | 
|  | job slot running at any time. | 
|  | • full - it a combination of both inter and intra slot, | 
|  | so only one atom and one job slot running | 
|  | at any time. | 
|  | • full-reset - full serialization and Reset the GPU after | 
|  | each atom completion | 
|  |  | 
|  | These options are useful for debugging and investigating | 
|  | failures and gpu hangs to narrow down atoms that could cause | 
|  | troubles. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/Compute iterator count/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. Its a read-only attribute | 
|  | which indicates the maximum number of Compute iterators | 
|  | supported by the GPU. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/CSHWIF count/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. Its a read-only | 
|  | attribute which indicates the maximum number of	CSHWIFs | 
|  | supported by the GPU. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/Fragment iterator count/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. Its a read-only | 
|  | attribute which indicates the maximum number of | 
|  | Fragment iterators supported by the GPU. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/Scoreboard set count/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. Its a read-only | 
|  | attribute which indicates the maximum number of | 
|  | Scoreboard set supported by the GPU. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/Tiler iterator count/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. Its a read-only | 
|  | attribute which indicates the maximum number of	Tiler iterators | 
|  | supported by the GPU. | 
|  |  | 
|  | What:		/sys/class/misc/mali%u/device/firmware_config/Log verbosity/* | 
|  | Description: | 
|  | This attribute is available only with mali platform | 
|  | device-driver that supports a CSF GPU. | 
|  |  | 
|  | Used to enable firmware logs, logging levels valid values | 
|  | are indicated using 'min and 'max' attribute values | 
|  | values that are read-only. | 
|  |  | 
|  | Log level can be set using the 'cur' read, write attribute, | 
|  | we can use a valid log level value from min and max range values | 
|  | and set a valid desired log level for firmware logs. |