x86: Convert to use driver model timer
Convert all x86 boards to use driver model tsc timer. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
881c124ab8
commit
80af39842e
@ -28,9 +28,6 @@ int arch_cpu_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
post_code(POST_CPU_INIT);
|
post_code(POST_CPU_INIT);
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
timer_set_base(rdtsc());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = x86_cpu_init_f();
|
ret = x86_cpu_init_f();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -27,28 +27,6 @@ static struct timestamp_table *ts_table __attribute__((section(".data")));
|
|||||||
|
|
||||||
void timestamp_init(void)
|
void timestamp_init(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
uint64_t base_time;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ts_table = lib_sysinfo.tstamp_table;
|
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
/*
|
|
||||||
* If coreboot is built with CONFIG_COLLECT_TIMESTAMPS, use the value
|
|
||||||
* of base_time in coreboot's timestamp table as our timer base,
|
|
||||||
* otherwise TSC counter value will be used.
|
|
||||||
*
|
|
||||||
* Sometimes even coreboot is built with CONFIG_COLLECT_TIMESTAMPS,
|
|
||||||
* the value of base_time in the timestamp table is still zero, so
|
|
||||||
* we must exclude this case too (this is currently seen on booting
|
|
||||||
* coreboot in qemu)
|
|
||||||
*/
|
|
||||||
if (ts_table && ts_table->base_time)
|
|
||||||
base_time = ts_table->base_time;
|
|
||||||
else
|
|
||||||
base_time = rdtsc();
|
|
||||||
timer_set_base(base_time);
|
|
||||||
#endif
|
|
||||||
timestamp_add_now(TS_U_BOOT_INITTED);
|
timestamp_add_now(TS_U_BOOT_INITTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,10 +10,6 @@
|
|||||||
|
|
||||||
int arch_cpu_init(void)
|
int arch_cpu_init(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
timer_set_base(rdtsc());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,6 @@ static void set_spi_speed(void)
|
|||||||
int arch_cpu_init(void)
|
int arch_cpu_init(void)
|
||||||
{
|
{
|
||||||
post_code(POST_CPU_INIT);
|
post_code(POST_CPU_INIT);
|
||||||
timer_set_base(rdtsc());
|
|
||||||
|
|
||||||
return x86_cpu_init_f();
|
return x86_cpu_init_f();
|
||||||
}
|
}
|
||||||
|
@ -64,9 +64,6 @@ int arch_cpu_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
post_code(POST_CPU_INIT);
|
post_code(POST_CPU_INIT);
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
timer_set_base(rdtsc());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = x86_cpu_init_f();
|
ret = x86_cpu_init_f();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -233,9 +233,6 @@ int arch_cpu_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
post_code(POST_CPU_INIT);
|
post_code(POST_CPU_INIT);
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
timer_set_base(rdtsc());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = x86_cpu_init_f();
|
ret = x86_cpu_init_f();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -52,9 +52,6 @@ int arch_cpu_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
post_code(POST_CPU_INIT);
|
post_code(POST_CPU_INIT);
|
||||||
#ifdef CONFIG_SYS_X86_TSC_TIMER
|
|
||||||
timer_set_base(rdtsc());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = x86_cpu_init_f();
|
ret = x86_cpu_init_f();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
/include/ "keyboard.dtsi"
|
/include/ "keyboard.dtsi"
|
||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Intel Bayley Bay";
|
model = "Intel Bayley Bay";
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
/include/ "skeleton.dtsi"
|
/include/ "skeleton.dtsi"
|
||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Advantech SOM-6896";
|
model = "Advantech SOM-6896";
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
/include/ "keyboard.dtsi"
|
/include/ "keyboard.dtsi"
|
||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Google Link";
|
model = "Google Link";
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
/include/ "skeleton.dtsi"
|
/include/ "skeleton.dtsi"
|
||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Google Panther";
|
model = "Google Panther";
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "keyboard.dtsi"
|
/include/ "keyboard.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Intel Crown Bay";
|
model = "Intel Crown Bay";
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
/include/ "skeleton.dtsi"
|
/include/ "skeleton.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "EFI";
|
model = "EFI";
|
||||||
@ -16,6 +17,10 @@
|
|||||||
stdout-path = &serial;
|
stdout-path = &serial;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tsc-timer {
|
||||||
|
clock-frequency = <1000000000>;
|
||||||
|
};
|
||||||
|
|
||||||
serial: serial {
|
serial: serial {
|
||||||
compatible = "efi,uart";
|
compatible = "efi,uart";
|
||||||
};
|
};
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
/include/ "skeleton.dtsi"
|
/include/ "skeleton.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Intel Galileo";
|
model = "Intel Galileo";
|
||||||
@ -28,6 +29,10 @@
|
|||||||
stdout-path = &pciuart0;
|
stdout-path = &pciuart0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tsc-timer {
|
||||||
|
clock-frequency = <400000000>;
|
||||||
|
};
|
||||||
|
|
||||||
mrc {
|
mrc {
|
||||||
compatible = "intel,quark-mrc";
|
compatible = "intel,quark-mrc";
|
||||||
flags = <MRC_FLAG_SCRAMBLE_EN>;
|
flags = <MRC_FLAG_SCRAMBLE_EN>;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
/include/ "skeleton.dtsi"
|
/include/ "skeleton.dtsi"
|
||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Intel Minnowboard Max";
|
model = "Intel Minnowboard Max";
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "keyboard.dtsi"
|
/include/ "keyboard.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "QEMU x86 (I440FX)";
|
model = "QEMU x86 (I440FX)";
|
||||||
@ -44,6 +45,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tsc-timer {
|
||||||
|
clock-frequency = <1000000000>;
|
||||||
|
};
|
||||||
|
|
||||||
pci {
|
pci {
|
||||||
compatible = "pci-x86";
|
compatible = "pci-x86";
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
/include/ "serial.dtsi"
|
/include/ "serial.dtsi"
|
||||||
/include/ "keyboard.dtsi"
|
/include/ "keyboard.dtsi"
|
||||||
/include/ "rtc.dtsi"
|
/include/ "rtc.dtsi"
|
||||||
|
/include/ "tsc_timer.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "QEMU x86 (Q35)";
|
model = "QEMU x86 (Q35)";
|
||||||
@ -55,6 +56,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tsc-timer {
|
||||||
|
clock-frequency = <1000000000>;
|
||||||
|
};
|
||||||
|
|
||||||
pci {
|
pci {
|
||||||
compatible = "pci-x86";
|
compatible = "pci-x86";
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
|
6
arch/x86/dts/tsc_timer.dtsi
Normal file
6
arch/x86/dts/tsc_timer.dtsi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/ {
|
||||||
|
tsc-timer {
|
||||||
|
compatible = "x86,tsc-timer";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
@ -30,6 +30,7 @@ CONFIG_DM_PCI=y
|
|||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
|
@ -32,6 +32,7 @@ CONFIG_DEBUG_UART_CLOCK=1843200
|
|||||||
CONFIG_DEBUG_UART_BOARD_INIT=y
|
CONFIG_DEBUG_UART_BOARD_INIT=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_TPM_TIS_LPC=y
|
CONFIG_TPM_TIS_LPC=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
|
CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
|
||||||
|
@ -27,6 +27,7 @@ CONFIG_DM_PCI=y
|
|||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_TPM_TIS_LPC=y
|
CONFIG_TPM_TIS_LPC=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
|
CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
|
||||||
|
@ -21,6 +21,7 @@ CONFIG_E1000=y
|
|||||||
CONFIG_DM_PCI=y
|
CONFIG_DM_PCI=y
|
||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_TPM_TIS_LPC=y
|
CONFIG_TPM_TIS_LPC=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
|
@ -30,6 +30,7 @@ CONFIG_DM_PCI=y
|
|||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
|
@ -14,4 +14,6 @@ CONFIG_DEBUG_EFI_CONSOLE=y
|
|||||||
CONFIG_DEBUG_UART_BASE=0
|
CONFIG_DEBUG_UART_BASE=0
|
||||||
CONFIG_DEBUG_UART_CLOCK=0
|
CONFIG_DEBUG_UART_CLOCK=0
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
# CONFIG_X86_SERIAL is not set
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_EFI=y
|
CONFIG_EFI=y
|
||||||
|
@ -24,6 +24,7 @@ CONFIG_DM_PCI=y
|
|||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_USE_PRIVATE_LIBGCC=y
|
CONFIG_USE_PRIVATE_LIBGCC=y
|
||||||
|
@ -32,6 +32,7 @@ CONFIG_DEBUG_UART_BASE=0x3f8
|
|||||||
CONFIG_DEBUG_UART_CLOCK=1843200
|
CONFIG_DEBUG_UART_CLOCK=1843200
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
CONFIG_ICH_SPI=y
|
CONFIG_ICH_SPI=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
|
@ -23,6 +23,7 @@ CONFIG_E1000=y
|
|||||||
CONFIG_DM_PCI=y
|
CONFIG_DM_PCI=y
|
||||||
CONFIG_DM_RTC=y
|
CONFIG_DM_RTC=y
|
||||||
CONFIG_SYS_NS16550=y
|
CONFIG_SYS_NS16550=y
|
||||||
|
CONFIG_TIMER=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_VIDEO_VESA=y
|
CONFIG_VIDEO_VESA=y
|
||||||
|
Loading…
Reference in New Issue
Block a user