From owner-freebsd-current@FreeBSD.ORG Mon Sep 22 02:31:15 2003 Return-Path: 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 F1E3816A4B3 for ; Mon, 22 Sep 2003 02:31:15 -0700 (PDT) Received: from mail.dt.e-technik.uni-dortmund.de (mail.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B34C43FEC for ; Mon, 22 Sep 2003 02:31:14 -0700 (PDT) (envelope-from ma@dt.e-technik.uni-dortmund.de) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1])247094BBE for ; Mon, 22 Sep 2003 11:31:13 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 2B66B8D9; Mon, 22 Sep 2003 11:31:11 +0200 (CEST) To: freebsd-current@freebsd.org From: Matthias Andree Date: Mon, 22 Sep 2003 11:31:11 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: ATA probes adapters switched off in BIOS "Integrated Peripherals"? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Mon, 22 Sep 2003 09:31:16 -0000 Hi, after I had a kernel with broken atapicam that wouldn't boot, I tried disabling the secondary onboard channel of my main board (AMI BIOS, VIA KT133 chip set). The BIOS thought "oh well, we don't need ATA1, so we have IRQ 15 free, let's route xl0 and xl2 there". So far so good. ATAng happily probed and registered ata1 on the VIA chip: Sep 22 00:36:05 merlin kernel: atapci0: port 0xffa0-0xffaf at device 7.1 on pci0 Sep 22 00:36:05 merlin kernel: ata0: reset tp1 mask=03 ostat0=50 ostat1=50 Sep 22 00:36:05 merlin kernel: ata0-master: stat=0xd0 err=0xd0 lsb=0xd0 msb=0xd0 Sep 22 00:36:05 merlin kernel: ata0-slave: stat=0x80 err=0x80 lsb=0x80 msb=0x80 Sep 22 00:36:05 merlin kernel: ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00 Sep 22 00:36:05 merlin kernel: ata0-slave: stat=0x50 err=0x01 lsb=0x00 msb=0x00 Sep 22 00:36:05 merlin kernel: ata0: reset tp2 mask=03 stat0=50 stat1=50 devices=0x3 (that's fine, I have two hard disk drives) Sep 22 00:36:05 merlin kernel: ata0: at 0x1f0 irq 14 on atapci0 Sep 22 00:36:05 merlin kernel: ata0: [MPSAFE] Sep 22 00:36:05 merlin kernel: ata1: at 0x170 irq 15 on atapci0 Sep 22 00:36:05 merlin kernel: ata1: [MPSAFE] ... Sep 22 00:36:05 merlin kernel: xl0: <3Com 3c900-COMBO Etherlink XL> port 0xb400-0xb43f irq 15 at device 9.0 on pci0 ... Sep 22 00:36:05 merlin kernel: xl1: <3Com 3c905-TX Fast Etherlink XL> port 0xc000-0xc03f irq 9 at device 12.0 on pci0 Sep 22 00:36:05 merlin kernel: xl2: <3Com 3c905-TX Fast Etherlink XL> port 0xc400-0xc43f irq 15 at device 13.0 on pci0 ... and later hundreds of: Sep 22 00:36:05 merlin kernel: ata1: spurious interrupt - status=0xff error=0xff Sep 22 00:36:05 merlin last message repeated 3 times ... Sep 22 00:36:42 merlin kernel: ata1: spurious interrupt - status=0xff error=0xff Sep 22 00:36:48 merlin last message repeated 20 times However, acd0 which is the Secondary Master was _not_ detected, as I expected. For some reason ata seems to have missed it was running in "Primary Only" mode and was complaining about spurious interrupts that were xl0/xl2's. Can ata(4) detect if ata1 is switched off? Why does ata think the interrupt was for itself? Doesn't it need to probe the IDE chip registers before making such claims? Is ata ready to share the IRQ with some other card? It should (and I believe it actually does), since my Promise chip (not shown) shares the IRQ with xl1, bttv and the two USB root devices. Oh, did I mention the kernel message ("dmesg") buffer is *WAY* too small for "boot -v"? Can we please 8-fold the buffer size for boot -v and print a warning that boot -v bumped the message buffer size (so as to avoid heisenbugs that are gone in -v mode)? -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95