Hi Angus, On Sat, 19 Mar 2022 at 09:18, Angus Ainslie <an...@akkea.ca> wrote: > > On 2022-03-19 07:15, Angus Ainslie wrote: > > Hi Simon, > > > > On 2022-03-18 15:41, Simon Glass wrote: > >> Hi Angus, > >> > >> On Tue, 1 Mar 2022 at 07:58, Simon Glass <s...@chromium.org> wrote: > >>> > >>> On Mon, 28 Feb 2022 at 13:33, Angus Ainslie <an...@akkea.ca> wrote: > >>> > > >>> > Add a CONFIG_SPL_DEVRES option > >>> > > >>> > Signed-off-by: Angus Ainslie <an...@akkea.ca> > >>> > --- > >>> > > >>> > Changes since v1: > >>> > > >>> > Instead of gaurding the source add an SPL_DEVRES option > >>> > > >>> > drivers/core/Kconfig | 13 +++++++++++++ > >>> > drivers/core/Makefile | 2 +- > >>> > 2 files changed, 14 insertions(+), 1 deletion(-) > >> > >> Unfortunately this break the tests, e.g. building sandbox_spl - can > >> you please take a look? > >> > >> sandbox_spl: +make O=build-sandbox_spl -s sandbox_spl_defconfig > >> +make O=build-sandbox_spl -s -j4 > >> /usr/bin/ld: /tmp/ccsYY64W.ltrans0.ltrans.o: in function > >> `device_unbind': > >> build-sandbox_spl/spl/../../drivers/core/device-remove.c:120: > >> undefined reference to `devres_release_all' > >> /usr/bin/ld: /tmp/ccsYY64W.ltrans0.ltrans.o: in function > >> `device_free': > >> build-sandbox_spl/spl/../../drivers/core/device-remove.c:157: > >> undefined reference to `devres_release_probe' > >> collect2: error: ld returned 1 exit status > >> make[3]: *** [../scripts/Makefile.spl:509: spl/u-boot-spl] Error 1 > >> make[2]: *** [Makefile:2094: spl/u-boot-spl] Error 2 > >> make[1]: *** [Makefile:177: sub-make] Error 2 > >> Exit code: 2 > >> > > > > So the problem here is that CONFIG_DM_DEVICE_REMOVE can be defined > > without CONFIG_DEVRES being defined. > > > > Is there a way to make DM_DEVICE_REMOVE dependant on DEVRES or do I > > need to add "&& CONFIG_IS_ENABLED(DEVRES)" everywhere that I find > > "CONFIG_IS_ENABLED(DM_DEVICE_REMOVE)" ? > > > > The test failure can be "fixed" using this > > diff --git a/configs/sandbox_noinst_defconfig > b/configs/sandbox_noinst_defconfig > index ec912cf0ec8..69c97921744 100644 > --- a/configs/sandbox_noinst_defconfig > +++ b/configs/sandbox_noinst_defconfig > @@ -105,6 +105,7 @@ CONFIG_SYSCON=y > CONFIG_SPL_SYSCON=y > CONFIG_DEVRES=y > CONFIG_DEBUG_DEVRES=y > +CONFIG_SPL_DEVRES=y > # CONFIG_SPL_SIMPLE_BUS is not set > CONFIG_ADC=y > CONFIG_ADC_SANDBOX=y > diff --git a/configs/sandbox_spl_defconfig > b/configs/sandbox_spl_defconfig > index 1687ccf4530..2fcda46dfd1 100644 > --- a/configs/sandbox_spl_defconfig > +++ b/configs/sandbox_spl_defconfig > @@ -107,6 +107,7 @@ CONFIG_SYSCON=y > CONFIG_SPL_SYSCON=y > CONFIG_DEVRES=y > CONFIG_DEBUG_DEVRES=y > +CONFIG_SPL_DEVRES=y > # CONFIG_SPL_SIMPLE_BUS is not set > CONFIG_ADC=y > CONFIG_ADC_SANDBOX=y > > But is that the right way based on the questions above ?
I just sent a patch to update DEVRES to only be enabled on SPL. I think DM_DEVICE_REMOVE should not depend on DEVRES., but perhaps the other way around would make sense? Regards, Simon