[haiku-commits] Re: r41683 - haiku/trunk/src/system/boot/platform/bios_ia32

  • From: "Michael Lotz" <mmlr@xxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 24 May 2011 18:40:38 +0200

Hi

> 2011/5/24 François Revol <revol@xxxxxxx>:
> >> Nope, still same problems.
> >> And now that I checked the ticket, it seems that PIT mode 0 is
> >> problematic on Xenserver (which is the one we were setting
> > > already,
> >> when entering the kernel), while mode 1 works (ticket #4500)
> >
> > Tried using some other timer source yet ?
> >
> > François.
>
> Yes, using LAPIC doesn't work, HPET works.

Since the APIC timer is calibrated using the TSC which in turn is
calibrated using the PIT it's not so surprising that both fail in this
case.

What you could try is to still use mode 0, but instead use a different
channel, channel 2 (as channel one isn't usually implemented anymore)
in the TSC calibration. That is the combination that Linux uses for
their "fast TSC calibration using PIT" and I think also for the
corresponding "slow" version. The dmesg output of Linux should tell you
if and how it calibrated the TSC which should indicate what method is
usable.

If it turns out that using mode 0 on channel 2 is more widely
compatible than using it on channel 0 we should simply switch that.
Everything is in place for that anyway, just the channel variable needs
to be flipped.

Regards
Michael

Other related posts: