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.
 |