• B
    sysreset: Remove DM_FLAG_PRE_RELOC flag in various drivers · ef329a6a
    Bin Meng 提交于
    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
    Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
    Reviewed-by: NSimon Glass <sjg@chromium.org>
    ef329a6a
efi_app.c 3.6 KB