> -----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. Regards, Loic > > Regards, > Bjorn