Hi Ben, This problem sounds familiar. Perhaps Tom can explain this. I recall a patch recently related to DEVRES.
Commit 217cf65 dm: core: Default to using DEVRES outside of xPL Added Tom. All the best, Tony On Sun, May 24, 2026 at 6:21 PM Ben Schneider <[email protected]> wrote: > > Hi Stefan, > > On Monday, May 11th, 2026 at 12:45 PM, Tony Dinh <[email protected]> wrote: > > > Added Stefan (MVEBU SoC maintainer). > > > > > The first commit to cause problems is actually 217cf65 dm: > core: Default to using DEVRES outside of xPL. > > After a lot of testing, I think I've traced the issue to > drivers/pinctrl/mvebu/pinctrl-armada-37xx.c. There are two calls > to devm_kzalloc that, when I change to kzalloc and remove the dev > argument, my device boots again. > > --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c > +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c > @@ -523,8 +523,7 @@ static int armada_37xx_fill_func(struct > armada_37xx_pinctrl *info) > const char **groups; > int g; > > - funcs[n].groups = devm_kzalloc(info->dev, funcs[n].ngroups * > - sizeof(*(funcs[n].groups)), > + funcs[n].groups = kzalloc(funcs[n].ngroups * > sizeof(*(funcs[n].groups)), > GFP_KERNEL); > if (!funcs[n].groups) > return -ENOMEM; > @@ -724,7 +723,7 @@ static int armada_37xx_pinctrl_probe(struct udevice *dev) > * we allocate functions for number of pins and hope there are > * fewer unique functions than pins available > */ > - info->funcs = devm_kzalloc(info->dev, pin_data->nr_pins * > + info->funcs = kzalloc(pin_data->nr_pins * > sizeof(struct armada_37xx_pmx_func), GFP_KERNEL); > if (!info->funcs) > return -ENOMEM; > > I cannot explain why these changes resolve the issue so I'd > appreciate if someone more knowledgeable would review. > I'm also happy to test other proposed solutions. Thank you! > > Ben

