On 8/20/25 10:21, Daniel Baluta wrote: > Hi Rob, > > This patch will break IMX RPROC support. > <snip> > >> --- a/drivers/remoteproc/imx_rproc.c >> +++ b/drivers/remoteproc/imx_rproc.c > > <snip> >> static int imx_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) > <snip> > >> - priv->mem[b].cpu_addr = devm_ioremap_wc(&pdev->dev, res.start, resource_size(&res)); >> + priv->mem[b].cpu_addr = devm_ioremap_resource_wc(&pdev->dev, &res); > > devm_ioremap_resource_wc works only for IORESOURCE_MEM resources: > > lib/devres.c:124 > static void __iomem * > __devm_ioremap_resource(struct device *dev, const struct resource *res, > > » if (!res || resource_type(res) != IORESOURCE_MEM) { > » » ret = dev_err_probe(dev, -EINVAL, "invalid resource > %pR\n", res); > » » return IOMEM_ERR_PTR(ret); > » } > > while the devm_ioremap_wc doesn't care about this. > Hi All, > So we cannot use devm_ioremap_resource_wc here unless you add > IORESOURCE_MEM flags > to of_reserved_mem_region_to_resource as discussed here: Agree with Daniel, IORESOURCE_MEM flags should be set in of_reserved_mem_region_to_resource(). I got a similar issue since commit defe01abfb7f ("spi: stm32-ospi: Use of_reserved_mem_region_to_resource() for "memory-region") resource flags is unset, which causing the following error: [ 11.455387] stm32-ospi 40430000.spi: error -EINVAL: invalid resource [??? 0x60000000-0x6fffffff flags 0x0] Thanks Patrice > > https://lkml.org/lkml/2025/4/28/759 > > The same issue we are already experiencing with Sound Open Firmware > where the change was already merged > and we have a bug already reported. > > How should we fix this: > > 1) Add res->flags = IORESOURCE_MEM; in of_reserved_mem_region_to_resource > > OR > > 2) Use devm_ioremap_wc instead of devm_ioremap_resource_wc. > > thanks, > Daniel. > > > > Daniel.