grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] tsc: Change default tsc calibration method to EFI on EFI sys


From: David E. Box
Subject: Re: [PATCH] tsc: Change default tsc calibration method to EFI on EFI systems
Date: Fri, 15 Sep 2017 15:06:22 -0700

On Tue, 2017-09-12 at 23:46 +0000, Vladimir 'phcoder' Serbinenko wrote:
> 
> 
> On Wed, Sep 6, 2017, 22:21 David E. Box <address@hidden>
> wrote:
> > On efi systems, make efi based tsc calibration the default,
> > followed by
> > the pmtimer before using the pit. This prevents Grub boot failure
> > on
> > newer x86 systems that power gate the pit.
> 
> Why does put code fail? I think it was changed to detect gated pit.

On these systems, even though the pit is gated the timer2 latch logic
still works. So when the tics are set the latch still goes from high to
active low as expected for a functional timer. But since the device is
clock gated it never counts down and the bit never gets reset, leading
to an infinite loop.

> Also I'd prefer to use pmtimer first as we had problems with event
> and time routines on some Macs. Any reason not to use pmtimer first?

No reason not to use pmtimer first. I had not considered boot speed as
well which must be prioritized. I'll submit a new patch.
 
> > Signed-off-by: David E. Box <address@hidden>
> > ---
> >  grub-core/kern/i386/tsc.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c
> > index 2e85289d8..de4057ddb 100644
> > --- a/grub-core/kern/i386/tsc.c
> > +++ b/grub-core/kern/i386/tsc.c
> > @@ -68,7 +68,7 @@ grub_tsc_init (void)
> >  #ifdef GRUB_MACHINE_XEN
> >    (void) (grub_tsc_calibrate_from_xen () ||
> > calibrate_tsc_hardcode());
> >  #elif defined (GRUB_MACHINE_EFI)
> > -  (void) (grub_tsc_calibrate_from_pit () ||
> > grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_efi()
> > || calibrate_tsc_hardcode());
> > +  (void) (grub_tsc_calibrate_from_efi () ||
> > grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit
> > () || calibrate_tsc_hardcode());
> >  #elif defined (GRUB_MACHINE_COREBOOT)
> >    (void) (grub_tsc_calibrate_from_pmtimer () ||
> > grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode());
> >  #else
> > --
> > 2.13.5
> > 
> > 
> > _______________________________________________
> > Grub-devel mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> 
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]