[PATCH 04/16] mips: add an option to support customized get_tbclk()

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Wed Jan 8 15:32:38 CET 2020



Am 08.01.20 um 04:01 schrieb Weijie Gao:
> Some systems boot up at a very low CPU frequency and set up a higher CPU
> frequency in lowlevel initialization.
> 
> Currently get_tbclk() uses a fixed value (CONFIG_SYS_MIPS_TIMER_FREQ)
> for MIPS architercture, and CONFIG_SYS_MIPS_TIMER_FREQ is usually related
> to the higher CPU frequency. If udelay() is used before setting up CPU
> frequency, it will be very inaccurate.
> 
> This patch adds an option to allow a mach to define its own get_tbclk().
> 
> Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
> ---
>  arch/mips/Kconfig    | 8 ++++++++
>  arch/mips/cpu/time.c | 2 ++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 4688717593..52afbf79c5 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -502,6 +502,14 @@ config MIPS_BOOT_CONFIG_WORD1
>  	help
>  	  Value which is inserted as boot config word 1.
>  
> +config MIPS_OVERRIDE_GET_TBCLK
> +	bool
> +	default n
> +	help
> +	  Select this if you want to override the default get_tbclk() for your
> +	  system. This usually means the timer frequency of your system may
> +	  change in different boot stage.
> +
>  endif
>  
>  endmenu
> diff --git a/arch/mips/cpu/time.c b/arch/mips/cpu/time.c
> index af324f77ce..61d1cd9ec0 100644
> --- a/arch/mips/cpu/time.c
> +++ b/arch/mips/cpu/time.c
> @@ -12,7 +12,9 @@ unsigned long notrace timer_read_counter(void)
>  	return read_c0_count();
>  }
>  
> +#ifndef CONFIG_MIPS_OVERRIDE_GET_TBCLK
>  ulong notrace get_tbclk(void)
>  {
>  	return CONFIG_SYS_MIPS_TIMER_FREQ;
>  }
> +#endif
> 

you can drop this patch. I already applied [1] because there was another
request to make this function weak.

[1] https://patchwork.ozlabs.org/patch/1215073/

-- 
- Daniel


More information about the U-Boot mailing list