Date: Thu, 20 Jun 2002 12:00:06 -0700 (PDT) From: "Jin Guojun[DSD]" <j_guojun@lbl.gov> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/39449: wierd ata status Message-ID: <200206201900.g5KJ06i46419@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/39449; it has been noted by GNATS. From: "Jin Guojun[DSD]" <j_guojun@lbl.gov> To: cjclark@alum.mit.edu Cc: bug-followup@freebsd.org Subject: Re: kern/39449: wierd ata status Date: Thu, 20 Jun 2002 11:59:59 -0700 "Crist J. Clark" wrote: > > On Wed, Jun 19, 2002 at 05:40:42PM -0700, Jin Guojun[DSD] wrote: > [snip] > > > Attached again "x". Look at the #3, which had exact things configured as #2 > > except the secondary IDE is disabled in BIOS. Yes, it probably looks > > very similar as the #4, which had disk drive unpluged. Search and read > > the title line start with > > Huh. Well that is really strange. I am not sure at all what is going > on with that, how you can disable a PCI device in the BIOS. Maybe > Soren could tell you. Because you did not look at the status report closely and made some assumption based on a sort of guessing. IDE can be disabled in BIOS is not new. It is in history. ata_probe(device_t dev) in /sys/dev/ata/ata-all.c clearly knows how to distinguish these cases: ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xd808 ata1: mask=00 status0=a5 status1=a5 ata1: probe allocation failed status 0xa5 shows no device is attached. ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xd808 ata1: mask=00 status0=ff status1=ff ata1: probe allocation failed status 0xFF shows the controller is disabled. I think to add a BIOS status checking is reasonable and valuable. (see the diff below) I would like to know what is the developer's thought. If this feature will be permanently removed, then I will do it on my own. >> 4.6 removed status checking and changed ata_reset() to ignore the further checking: if (bootverbose) ata_printf(ch, -1, "iobase=0x%04x altiobase=0x%04x bmaddr=0x%04x\n", (int)rman_get_start(ch->r_io), (int)rman_get_start(ch->r_altio), (ch->r_bmio) ? (int)rman_get_start(ch->r_bmio) : 0); ata_reset(ch); << this is the same place 4.5 does: if (bootverbose) ata_printf(scp, -1, "iobase=0x%04x altiobase=0x%04x bmaddr=0x%04x\n", scp->ioaddr, scp->altioaddr, scp->bmaddr); /* do we have any signs of ATA/ATAPI HW being present ? */ outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER); DELAY(1); status0 = inb(scp->ioaddr + ATA_STATUS); outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE); DELAY(1); status1 = inb(scp->ioaddr + ATA_STATUS); if ((status0 & 0xf8) != 0xf8 && status0 != 0xa5) mask |= 0x01; if ((status1 & 0xf8) != 0xf8 && status1 != 0xa5) mask |= 0x02; if (bootverbose) ata_printf(scp, -1, "mask=%02x status0=%02x status1=%02x\n", mask, status0, status1); if (!mask) goto failure; ata_reset(scp, &mask); if (!mask) goto failure; > -- > Crist J. Clark | cjclark@alum.mit.edu > | cjclark@jhu.edu > http://people.freebsd.org/~cjc/ | cjc@freebsd.org -- ------------ Jin Guojun ----------- v --- j_guojun@lbl.gov --- Distributed Systems Department http://www.itg.lbl.gov/~jin M/S 50B-2239 Ph#:(510) 486-7531 Fax: 486-6363 Lawrence Berkeley National Laboratory, Berkeley, CA 94720 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206201900.g5KJ06i46419>