All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <sstabellini@kernel.org>
To: Julien Grall <julien@xen.org>
Cc: John Ernberg <john.ernberg@actia.se>,
	 Stefano Stabellini <sstabellini@kernel.org>,
	 Bertrand Marquis <bertrand.marquis@arm.com>,
	 Michal Orzel <michal.orzel@amd.com>,
	 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	 Peng Fan <peng.fan@nxp.com>, Jonas Blixt <jonas.blixt@actia.se>,
	 "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/2] xen/arm: Add imx8q{m,x} platform glue
Date: Fri, 2 Feb 2024 14:09:06 -0800 (PST)	[thread overview]
Message-ID: <alpine.DEB.2.22.394.2402021401310.292110@ubuntu-linux-20-04-desktop> (raw)
In-Reply-To: <012b5f83-2f9b-4477-965e-07b8506c0052@xen.org>

[-- Attachment #1: Type: text/plain, Size: 3810 bytes --]

On Fri, 2 Feb 2024, Julien Grall wrote:
> On 01/02/2024 16:17, John Ernberg wrote:
> > On 2/1/24 13:20, Julien Grall wrote:
> > > 
> > > 
> > > On 31/01/2024 15:32, John Ernberg wrote:
> > > > Hi Julien,
> > > 
> > > Hi John,
> > > 
> > > > On 1/31/24 13:22, Julien Grall wrote:
> > > > > Hi,
> > > > > 
> > > > > On 31/01/2024 11:50, John Ernberg wrote:
> > > > > > When using Linux for dom0 there are a bunch of drivers that need to
> > > > > > do
> > > > > > SMC
> > > > > > SIP calls into the PSCI provider to enable certain hardware bits
> > > > > > like the
> > > > > > watchdog.
> > > > > 
> > > > > Do you know which protocol this is under the hood. Is this SCMI?
> > > > 
> > > > I think I confused myself here when I wrote the commit log.
> > > > 
> > > > The EL3 code in our case is ATF, and it does not appear to be SCMI, nor
> > > > PSCI. The register usage of these SMC SIP calls are as follows:
> > > > a0 - service
> > > > a1 - function
> > > > a2-a7 - args
> > > > 
> > > > In ATF the handler is declared as a runtime service.
> > > > 
> > > > Would the appropriate commmit message here be something along the lines
> > > > of below?
> > > > """
> > > > When using Linux for dom0 there are a bunch of drivers that need to
> > > > do   SMC
> > > > SIP calls into the firmware to enable certain hardware bits like the
> > > > watchdog.
> > > > """
> > > 
> > > It reads better thanks.
> > > 
> > > [...]
> > > 
> > > > > But even if we restrict to dom0, have you checked that none of the
> > > > > SMCs
> > > > > use buffers?
> > > > I haven't found any such instances in the Linux kernel where a buffer is
> > > > used. Adding a call filtering like suggested below additions of such
> > > > functions can be discovered and adapted for if they would show up later.
> > > > > 
> > > > > Rather than providing a blanket forward, to me it sounds more like you
> > > > > want to provide an allowlist of the SMCs. This is more futureproof and
> > > > > avoid the risk to expose unsafe SMCs to any domain.
> > > > > 
> > > > > For an example, you can have a look at the EEMI mediator for Xilinx.
> > > > 
> > > > Ack. Do you prefer to see only on SMCCC service level or also on
> > > > function level? (a1 register, per description earlier)
> > > 
> > > I am not sure. It will depend on whether it is correct to expose *all*
> > > the functions within a service level and they have the same format.
> > > 
> > > If you can't guarantee that, then you will most likely need to allowlist
> > > at the function level.
> > > 
> > > Also, do you have a spec in hand that would help to understand which
> > > service/function is implemented via those SMCs?
> > 
> > I don't have the spec unfortunately, but I will add a filter on both
> > service and function for V2 and we'll take it from there.
> 
> @Peng, do you have any specification you could share? How stable is the
> interface?

Just to add some context to make the reason for the question clearer, if
we have a specification we could check the patch for correctness.
Without it, it is difficult to know if it is doing the right thing.

The other aspect is about expectation of forward and backward
compatibility. Can we guarantee that the next version of Xen and the one
after it will still work against this interface? If not, can we check
for the version of the interface before continuing? If not, can we at
least document that the interface is only known-to-work with specific
firmware versions?

This is basically just to provide the right expectations to users and
ideally to prevent a future version of Xen to break on boot silently
without information.

If we don't have a spec and we don't know if the interface is stable, I
think we should try to detect the version of the interface and print a
warning in Xen if it not a known version.

  reply	other threads:[~2024-02-02 22:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-31 11:50 [PATCH 0/2] Xen: ARM: Improved NXP iMX8 platform support John Ernberg
2024-01-31 11:50 ` [PATCH 2/2] xen/drivers: imx-lpuart: Add iMX8QXP compatible John Ernberg
2024-01-31 12:29   ` Julien Grall
2024-01-31 15:31     ` John Ernberg
2024-01-31 11:50 ` [PATCH 1/2] xen/arm: Add imx8q{m,x} platform glue John Ernberg
2024-01-31 12:22   ` Julien Grall
2024-01-31 15:32     ` John Ernberg
2024-02-01  4:10       ` Peng Fan
2024-02-01 16:15         ` John Ernberg
2024-02-01 12:20       ` Julien Grall
2024-02-01 16:17         ` John Ernberg
2024-02-02  9:19           ` Julien Grall
2024-02-02 22:09             ` Stefano Stabellini [this message]
2024-02-04  9:40             ` Peng Fan
2024-02-05 10:13               ` Julien Grall
2024-02-09 13:14                 ` John Ernberg
2024-03-06 13:13                   ` John Ernberg
2024-03-06 23:07                     ` Julien Grall
2024-03-08 13:40                       ` John Ernberg
2024-03-08 14:04                         ` Julien Grall
2024-03-11  8:39                           ` John Ernberg
2024-03-13 10:07                           ` Bertrand Marquis
2024-03-20 16:24                             ` John Ernberg
2024-03-20 17:40                               ` Julien Grall
2024-03-20 23:53                                 ` Stefano Stabellini
2024-03-21  1:09                                   ` Peng Fan
2024-03-21  7:41                                 ` Bertrand Marquis
2024-03-21 16:05                                   ` John Ernberg
2024-03-21 16:15                                     ` Bertrand Marquis
2024-03-25 12:18                                       ` John Ernberg
2024-03-26  8:07                                         ` Bertrand Marquis

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=alpine.DEB.2.22.394.2402021401310.292110@ubuntu-linux-20-04-desktop \
    --to=sstabellini@kernel.org \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=bertrand.marquis@arm.com \
    --cc=john.ernberg@actia.se \
    --cc=jonas.blixt@actia.se \
    --cc=julien@xen.org \
    --cc=michal.orzel@amd.com \
    --cc=peng.fan@nxp.com \
    --cc=xen-devel@lists.xenproject.org \
    /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.