101 lines
4.0 KiB
Plaintext
101 lines
4.0 KiB
Plaintext
#
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
# Copyright (c) 2016 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
menuconfig SYS_POWER_MANAGEMENT
|
|
bool "Power management"
|
|
help
|
|
This option enables the board to implement extra power management
|
|
policies whenever the kernel becomes idle. The kernel informs the
|
|
power management subsystem of the number of ticks until the next kernel
|
|
timer is due to expire.
|
|
|
|
if SYS_POWER_MANAGEMENT
|
|
config SYS_POWER_LOW_POWER_STATE
|
|
bool "Low power state"
|
|
depends on SYS_POWER_LOW_POWER_STATE_SUPPORTED
|
|
help
|
|
This option enables the kernel to interface with a power manager
|
|
application. This permits the system to enter a custom CPU low power
|
|
state when the kernel becomes idle. The low power state could be any of
|
|
the CPU low power states supported by the processor. Generally the one
|
|
saving most power.
|
|
|
|
config SYS_POWER_DEEP_SLEEP
|
|
bool "Deep sleep state"
|
|
depends on SYS_POWER_DEEP_SLEEP_SUPPORTED
|
|
help
|
|
This option enables the kernel to interface with a power manager
|
|
application. This permits the system to enter a Deep sleep state
|
|
supported by the SOC where the system clock is turned off while RAM is
|
|
retained. This state would be entered when the kernel becomes idle for
|
|
extended periods and would have a high wake latency. Resume would be
|
|
from the reset vector same as cold boot. The interface allows
|
|
restoration of states that were saved at the time of suspend.
|
|
|
|
config DEVICE_POWER_MANAGEMENT
|
|
bool "Device power management"
|
|
help
|
|
This option enables the device power management interface. The
|
|
interface consists of hook functions implemented by device drivers
|
|
that get called by the power manager application when the system
|
|
is going to suspend state or resuming from suspend state. This allows
|
|
device drivers to do any necessary power management operations
|
|
like turning off device clocks and peripherals. The device drivers
|
|
may also save and restore states in these hook functions.
|
|
|
|
config TICKLESS_IDLE
|
|
bool "Tickless idle"
|
|
default y
|
|
help
|
|
This option suppresses periodic system clock interrupts whenever the
|
|
kernel becomes idle. This permits the system to remain in a power
|
|
saving state for extended periods without having to wake up to
|
|
service each tick as it occurs.
|
|
|
|
config TICKLESS_IDLE_THRESH
|
|
int "Tickless idle threshold"
|
|
default 3
|
|
depends on TICKLESS_IDLE
|
|
help
|
|
This option enables clock interrupt suppression when the kernel idles
|
|
for only a short period of time. It specifies the minimum number of
|
|
ticks that must occur before the next kernel timer expires in order
|
|
for suppression to happen.
|
|
|
|
config TICKLESS_KERNEL
|
|
bool "Tickless kernel"
|
|
depends on TICKLESS_IDLE
|
|
help
|
|
This option enables a fully event driven kernel. Periodic system
|
|
clock interrupt generation would be stopped at all times. This option
|
|
requires Tickless Idle option to be enabled.
|
|
|
|
config TICKLESS_KERNEL_TIME_UNIT_IN_MICRO_SECS
|
|
int "Tickless kernel time unit in micro seconds"
|
|
default 1000
|
|
depends on TICKLESS_KERNEL
|
|
help
|
|
This option makes the system clock and scheduling granularity.
|
|
The default will be one millisecond. This option also determines
|
|
the time unit passed in functions like _sys_soc_suspend. The
|
|
value should be determined based what the timer hardware and driver
|
|
can support. Specifying too small a time unit than what the overall
|
|
system speed can support would cause scheduling errors.
|
|
|
|
config BUSY_WAIT_USES_ALTERNATE_CLOCK
|
|
bool "Busy wait uses alternate clock in tickless kernel mode"
|
|
help
|
|
In tickless kernel mode, the system clock will be stopped when
|
|
there are no timer events programmed. If the system clock is to
|
|
be used to keep time e.g. to get a delta of time cycles then it
|
|
needs to be turned on using provided APIs. Some platforms have
|
|
alternate clocks which can be used instead. In that case this flag
|
|
would be set to true. This flag would be checked before turning
|
|
on the system clock in APIs that do busy wait reading clock
|
|
cycles.
|
|
endif
|