From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Michael Neuling <mikey@neuling.org>,
Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
"Shreyas B. Prabhu" <shreyasbp@gmail.com>,
Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,
Stewart Smith <stewart@linux.vnet.ibm.com>,
Balbir Singh <bsingharora@gmail.com>,
"Oliver O'Halloran" <oohall@gmail.com>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
Rob Herring <robh+dt@kernel.org>, <mark.rutland@arm.com>,
"Gautham R. Shenoy" <ego@linux.vnet.ibm.com>
Subject: [PATCH v5 5/5] Documentation:powerpc: Add device-tree bindings for power-mgt
Date: Tue, 10 Jan 2017 14:37:04 +0530 [thread overview]
Message-ID: <1484039224-5630-6-git-send-email-ego@linux.vnet.ibm.com> (raw)
In-Reply-To: <1484039224-5630-1-git-send-email-ego@linux.vnet.ibm.com>
From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>
Document the device-tree bindings defining the the properties under
the @power-mgt node in the device tree that describe the idle states
for Linux running on baremetal POWER servers.
Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
---
[v4]-> [v5]: Fixed a couple of typos.
.../devicetree/bindings/powerpc/opal/power-mgt.txt | 125 +++++++++++++++++++++
1 file changed, 125 insertions(+)
create mode 100644 Documentation/devicetree/bindings/powerpc/opal/power-mgt.txt
diff --git a/Documentation/devicetree/bindings/powerpc/opal/power-mgt.txt b/Documentation/devicetree/bindings/powerpc/opal/power-mgt.txt
new file mode 100644
index 0000000..4967831
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/opal/power-mgt.txt
@@ -0,0 +1,125 @@
+IBM Power-Management Bindings
+=============================
+
+Linux running on baremetal POWER machines has access to the processor
+idle states. The description of these idle states is exposed via the
+node @power-mgt in the device-tree by the firmware.
+
+Definitions:
+----------------
+Typically each idle state has the following associated properties:
+
+- name: The name of the idle state as defined by the firmware.
+
+- flags: indicating some aspects of this idle states such as the
+ extent of state-loss, whether timebase is stopped on this
+ idle states and so on. The flag bits are as follows:
+
+- exit-latency: The latency involved in transitioning the state of the
+ CPU from idle to running.
+
+- target-residency: The minimum time that the CPU needs to reside in
+ this idle state in order to accrue power-savings
+ benefit.
+
+Properties
+----------------
+The following properties provide details about the idle states. These
+properties are optional unless mentioned otherwise below.
+
+- ibm,cpu-idle-state-names:
+ Array of strings containing the names of the idle states.
+
+- ibm,cpu-idle-state-flags:
+ Array of unsigned 32-bit values containing the values of the
+ flags associated with the the aforementioned idle-states. This
+ property is required on POWER9 whenever
+ ibm,cpu-idle-state-names is defined and the length of this
+ property array should be the same as
+ ibm,-cpu-idle-state-names.The flag bits are as follows:
+ 0x00000001 /* Decrementer would stop */
+ 0x00000002 /* Needs timebase restore */
+ 0x00001000 /* Restore GPRs like nap */
+ 0x00002000 /* Restore hypervisor resource from PACA pointer */
+ 0x00004000 /* Program PORE to restore PACA pointer */
+ 0x00010000 /* This is a nap state */
+ 0x00020000 /* This is a fast-sleep state */
+ 0x00040000 /* This is a winkle state */
+ 0x00080000 /* This is a fast-sleep state which requires a */
+ /* software workaround for restoring the timebase*/
+ 0x00800000 /* This state uses SPR PMICR instruction */
+ 0x00100000 /* This is a fast stop state */
+ 0x00200000 /* This is a deep-stop state */
+
+- ibm,cpu-idle-state-latencies-ns:
+ Array of unsigned 32-bit values containing the values of the
+ exit-latencies (in ns) for the idle states in
+ ibm,cpu-idle-state-names. This property is required whenever
+ ibm,cpu-idle-state-names is defined and the length of this
+ property array should be the same as
+ ibm,-cpu-idle-state-names.
+
+- ibm,cpu-idle-state-residency-ns:
+ Array of unsigned 32-bit values containing the values of the
+ target-residency (in ns) for the idle states in
+ ibm,cpu-idle-state-names. On POWER8 this is an optional
+ property. If the property is absent, the target residency for
+ the "Nap", "FastSleep" are defined to 10000 and 300000000
+ respectively. On POWER9 this property must be defined if
+ ibm,cpu-idle-state-names is defined and the length should be
+ same as that of ibm,cpu-idle-state-names.
+
+- ibm,cpu-idle-state-psscr:
+ Array of unsigned 64-bit values containing the values for the
+ PSSCR for each of the idle states in ibm,cpu-idle-state-names.
+ This property is required on POWER9 whenever
+ ibm,cpu-idle-state-names is defined and the length of this
+ property array should be the same as
+ ibm,cpu-idle-state-names.
+
+- ibm,cpu-idle-state-psscr-mask:
+ Array of unsigned 64-bit values containing the masks
+ indicating which psscr fields are set in the corresponding
+ entries of ibm,cpu-idle-state-psscr. This property is
+ required on POWER9 whenever ibm,cpu-idle-state-names is
+ defined and the length of this property array should be the
+ same as ibm,cpu-idle-state-names.
+
+ Whenever the firmware sets an entry in
+ ibm,cpu-idle-state-psscr-mask value to 0xf, it implies that
+ only the Requested Level (RL) field of the corresponding entry
+ in ibm,cpu-idle-state-psscr should be considered by the
+ kernel. For such idle states, the kernel would set the
+ remaining fields of the psscr to the following sane-default
+ values.
+
+ - ESL and EC bits are to 1. So wakeup from any stop
+ state will be at vector 0x100.
+
+ - MTL and PSLL are set to the maximum allowed value as
+ per the ISA, i.e. 15.
+
+ - The Transition Rate, TR is set to the Maximum value
+ 3.
+
+ For all the other values of the entry in
+ ibm,cpu-idle-state-psscr-mask, the Kernel expects all the
+ psscr fields of the corresponding entry in
+ ibm,cpu-idle-state-psscr to be correctly set by the firmware.
+
+- ibm,cpu-idle-state-pmicr:
+ Array of unsigned 64-bit values containing the pmicr values
+ for the idle states in ibm,cpu-idle-state-names. This 64-bit
+ register value is to be set in pmicr for the corresponding
+ state if the flag indicates that pmicr SPR should be set. This
+ is an optional property on POWER8 and is absent on
+ POWER9. When present on POWER8, the length of this property
+ array should be the same as ibm,cpu-idle-state-names.
+
+- ibm,cpu-idle-state-pmicr:-mask
+ Array of unsigned 64-bit values containing the mask indicating
+ which of the fields of the PMICR are set in the corresponding
+ entries in ibm,cpu-idle-state-pmicr. This is an optional
+ property on POWER8 and is absent on POWER9. When present on
+ POWER8, the length of this property array should be the same
+ as ibm,cpu-idle-state-names.
--
1.9.4
next prev parent reply other threads:[~2017-01-10 9:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 9:06 [PATCH v5 0/5] powernv:stop: Use psscr_val,mask provided by firmware Gautham R. Shenoy
2017-01-10 9:07 ` [PATCH v5 1/5] powernv:idle: Add IDLE_STATE_ENTER_SEQ_NORET macro Gautham R. Shenoy
2017-01-12 9:42 ` Balbir Singh
2017-01-10 9:07 ` [PATCH v5 2/5] powernv:stop: Uniformly rename power9 to arch300 Gautham R. Shenoy
2017-01-12 9:47 ` Balbir Singh
2017-01-13 3:44 ` Gautham R Shenoy
2017-01-13 3:46 ` Oliver O'Halloran
2017-01-10 9:07 ` [PATCH v5 3/5] cpuidle:powernv: Add helper function to populate powernv idle states Gautham R. Shenoy
2017-01-12 10:04 ` Balbir Singh
2017-01-10 9:07 ` [PATCH v5 4/5] powernv: Pass PSSCR value and mask to power9_idle_stop Gautham R. Shenoy
2017-01-12 17:18 ` Balbir Singh
2017-01-10 9:07 ` Gautham R. Shenoy [this message]
2017-01-13 16:57 ` [PATCH v5 5/5] Documentation:powerpc: Add device-tree bindings for power-mgt Rob Herring
2017-01-25 8:09 ` Gautham R Shenoy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1484039224-5630-6-git-send-email-ego@linux.vnet.ibm.com \
--to=ego@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=bsingharora@gmail.com \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=mikey@neuling.org \
--cc=mpe@ellerman.id.au \
--cc=oohall@gmail.com \
--cc=paulus@samba.org \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=shilpa.bhat@linux.vnet.ibm.com \
--cc=shreyasbp@gmail.com \
--cc=stewart@linux.vnet.ibm.com \
--cc=svaidy@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).