Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Nov 2005 11:05:56 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-acpi@freebsd.org
Cc:        freebsd-net@freebsd.org, Vaibhave Agarwal <vaibhave@cs.utah.edu>, current@freebsd.org, chris@gnome.co.uk, Nate Lawson <nate@root.org>
Subject:   Re: Freebsd 6.0 doesnt detect local APIC on a Pentium 3 machine
Message-ID:  <200511071105.58729.jhb@freebsd.org>
In-Reply-To: <436E874E.4010305@root.org>
References:  <20051027233636.GA39380@dmw.hopto.org> <Pine.LNX.4.61.0511061525330.16649@trust.cs.utah.edu> <436E874E.4010305@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 06 November 2005 05:44 pm, Nate Lawson wrote:
> Vaibhave Agarwal wrote:
> > On Sun, 6 Nov 2005, John Baldwin wrote:
> >>We don't detect the local APIC via MSR's or the APIC bit in cpu_features,
> >> but rely on a working MP Table or MADT table to setup both the local
> >> APIC(s) and I/O APIC(s).  Does your machine have a valid MP Table or an
> >> APIC table in its acpidump?  Many UP machine BIOSes don't include those
> >> tables.
> >
> > I think you are right.
> > There is no valid APIC table in the acpidump.
> > The only place where APIC is mentioned in the acpidump(8) is in
> > following:
> >
> > Scope (\_SB)
> > {
> > 	Name (APIC, 0x00)
> >         Method (_PIC, 1, NotSerialized)
> >         {
> >             Store (Arg0, APIC)
> >         }
> > }
> >
> >
> > And I suppose APIC is disabled in the BIOS too.
> > Is there a way to enable APIC using software, without changing the BIOS,
> > since I dont have access to the BIOS, as it is a remote machine (with
> > root access) ?
>
> The above references to APIC just store a value in a convenience
> variable.  If there's nothing else in the AML that references the
> \_SB.APIC variable, then it has no effect on the system.  In that case,
> the only way to get APIC support on that machine is to implement another
> way of enumerating it.

And even then it can't be used for any device interrupts since there aren't 
any I/O APICs.  On a UP machine without I/O APICs, it's actually probably 
more optimal to just use irq0 and irq8 for clocks rather than the lapic timer 
anyway.  The only real possible gain is the ability to use the profiling 
interrupt from the local APIC.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511071105.58729.jhb>