aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2018-01-24 17:35:58 -0700
committerAaron Durbin <adurbin@chromium.org>2018-01-25 22:36:54 +0000
commitf49ddb67de5b6ff86ad080585bd835779521d647 (patch)
tree5a97fb507e2388f4bb77cd43b03232539e779255 /src/arch/x86
parentf70c1bf69a6f1938d39a5a7e7f7679b5e5187e6d (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/Kconfig15
-rw-r--r--src/arch/x86/Makefile.inc10
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