
Hi Angus,
On Sat, 19 Mar 2022 at 09:18, Angus Ainslie angus@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 sjg@chromium.org wrote:
On Mon, 28 Feb 2022 at 13:33, Angus Ainslie angus@akkea.ca wrote:
Add a CONFIG_SPL_DEVRES option
Signed-off-by: Angus Ainslie angus@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