[PATCH 08/10] ARM: mvebu: clearfog: run-time selection of DT file

Stefan Roese sr at denx.de
Mon Jan 13 08:27:31 CET 2020


On 25.11.19 11:30, Baruch Siach wrote:
> Set the kernel device-tree file (fdtfile environment variable) based on
> run-time detection of the platform.
> 
> Signed-off-by: Baruch Siach <baruch at tkos.co.il>
> ---
>   arch/arm/mach-mvebu/Kconfig        |  1 +
>   board/solidrun/clearfog/clearfog.c | 14 ++++++++++++++
>   2 files changed, 15 insertions(+)
> 
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index fdd39685b75d..bc5eaa5a7679 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -91,6 +91,7 @@ choice
>   config TARGET_CLEARFOG
>   	bool "Support ClearFog"
>   	select 88F6820
> +	select BOARD_LATE_INIT
>   
>   config TARGET_HELIOS4
>   	bool "Support Helios4"
> diff --git a/board/solidrun/clearfog/clearfog.c b/board/solidrun/clearfog/clearfog.c
> index 852b1ad71bb2..00c1306e9c80 100644
> --- a/board/solidrun/clearfog/clearfog.c
> +++ b/board/solidrun/clearfog/clearfog.c
> @@ -265,3 +265,17 @@ int board_eth_init(bd_t *bis)
>   	cpu_eth_init(bis); /* Built in controller(s) come first */
>   	return pci_eth_init(bis);
>   }
> +
> +int board_late_init(void)
> +{
> +	read_tlv_data();
> +
> +	if (sr_product_is("Clearfog Base"))
> +		 env_set("fdtfile", "armada-388-clearfog-base.dtb");
> +	else if (sr_product_is("Clearfog GTR S4"))
> +		 env_set("fdtfile", "armada-385-clearfog-gtr-s4.dtb");
> +	else if (sr_product_is("Clearfog GTR L8"))
> +		 env_set("fdtfile", "armada-385-clearfog-gtr-l8.dtb");
> +
> +	return 0;
> +}
> 

Where does this sr_product_is() function come from? I might have missed
it in a previous patch - please point me to it, thanks.

Does it make sense to match string values here or wouldn't it be better
to match board ID's (enum)?

Thanks,
Stefan


More information about the U-Boot mailing list