/* * * (C) COPYRIGHT 2023 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. * * A copy of the licence 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/idle_hysteresis_time_ns 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 nanoseconds 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 " " 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/mcu_shader_pwroff_timeout_ns Description: This attribute is available only with mali platform device-driver that supports a CSF GPU. The duration value unit is in nanoseconds 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' attributes, which 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.