[v5,1/4] dt-bindings: firmware: Add bindings for ZynqMP firmware
diff mbox

Message ID 1519154467-2896-2-git-send-email-jollys@xilinx.com
State New, archived
Headers show

Commit Message

Jolly Shah Feb. 20, 2018, 7:21 p.m. UTC
Add documentation to describe Xilinx ZynqMP firmware driver
bindings. Firmware driver provides an interface to firmware
APIs. Interface APIs can be used by any driver to communicate
to PMUFW (Platform Management Unit).

Signed-off-by: Jolly Shah <jollys@xilinx.com>
Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
---
 .../firmware/xilinx/xlnx,zynqmp-firmware.txt       | 24 ++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt

Comments

Sudeep Holla March 1, 2018, 2:15 p.m. UTC | #1
On 20/02/18 19:21, Jolly Shah wrote:
> Add documentation to describe Xilinx ZynqMP firmware driver
> bindings. Firmware driver provides an interface to firmware
> APIs. Interface APIs can be used by any driver to communicate
> to PMUFW (Platform Management Unit).
> 
> Signed-off-by: Jolly Shah <jollys@xilinx.com>
> Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
> ---
>  .../firmware/xilinx/xlnx,zynqmp-firmware.txt       | 24 ++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
> 
> diff --git a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
> new file mode 100644
> index 0000000..99434ba
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
> @@ -0,0 +1,24 @@
> +Xilinx Zynq MPSoC Firmware Device Tree Bindings
> +
> +The zynqmp-firmware node describes the interface to platform firmware.
> +ZynqMP has an interface to communicate with secure firmware. Firmware
> +driver provides an interface to firmware APIs. Interface APIs can be
> +used by any driver to communicate to PMUFW(Platform Management Unit).
> +These requests include clock management, pin control, device control,
> +power management service, FPGA service and other platform management
> +services.
> +
> +Required properties:
> + - compatible:	Must contain:  "xlnx,zynqmp-firmware"
> + - method:	The method of calling the PM-API firmware layer.
> +		Permitted values are:
> +		  - "smc" : SMC #0, following the SMCCC
> +		  - "hvc" : HVC #0, following the SMCCC
> +
> +Examples:
> +	firmware {
> +		zynqmp_firmware: zynqmp-firmware {
> +			compatible = "xlnx,zynqmp-firmware";
> +			method = "smc";
> +		};
> +	};
> 

Do you foresee using SMC/HVC for this firmware even on future platforms?
If not, I suggest to keep the protocol part separate from the transport
i.e. smc/hvc via ATF. It could be replaced with mailbox or some h/w
mechanism in future ?
Rob Herring March 1, 2018, 9:18 p.m. UTC | #2
On Tue, Feb 20, 2018 at 11:21:04AM -0800, Jolly Shah wrote:
> Add documentation to describe Xilinx ZynqMP firmware driver
> bindings. Firmware driver provides an interface to firmware
> APIs. Interface APIs can be used by any driver to communicate
> to PMUFW (Platform Management Unit).
> 
> Signed-off-by: Jolly Shah <jollys@xilinx.com>
> Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
> ---
>  .../firmware/xilinx/xlnx,zynqmp-firmware.txt       | 24 ++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt

Reviewed-by: Rob Herring <robh@kernel.org>
Jolly Shah March 7, 2018, 10:25 p.m. UTC | #3
Hi Sudeep,

> -----Original Message-----
> From: Sudeep Holla [mailto:sudeep.holla@arm.com]
> Sent: Thursday, March 01, 2018 6:15 AM
> To: Jolly Shah <JOLLYS@xilinx.com>; gregkh@linuxfoundation.org;
> matt@codeblueprint.co.uk; hkallweit1@gmail.com; michal.simek@xilinx.com;
> robh+dt@kernel.org; mark.rutland@arm.com
> Cc: ard.biesheuvel@linaro.org; mingo@kernel.org; keescook@chromium.org;
> dmitry.torokhov@gmail.com; Sudeep Holla <sudeep.holla@arm.com>; Rajan
> Vaja <RAJANV@xilinx.com>; linux-arm-kernel@lists.infradead.org; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org; Jolly Shah
> <JOLLYS@xilinx.com>
> Subject: Re: [PATCH v5 1/4] dt-bindings: firmware: Add bindings for ZynqMP
> firmware
> 
> 
> 
> On 20/02/18 19:21, Jolly Shah wrote:
> > Add documentation to describe Xilinx ZynqMP firmware driver bindings.
> > Firmware driver provides an interface to firmware APIs. Interface APIs
> > can be used by any driver to communicate to PMUFW (Platform Management
> > Unit).
> >
> > Signed-off-by: Jolly Shah <jollys@xilinx.com>
> > Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
> > ---
> >  .../firmware/xilinx/xlnx,zynqmp-firmware.txt       | 24
> ++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware
> > .txt
> >
> > diff --git
> > a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmwa
> > re.txt
> > b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmwa
> > re.txt
> > new file mode 100644
> > index 0000000..99434ba
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-fi
> > +++ rmware.txt
> > @@ -0,0 +1,24 @@
> > +Xilinx Zynq MPSoC Firmware Device Tree Bindings
> > +
> > +The zynqmp-firmware node describes the interface to platform firmware.
> > +ZynqMP has an interface to communicate with secure firmware. Firmware
> > +driver provides an interface to firmware APIs. Interface APIs can be
> > +used by any driver to communicate to PMUFW(Platform Management Unit).
> > +These requests include clock management, pin control, device control,
> > +power management service, FPGA service and other platform management
> > +services.
> > +
> > +Required properties:
> > + - compatible:	Must contain:  "xlnx,zynqmp-firmware"
> > + - method:	The method of calling the PM-API firmware layer.
> > +		Permitted values are:
> > +		  - "smc" : SMC #0, following the SMCCC
> > +		  - "hvc" : HVC #0, following the SMCCC
> > +
> > +Examples:
> > +	firmware {
> > +		zynqmp_firmware: zynqmp-firmware {
> > +			compatible = "xlnx,zynqmp-firmware";
> > +			method = "smc";
> > +		};
> > +	};
> >
> 
> Do you foresee using SMC/HVC for this firmware even on future platforms?
> If not, I suggest to keep the protocol part separate from the transport i.e.
> smc/hvc via ATF. It could be replaced with mailbox or some h/w mechanism in
> future ?
> 

We have PSCI and EEMI interfaces exposed to linux from ATF.  PSCI is an EEMI client. We do not have current plans to switch to mailbox as it will require 2 communication channels to PMU as PSCI is through ATF. 

> --
> Regards,
> Sudeep
Sudeep Holla March 8, 2018, 11:48 a.m. UTC | #4
On 07/03/18 22:25, Jolly Shah wrote:
> Hi Sudeep,
> 

[...]

>>> +Examples:
>>> +	firmware {
>>> +		zynqmp_firmware: zynqmp-firmware {
>>> +			compatible = "xlnx,zynqmp-firmware";
>>> +			method = "smc";
>>> +		};
>>> +	};
>>>
>>
>> Do you foresee using SMC/HVC for this firmware even on future platforms?
>> If not, I suggest to keep the protocol part separate from the transport i.e.
>> smc/hvc via ATF. It could be replaced with mailbox or some h/w mechanism in
>> future ?
>>
> 
> We have PSCI and EEMI interfaces exposed to linux from ATF. PSCI is
> an EEMI client. We do not have current plans to switch to mailbox as it
> will require 2 communication channels to PMU as PSCI is through ATF.
> 

OK, but I just saw some bindings that has mailbox interface, honestly
it's getting too confusing with multiple series on the same thing
floating and hence I requested to put it together as one series.
Jolly Shah March 12, 2018, 11:07 p.m. UTC | #5
Hi Sudeep,

> -----Original Message-----
> From: Sudeep Holla [mailto:sudeep.holla@arm.com]
> Sent: Thursday, March 08, 2018 3:48 AM
> To: Jolly Shah <JOLLYS@xilinx.com>
> Cc: gregkh@linuxfoundation.org; matt@codeblueprint.co.uk;
> hkallweit1@gmail.com; michal.simek@xilinx.com; robh+dt@kernel.org;
> mark.rutland@arm.com; Sudeep Holla <sudeep.holla@arm.com>;
> ard.biesheuvel@linaro.org; mingo@kernel.org; keescook@chromium.org;
> dmitry.torokhov@gmail.com; Rajan Vaja <RAJANV@xilinx.com>; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> devicetree@vger.kernel.org
> Subject: Re: [PATCH v5 1/4] dt-bindings: firmware: Add bindings for ZynqMP
> firmware
> 
> 
> 
> On 07/03/18 22:25, Jolly Shah wrote:
> > Hi Sudeep,
> >
> 
> [...]
> 
> >>> +Examples:
> >>> +	firmware {
> >>> +		zynqmp_firmware: zynqmp-firmware {
> >>> +			compatible = "xlnx,zynqmp-firmware";
> >>> +			method = "smc";
> >>> +		};
> >>> +	};
> >>>
> >>
> >> Do you foresee using SMC/HVC for this firmware even on future platforms?
> >> If not, I suggest to keep the protocol part separate from the transport i.e.
> >> smc/hvc via ATF. It could be replaced with mailbox or some h/w
> >> mechanism in future ?
> >>
> >
> > We have PSCI and EEMI interfaces exposed to linux from ATF. PSCI is an
> > EEMI client. We do not have current plans to switch to mailbox as it
> > will require 2 communication channels to PMU as PSCI is through ATF.
> >
> 
> OK, but I just saw some bindings that has mailbox interface, honestly it's getting
> too confusing with multiple series on the same thing floating and hence I
> requested to put it together as one series.

Mailbox binding is used for power management driver. Mailbox is only used for PMU->APU communication.
APU->PMU communication is always through EEMI firmware interface which is using SMC/HVC.


> --
> Regards,
> Sudeep
Sudeep Holla March 13, 2018, 10:16 a.m. UTC | #6
On 12/03/18 23:07, Jolly Shah wrote:
> Hi Sudeep,

>>>> Do you foresee using SMC/HVC for this firmware even on future platforms?
>>>> If not, I suggest to keep the protocol part separate from the transport i.e.
>>>> smc/hvc via ATF. It could be replaced with mailbox or some h/w
>>>> mechanism in future ?
>>>>
>>>
>>> We have PSCI and EEMI interfaces exposed to linux from ATF. PSCI is an
>>> EEMI client. We do not have current plans to switch to mailbox as it
>>> will require 2 communication channels to PMU as PSCI is through ATF.
>>>
>>
>> OK, but I just saw some bindings that has mailbox interface, honestly it's getting
>> too confusing with multiple series on the same thing floating and hence I
>> requested to put it together as one series.
> 
> Mailbox binding is used for power management driver. Mailbox is only
> used for PMU->APU communication. APU->PMU communication is always
> through EEMI firmware interface which is using SMC/HVC.
> 

Ah OK, is it because there's no non-secure mailbox or to avoid races,
all non-secure EEMI is channeled through SMC ?
Jolly Shah March 13, 2018, 6:56 p.m. UTC | #7
> -----Original Message-----
> From: Sudeep Holla [mailto:sudeep.holla@arm.com]
> Sent: Tuesday, March 13, 2018 3:16 AM
> To: Jolly Shah <JOLLYS@xilinx.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>; gregkh@linuxfoundation.org;
> matt@codeblueprint.co.uk; hkallweit1@gmail.com; michal.simek@xilinx.com;
> robh+dt@kernel.org; mark.rutland@arm.com; ard.biesheuvel@linaro.org;
> mingo@kernel.org; keescook@chromium.org; dmitry.torokhov@gmail.com;
> Rajan Vaja <RAJANV@xilinx.com>; linux-arm-kernel@lists.infradead.org; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH v5 1/4] dt-bindings: firmware: Add bindings for ZynqMP
> firmware
> 
> 
> 
> On 12/03/18 23:07, Jolly Shah wrote:
> > Hi Sudeep,
> 
> >>>> Do you foresee using SMC/HVC for this firmware even on future
> platforms?
> >>>> If not, I suggest to keep the protocol part separate from the transport i.e.
> >>>> smc/hvc via ATF. It could be replaced with mailbox or some h/w
> >>>> mechanism in future ?
> >>>>
> >>>
> >>> We have PSCI and EEMI interfaces exposed to linux from ATF. PSCI is
> >>> an EEMI client. We do not have current plans to switch to mailbox as
> >>> it will require 2 communication channels to PMU as PSCI is through ATF.
> >>>
> >>
> >> OK, but I just saw some bindings that has mailbox interface, honestly
> >> it's getting too confusing with multiple series on the same thing
> >> floating and hence I requested to put it together as one series.
> >
> > Mailbox binding is used for power management driver. Mailbox is only
> > used for PMU->APU communication. APU->PMU communication is always
> > through EEMI firmware interface which is using SMC/HVC.
> >
> 
> Ah OK, is it because there's no non-secure mailbox or to avoid races, all non-
> secure EEMI is channeled through SMC ?
> 

2 reasons:
1> Avoid multiple EEMI communication channels as PSCI is through ATF.
2> We have some secure operations handled in ATF because of memory constraints on PMU

> --
> Regards,
> Sudeep

Patch
diff mbox

diff --git a/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
new file mode 100644
index 0000000..99434ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt
@@ -0,0 +1,24 @@ 
+Xilinx Zynq MPSoC Firmware Device Tree Bindings
+
+The zynqmp-firmware node describes the interface to platform firmware.
+ZynqMP has an interface to communicate with secure firmware. Firmware
+driver provides an interface to firmware APIs. Interface APIs can be
+used by any driver to communicate to PMUFW(Platform Management Unit).
+These requests include clock management, pin control, device control,
+power management service, FPGA service and other platform management
+services.
+
+Required properties:
+ - compatible:	Must contain:  "xlnx,zynqmp-firmware"
+ - method:	The method of calling the PM-API firmware layer.
+		Permitted values are:
+		  - "smc" : SMC #0, following the SMCCC
+		  - "hvc" : HVC #0, following the SMCCC
+
+Examples:
+	firmware {
+		zynqmp_firmware: zynqmp-firmware {
+			compatible = "xlnx,zynqmp-firmware";
+			method = "smc";
+		};
+	};