[U-Boot] [PATCH 8/8] dm: core: abolish u-boot, dm-pre-reloc property

Masahiro Yamada yamada.m at jp.panasonic.com
Tue Nov 18 13:51:38 CET 2014


Hi Simon,



On Mon, 17 Nov 2014 18:17:43 +0000
Simon Glass <sjg at chromium.org> wrote:

> Hi Masahiro,
> 
> On 17 November 2014 08:19, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
> > The driver model provides two ways to pass the device information,
> > platform data and device tree.  Either way works to bind devices and
> > drivers, but there is inconsistency in terms of how to pass the
> > pre-reloc flag.
> >
> > In the platform data way, the pre-reloc DM scan checks if each driver
> > has DM_FLAG_PRE_RELOC flag (this was changed to use U_BOOT_DRIVER_F
> > just before).  That is, each **driver** has the pre-reloc attribute.
> >
> > In the device tree control, the existence of "u-boot,dm-pre-reloc" is
> > checked for each device node.  The driver flag "DM_FLAG_PRE_RELOC" is
> > never checked.  That is, each **device** owns the pre-reloc attribute.
> >
> > Drivers should generally work both with platform data and device tree,
> > but this inconsistency has made our life difficult.
> 
> I feel we should use device tree where available, and only fall back
> to platform data when necessary (no device tree available for
> platform, for example).

No, it is true that device tree is a useful tool, but it should be optional.

All the infrastructures of drivers must work perfectly without device tree.

The device tree is just one choice of how to give device information.




> >
> > This commit abolishes "u-boot,dm-pre-reloc" property because:
> >
> >  - Having a U-Boot specific property makes it difficult to share the
> >    device tree sources between Linux and U-Boot.
> >
> >  - The number of devices is generally larger than that of drivers.
> >    Each driver often has multiple devices with different base
> >    addresses.  It seems more reasonable to add the pre-reloc attribute
> >    to drivers than devices.
> 
> The inability for platform data to specify which devices need to be
> pre-relocation is certainly a limitation. But I'm not sure that the
> solution is to remove that feature from the device tree. Prior to
> relocation memory may be severely limited. Things like GPIO and serial
> can create quite a few devices (e.g. Tegra has 16 for GPIO and 4 for
> serial), but only a subset may be needed before relocation (on Tegra
> only 2!).
> 
> I'm actually pretty comfortable with platform data having a limited
> subset of functionality, since I believe most platforms will use
> device tree for one reason or another.
> 
> Thoughts?
> 

No, it is not justified to compel to use device tree
unless Linux is the target OS.

Even in Linux, limited numbers of architrectures use device trees.






Best Regards
Masahiro Yamada



More information about the U-Boot mailing list