From owner-freebsd-current@FreeBSD.ORG Wed Oct 5 03:27:43 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E114D16A41F; Wed, 5 Oct 2005 03:27:42 +0000 (GMT) (envelope-from wilkinsa@squash.dsto.defence.gov.au) Received: from digger1.defence.gov.au (digger1.defence.gov.au [203.5.217.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 414C243D46; Wed, 5 Oct 2005 03:27:40 +0000 (GMT) (envelope-from wilkinsa@squash.dsto.defence.gov.au) Received: from ednmsw501.dsto.defence.gov.au (ednmsw501.dsto.defence.gov.au [131.185.2.150]) by digger1.defence.gov.au with ESMTP id j953PhQL024593; Wed, 5 Oct 2005 12:55:43 +0930 (CST) Received: from muttley.dsto.defence.gov.au (unverified) by ednmsw501.dsto.defence.gov.au (Content Technologies SMTPRS 4.3.17) with ESMTP id ; Wed, 5 Oct 2005 12:57:34 +0930 Received: from ednex501.dsto.defence.gov.au (ednex501.dsto.defence.gov.au [131.185.2.81]) by muttley.dsto.defence.gov.au (8.11.3/8.11.3) with ESMTP id j953Ld029807; Wed, 5 Oct 2005 12:51:39 +0930 (CST) Received: from squash.dsto.defence.gov.au ([131.185.40.212]) by ednex501.dsto.defence.gov.au with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id 4F1D1PF9; Wed, 5 Oct 2005 12:51:29 +0930 Received: from squash.dsto.defence.gov.au (localhost [127.0.0.1]) by squash.dsto.defence.gov.au (8.13.3/8.13.3) with ESMTP id j953MCjY067940; Wed, 5 Oct 2005 12:52:12 +0930 (CST) (envelope-from wilkinsa@squash.dsto.defence.gov.au) Received: (from wilkinsa@localhost) by squash.dsto.defence.gov.au (8.13.3/8.13.3/Submit) id j953MCgC067939; Wed, 5 Oct 2005 12:52:12 +0930 (CST) (envelope-from wilkinsa) Date: Wed, 5 Oct 2005 12:52:12 +0930 From: "Wilkinson, Alex" To: freebsd-current@freebsd.org, current@freebsd.org Message-ID: <20051005032211.GB67868@squash.dsto.defence.gov.au> Mail-Followup-To: freebsd-current@FreeBSD.org, current@FreeBSD.org References: <20050920004358.GA76462@squash.dsto.defence.gov.au> <200509211640.38493.jhb@FreeBSD.org> <20050923024615.GT91606@squash.dsto.defence.gov.au> <200509261611.36343.jhb@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <200509261611.36343.jhb@FreeBSD.org> User-Agent: Mutt/1.5.10i Cc: Subject: Re: Broken MP table detected ... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Oct 2005 03:27:43 -0000 0n Mon, Sep 26, 2005 at 04:11:35PM -0400, John Baldwin wrote: >On Thursday 22 September 2005 10:46 pm, Wilkinson, Alex wrote: >> 0n Wed, Sep 21, 2005 at 04:40:36PM -0400, John Baldwin wrote: >> >On Monday 19 September 2005 08:55 pm, Scott Long wrote: >> >> Wilkinson, Alex wrote: >> >> > Can anyone tell me what the following means, and how to fix it: >> >> > >> >> > APIC_IO: Testing 8254 interrupt delivery >> >> > APIC_IO: Broken MP table detected: 8254 is not connected to >> >> > IOAPIC #0 intpin 2 APIC_IO: routing 8254 via 8259 and IOAPIC #0 >> >> > intpin 0 >> >> > >> >> > - aW >> >> >> >> It means that you need to use 6.0 instead of 5.x =-) It represents >> >> the old way that we connected the timecounters, which apparently >> >> isn't well supported with newer amd64 boards. 6.0 solves this >> >> problem by using a better supported mechanism. >> > >> >Actually, this is a 4.x method and it basically means that it has >> > fallen back to mixed mode for IRQ0. 6.0 certainly does this better. >> > 5.x just uses mixed mode by default. >> >> John, what is mixed mode ? > >Normally when you use the APICs, you don't use the older 8259A AT-PICs at all. >However, the 8259A's are hooked up to pin 0 on the first I/O APIC, so if you >enable pin 0 and enable interruput pins on the 8259As, then if they get an >interrupt, they will forward it to the first I/O APIC which will then forward >it to the CPUs as directed. Using both the old PICs and the APICs at the >same time using pin 0 in the first I/O APIC is known as mixed mode. The >reason FreeBSD uses it is that some motherboard manufacturers chose to not >connect an IRQ0 input from the ISA timer to pin 2 on the first I/O APIC, even >though the MP Table said that they did. The reason they could get away with >that is that Windows didn't use IRQ0 when it used the APICs, so the >motherboards still passed WHQL certification ok (or so I've been told). >Linux also doesn't use IRQ0, but uses the built-in countdown periodic timer >that each CPU has in its local APIC. In 4.x, the kernel would try to get >IRQ0 interrupts via pin 2 on the first I/O APIC and if it didn't work, it >printed out the message you saw and enabled mixed mode and enabled IRQ0 in >the 8259A AT-PIC. In 5.x, we just always use mixed mode without the runtime >test and have a hint for forcing it to not use mixed mode. In 6.x we use the >countdown timer in the local APIC like Linux and Windows when using the APICs >and don't use IRQ0 at all. As usual an awesome explanation. Thanks for taking the time to explain this to me ! - aW