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 | 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 | 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 | 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 <= ;[email protected]><br> <b>Sent:</b> Monday, April 28, 2025 12:07 AM<br> <b>To:</b> Moshe Kravchik <[email protected]>; [email protected].= tu-dresden.de <[email protected]><br> <b>Subject:</b> Re: Linux fails on startup looking for SMC</font> <div> </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> > Hi,<br> > I'm trying to set up a Linux running on uvmm with a HW passthrough.<br= > > I added `zynqmp_firmware` to my DTS (it was required for the device I'= m trying to pass).<br> > However, Linux fails to add the device and I see:<br> > vm-1 | [ 1.772078] ledtrig-cpu: registered to indicate activity on CPU= s<br> > vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc200003f a1= =3D3f ip=3Dffff800080026884 lr=3Dffff800080dcdb04<br> > vm-1 | VMM[guest]: No handler for SMC call: imm=3D0 a0=3Dc2000001 a1= =3D0 ip=3Dffff800080026884 lr=3Dffff800080dcdb04<br> > vm-1 | [ 1.805957] zynqmp_firmware firmware:zynqmp-firmware: probe wit= h driver zynqmp_firmware failed with error -22<br> > <br> > >From the traces I added, the failure is in `zynqmp_pm_get_api_vers= ion`.<br> > <br> > 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> smccc_proxy {<br> compatible =3D "l4vmm,smccc_proxy= ";<br> l4vmm,smccc_cap =3D "smc";<b= r> method =3D "smc";<br> };<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==--