diff options
author | Aaron Durbin <adurbin@chromium.org> | 2018-01-24 17:35:58 -0700 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2018-01-25 22:36:54 +0000 |
commit | f49ddb67de5b6ff86ad080585bd835779521d647 (patch) | |
tree | 5a97fb507e2388f4bb77cd43b03232539e779255 /src/arch/x86 | |
parent | f70c1bf69a6f1938d39a5a7e7f7679b5e5187e6d (diff) |
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 <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/23423
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/Kconfig | 15 | ||||
-rw-r--r-- | src/arch/x86/Makefile.inc | 10 |
2 files changed, 20 insertions, 5 deletions
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 |