From owner-p4-projects@FreeBSD.ORG Thu Aug 21 12:22:22 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6EE0C16A4C1; Thu, 21 Aug 2003 12:22:21 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F020016A4BF; Thu, 21 Aug 2003 12:22:20 -0700 (PDT) Received: from ns1.xcllnt.net (209-128-86-226.BAYAREA.NET [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2884543FBF; Thu, 21 Aug 2003 12:22:17 -0700 (PDT) (envelope-from marcel@xcllnt.net) Received: from ns1.xcllnt.net (localhost [127.0.0.1]) by ns1.xcllnt.net (8.12.9/8.12.9) with ESMTP id h7LJMEwO026092; Thu, 21 Aug 2003 12:22:14 -0700 (PDT) (envelope-from marcel@ns1.xcllnt.net) Received: (from marcel@localhost) by ns1.xcllnt.net (8.12.9/8.12.9/Submit) id h7LJMExV026091; Thu, 21 Aug 2003 12:22:14 -0700 (PDT) (envelope-from marcel) Date: Thu, 21 Aug 2003 12:22:14 -0700 From: Marcel Moolenaar To: John Baldwin Message-ID: <20030821192214.GA25805@ns1.xcllnt.net> References: <20030821164706.GA566@dhcp42.pn.xcllnt.net> <20030821173225.GA780@dhcp42.pn.xcllnt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030821173225.GA780@dhcp42.pn.xcllnt.net> User-Agent: Mutt/1.5.1i cc: Perforce Change Reviews Subject: Re: PERFORCE change 36551 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Aug 2003 19:22:22 -0000 On Thu, Aug 21, 2003 at 10:32:25AM -0700, Marcel Moolenaar wrote: > > > If the UART devices raise an ISA interrupt, then by my reading, > > the ACPI resource should specify the ISA interrupt number (0-15), > > and the MADT should include a source override that maps that > > ISA interrupt number to a global interrupt number of 66 or > > whatever (which maps to a SAPIC:intpin). > > This makes sense. It's however not how it is (unfortunately). The updated SPPA specification (HP's ia64 platform) has a section devoted to the interrupt polarity and mode of the UART. It basicly says this: o The DIG64 HCDP table [supported] or the Mcrosoft SPCR table [unsupported] tells whether the UART is a PCI device or not. o PCI UARTs have level triggered, active low interrupts. They are not described in ACPI then (reminder: this is SPPA). o Non-PCI UARTs described in the ACPI namespace have interrupt polarity and mode as described by _CRS in the device object! o Non-PCI devices that are not decribed in the ACPI namespace can still be mentioned in the HCDP table and we [FreeBSD] will use the UART as console. Interrupt polarity and mode should be assumed active low, level sensitive. Currently we will panic the moment we try to go single-user or multi-user because there will not be a device major number assigned to the console. We need to catch this case someday. So: It appears that we need to interpret the _CRS method, field or whatever. Especially the Interrupt Descriptor. Going to the source: in acpi_parse_resources() we need to create a callback to MD code to tell it about polarity and mode. This means tweaking the ACPI_RSTYPE_IRQ or ACPI_RSTYPE_EXT_IRQ cases. Better would be to create bus methods for this (see for example acpi_res_set_irq()). -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net