linux-imx/Documentation/ABI/testing/debugfs-cros-ec
Evan Green e8bf17d58a platform/chrome: cros_ec: Expose suspend_timeout_ms in debugfs
In modern Chromebooks, the embedded controller has a mechanism where
it will watch a hardware-controlled line that toggles in suspend, and
wake the system up if an expected sleep transition didn't occur. This
can be very useful for detecting power management issues where the
system appears to suspend, but doesn't actually reach its lowest
expected power states.

Sometimes it's useful in debug and test scenarios to be able to control
the duration of that timeout, or even disable the EC timeout mechanism
altogether. Add a debugfs control to set the timeout to values other
than the EC-defined default, for more convenient debug and
development iteration.

Signed-off-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Prashant Malani <pmalani@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Link: https://lore.kernel.org/r/20220822144026.v3.1.Idd188ff3f9caddebc17ac357a13005f93333c21f@changeid
[tzungbi: fix one nit in Documentation/ABI/testing/debugfs-cros-ec.]
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
2022-08-24 02:37:07 +00:00

3.1 KiB

What: /sys/kernel/debug//console_log Date: September 2017 KernelVersion: 4.13 Description: If the EC supports the CONSOLE_READ command type, this file can be used to grab the EC logs. The kernel polls for the log and keeps its own buffer but userspace should grab this and write it out to some logs.

What: /sys/kernel/debug//panicinfo Date: September 2017 KernelVersion: 4.13 Description: This file dumps the EC panic information from the previous reboot. This file will only exist if the PANIC_INFO command type is supported by the EC.

What: /sys/kernel/debug//pdinfo Date: June 2018 KernelVersion: 4.17 Description: This file provides the port role, muxes and power debug information for all the USB PD/type-C ports available. If the are no ports available, this file will be just an empty file.

What: /sys/kernel/debug//uptime Date: June 2019 KernelVersion: 5.3 Description: A u32 providing the time since EC booted in ms. This is is used for synchronizing the AP host time with the EC log. An error is returned if the command is not supported by the EC or there is a communication problem.

What: /sys/kernel/debug//last_resume_result Date: June 2019 KernelVersion: 5.3 Description: Some ECs have a feature where they will track transitions to the (Intel) processor's SLP_S0 line, in order to detect cases where a system failed to go into S0ix. When the system resumes, an EC with this feature will return a summary of SLP_S0 transitions that occurred. The last_resume_result file returns the most recent response from the AP's resume message to the EC.

	The bottom 31 bits contain a count of the number of SLP_S0
	transitions that occurred since the suspend message was
	received. Bit 31 is set if the EC attempted to wake the
	system due to a timeout when watching for SLP_S0 transitions.
	Callers can use this to detect a wake from the EC due to
	S0ix timeouts. The result will be zero if no suspend
	transitions have been attempted, or the EC does not support
	this feature.

	Output will be in the format: "0x%08x\n".

What: /sys/kernel/debug//suspend_timeout_ms Date: August 2022 KernelVersion: 6.1 Description: Some ECs have a feature where they will track transitions of a hardware-controlled sleep line, such as Intel's SLP_S0 line, in order to detect cases where a system failed to go into deep sleep states. The suspend_timeout_ms file controls the amount of time in milliseconds the EC will wait before declaring a sleep timeout event and attempting to wake the system.

	Supply 0 to use the default value coded into EC firmware. Supply
	65535 (EC_HOST_SLEEP_TIMEOUT_INFINITE) to disable the EC sleep
	failure detection mechanism. Values in between 0 and 65535
	indicate the number of milliseconds the EC should wait after a
	sleep transition before declaring a timeout. This includes both
	the duration after a sleep command was received but before the
	hardware line changed, as well as the duration between when the
	hardware line changed and the kernel sent an EC resume command.

	Output will be in the format: "%u\n".