HPET enabled in BIOS, not presented as available_clocksource -- config, kernel code, &/or BIOS?

From: PGNet Dev
Date: Fri May 12 2017 - 22:31:08 EST


I run kernel 4.11.0-4 on a Supermicro X10SAT motherboard.

HPET's enabled in BIOS, and apparently firmware table data is available.

But, hpet is not an available_clocksource.

Where's this need to be addressed/fixed? In my config, in kernel code, &/or in BIOS?

info:

@ the mobo,

dmidecode
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
81 structures occupying 3317 bytes.
Table at 0x000EC200.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: 3.0
Release Date: 05/26/2015
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16384 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 4.6

In BIOS, HPET's enabled.

On boot to Xen on linux64

xl info
release : 4.11.0-4.gcb15206-default
version : #1 SMP PREEMPT Thu May 11 07:36:09 UTC 2017 (cb15206)
machine : x86_64
nr_cpus : 4
max_cpu_id : 3
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 3092
hw_caps : bfebfbff:77faf3ff:2c100800:00000021:00000001:000027ab:00000000:00000100
virt_caps : hvm hvm_directio
total_memory : 32493
free_memory : 25899
sharing_freed_memory : 0
sharing_used_memory : 0
outstanding_claims : 0
free_cpus : 0
xen_major : 4
xen_minor : 9
xen_extra : .0_04-493
xen_version : 4.9.0_04-493
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit2
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset :
xen_commandline : dom0_mem=4096M,max:4096M dom0_max_vcpus=4 vga=gfx-1920x1080x16 com1=115200,8n1,pci console=com1,vga console_timestamps console_to_ring conring_size=64 sched=credit2 sched_debug reboot=acpi log_buf_len=16M iommu=verbose apic_verbosity=verbose loglvl=all guest_loglvl=all noreboot=false sync_console=true
cc_compiler : gcc (SUSE Linux) 4.8.5
cc_compile_by : abuild
cc_compile_domain : suse.de
cc_compile_date : Wed May 10 21:26:38 UTC 2017
build_id : dde541fac1512c7b1ce17e7496aab57a
xend_config_format : 4

grep -i hpet /boot/config-4.11.0-4.gcb15206-default
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y


, dmesg reports

dmesg | grep -i hpet
[ 0.000000] Command line: root=/dev/mapper/VG0_ROOT rd.shell rd.auto=1 rootfstype=ext4 rootflags=journal_checksum noresume video=vesa:off video=efifb:1024x768 video=HDMI-A-1:1920x1080@60 xencons=xvc console=tty0 console=hvc0 elevator=deadline cpuidle cpufreq=xen:ondemand hpet=force,verbose net.ifnames=1 biosdevname=1 pcie_aspm=off mce=off nomodeset showopts noquiet log_buf_len=10M print_fatal_signals=1 systemd.log_level=debug systemd.log_target=kmsg earlyprintk=xen,keep debug loglevel=8
[ 0.000000] ACPI: HPET 0x000000009E8298F8 000038 (v01 SUPERM SMCI--MB 01072009 AMI. 00000005)
[ 0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[ 0.000000] Kernel command line: root=/dev/mapper/VG0_ROOT rd.shell rd.auto=1 rootfstype=ext4 rootflags=journal_checksum noresume video=vesa:off video=efifb:1024x768 video=HDMI-A-1:1920x1080@60 xencons=xvc console=tty0 console=hvc0 elevator=deadline cpuidle cpufreq=xen:ondemand hpet=force,verbose net.ifnames=1 biosdevname=1 pcie_aspm=off mce=off nomodeset showopts noquiet log_buf_len=10M print_fatal_signals=1 systemd.log_level=debug systemd.log_target=kmsg earlyprintk=xen,keep debug loglevel=8
[ 8.491738] hpet_acpi_add: no address or irqs in _CRS

After boot, however, no hpet clocksource is available

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc xen

Disassembling the firmware acpi tables

cat /sys/firmware/acpi/tables/HPET > /var/tmp/hpet.out
iasl -d /var/tmp/hpet.out
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20140214-64
Copyright (c) 2000 - 2014 Intel Corporation

Loading Acpi table from file /var/tmp/hpet.out - Length 00000056 (000038)
Acpi Data Table [HPET] decoded
Formatted output: /var/tmp/hpet.dsl - 1835 bytes

cat /var/tmp/hpet.dsl
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20140214-64
* Copyright (c) 2000 - 2014 Intel Corporation
*
* Disassembly of /var/tmp/hpet.out, Fri May 12 18:46:28 2017
*
* ACPI Data Table [HPET]
*
* Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue
*/

[000h 0000 4] Signature : "HPET" [High Precision Event Timer table]
[004h 0004 4] Table Length : 00000038
[008h 0008 1] Revision : 01
[009h 0009 1] Checksum : 89
[00Ah 0010 6] Oem ID : "SUPERM"
[010h 0016 8] Oem Table ID : "SMCI--MB"
[018h 0024 4] Oem Revision : 01072009
[01Ch 0028 4] Asl Compiler ID : "AMI."
[020h 0032 4] Asl Compiler Revision : 00000005

[024h 0036 4] Hardware Block ID : 8086A701

[028h 0040 12] Timer Block Register : [Generic Address Structure]
[028h 0040 1] Space ID : 00 [SystemMemory]
[029h 0041 1] Bit Width : 40
[02Ah 0042 1] Bit Offset : 00
[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy]
[02Ch 0044 8] Address : 00000000FED00000

[034h 0052 1] Sequence Number : 00
[035h 0053 2] Minimum Clock Ticks : 37EE
[037h 0055 1] Flags (decoded below) : 00
4K Page Protect : 0
64K Page Protect : 0

Raw Table Data: Length 56 (0x38)

0000: 48 50 45 54 38 00 00 00 01 89 53 55 50 45 52 4D HPET8.....SUPERM
0010: 53 4D 43 49 2D 2D 4D 42 09 20 07 01 41 4D 49 2E SMCI--MB. ..AMI.
0020: 05 00 00 00 01 A7 86 80 00 40 00 00 00 00 D0 FE .........@......
0030: 00 00 00 00 00 EE 37 00 ......7.

and for ref

cat /proc/sys/dev/hpet /proc/sys/dev/hpet
cat /proc/sys/dev/hpet/max-user-freq /proc/driver/rtc
64
rtc_time : 01:44:28
rtc_date : 2017-05-13
alrm_time : 21:02:26
alrm_date : 2017-05-13
alarm_IRQ : no
alrm_pending : no
update IRQ enabled : no
periodic IRQ enabled : no
periodic IRQ frequency : 1024
max user IRQ frequency : 64
24hr : yes
periodic_IRQ : no
update_IRQ : no
HPET_emulated : no
BCD : yes
DST_enable : no
periodic_freq : 1024
batt_status : okay