Re: Linux fails on startup looking for SMC

Moshe Kravchik <[email protected]> Mon, 28 Apr 2025 05:25:34 +0000
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <DB3PR08MB87960301E77A88BC44E0D016A5812@DB3PR08MB8796.eurprd08.prod.outlook.com>
--===============5382111302259364021==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_DB3PR08MB87960301E77A88BC44E0D016A5812DB3PR08MB8796eurp_"

--_000_DB3PR08MB87960301E77A88BC44E0D016A5812DB3PR08MB8796eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Thanks a lot, Adam!
I added both and rebuilt the device tree, but now I'm getting:
```
vm-1    | VMM[smccc_proxy]: smccc_proxy
vm-1    | VMM: smccc_proxy.l4vmm,smccc_cap: capability smc is invalid.
vm-1    | VMM[vm]: Device creation for virtual device smccc_proxy failed. D=
isabling device.
```
Moshe
________________________________
From: Adam Lackorzynski <[email protected]>
Sent: Monday, April 28, 2025 12:07 AM
To: Moshe Kravchik <[email protected]>; [email protected]=
 <[email protected]>
Subject: Re: Linux fails on startup looking for SMC

Hi Moshe,

On Sun Apr 27, 2025 at 15:32:53 +0000, Moshe Kravchik wrote:
> Hi,
> I'm trying to set up a Linux running on uvmm with a HW passthrough.
> I added `zynqmp_firmware` to my DTS (it was required for the device I'm t=
rying to pass).
> However, Linux fails to add the device and I see:
> vm-1 | [ 1.772078] ledtrig-cpu: registered to indicate activity on CPUs
> vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc200003f a1=3D3f=
 ip=3Dffff800080026884 lr=3Dffff800080dcdb04
> vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc2000001 a1=3D0 =
ip=3Dffff800080026884 lr=3Dffff800080dcdb04
> vm-1 | [ 1.805957] zynqmp_firmware firmware:zynqmp-firmware: probe with d=
river zynqmp_firmware failed with error -22
>
> >From the traces I added, the failure is in `zynqmp_pm_get_api_version`.
>
> How do I add SMC handling?

You give uvmm in the Ned script: smc =3D L4.Env.arm_smc

And put this into you device tree:
   smccc_proxy {
       compatible =3D "l4vmm,smccc_proxy";
       l4vmm,smccc_cap =3D "smc";
       method =3D "smc";
   };

Note that L4.Env.arm_smc gives access to the real interface with all the
power that is behind it (the kernel only filters its range). So in a
longer run it might be necessary to have proxy for this interface, or
emulate the SMCs, or modify Linux to not use it, whatever fits best.



Adam

--_000_DB3PR08MB87960301E77A88BC44E0D016A5812DB3PR08MB8796eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div class=3D"elementToProof" style=3D"font-family: Calibri, Helvetica, san=
s-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks a lot, Adam!<br>
I added both and rebuilt the device tree, but now I'm getting:<br>
```<br>
vm-1 &nbsp; &nbsp;| VMM[smccc_proxy]: smccc_proxy</div>
<div class=3D"elementToProof" style=3D"font-family: Calibri, Helvetica, san=
s-serif; font-size: 12pt; color: rgb(0, 0, 0);">
vm-1 &nbsp; &nbsp;| VMM: smccc_proxy.l4vmm,smccc_cap: capability smc is inv=
alid.</div>
<div class=3D"elementToProof" style=3D"font-family: Calibri, Helvetica, san=
s-serif; font-size: 12pt; color: rgb(0, 0, 0);">
vm-1 &nbsp; &nbsp;| VMM[vm]: Device creation for virtual device smccc_proxy=
 failed. Disabling device.</div>
<div class=3D"elementToProof" style=3D"font-family: Calibri, Helvetica, san=
s-serif; font-size: 12pt; color: rgb(0, 0, 0);">
```<br>
Moshe</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Adam Lackorzynski &lt=
;[email protected]&gt;<br>
<b>Sent:</b> Monday, April 28, 2025 12:07 AM<br>
<b>To:</b> Moshe Kravchik &lt;[email protected]&gt;; [email protected].=
tu-dresden.de &lt;[email protected]&gt;<br>
<b>Subject:</b> Re: Linux fails on startup looking for SMC</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">Hi Moshe,<br>
<br>
On Sun Apr 27, 2025 at 15:32:53 +0000, Moshe Kravchik wrote:<br>
&gt; Hi,<br>
&gt; I'm trying to set up a Linux running on uvmm with a HW passthrough.<br=
>
&gt; I added `zynqmp_firmware` to my DTS (it was required for the device I'=
m trying to pass).<br>
&gt; However, Linux fails to add the device and I see:<br>
&gt; vm-1 | [ 1.772078] ledtrig-cpu: registered to indicate activity on CPU=
s<br>
&gt; vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc200003f a1=
=3D3f ip=3Dffff800080026884 lr=3Dffff800080dcdb04<br>
&gt; vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc2000001 a1=
=3D0 ip=3Dffff800080026884 lr=3Dffff800080dcdb04<br>
&gt; vm-1 | [ 1.805957] zynqmp_firmware firmware:zynqmp-firmware: probe wit=
h driver zynqmp_firmware failed with error -22<br>
&gt; <br>
&gt; &gt;From the traces I added, the failure is in `zynqmp_pm_get_api_vers=
ion`.<br>
&gt; <br>
&gt; How do I add SMC handling?<br>
<br>
You give uvmm in the Ned script: smc =3D L4.Env.arm_smc <br>
<br>
And put this into you device tree:<br>
&nbsp;&nbsp; smccc_proxy {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compatible =3D &quot;l4vmm,smccc_proxy=
&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l4vmm,smccc_cap =3D &quot;smc&quot;;<b=
r>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method =3D &quot;smc&quot;;<br>
&nbsp;&nbsp; };<br>
<br>
Note that L4.Env.arm_smc gives access to the real interface with all the<br=
>
power that is behind it (the kernel only filters its range). So in a<br>
longer run it might be necessary to have proxy for this interface, or<br>
emulate the SMCs, or modify Linux to not use it, whatever fits best.<br>
<br>
<br>
<br>
Adam<br>
</div>
</span></font></div>
</body>
</html>

--_000_DB3PR08MB87960301E77A88BC44E0D016A5812DB3PR08MB8796eurp_--

--===============5382111302259364021==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
l4-hackers mailing list -- [email protected]
To unsubscribe send an email to [email protected]

--===============5382111302259364021==--