Hi Fabien, On 10/9/19 10:36 AM, Fabien Dessenne wrote: > Load the optional resource table from the firmware, and write its > address in the dedicated backup register.
What processor is this? Reason I ask is that you are using 0 as a no resource table address, and if it is a valid address for that processor? regards Suman > > Signed-off-by: Fabien Dessenne <fabien.desse...@st.com> > --- > drivers/remoteproc/stm32_copro.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/remoteproc/stm32_copro.c > b/drivers/remoteproc/stm32_copro.c > index 40bba37..eef3416 100644 > --- a/drivers/remoteproc/stm32_copro.c > +++ b/drivers/remoteproc/stm32_copro.c > @@ -23,6 +23,7 @@ > * @hold_boot_offset: offset of the register controlling the hold > boot setting > * @hold_boot_mask: bitmask of the register for the hold boot field > * @is_running: is the remote processor running > + * @rsc_table_addr: resource table address > */ > struct stm32_copro_privdata { > struct reset_ctl reset_ctl; > @@ -30,6 +31,7 @@ struct stm32_copro_privdata { > uint hold_boot_offset; > uint hold_boot_mask; > bool is_running; > + ulong rsc_table_addr; > }; > > /** > @@ -141,6 +143,7 @@ static void *stm32_copro_device_to_virt(struct udevice > *dev, ulong da, > static int stm32_copro_load(struct udevice *dev, ulong addr, ulong size) > { > struct stm32_copro_privdata *priv; > + ulong rsc_table_size; > int ret; > > priv = dev_get_priv(dev); > @@ -155,6 +158,12 @@ static int stm32_copro_load(struct udevice *dev, ulong > addr, ulong size) > return ret; > } > > + if (rproc_elf32_load_rsc_table(dev, addr, size, &priv->rsc_table_addr, > + &rsc_table_size)) { > + priv->rsc_table_addr = 0; > + dev_warn(dev, "No valid resource table for this firmware\n"); > + } > + > return rproc_elf32_load_image(dev, addr, size); > } > > @@ -180,6 +189,10 @@ static int stm32_copro_start(struct udevice *dev) > * rebooting autonomously > */ > ret = stm32_copro_set_hold_boot(dev, true); > + if (!ret) > + /* Store rsc_address in bkp register */ > + writel(priv->rsc_table_addr, TAMP_COPRO_RSC_TBL_ADDRESS); > + > priv->is_running = !ret; > return ret; > } > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot