349 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			349 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | |
|  *
 | |
|  * (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
 | |
| 		"<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/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.
 |