From: Andre Przywara <andre.przywara@arm.com>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: "mark.rutland@arm.com" <mark.rutland@arm.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Peng Fan <peng.fan@nxp.com>,
"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
dl-linux-imx <linux-imx@nxp.com>,
"sudeep.holla@arm.com" <sudeep.holla@arm.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc for the ARM SMC/HVC mailbox
Date: Wed, 11 Sep 2019 12:42:55 +0100 [thread overview]
Message-ID: <20190911124255.45e44be3@donnerap.cambridge.arm.com> (raw)
In-Reply-To: <CABb+yY3kfLbdSSdQtZUu9HU1YbXSpbQWW85m0sieR7bJJYBaFA@mail.gmail.com>
On Tue, 10 Sep 2019 21:36:35 -0500
Jassi Brar <jassisinghbrar@gmail.com> wrote:
Hi,
> On Mon, Sep 9, 2019 at 8:32 AM Andre Przywara <andre.przywara@arm.com> wrote:
> >
> > On Fri, 30 Aug 2019 03:12:29 -0500
> > Jassi Brar <jassisinghbrar@gmail.com> wrote:
> >
> > Hi,
> >
> > > On Fri, Aug 30, 2019 at 3:07 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > >
> > > > > Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc for the ARM
> > > > > SMC/HVC mailbox
> > > > >
> > > > > On Fri, Aug 30, 2019 at 2:37 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > > > >
> > > > > > Hi Jassi,
> > > > > >
> > > > > > > Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc
> > > > > > > for the ARM SMC/HVC mailbox
> > > > > > >
> > > > > > > On Fri, Aug 30, 2019 at 1:28 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > > > > >
> > > > > > > > > > +examples:
> > > > > > > > > > + - |
> > > > > > > > > > + sram@910000 {
> > > > > > > > > > + compatible = "mmio-sram";
> > > > > > > > > > + reg = <0x0 0x93f000 0x0 0x1000>;
> > > > > > > > > > + #address-cells = <1>;
> > > > > > > > > > + #size-cells = <1>;
> > > > > > > > > > + ranges = <0 0x0 0x93f000 0x1000>;
> > > > > > > > > > +
> > > > > > > > > > + cpu_scp_lpri: scp-shmem@0 {
> > > > > > > > > > + compatible = "arm,scmi-shmem";
> > > > > > > > > > + reg = <0x0 0x200>;
> > > > > > > > > > + };
> > > > > > > > > > +
> > > > > > > > > > + cpu_scp_hpri: scp-shmem@200 {
> > > > > > > > > > + compatible = "arm,scmi-shmem";
> > > > > > > > > > + reg = <0x200 0x200>;
> > > > > > > > > > + };
> > > > > > > > > > + };
> > > > > > > > > > +
> > > > > > > > > > + firmware {
> > > > > > > > > > + smc_mbox: mailbox {
> > > > > > > > > > + #mbox-cells = <1>;
> > > > > > > > > > + compatible = "arm,smc-mbox";
> > > > > > > > > > + method = "smc";
> > > > > > > > > > + arm,num-chans = <0x2>;
> > > > > > > > > > + transports = "mem";
> > > > > > > > > > + /* Optional */
> > > > > > > > > > + arm,func-ids = <0xc20000fe>, <0xc20000ff>;
> > > > > > > > > >
> > > > > > > > > SMC/HVC is synchronously(block) running in "secure mode", i.e,
> > > > > > > > > there can only be one instance running platform wide. Right?
> > > > > > > >
> > > > > > > > I think there could be channel for TEE, and channel for Linux.
> > > > > > > > For virtualization case, there could be dedicated channel for each VM.
> > > > > > > >
> > > > > > > I am talking from Linux pov. Functions 0xfe and 0xff above, can't
> > > > > > > both be active at the same time, right?
> > > > > >
> > > > > > If I get your point correctly,
> > > > > > On UP, both could not be active. On SMP, tx/rx could be both active,
> > > > > > anyway this depends on secure firmware and Linux firmware design.
> > > > > >
> > > > > > Do you have any suggestions about arm,func-ids here?
> > > > > >
> > > > > I was thinking if this is just an instruction, why can't each channel be
> > > > > represented as a controller, i.e, have exactly one func-id per controller node.
> > > > > Define as many controllers as you need channels ?
> > > >
> > > > I am ok, this could make driver code simpler. Something as below?
> > > >
> > > > smc_tx_mbox: tx_mbox {
> > > > #mbox-cells = <0>;
> > > > compatible = "arm,smc-mbox";
> > > > method = "smc";
> > > > transports = "mem";
> > > > arm,func-id = <0xc20000fe>;
> > > > };
> > > >
> > > > smc_rx_mbox: rx_mbox {
> > > > #mbox-cells = <0>;
> > > > compatible = "arm,smc-mbox";
> > > > method = "smc";
> > > > transports = "mem";
> > > > arm,func-id = <0xc20000ff>;
> > > > };
> > > >
> > > > firmware {
> > > > scmi {
> > > > compatible = "arm,scmi";
> > > > mboxes = <&smc_tx_mbox>, <&smc_rx_mbox 1>;
> > > > mbox-names = "tx", "rx";
> > > > shmem = <&cpu_scp_lpri>, <&cpu_scp_hpri>;
> > > > };
> > > > };
> > > >
> > > Yes, the channel part is good.
> > > But I am not convinced by the need to have SCMI specific "transport" mode.
> >
> > Why would this be SCMI specific and what is the problem with having this property?
> > By the very nature of the SMC/HVC call you would expect to also pass parameters in registers.
> > However this limits the amount of data you can push, so the option of reverting to a
> > memory based payload sounds very reasonable.
> >
> Of course, it is very legit to pass data via mem and many platforms do
> that. But as you note in your next post, the 'transport' doesn't seem
> necessary doing what it does in the driver.
Yes, indeed. I didn't realise that until looking more deeply into the driver later.
So I think we are on the same page regarding this: the *controller* driver and its binding does not need to know about the transport, that's something between the mailbox client and the firmware implementation.
Cheers,
Andre.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Andre Przywara <andre.przywara@arm.com>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"sudeep.holla@arm.com" <sudeep.holla@arm.com>,
"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
dl-linux-imx <linux-imx@nxp.com>
Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc for the ARM SMC/HVC mailbox
Date: Wed, 11 Sep 2019 12:42:55 +0100 [thread overview]
Message-ID: <20190911124255.45e44be3@donnerap.cambridge.arm.com> (raw)
In-Reply-To: <CABb+yY3kfLbdSSdQtZUu9HU1YbXSpbQWW85m0sieR7bJJYBaFA@mail.gmail.com>
On Tue, 10 Sep 2019 21:36:35 -0500
Jassi Brar <jassisinghbrar@gmail.com> wrote:
Hi,
> On Mon, Sep 9, 2019 at 8:32 AM Andre Przywara <andre.przywara@arm.com> wrote:
> >
> > On Fri, 30 Aug 2019 03:12:29 -0500
> > Jassi Brar <jassisinghbrar@gmail.com> wrote:
> >
> > Hi,
> >
> > > On Fri, Aug 30, 2019 at 3:07 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > >
> > > > > Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc for the ARM
> > > > > SMC/HVC mailbox
> > > > >
> > > > > On Fri, Aug 30, 2019 at 2:37 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > > > >
> > > > > > Hi Jassi,
> > > > > >
> > > > > > > Subject: Re: [PATCH v5 1/2] dt-bindings: mailbox: add binding doc
> > > > > > > for the ARM SMC/HVC mailbox
> > > > > > >
> > > > > > > On Fri, Aug 30, 2019 at 1:28 AM Peng Fan <peng.fan@nxp.com> wrote:
> > > > > > >
> > > > > > > > > > +examples:
> > > > > > > > > > + - |
> > > > > > > > > > + sram@910000 {
> > > > > > > > > > + compatible = "mmio-sram";
> > > > > > > > > > + reg = <0x0 0x93f000 0x0 0x1000>;
> > > > > > > > > > + #address-cells = <1>;
> > > > > > > > > > + #size-cells = <1>;
> > > > > > > > > > + ranges = <0 0x0 0x93f000 0x1000>;
> > > > > > > > > > +
> > > > > > > > > > + cpu_scp_lpri: scp-shmem@0 {
> > > > > > > > > > + compatible = "arm,scmi-shmem";
> > > > > > > > > > + reg = <0x0 0x200>;
> > > > > > > > > > + };
> > > > > > > > > > +
> > > > > > > > > > + cpu_scp_hpri: scp-shmem@200 {
> > > > > > > > > > + compatible = "arm,scmi-shmem";
> > > > > > > > > > + reg = <0x200 0x200>;
> > > > > > > > > > + };
> > > > > > > > > > + };
> > > > > > > > > > +
> > > > > > > > > > + firmware {
> > > > > > > > > > + smc_mbox: mailbox {
> > > > > > > > > > + #mbox-cells = <1>;
> > > > > > > > > > + compatible = "arm,smc-mbox";
> > > > > > > > > > + method = "smc";
> > > > > > > > > > + arm,num-chans = <0x2>;
> > > > > > > > > > + transports = "mem";
> > > > > > > > > > + /* Optional */
> > > > > > > > > > + arm,func-ids = <0xc20000fe>, <0xc20000ff>;
> > > > > > > > > >
> > > > > > > > > SMC/HVC is synchronously(block) running in "secure mode", i.e,
> > > > > > > > > there can only be one instance running platform wide. Right?
> > > > > > > >
> > > > > > > > I think there could be channel for TEE, and channel for Linux.
> > > > > > > > For virtualization case, there could be dedicated channel for each VM.
> > > > > > > >
> > > > > > > I am talking from Linux pov. Functions 0xfe and 0xff above, can't
> > > > > > > both be active at the same time, right?
> > > > > >
> > > > > > If I get your point correctly,
> > > > > > On UP, both could not be active. On SMP, tx/rx could be both active,
> > > > > > anyway this depends on secure firmware and Linux firmware design.
> > > > > >
> > > > > > Do you have any suggestions about arm,func-ids here?
> > > > > >
> > > > > I was thinking if this is just an instruction, why can't each channel be
> > > > > represented as a controller, i.e, have exactly one func-id per controller node.
> > > > > Define as many controllers as you need channels ?
> > > >
> > > > I am ok, this could make driver code simpler. Something as below?
> > > >
> > > > smc_tx_mbox: tx_mbox {
> > > > #mbox-cells = <0>;
> > > > compatible = "arm,smc-mbox";
> > > > method = "smc";
> > > > transports = "mem";
> > > > arm,func-id = <0xc20000fe>;
> > > > };
> > > >
> > > > smc_rx_mbox: rx_mbox {
> > > > #mbox-cells = <0>;
> > > > compatible = "arm,smc-mbox";
> > > > method = "smc";
> > > > transports = "mem";
> > > > arm,func-id = <0xc20000ff>;
> > > > };
> > > >
> > > > firmware {
> > > > scmi {
> > > > compatible = "arm,scmi";
> > > > mboxes = <&smc_tx_mbox>, <&smc_rx_mbox 1>;
> > > > mbox-names = "tx", "rx";
> > > > shmem = <&cpu_scp_lpri>, <&cpu_scp_hpri>;
> > > > };
> > > > };
> > > >
> > > Yes, the channel part is good.
> > > But I am not convinced by the need to have SCMI specific "transport" mode.
> >
> > Why would this be SCMI specific and what is the problem with having this property?
> > By the very nature of the SMC/HVC call you would expect to also pass parameters in registers.
> > However this limits the amount of data you can push, so the option of reverting to a
> > memory based payload sounds very reasonable.
> >
> Of course, it is very legit to pass data via mem and many platforms do
> that. But as you note in your next post, the 'transport' doesn't seem
> necessary doing what it does in the driver.
Yes, indeed. I didn't realise that until looking more deeply into the driver later.
So I think we are on the same page regarding this: the *controller* driver and its binding does not need to know about the transport, that's something between the mailbox client and the firmware implementation.
Cheers,
Andre.
next prev parent reply other threads:[~2019-09-11 11:43 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-28 3:02 [PATCH v5 0/2] mailbox: arm: introduce smc triggered mailbox Peng Fan
2019-08-28 3:02 ` Peng Fan
2019-08-28 3:02 ` [PATCH v5 1/2] dt-bindings: mailbox: add binding doc for the ARM SMC/HVC mailbox Peng Fan
2019-08-28 3:02 ` Peng Fan
2019-08-28 13:58 ` Sudeep Holla
2019-08-28 13:58 ` Sudeep Holla
2019-08-28 13:58 ` Sudeep Holla
2019-08-30 2:47 ` Peng Fan
2019-08-30 2:47 ` Peng Fan
2019-08-30 5:58 ` Jassi Brar
2019-08-30 5:58 ` Jassi Brar
2019-08-30 6:28 ` Peng Fan
2019-08-30 6:28 ` Peng Fan
2019-08-30 7:21 ` Jassi Brar
2019-08-30 7:21 ` Jassi Brar
2019-08-30 7:37 ` Peng Fan
2019-08-30 7:37 ` Peng Fan
2019-08-30 7:37 ` Peng Fan
2019-08-30 7:52 ` Jassi Brar
2019-08-30 7:52 ` Jassi Brar
2019-08-30 8:07 ` Peng Fan
2019-08-30 8:07 ` Peng Fan
2019-08-30 8:12 ` Jassi Brar
2019-08-30 8:12 ` Jassi Brar
2019-08-30 8:28 ` Peng Fan
2019-08-30 8:28 ` Peng Fan
2019-09-09 13:32 ` Andre Przywara
2019-09-09 13:32 ` Andre Przywara
2019-09-11 2:27 ` Peng Fan
2019-09-11 2:27 ` Peng Fan
2019-09-11 2:27 ` Peng Fan
2019-09-11 2:36 ` Jassi Brar
2019-09-11 2:36 ` Jassi Brar
2019-09-11 11:42 ` Andre Przywara [this message]
2019-09-11 11:42 ` Andre Przywara
2019-08-30 9:32 ` Sudeep Holla
2019-08-30 9:32 ` Sudeep Holla
2019-08-30 16:51 ` Jassi Brar
2019-08-30 16:51 ` Jassi Brar
2019-08-30 9:30 ` Sudeep Holla
2019-08-30 9:30 ` Sudeep Holla
2019-08-30 9:40 ` Peng Fan
2019-08-30 9:40 ` Peng Fan
2019-09-02 13:39 ` Rob Herring
2019-09-02 13:39 ` Rob Herring
2019-09-02 14:20 ` Rob Herring
2019-09-02 14:20 ` Rob Herring
2019-09-09 15:42 ` Andre Przywara
2019-09-09 15:42 ` Andre Przywara
2019-09-11 2:44 ` Jassi Brar
2019-09-11 2:44 ` Jassi Brar
2019-09-11 2:44 ` Jassi Brar
2019-09-11 15:03 ` Andre Przywara
2019-09-11 15:03 ` Andre Przywara
2019-09-11 16:55 ` Jassi Brar
2019-09-11 16:55 ` Jassi Brar
2019-09-12 3:05 ` Peng Fan
2019-09-12 3:05 ` Peng Fan
2019-09-12 3:05 ` Peng Fan
2019-08-28 3:03 ` [PATCH v5 2/2] mailbox: introduce ARM SMC based mailbox Peng Fan
2019-08-28 3:03 ` Peng Fan
2019-08-28 14:02 ` Sudeep Holla
2019-08-28 14:02 ` Sudeep Holla
2019-08-30 2:50 ` Peng Fan
2019-08-30 2:50 ` Peng Fan
2019-08-30 2:50 ` Peng Fan
2019-09-09 15:42 ` Andre Przywara
2019-09-09 15:42 ` Andre Przywara
2019-09-11 5:58 ` Peng Fan
2019-09-11 5:58 ` Peng Fan
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=20190911124255.45e44be3@donnerap.cambridge.arm.com \
--to=andre.przywara@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=jassisinghbrar@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=sudeep.holla@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.