On 27/11/2020 17:28, Stefan Agner wrote:
> From: Pascal Vizeli <[email protected]>
> 
> Add SoC revision to environment. This can be useful to select the
> correct device tree at runtime (N2/N2+).
> 
> Signed-off-by: Pascal Vizeli <[email protected]>
> Signed-off-by: Stefan Agner <[email protected]>
> ---
> 
>  arch/arm/include/asm/arch-meson/boot.h |  4 ++++
>  arch/arm/mach-meson/board-info.c       | 12 ++++++++++++
>  board/amlogic/odroid-n2/odroid-n2.c    |  5 +++++
>  3 files changed, 21 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-meson/boot.h 
> b/arch/arm/include/asm/arch-meson/boot.h
> index a90fe55081..c67d12d06c 100644
> --- a/arch/arm/include/asm/arch-meson/boot.h
> +++ b/arch/arm/include/asm/arch-meson/boot.h
> @@ -7,6 +7,8 @@
>  #ifndef __MESON_BOOT_H__
>  #define __MESON_BOOT_H__
>  
> +#include <linux/types.h>
> +
>  /* Boot device */
>  #define BOOT_DEVICE_RESERVED    0
>  #define BOOT_DEVICE_EMMC        1
> @@ -17,4 +19,6 @@
>  
>  int meson_get_boot_device(void);
>  
> +int meson_get_soc_rev(char *buff, size_t buff_len);
> +
>  #endif /* __MESON_BOOT_H__ */
> diff --git a/arch/arm/mach-meson/board-info.c 
> b/arch/arm/mach-meson/board-info.c
> index a0bcf38f29..90e7dfaa3c 100644
> --- a/arch/arm/mach-meson/board-info.c
> +++ b/arch/arm/mach-meson/board-info.c
> @@ -187,3 +187,15 @@ int show_board_info(void)
>  
>       return 0;
>  }
> +
> +int meson_get_soc_rev(char *buff, size_t buff_len)
> +{
> +     unsigned int socinfo;
> +
> +     socinfo = get_socinfo();
> +     if (!socinfo)
> +             return -1;
> +
> +     /* Write SoC info */
> +     return snprintf(buff, buff_len, "%x", socinfo_to_minor(socinfo));
> +}
> diff --git a/board/amlogic/odroid-n2/odroid-n2.c 
> b/board/amlogic/odroid-n2/odroid-n2.c
> index caf7fd6810..dc0d933a39 100644
> --- a/board/amlogic/odroid-n2/odroid-n2.c
> +++ b/board/amlogic/odroid-n2/odroid-n2.c
> @@ -12,6 +12,7 @@
>  #include <asm/io.h>
>  #include <asm/arch/sm.h>
>  #include <asm/arch/eth.h>
> +#include <asm/arch/boot.h>
>  
>  #define EFUSE_MAC_OFFSET     20
>  #define EFUSE_MAC_SIZE               12
> @@ -23,6 +24,10 @@ int misc_init_r(void)
>       char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
>       ssize_t len;
>  
> +     if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) &&
> +         meson_get_soc_rev(tmp, sizeof(tmp)) > 0)
> +             env_set("soc_rev", tmp);
> +
>       meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
>  
>       if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
> 

Reviewed-by: Neil Armstrong <[email protected]>

Applying it u-boot-amlogic-next

Thanks !

Neil

Reply via email to