[PATCH 04/16] mips: add an option to support customized get_tbclk()
Weijie Gao
weijie.gao at mediatek.com
Wed Jan 8 04:01:09 CET 2020
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
--
2.17.1
More information about the U-Boot
mailing list