[U-Boot] [PATCH 00/13] dm: DM_FLAG_PRE_RELOC flag clean up

Simon Glass sjg at chromium.org
Sun Nov 4 22:00:39 UTC 2018


Hi Bin,

On 3 November 2018 at 03:48, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Sat, Nov 3, 2018 at 2:08 PM Simon Glass <sjg at chromium.org> wrote:
>>
>> Hi Bin,
>>
>> On 1 November 2018 at 20:25, Bin Meng <bmeng.cn at gmail.com> wrote:
>> > On Sun, Oct 28, 2018 at 9:31 PM Adam Ford <aford173 at gmail.com> wrote:
>> >>
>> >> On Wed, Oct 24, 2018 at 8:32 AM Bin Meng <bmeng.cn at gmail.com> wrote:
>> >> >
>> >> > When a driver declares DM_FLAG_PRE_RELOC flag, it wishes to be
>> >> > bound before relocation. However due to a bug in the DM core,
>> >> > the flag only takes effect when devices are statically declared
>> >> > via U_BOOT_DEVICE(). This bug has been fixed recently by commit
>> >> > "dm: core: Respect drivers with the DM_FLAG_PRE_RELOC flag in
>> >> > lists_bind_fdt()", but with the fix, it has a side effect that
>> >> > all existing drivers that declared DM_FLAG_PRE_RELOC flag will
>> >> > be bound before relocation now. This may expose potential boot
>> >> > failure on some boards due to insufficient memory during the
>> >> > pre-relocation stage.
>> >> >
>> >> > To mitigate this potential impact, the following changes are
>> >> > implemented:
>> >> >
>> >> > - Remove DM_FLAG_PRE_RELOC flag in the driver, if the driver
>> >> >   only supports configuration from device tree (OF_CONTROL)
>> >> > - Keep DM_FLAG_PRE_RELOC flag in the driver only if the device
>> >> >   is statically declared via U_BOOT_DEVICE()
>> >> > - Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check, for
>> >> >   drivers that support both statically declared devices and
>> >> >   configuration from device tree
>> >> >
>> >> > This series should be applied on top of u-boot-dm/master, for
>> >> > v2018.11 release.
>> >> >
>> >> >
>> >> > Bin Meng (13):
>> >> >   arm: stm32mp: Remove DM_FLAG_PRE_RELOC flag
>> >> >   clk: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   gpio: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   i2c: omap24xx: Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check
>> >> >   mmc: omap: Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check
>> >> >   pinctrl: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   ram: bmips: Remove DM_FLAG_PRE_RELOC flag
>> >> >   timer: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   serial: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   sysreset: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   video: simplefb: Remove DM_FLAG_PRE_RELOC flag
>> >> >   watchdog: Remove DM_FLAG_PRE_RELOC flag in various drivers
>> >> >   dm: doc: Update description of pre-relocation support
>> >> >
>> >>
>> >> This works just fine for me on the am3517_evm and the omap3_logic boards.
>> >>
>> >> Tested-by Adam Ford <aford173 at gmailcom>
>> >>
>> >
>> > Thanks Adam and Stephen's testing.
>> >
>> > Simon,
>> >
>> > Looks we don't have too much time before release, would you please
>> > test and send the PR?
>> >
>> > Another series (http://patchwork.ozlabs.org/project/uboot/list/?series=70686)
>> > needs to be pulled in to unblock x86 too.
>>
>> I had assumed we could wait to the next release.
>>
>> Could you please explain what you are wanting me to do here?
>
> Short version:
> As I mentioned in this series' cover letter, "This series should be
> applied on top of u-boot-dm/master, for v2018.11 release.". The other
> x86 series should be applied for this release too.
>
> The long story:
>
> In [1] I said: "It looks that I have to send out a fix to correct
> Tegra in this release now, and leave other clean ups in next
> release.", was because I think the clean up changes are massive and
> only Stephen reported the Tegra was broken by previous series [2]
> which was applied in *u-boot-dm/master* so initially I only wanted to
> send out the Tegra fixes. However later Stefan reported in [3] that
> some x86 boards just don't boot with *u-boot/mater*. Then I had a look
> and suggested adding DM_FLAG_PRE_RELOC flag to x86 CPU drivers, which
> was the x86 fixes series [4] I mentioned above. However the issue is
> that without my fix in series [2], the x86 fix just doesn't work. Then
> I mentioned that in [5] I said "I spent some time to clean up all
> driver usage about DM_FLAG_PRE_RELOC flag" and it should fix Tegra
> (reported) as well as other potential (un-reported) broken.
>
> [1] https://lists.denx.de/pipermail/u-boot/2018-October/345085.html
> [2] http://patchwork.ozlabs.org/project/uboot/list/?series=70150&state=*&q=&archive=both
> [3] https://lists.denx.de/pipermail/u-boot/2018-October/344266.html
> [4] http://patchwork.ozlabs.org/project/uboot/list/?series=70686
> [5] https://lists.denx.de/pipermail/u-boot/2018-October/345479.html
>
> Note both my previous series [2] and x86 fix series [4] are attempting
> to fix the side effect brought up by c0434407b595 ("board_f: Use
> static print_cpuinfo if CONFIG_CPU is active") which was part of the
> MPC83xx CPU uclass driver support. So the root cause is the MPC83xx
> changes. But I am not sure if we can revert that patch easily now, as
> I suspect many later commits are dependent on that one, and we may
> break some more stuff if we revert that. Up to now, I see some
> 'Tested-by' tags were provided for this series, I think we are good to
> go.
>
> Does this make sense?

OK yes I get it. I've pulled these into dm/testing and will do a pull
request tomorrow for Tom.

Regards,
Simon


More information about the U-Boot mailing list