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