GPT4 is a 32-bit timer and the counter of GPT4 will overflow in about 330 seconds (0xffffffff / 13MHz). Timer and delay functions will not work properly if the counter overflows. To fix that we should use the 64-bit timer (GPT6). BUG=b:80501386 BRANCH=none Test=emerge-elm coreboot; emerge-kukui coreboot Change-Id: I9f080e47253a1b1bab4636a45cb86c8666a25302 Signed-off-by: Tristan Shieh <tristan.shieh@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32245 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: You-Cheng Syu <youcheng@google.com>
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ##
 | |
| ## This file is part of the coreboot project.
 | |
| ##
 | |
| ## This program is free software; you can redistribute it and/or modify
 | |
| ## it under the terms of the GNU General Public License as published by
 | |
| ## the Free Software Foundation; version 2 of the License.
 | |
| ##
 | |
| ## This program is distributed in the hope that it will be useful,
 | |
| ## but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| ## GNU General Public License for more details.
 | |
| 
 | |
| choice
 | |
| 	prompt "Timer driver"
 | |
| 	default TIMER_NONE if !ARCH_X86
 | |
| 	default TIMER_RDTSC if ARCH_X86
 | |
| 
 | |
| config TIMER_RDTSC
 | |
| 	bool "x86 rdtsc"
 | |
| 	depends on ARCH_X86
 | |
| 
 | |
| config TIMER_NONE
 | |
| 	bool "None"
 | |
| 	help
 | |
| 	  The timer driver is provided by the payload itself.
 | |
| 
 | |
| config TIMER_MCT
 | |
| 	bool "Exynos MCT"
 | |
| 
 | |
| config TIMER_TEGRA_1US
 | |
| 	bool "Tegra 1us"
 | |
| 
 | |
| config TIMER_IPQ806X
 | |
| 	bool "Timer for ipq806x platforms"
 | |
| 
 | |
| config TIMER_IPQ40XX
 | |
| 	bool "Timer for ipq40xx platforms"
 | |
| 	help
 | |
| 	  This is the timer driver for QCA IPQ40xx based
 | |
| 	  platforms.
 | |
| 
 | |
| config TIMER_ARM64_ARCH
 | |
| 	bool "Architecture Timer for ARM64 platforms"
 | |
| 	help
 | |
| 	  The cntfrq register needs to have been pre-initialized.
 | |
| 
 | |
| config TIMER_RK3288
 | |
| 	bool "Timer for Rockchip RK3288"
 | |
| 
 | |
| config TIMER_RK3399
 | |
| 	bool "Timer for Rockchip RK3399"
 | |
| 
 | |
| config TIMER_IMG_PISTACHIO
 | |
| 	bool "Timer for IMG Pistachio"
 | |
| 
 | |
| config TIMER_MTK
 | |
| 	bool "Timer for MediaTek"
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| config TIMER_GENERIC_HZ
 | |
| 	int "Generic Timer Frequency"
 | |
| 	default 48000000 if TIMER_IPQ40XX
 | |
| 	default 6250000 if TIMER_IPQ806X
 | |
| 	default 24000000 if TIMER_MCT
 | |
| 	default 13000000 if TIMER_MTK
 | |
| 	default 24000000 if TIMER_RK3288
 | |
| 	default 24000000 if TIMER_RK3399
 | |
| 	default 1000000 if TIMER_TEGRA_1US
 | |
| 	default 0
 | |
| 	help
 | |
| 	  Clock frequency of generic time counter in Hertz. Leave at 0 to
 | |
| 	  disable when using a non-generic timer driver.
 | |
| 
 | |
| config TIMER_GENERIC_REG
 | |
| 	hex "Generic Timer Register Address"
 | |
| 	default 0x004A2000 if TIMER_IPQ40XX
 | |
| 	default 0x0200A028 if TIMER_IPQ806X
 | |
| 	default 0x101C0100 if TIMER_MCT
 | |
| 	default 0x10008068 if TIMER_MTK
 | |
| 	default 0xff810028 if TIMER_RK3288
 | |
| 	default 0xff850008 if TIMER_RK3399
 | |
| 	default 0x60005010 if TIMER_TEGRA_1US
 | |
| 	default 0x0
 | |
| 	help
 | |
| 	  Register address to read generic time counter from.
 | |
| 
 | |
| config TIMER_GENERIC_HIGH_REG
 | |
| 	hex "Generic Timer High Register Address"
 | |
| 	default 0x004A2004 if TIMER_IPQ40XX
 | |
| 	default 0x101C0104 if TIMER_MCT
 | |
| 	default 0x10008078 if TIMER_MTK
 | |
| 	default 0xff81002C if TIMER_RK3288
 | |
| 	default 0xff85000C if TIMER_RK3399
 | |
| 	default 0x0
 | |
| 	help
 | |
| 	  Register address to read high 32 bits of generic time counter from.
 | |
| 	  Leave at 0x0 for 32-bit counters.
 |