[PATCH 15/20] dm: core: Convert #ifdef to if() in root.c

Michal Simek monstr at monstr.eu
Wed Nov 4 13:55:50 CET 2020


Hi Simon,

so 3. 10. 2020 v 19:35 odesílatel Simon Glass <sjg at chromium.org> napsal:
>
> Convert a few conditions to use compile-time checks to reduce the number
> of build paths.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  drivers/core/root.c | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/core/root.c b/drivers/core/root.c
> index e8df5aebe84..5f10d7a39c7 100644
> --- a/drivers/core/root.c
> +++ b/drivers/core/root.c
> @@ -50,7 +50,6 @@ void dm_fixup_for_gd_move(struct global_data *new_gd)
>         }
>  }
>
> -#if defined(CONFIG_NEEDS_MANUAL_RELOC)
>  void fix_drivers(void)
>  {
>         struct driver *drv =
> @@ -129,8 +128,6 @@ void fix_devices(void)
>         }
>  }
>
> -#endif
> -
>  int dm_init(bool of_live)
>  {
>         int ret;
> @@ -141,11 +138,11 @@ int dm_init(bool of_live)
>         }
>         INIT_LIST_HEAD(&DM_UCLASS_ROOT_NON_CONST);
>
> -#if defined(CONFIG_NEEDS_MANUAL_RELOC)
> -       fix_drivers();
> -       fix_uclass();
> -       fix_devices();
> -#endif
> +       if (IS_ENABLED(CONFIG_NEEDS_MANUAL_RELOC)) {
> +               fix_drivers();
> +               fix_uclass();
> +               fix_devices();
> +       }

This change is causing a hang on the Microblaze system.
CONFIG_NEEDS_MANUAL_RELOC is out of Kconfig that's why likely this
condition is not handled properly.

U-Boot 2021.01-rc1-00211-g63677927bf26-dirty (Nov 04 2020 - 13:46:33 +0100)

Model: Xilinx MicroBlaze
DRAM:  1 GiB
Error binding driver 'axi_emac': -12
Error binding driver 'xlnx_gpio': -12
Error binding driver 'xlnx_gpio': -12
Error binding driver 'xlnx_gpio': -12
Error binding driver 'xlnx_gpio': -12
Error binding driver 'xlnx_gpio': -12
Error binding driver 'ns16550_serial': -12
Error binding driver 'gpio_restart': -12
Some drivers failed to bind
Error binding driver 'simple_bus': -12
Some drivers failed to bind
initcall sequence bffeec9c failed at call 85016230 (err=-12)
### ERROR ### Please RESET the board ###

Thanks,
Michal


More information about the U-Boot mailing list