On 2026-07-01 16:59 +0300, Ilias Apalodimas wrote: > [...] > > > + > > +/** > > + * ffa_sync_send_receive_runtime() - Runtime implementation of > > + * ffa_sync_send_receive() > > + * @dst_part_id: destination partition ID > > + * @msg: pointer to the message data preallocated by the client (in/out) > > + * @is_smc64: select 64-bit or 32-bit FF-A ABI > > [...] > > Just out of curiocity. Why can't we use the runtime part in boot time > as well and keep one function? > > Thanks > /Ilias > Hi Ilias,
During boot, ffa_sync_send_receive() works through driver model. It uses the FF-A device, the probed bus state, and the normal U-Boot services. After ExitBootServices(), we cannot depend on driver model anymore. So ffa_sync_send_receive_runtime() only uses the small FF-A state copied into runtime memory and the runtime-safe SMC wrapper. We could use the runtime function during boot after setting up that state, but then boot-time users would bypass the normal FF-A driver path. I kept them separate so the boot path continues to use driver model, and only the runtime path uses the restricted runtime state. Thanks Harsimran Singh Tungal

