Hi Sebastian, > On Fri, Apr 17, 2026 at 06:57:59PM +0100, Yeoreum Yun wrote: > > Hello Yeoreum, > > > > When pKVM is enabled, the FF-A driver must be initialized after pKVM. > > Otherwise, pKVM cannot negotiate the FF-A version or > > obtain RX/TX buffer information, leading to failures in FF-A calls. > > At the moment this already happens after you move back ffa_init() to > device_initcall().
How? the kvm_arm_init() is device_initcall() if both built as built-in. > > > > > During FF-A driver initialization, check whether pKVM has been initialized. > > If not, defer probing of the FF-A driver. > > > > I don't think you need to add this dependency. pKVM is > installed through KVM's module_init() which ends up calling hyp_ffa_init() to > do the proxy initialization. The ARM-FFA driver comes after it (since > pKVM is arch specific code). We don't have to call finalize_pkvm(..) to > be able to handle smc(FF-A) calls in the hyp-proxy. > As Marc said, the before finalised_pkvm(), smc wouldn't be trapped to pKVM. IOW, in case when both built as built-in, if ffa_init() is called before finalised_pkvm(), it couldn't proxy the FFA_VERSION, FFA_RXTX_MAP and FFA_PARTITION_INFO_GET called by ffa_init(). How can you gurantee hyp_ffa_init() which is called by kvm_arm_init() comes first even kvm_arm_init() and ffa_init() are on device_initcall? [...] Thanks -- Sincerely, Yeoreum Yun

