Re: HPET enabled in BIOS, not presented as available_clocksource -- config, kernel code, &/or BIOS?
From: Randy Dunlap
Date: Sat May 13 2017 - 13:41:41 EST
[adding HPET driver maintainer]
A couple of comments below...
On 05/12/17 19:30, PGNet Dev wrote:
> 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.
How about if you just boot Linux without Xen? Does HPET show up then?
> 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
Above line marks a big failure. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 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
>
--
~Randy