On Thu, 1 Aug 2019, Daniel Drake wrote: > On Thu, Aug 1, 2019 at 3:16 PM Aubrey Li <aubrey.in...@gmail.com> wrote: > However, the only way this can be called is from hpet_enable(). > > hpet_enable() is called from 2 places: > 1. From hpet_time_init(). This is the default x86 timer_init that > acpi_generic_reduced_hw_init() took out of action here. > 2. From hpet_late_init(). However that function is only called late, > after calibrate_APIC_clock() has already crashed the kernel. Also, > even if moved earlier it would also not call hpet_enable() here > because the ACPI HPET table parsing has already populated > hpet_address. > > I tried slotting in a call to hpet_enable() at an earlier point > regardless, but I still end up with the kernel hanging later during > boot, probably because irq0 fails to be setup and this error is hit: > if (setup_irq(0, &irq0)) > pr_info("Failed to register legacy timer interrupt\n");
Right. The thing also lacks PIT :) So there are two options: 1) Make sure the HPET is parsed somehow even with the reduced stuff 2) Make the clock frequency detection work. #1 is a trainwreck #2 is something we really want to have anyway. See the other reply. I cc'ed Tom there, he should be able to give us the missing link. Thanks, tglx