Re: [PATCH v3 2/5] dt-bindings: ti_sci_pm_domains: Add support for exclusive and shared access

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/04/2019 16:15, Lokesh Vutla wrote:


On 10/04/19 6:19 PM, Tero Kristo wrote:
On 10/04/2019 15:37, Lokesh Vutla wrote:
Hi Tero,

On 10/04/19 1:34 PM, Tero Kristo wrote:
On 10/04/2019 08:37, Lokesh Vutla wrote:
TISCI protocol supports for enabling the device either with exclusive
permissions for the requesting host or with sharing across the hosts.
There are certain devices which are exclusive to Linux context and
there are certain devices that are shared across different host contexts.
So add support for getting this information from DT by increasing
the power-domain cells to 2.

Signed-off-by: Lokesh Vutla <lokeshvutla@xxxxxx>
---
    .../devicetree/bindings/soc/ti/sci-pm-domain.txt      | 11 +++++++++--
    MAINTAINERS                                           |  1 +
    include/dt-bindings/soc/ti,sci_pm_domain.h            |  9 +++++++++
    3 files changed, 19 insertions(+), 2 deletions(-)
    create mode 100644 include/dt-bindings/soc/ti,sci_pm_domain.h

diff --git a/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
b/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
index f7b00a7c0f68..f541d1f776a2 100644
--- a/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+++ b/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
@@ -19,8 +19,15 @@ child of the pmmc node.
    Required Properties:
    --------------------
    - compatible: should be "ti,sci-pm-domain"
-- #power-domain-cells: Must be 1 so that an id can be provided in each
-               device node.
+- #power-domain-cells: Can be one of the following:
+            1: Containing the device id of each node
+            2: First entry should be device id
+               Second entry should be one of the floowing:
+               TI_SCI_PD_EXCLUSIVE: To allow device to be
+                        exclusively controlled by
+                        the requesting hosts.
+               TI_SCI_PD_SHARED: To allow device to be shared
+                         by multiple hosts.

One thing should be noted on this, the added flag is purely for software
configuration, and is not telling us anything about the HW / firmware. Software

I does say about how firmware handles the requested device.

There is a slight nuance in the wording here. It tells the firmware how to
handle the device, and you can basically use either flag and it will work...
until someone else attempts to use the same device. I recall DT was supposed to
describe the hardware, not to tell us how to use it.

Well Ill put it this way. This flag describes that the requested device is a
shared device across multiple hosts :)

But that is pure software config, right? Depends on the software design choices made, which host is going to use which resource. Personally I don't think this justifies a DT binding, but I might be wrong. I'll let Rob comment on this.

-Tero




can decide to have the flag either way and it will work. I just wonder if DT is
the correct location to have something like this... Expect to have plenty of
churn on this by people swapping the permissions around according to their
use-case needs.

Do you have any other suggestion to handle shared devices across VMs?

Well, we should have configuration data available somewhere, but it sounds like
DT might be wrong location for this. Maybe a whitelist of devices that can be
shared somewhere. Maybe under the PD driver itself. Do we have any examples for

We will end up creating a separate list for each SoC and it might change per use
case. I would not like to go down that road.

Thanks and regards,
Lokesh

something similar available in the kernel today?

-Tero
--

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux