problems with boards with CONFIG_DM disabled

Marek Behun marek.behun at nic.cz
Wed May 26 02:25:54 CEST 2021


On Wed, 26 May 2021 01:27:56 +0200
Marek Behun <marek.behun at nic.cz> wrote:

> Tom, Simon,
> 
> now that LTO is merged I am working on
>   Support SPI NORs and OF partitions in `mtd list`
> 
> but CI fails for some boards, see
> https://github.com/u-boot/u-boot/pull/55
> 
> The reason is that there are still several boards which do not use
> CONFIG_DM.
> 
> On the previous version Simon commented that I should use
>   if (IS_ENABLED(...))
> instead of
>   #if
> but this does not currently work for those boards with CONFIG_DM
> disabled (struct udevice's members are not visible at all, and
> functions from dm/device.h do not exist).
> 
> There are multiple possible workarounds:
> - use #if (until all boards are at CONFIG_DM)
> - create static inline versions of functions from dm/device.h returning
>   failures when CONFIG_DM is not set (this would be rather big :( )
> - wait till all those boards with CONFIG_DM disabled are removed
> - ...

Since there is rather a large number of defconfigs with CONFIG_DM
disabled, and since the relevant code was rather complex

	if (!is_part && dev && mtd->dev == dev) ||
	    !strcmp(name, mtd->name) ||
	    (is_part && mtd->dev && !strcmp(name, mtd->dev->name))

I moved the code into a separate name matching function and for now
created a non-DM version.

Hopefully this will be acceptable and pass CI.

Marek


More information about the U-Boot mailing list