From f49ddb67de5b6ff86ad080585bd835779521d647 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Wed, 24 Jan 2018 17:35:58 -0700 Subject: arch/x86: allow timestamp source to not be TSC Some x86 platforms don't have a TSC that is invariant w.r.t. rate to get accurate timestamps. As such a different timestamp is required. Therefore, allow one to specify non-TSC timestamp source and not compile in the default x86 TSC code. BUG=b:72378235,b:72170796 Change-Id: I737fcbba60665b3bc2b5864269536fda78b44d90 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/23423 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh Reviewed-by: Justin TerAvest --- src/arch/x86/Kconfig | 15 +++++++++++++++ src/arch/x86/Makefile.inc | 10 +++++----- 2 files changed, 20 insertions(+), 5 deletions(-) (limited to 'src/arch') diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig index c1390de145..f5bbd7827e 100644 --- a/src/arch/x86/Kconfig +++ b/src/arch/x86/Kconfig @@ -271,3 +271,18 @@ config ACPI_CPU_STRING Sets the ACPI name string in the processor scope as written by the acpigen function. Default is \_PR.CPxx. Note that you need the \ escape character in the string. + +config COLLECT_TIMESTAMPS_NO_TSC + bool + default n + depends on COLLECT_TIMESTAMPS + help + Use a non-TSC platform-dependent source for timestamps. + +config COLLECT_TIMESTAMPS_TSC + bool + default y if !COLLECT_TIMESTAMPS_NO_TSC + default n + depends on COLLECT_TIMESTAMPS + help + Use the TSC as the timestamp source. diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index 0f3eaf46b5..cc529b29cd 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -94,7 +94,7 @@ bootblock-y += boot.c bootblock-y += cpu_common.c bootblock-y += memcpy.c bootblock-y += memset.c -bootblock-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c +bootblock-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c bootblock-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c bootblock-y += id.S @@ -180,7 +180,7 @@ verstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c # which just calls verstage(). verstage-$(CONFIG_C_ENVIRONMENT_BOOTBLOCK) += verstage.c -verstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c +verstage-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c verstage-libs ?= @@ -211,7 +211,7 @@ romstage-y += memmove.c romstage-y += memset.c romstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c romstage-y += postcar_loader.c -romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c +romstage-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c ifneq ($(CONFIG_ROMCC),y) @@ -288,7 +288,7 @@ postcar-y += memset.c postcar-y += memlayout.ld postcar-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c postcar-y += postcar.c -postcar-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c +postcar-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c LDFLAGS_postcar += -Map $(objcbfs)/postcar.map @@ -339,7 +339,7 @@ ramstage-$(CONFIG_GENERATE_SMBIOS_TABLES) += smbios.c ramstage-y += tables.c ramstage-$(CONFIG_COOP_MULTITASKING) += thread.c ramstage-$(CONFIG_COOP_MULTITASKING) += thread_switch.S -ramstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c +ramstage-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c ramstage-$(CONFIG_HAVE_ACPI_RESUME) += wakeup.S smm-y += memcpy.c -- cgit v1.2.3