^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * (C) COPYRIGHT 2020 ARM Limited. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * This program is free software and is provided to you under the terms of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * GNU General Public License version 2 as published by the Free Software
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Foundation) and any use by you of this program is subject to the terms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * of such GNU licence.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) * A copy of the licence is included with the program) and can also be obtained
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) * from Free Software Foundation) Inc.) 51 Franklin Street) Fifth Floor)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) * Boston) MA 02110-1301) USA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) What: /sys/class/misc/mali%u/device/core_mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) This attribute is used to restrict the number of shader cores
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) available in this instance, is useful for debugging purposes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Reading this attribute provides us mask of all cores available.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Writing to it will set the current core mask. Doesn't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) allow disabling all the cores present in this instance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) What: /sys/class/misc/mali%u/device/debug_command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) This attribute is used to issue debug commands that supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) by the driver. On reading it provides the list of debug commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) that are supported, and writing back one of those commands will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) enable that debug option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) What: /sys/class/misc/mali%u/device/dvfs_period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) This is used to set the DVFS sampling period to be used by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) driver, On reading it provides the current DVFS sampling period,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) on writing a value we set the DVFS sampling period.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) What: /sys/class/misc/mali%u/device/dummy_job_wa_info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) supports a Job Manager based GPU that requires a GPU workaround
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) to execute the dummy fragment job on all shader cores to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) workaround a hang issue.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) Its a readonly attribute and on reading gives details on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) options used with the dummy workaround.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) What: /sys/class/misc/mali%u/device/fw_timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) device-driver that supports a CSF GPU. This attribute is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) used to set the duration value in milliseconds for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) waiting timeout used for a GPU status change request being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) acknowledged by the FW.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) What: /sys/class/misc/mali%u/device/gpuinfo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) This attribute provides description of the present Mali GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Its a read only attribute provides details like GPU family, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) number of cores, the hardware version and the raw product id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) What: /sys/class/misc/mali%u/device/idle_hysteresis_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) device-driver that supports a CSF GPU. This attribute is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) used to set the duration value in milliseconds for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) configuring hysteresis field for determining GPU idle detection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) What: /sys/class/misc/mali%u/device/js_ctx_scheduling_mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) supports a Job Manager based GPU. This attribute is used to set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) context scheduling priority for a job slot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) On Reading it provides the currently set job slot context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) priority.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) Writing 0 to this attribute sets it to the mode were
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) higher priority atoms will be scheduled first, regardless of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) the context they belong to. Newly-runnable higher priority atoms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) can preempt lower priority atoms currently running on the GPU,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) even if they belong to a different context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) Writing 1 to this attribute set it to the mode were the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) highest-priority atom will be chosen from each context in turn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) using a round-robin algorithm, so priority only has an effect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) within the context an atom belongs to. Newly-runnable higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) priority atoms can preempt the lower priority atoms currently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) running on the GPU, but only if they belong to the same context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) What: /sys/class/misc/mali%u/device/js_scheduling_period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) supports a Job Manager based GPU. Used to set the job scheduler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) tick period in nano-seconds. The Job Scheduler determines the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) jobs that are run on the GPU, and for how long, Job Scheduler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) makes decisions at a regular time interval determined by value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) in js_scheduling_period.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) What: /sys/class/misc/mali%u/device/js_softstop_always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) supports a Job Manager based GPU. Soft-stops are disabled when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) only a single context is present, this attribute is used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) enable soft-stop when only a single context is present can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) used for debug and unit-testing purposes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) What: /sys/class/misc/mali%u/device/js_timeouts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) supports a Job Manager based GPU. It used to set the soft stop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) and hard stop times for the job scheduler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) Writing value 0 causes no change, or -1 to restore the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) default timeout.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) The format used to set js_timeouts is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) "<soft_stop_ms> <soft_stop_ms_cl> <hard_stop_ms_ss>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) <hard_stop_ms_cl> <hard_stop_ms_dumping> <reset_ms_ss>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) <reset_ms_cl> <reset_ms_dumping>"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) What: /sys/class/misc/mali%u/device/lp_mem_pool_max_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) This attribute is used to set the maximum number of large pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) memory pools that the driver can contain. Large pages are of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) size 2MB. On read it displays all the max size of all memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) pools and can be used to modify each individual pools as well.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) What: /sys/class/misc/mali%u/device/lp_mem_pool_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) This attribute is used to set the number of large memory pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) which should be populated, changing this value may cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) existing pages to be removed from the pool, or new pages to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) created and then added to the pool. On read it will provide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) pool size for all available pools and we can modify individual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) pool.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) What: /sys/class/misc/mali%u/device/mem_pool_max_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) This attribute is used to set the maximum number of small pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) for memory pools that the driver can contain. Here small pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) are of size 4KB. On read it will display the max size for all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) available pools and allows us to set max size of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) individual pools.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) What: /sys/class/misc/mali%u/device/mem_pool_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) This attribute is used to set the number of small memory pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) which should be populated, changing this value may cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) existing pages to be removed from the pool, or new pages to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) be created and then added to the pool. On read it will provide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) pool size for all available pools and we can modify individual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) pool.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) What: /sys/class/misc/mali%u/device/device/mempool/ctx_default_max_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) This attribute is used to set maximum memory pool size for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) all the memory pool so that the maximum amount of free memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) that each pool can hold is identical.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) What: /sys/class/misc/mali%u/device/device/mempool/lp_max_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) This attribute is used to set the maximum number of large pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) for all memory pools that the driver can contain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) Large pages are of size 2MB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) What: /sys/class/misc/mali%u/device/device/mempool/max_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) This attribute is used to set the maximum number of small pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) for all the memory pools that the driver can contain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) Here small pages are of size 4KB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) What: /sys/class/misc/mali%u/device/pm_poweroff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) This attribute contains the current values, represented as the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) following space-separated integers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) • PM_GPU_POWEROFF_TICK_NS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) • PM_POWEROFF_TICK_SHADER.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) • PM_POWEROFF_TICK_GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) echo 100000 4 4 > /sys/class/misc/mali0/device/pm_poweroff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) Sets the following new values: 100,000ns tick, four ticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) for shader power down, and four ticks for GPU power down.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) What: /sys/class/misc/mali%u/device/power_policy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) This attribute is used to find the current power policy been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) used, reading will list the power policies available and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) enclosed in square bracket is the current one been selected.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) cat /sys/class/misc/mali0/device/power_policy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) [demand] coarse_demand always_on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) To switch to a different policy at runtime write the valid entry
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) name back to the attribute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) echo "coarse_demand" > /sys/class/misc/mali0/device/power_policy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) What: /sys/class/misc/mali%u/device/progress_timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) device-driver that supports a CSF GPU. This attribute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) is used to set the progress timeout value and read the current
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) progress timeout value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) Progress timeout value is the maximum number of GPU cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) without forward progress to allow to elapse before terminating a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) GPU command queue group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) What: /sys/class/misc/mali%u/device/mcu_shader_pwroff_timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) device-driver that supports a CSF GPU. The duration value unit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) is in micro-seconds and is used for configuring MCU shader Core power-off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) timer. The configured MCU shader Core power-off timer will only have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) effect when the host driver has delegated the shader cores
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) power management to MCU. The supplied value will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) recorded internally without any change. But the actual field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) value will be subject to core power-off timer source frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) scaling and maximum value limiting. The default source will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) SYSTEM_TIMESTAMP counter. But in case the platform is not able
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) to supply it, the GPU CYCLE_COUNTER source will be used as an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) alternative.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) If we set the value to zero then MCU-controlled shader/tiler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) power management will be disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) What: /sys/class/misc/mali%u/device/csg_scheduling_period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) device-driver that supports a CSF GPU. The duration value unit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) is in milliseconds and is used for configuring csf scheduling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) tick duration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) What: /sys/class/misc/mali%u/device/reset_timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) This attribute is used to set the number of milliseconds to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) wait for the soft stop to complete for the GPU jobs before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) proceeding with the GPU reset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) What: /sys/class/misc/mali%u/device/soft_job_timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) supports a Job Manager based GPU. It used to set the timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) value for waiting for any soft event to complete.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) What: /sys/class/misc/mali%u/device/scheduling/serialize_jobs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) This attribute is available only with platform device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) supports a Job Manager based GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) Various options available under this are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) • none - for disabling serialization.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) • intra-slot - Serialize atoms within a slot, only one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) atom per job slot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) • inter-slot - Serialize atoms between slots, only one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) job slot running at any time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) • full - it a combination of both inter and intra slot,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) so only one atom and one job slot running
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) at any time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) • full-reset - full serialization and Reset the GPU after
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) each atom completion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) These options are useful for debugging and investigating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) failures and gpu hangs to narrow down atoms that could cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) troubles.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) What: /sys/class/misc/mali%u/device/firmware_config/Compute iterator count/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) device-driver that supports a CSF GPU. Its a read-only attribute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) which indicates the maximum number of Compute iterators
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) supported by the GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) What: /sys/class/misc/mali%u/device/firmware_config/CSHWIF count/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) device-driver that supports a CSF GPU. Its a read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) attribute which indicates the maximum number of CSHWIFs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) supported by the GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) What: /sys/class/misc/mali%u/device/firmware_config/Fragment iterator count/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) device-driver that supports a CSF GPU. Its a read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) attribute which indicates the maximum number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) Fragment iterators supported by the GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) What: /sys/class/misc/mali%u/device/firmware_config/Scoreboard set count/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) device-driver that supports a CSF GPU. Its a read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) attribute which indicates the maximum number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) Scoreboard set supported by the GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) What: /sys/class/misc/mali%u/device/firmware_config/Tiler iterator count/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) device-driver that supports a CSF GPU. Its a read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) attribute which indicates the maximum number of Tiler iterators
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) supported by the GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) What: /sys/class/misc/mali%u/device/firmware_config/Log verbosity/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) This attribute is available only with mali platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) device-driver that supports a CSF GPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) Used to enable firmware logs, logging levels valid values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) are indicated using 'min and 'max' attribute values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) values that are read-only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) Log level can be set using the 'cur' read, write attribute,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) we can use a valid log level value from min and max range values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) and set a valid desired log level for firmware logs.