[PATCH v3 6/6] remoteproc: k3-r5: Implement is_running operation

Philippe Schenker dev at pschenker.ch
Wed Nov 12 14:49:46 CET 2025



On Tue, 2025-11-11 at 10:11 -0600, Andrew Davis wrote:
> On 11/11/25 1:16 AM, Philippe Schenker wrote:
> > From: Philippe Schenker <philippe.schenker at impulsing.ch>
> > 
> > Add is_running callback to query the R5F core halt status via the
> > TI-SCI processor control API. This allows the remoteproc framework
> > to determine whether the R5F core is currently runnin.
> > 
> > The core is considered running when the
> > PROC_BOOT_CTRL_FLAG_R5_CORE_HALT
> > bit is not set in the control flags.
> > 
> > Signed-off-by: Philippe Schenker <philippe.schenker at impulsing.ch>
> > 
> > ---
> > 
> > Changes in v3:
> > - Implemented Andrew's suggestion to assign size before casting for
> >    memory safety.
> > - Added Anshul's Reviewed-by, thanks!
> > 
> > Changes in v2:
> > - Made sure there are no build-warnings caused by this series.
> > 
> >   drivers/remoteproc/ti_k3_r5f_rproc.c | 17 +++++++++++++++++
> >   1 file changed, 17 insertions(+)
> > 
> > diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c
> > b/drivers/remoteproc/ti_k3_r5f_rproc.c
> > index c6356729e9db..7326f5a4b30b 100644
> > --- a/drivers/remoteproc/ti_k3_r5f_rproc.c
> > +++ b/drivers/remoteproc/ti_k3_r5f_rproc.c
> > @@ -573,6 +573,22 @@ static void *k3_r5f_da_to_va(struct udevice
> > *dev, ulong da, ulong size, bool *is
> >    return map_physmem(da, size, MAP_NOCACHE);
> >   }
> >   
> > +static int k3_r5f_is_running(struct udevice *dev)
> > +{
> > + struct k3_r5f_core *core = dev_get_priv(dev);
> > + u32 cfg, ctrl, sts;
> > + u64 boot_vec;
> > + int ret;
> > +
> > + dev_dbg(dev, "%s\n", __func__);
> 
> This debug statement doesn't do much other than note when the
> function is called, which can be done with other tracing methods.
> Either drop it or have it also print something useful like the
> status of the core (running / not running).

Hi Andrew, and thanks for also looking at this patch! I actually put
that dev_dbg() there to be in line with all the other functions in this
file. They all have this. 

I'll keep it for consistency with the existing functions, but I agree
these could all be cleaned up in a future refactoring patch.

> 
> Other than that LGTM,
> 
> Reviewed-by: Andrew Davis <afd at ti.com>
> 
> BTW this function would be the same for all the ti_k3_* rproc
> drivers, in Linux all these were factored out to common K3 helpers,
> might be a good refactor for here in U-Boot also..

Thanks! Good to know, if I touch it again I can refactor those common
functions out like on kernel.

Philippe

> > +
> > + ret = ti_sci_proc_get_status(&core->tsp, &boot_vec, &cfg, &ctrl,
> > &sts);
> > + if (ret)
> > + return -1;
> > +
> > + return !!(ctrl & PROC_BOOT_CTRL_FLAG_R5_CORE_HALT);
> > +}
> > +
> >   static int k3_r5f_init(struct udevice *dev)
> >   {
> >    return 0;
> > @@ -590,6 +606,7 @@ static const struct dm_rproc_ops
> > k3_r5f_rproc_ops = {
> >    .stop = k3_r5f_stop,
> >    .load = k3_r5f_load,
> >    .device_to_virt = k3_r5f_da_to_va,
> > + .is_running = k3_r5f_is_running,
> >   };
> >   
> >   static int k3_r5f_rproc_configure(struct k3_r5f_core *core)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: This is a digitally signed message part
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20251112/1355a1b9/attachment.sig>


More information about the U-Boot mailing list