[PATCH 1/2] arm: mediatek: add SIP platform bininfo lookups

Macpaul Lin (林智斌) Macpaul.Lin at mediatek.com
Tue Apr 7 15:24:54 CEST 2026


On Mon, 2026-03-30 at 15:23 -0500, David Lechner wrote:
> Add a couple of functions to look up the segment and part name using
> SIP
> calls. These will be used to print more accurate CPU information in
> print_cpuinfo().
> 
> Signed-off-by: David Lechner <dlechner at baylibre.com>
> ---
>  arch/arm/mach-mediatek/cpu.c | 55
> ++++++++++++++++++++++++++++++++++++++++++++
>  arch/arm/mach-mediatek/cpu.h | 14 +++++++++++
>  2 files changed, 69 insertions(+)
> 
> diff --git a/arch/arm/mach-mediatek/cpu.c b/arch/arm/mach-
> mediatek/cpu.c
> index 8e8bc4f9cea..56a41e42df6 100644
> --- a/arch/arm/mach-mediatek/cpu.c
> +++ b/arch/arm/mach-mediatek/cpu.c
> @@ -8,6 +8,11 @@
>  #include <init.h>
>  #include <wdt.h>
>  #include <dm/uclass-internal.h>
> +#include <linux/arm-smccc.h>
> +#include <linux/types.h>
> +
> +#define MTK_SIP_PLAT_BINFO ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,
> ARM_SMCCC_SMC_64, \
> +					      ARM_SMCCC_OWNER_SIP,
> 0x529)
>  
>  int arch_cpu_init(void)
>  {
> @@ -21,3 +26,53 @@ void enable_caches(void)
>  	/* Enable D-cache. I-cache is already enabled in start.S */
>  	dcache_enable();
>  }
> +
> +/**
> + * mediatek_sip_part_name - get the part name
> + *
> + * Retrieve the part name of platform description.
> + *
> + * This only applicable to SoCs that support SIP plat binfo SMC
> call.
> + *
> + * Returns: the part name or 0 if error or no part name
> + */
> +u32 mediatek_sip_part_name(void)
> +{
> +	if (CONFIG_IS_ENABLED(TARGET_MT8188) ||
> CONFIG_IS_ENABLED(TARGET_MT8189) ||
> +	    CONFIG_IS_ENABLED(TARGET_MT8195) ||
> CONFIG_IS_ENABLED(TARGET_MT8365)) {
> +		struct arm_smccc_res res __maybe_unused;
> +
> +		arm_smccc_smc(MTK_SIP_PLAT_BINFO, 0, 0, 0, 0, 0, 0,
> 0, &res);
> +		if (res.a0)
> +			return 0;
> +
> +		return res.a1;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * mediatek_sip_segment_name - get the segment name
> + *
> + * Retrieve the segment name of platform description.
> + *
> + * This only applicable to SoCs that support SIP plat binfo SMC
> call.
> + *
> + * Returns: the segment name or 0 if error or no segment name
> + */
> +u32 mediatek_sip_segment_name(void)
> +{
> +	if (CONFIG_IS_ENABLED(TARGET_MT8188) ||
> CONFIG_IS_ENABLED(TARGET_MT8189) ||
> +	    CONFIG_IS_ENABLED(TARGET_MT8195) ||
> CONFIG_IS_ENABLED(TARGET_MT8365)) {
> +		struct arm_smccc_res res __maybe_unused;
> +
> +		arm_smccc_smc(MTK_SIP_PLAT_BINFO, 1, 0, 0, 0, 0, 0,
> 0, &res);
> +		if (res.a0)
> +			return 0;
> +
> +		return res.a1;
> +	}
> +
> +	return 0;
> +}
> diff --git a/arch/arm/mach-mediatek/cpu.h b/arch/arm/mach-
> mediatek/cpu.h
> new file mode 100644
> index 00000000000..768284e487f
> --- /dev/null
> +++ b/arch/arm/mach-mediatek/cpu.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2026 MediaTek Inc.
> + */
> +
> +#ifndef _MACH_MEDIATEK_CPU_H_
> +#define _MACH_MEDIATEK_CPU_H_
> +
> +#include <linux/types.h>
> +
> +u32 mediatek_sip_segment_name(void);
> +u32 mediatek_sip_part_name(void);
> +
> +#endif /* _MACH_MEDIATEK_CPU_H_ */
> 

Reviewed-by: Macpaul Lin <macpaul.lin at mediatek.com>

Thanks!
Macpaul Lin


More information about the U-Boot mailing list