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


Reply via email to