[PATCH 2/2] meson: Add soc_rev to environment
Neil Armstrong
narmstrong at baylibre.com
Fri Nov 27 17:35:09 CET 2020
On 27/11/2020 17:28, Stefan Agner wrote:
> From: Pascal Vizeli <pvizeli at syshack.ch>
>
> Add SoC revision to environment. This can be useful to select the
> correct device tree at runtime (N2/N2+).
>
> Signed-off-by: Pascal Vizeli <pvizeli at syshack.ch>
> Signed-off-by: Stefan Agner <stefan at agner.ch>
> ---
>
> 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 <narmstrong at baylibre.com>
Applying it u-boot-amlogic-next
Thanks !
Neil
More information about the U-Boot
mailing list