[PATCH V2 2/2] imx8mp_evk: simplify board spl code

Fabio Estevam festevam at gmail.com
Mon May 11 14:14:16 CEST 2020


Hi Peng,

On Mon, May 11, 2020 at 3:55 AM Peng Fan <peng.fan at nxp.com> wrote:
>
> Simplify board SPL code
>  - BSS area will be cleared by crt0_64.S
>  - No need to get ccm device in spl_board_init
>  - Use spl_early_init, not spl_init
>  - timer_init has been invoked in arch_cpu_init

These are several changes in the same patch. It would be better to split them.

>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> ---
>
> V2:
>  Fix build warning
>
>  board/freescale/imx8mp_evk/spl.c | 30 ++----------------------------
>  1 file changed, 2 insertions(+), 28 deletions(-)
>
> diff --git a/board/freescale/imx8mp_evk/spl.c b/board/freescale/imx8mp_evk/spl.c
> index c5f640dc7b..7b02f43d95 100644
> --- a/board/freescale/imx8mp_evk/spl.c
> +++ b/board/freescale/imx8mp_evk/spl.c
> @@ -25,11 +25,6 @@
>  #include <mmc.h>
>  #include <asm/arch/ddr.h>
>
> -#include <dm/uclass.h>
> -#include <dm/device.h>
> -#include <dm/uclass-internal.h>
> -#include <dm/device-internal.h>
> -
>  DECLARE_GLOBAL_DATA_PTR;
>
>  int spl_board_boot_device(enum boot_device boot_dev_spl)
> @@ -44,16 +39,7 @@ void spl_dram_init(void)
>
>  void spl_board_init(void)
>  {
> -       struct udevice *dev;
> -       int ret;
> -
>         puts("Normal Boot\n");
> -
> -       ret = uclass_get_device_by_name(UCLASS_CLK,
> -                                       "clock-controller at 30380000",
> -                                       &dev);

We need this for the SPL watchdog driver, no?

I tried selecting CONFIG_SPL_CLK_IMX8MP=y and then the board does not
boot anymore, so it looks like we need a better solution.

> -       if (ret < 0)
> -               printf("Failed to find clock node. Check device tree\n");
>  }
>
>  #define I2C_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PE)
> @@ -114,29 +100,19 @@ int board_fit_config_name_match(const char *name)
>  }
>  #endif
>
> +/* Do not use BSS area in this phase */
>  void board_init_f(ulong dummy)
>  {
> -       int ret;
> -
>         arch_cpu_init();
>
>         init_uart_clk(1);
>
>         board_early_init_f();
>
> -       timer_init();
> +       spl_early_init();

You should check the returned value from spl_early_init().

If you send a v2, could you please:

Thanks


More information about the U-Boot mailing list