Re: arch/x86/kernel/apic/apic.c: calibrate_APIC_clock() soft hangs when PIC is not configured by BIOS before kernel is launched.

From: Thomas Gleixner
Date: Thu May 09 2019 - 09:33:53 EST

On Thu, 9 May 2019, Kirkendall, Garrett wrote:
> I am trying to boot a UEFI BIOS with minimal legacy hardware support. 
> The Linux kernel soft hangs when the PIC is not configured by the BIOS
> because it is using IOAPIC.  Hopefully, this provides enough information.
> Soft hang occurs in calibrate_APIC_clock():


> If 8259A PIC is not configured before kernel is launched, HPET IRQ 0
> registration fails because probe_8259A returns PIC as not available and
> therefore interrupt descriptors 0-15 are not allocated.  This happens
> when BIOS does not configure 8259A PIC because it uses IOAPIC.

Right. Works as designed.

There is not much we can do at that point, unless your platform has other
means to provide the TSC frequency (cpuid or MSR) along with the bus
frequency which is fed into the local apic timer.