Re: [PATCH v4 12/17] remoteproc: modify vring allocation to rely on centralized carveout allocator

From: Bjorn Andersson
Date: Mon Oct 15 2018 - 02:37:49 EST


On Wed 10 Oct 11:58 PDT 2018, Loic PALLARDY wrote:

>
>
> > -----Original Message-----
> > From: Bjorn Andersson [mailto:bjorn.andersson@xxxxxxxxxx]
> > Sent: mercredi 10 octobre 2018 07:32
> > To: Loic PALLARDY <loic.pallardy@xxxxxx>
> > Cc: ohad@xxxxxxxxxx; linux-remoteproc@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx; Arnaud POULIQUEN <arnaud.pouliquen@xxxxxx>;
> > benjamin.gaignard@xxxxxxxxxx; s-anna@xxxxxx
> > Subject: Re: [PATCH v4 12/17] remoteproc: modify vring allocation to rely on
> > centralized carveout allocator
> >
> > On Fri 27 Jul 06:14 PDT 2018, Loic Pallardy wrote:
> > > int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw)
> > > diff --git a/drivers/remoteproc/remoteproc_virtio.c
> > b/drivers/remoteproc/remoteproc_virtio.c
> > [..]
> > > @@ -114,6 +122,10 @@ static struct virtqueue *rp_find_vq(struct
> > virtio_device *vdev,
> > > rvring->vq = vq;
> > > vq->priv = rvring;
> > >
> > > + /* Update vring in resource table */
> > > + rsc = (void *)rproc->table_ptr + rvdev->rsc_offset;
> > > + rsc->vring[id].da = mem->da;
> > > +
> >
> > This would now happen after we've started the remoteproc. Don't we need
> > to do this in-between allocating the carveouts and booting the
> > remoteproc?
>
> Yes da is updated after coprocessor boot, but before vdev status in resource table is set to DRIVER_OK and kick.
> Coprocessor should not parse this resource before as vrings not initialized yet.
> If coprocessor needs to get some information about vring carveout at boot time, carveout resources named vdev"x"vring"y" should be added to firmware resource table.
> In that case information will be filled before coprocessor boot.
>

Makes sense, thanks for clarifying. Applied.

Regards,
Bjorn