On 6/4/2020 6:48 PM, Michael Walle wrote: > +static int caam_rng_read(struct udevice *dev, void *data, size_t len) > +{ > + struct caam_rng_platdata *pdata = dev_get_platdata(dev); > + u8 *buffer = data; > + size_t size; > + int ret; > + > + while (len) { > + ret = caam_rng_read_one(pdata); > + if (ret) > + return ret; > + > + size = min(len, (size_t)CAAM_RNG_MAX_FIFO_STORE_SIZE); > + > + memcpy(buffer, pdata->data, len); size instead of len.
> + buffer += size; > + len -= size; > + } > + > + return 0; > +} > + > +static int caam_rng_probe(struct udevice *dev) > +{ > + struct caam_rng_platdata *pdata = dev_get_platdata(dev); > + > + inline_cnstr_jobdesc_rng(pdata->desc, pdata->data, > + CAAM_RNG_MAX_FIFO_STORE_SIZE); flush_dcache_range() on pdata->desc would be needed, no? Horia