On Mon Apr 28, 2025 at 05:25:34 +0000, Moshe Kravchik wrote: > 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. > Disabling device. > ```
This tells that the 'smc' cap is not there in uvmm. Is it there in the 'caps' table with which uvmm is started? There, where "ram = ..." is as well: caps = { ram = ...., smc = L4.Env.arm_smc, }, .... Additionally, in the microkernel, the CONFIG_ARM_SMC_USER option must also be enabled. Adam > Moshe > ________________________________ > From: Adam Lackorzynski <a...@l4re.org> > Sent: Monday, April 28, 2025 12:07 AM > To: Moshe Kravchik <mkravc...@hotmail.com>; l4-hackers@os.inf.tu-dresden.de > <l4-hackers@os.inf.tu-dresden.de> > 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 > > trying 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=0 a0=c200003f a1=3f > > ip=ffff800080026884 lr=ffff800080dcdb04 > > vm-1 | VMM[guest]: No handler for SMC call: imm=0 a0=c2000001 a1=0 > > ip=ffff800080026884 lr=ffff800080dcdb04 > > vm-1 | [ 1.805957] zynqmp_firmware firmware:zynqmp-firmware: probe with > > driver 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 = L4.Env.arm_smc > > And put this into you device tree: > smccc_proxy { > compatible = "l4vmm,smccc_proxy"; > l4vmm,smccc_cap = "smc"; > method = "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 _______________________________________________ l4-hackers mailing list -- l4-hackers@os.inf.tu-dresden.de To unsubscribe send an email to l4-hackers-le...@os.inf.tu-dresden.de