[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1908011214150.1965@nanos.tec.linutronix.de>
Date: Thu, 1 Aug 2019 12:17:33 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Daniel Drake <drake@...lessm.com>
cc: Aubrey Li <aubrey.intel@...il.com>, x86@...nel.org,
"Li, Aubrey" <aubrey.li@...ux.intel.com>,
Ingo Molnar <mingo@...hat.com>,
"H . Peter Anvin" <hpa@...or.com>,
Linux Kernel <linux-kernel@...r.kernel.org>,
Endless Linux Upstreaming Team <linux@...lessm.com>
Subject: Re: setup_boot_APIC_clock() NULL dereference during early boot on
reduced hardware platforms
On Thu, 1 Aug 2019, Daniel Drake wrote:
> On Thu, Aug 1, 2019 at 3:16 PM Aubrey Li <aubrey.intel@...il.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
Powered by blists - more mailing lists