From owner-freebsd-bugs Thu Jan 23 17: 1: 9 2003 Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA68437B401 for ; Thu, 23 Jan 2003 17:01:05 -0800 (PST) Received: from web10703.mail.yahoo.com (web10703.mail.yahoo.com [216.136.130.211]) by mx1.FreeBSD.org (Postfix) with SMTP id 5CE2B43F5B for ; Thu, 23 Jan 2003 17:01:05 -0800 (PST) (envelope-from jjramsey_6x9eq42@yahoo.com) Message-ID: <20030124010105.75261.qmail@web10703.mail.yahoo.com> Received: from [66.219.135.59] by web10703.mail.yahoo.com via HTTP; Thu, 23 Jan 2003 17:01:05 PST Date: Thu, 23 Jan 2003 17:01:05 -0800 (PST) From: "James J. Ramsey" Reply-To: jjramsey@pobox.com Subject: Revisiting the semirandom bug/issue in FreeBSD's ATA querying To: freebsd-bugs@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org I've been doing my best to sort out the issues with the bug, issue, or whatever that FreeBSD has with identifying my hard drive. The following is mostly a summarizing of previous posts, plus some tidbits of new stuff. Background (this is mostly old material): I had been trying to switch from Linux to FreeBSD; however, the last time I tried, FreeBSD couldn't get the disk geometry correct; the cylinder count from FreeBSD was wildly inflated and inconsistent from install attempt to install attempt. This was for version 4.5 of FreeBSD. When I posted to comp.unix.bsd.freebsd.misc asking if FreeBSD 4.7 had the same problem, someone suggested that I attempt an install from boot floppies, and if there is still a problem, abort before committing to the install. Ever since then, I've been experimenting with the boot floppies, trying to see if I could find ways of either making the problem disappear or diagnosing it. My hardware: IDE drives are the following: * QUANTUM FIREBALLP LM20.5, ATA DISK drive * Pioneer CD-ROM ATAPI Model DR-A04S 0105, ATAPI CD/DVD-ROM drive The hard drive is primary master, and the CD-ROM the primary slave. Whether the CD-ROM acts as a master or slave depends on a jumper setting. My motherboard is an iWill KA266plus. When I first starting dealing with the problem, the BIOS was the original one installed by the manufacturer, but it has recently been upgraded. The southbridge is a ALi M1535D+ chipset. Symptoms (some of this is old, some new): Almost every time I attempt to install FreeBSD, it complains that the disk geometry is bad, reporting a wildly inflated cylinder count that changes from install attempt to install attempt. A few times, FreeBSD reads the cylinder count correctly, but upon the next install attempt, the inflated count is back. This has been true for FreeBSD versions 4.5, 4.7, and 5.0-RC2. The following kernel message is from a FreeBSD install. I captured it by pressing Scroll Lock and pressing the Page Up key to get to the text: ad0: 8866663634010175MB [16955114026566160/17/63] at ata0-master PIO4 The garbage between the angle brackets should be the name of the hard drive, "QUANTUM FIREBALLP". Compare this with the kernel message from Linux: hda: QUANTUM FIREBALLP LM20.5, ATA DISK drive The name of the disk drive is reported correctly. This hard drive querying problem has never occured under Linux, Windows XP, or an OpenBSD 3.1 snapshot, although the last one had other problems, namely lack of stability. (I do not have Windows XP anymore.) The problem seems consistent for both the original and upgraded BIOS. Setting the BIOS to explicitly use LBA disk geometry rather that relying on the automatic BIOS setting seems to make no difference either. However, the problem appears to go away when I make the CD-ROM into a secondary master rather than a primary slave. I've experimented with a couple variants of the master/slave setup. In the first and original setup, the hard drive was the master, and the CD-ROM the slave. I used an IDE cable from I-do-not-remember-where, and at the time I neither knew nor cared whether it could handle ATA66. This was the setup under which the problem first showed up. In the second setup, I scrounged up an ATA cable that I knew could handle ATA66. I used this newer cable to attach the hard drive to the motherboard, and I used the old cable to attach the CD-ROM to the motherboard as a secondary master. (The jumper for the CD-ROM was moved accordingly.) In this setup, the ATA querying problem went away, or at the very least, I could not reproduce it (and I tried to, several times). Instead I got the following healthy-looking kernel message: ad0: 19595MB [39813/16/63] at ata0-master UDMA66 The third setup was just like the first, only I switched IDE cables. The old cable was used to connect the hard drive to the motherboard, while the newer one was used to connect the CD-ROM to the motherboard. I could not reproduce the problem under this setup either, it was just as it was with the second setup. The fourth setup was like the first. The CD-ROM returned to being a primary slave (and the jumper was set accordingly). However, I used the newer IDE cable rather than the old one. The problems from the first setup returned. David Schultz has the same make and model of hard drive as I, yet has not been able to reproduce my problem even after duplicating my master/slave setup. To quote him: > I have used the drive with the integrated IDE > controllers on an > ASUS P2B-F motherboard (440BX-based, ATA33) and an > ASUS P3V4X > (VIA 82C596 ATA66 controller), as well as with a > Promise Ultra66 > card. A subset of those controllers have been used > with the drive > in both master and slave configurations. Also, Linux does *not* use UDMA66 on my hard drive by default, but rather MDMA2. I got this from running the command "hdparm -i /dev/hda". I have not tried optimizing my hard drive speed, and I don't know if explains the difference between the behavior of Linux and FreeBSD. I also do not know how OpenBSD 3.x or Windows XP set up their DMA defaults. I have not tried a full installation of FreeBSD yet, so obviously I haven't tried running a kernel with any of the suggested modifications to the ATA driver code. If you have any further diagnoses or ideas for further narrowing down the problem, I'd love to read them. __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message