Date: Wed, 8 Dec 2004 16:10:29 GMT From: Jonas Davidsson <aphex@bredband.net> To: freebsd-i386@FreeBSD.org Subject: Re: i386/73706: ATA_IDENTIFY timed out under FreeBSD 5.3 Message-ID: <200412081610.iB8GATP9068717@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/73706; it has been noted by GNATS. From: Jonas Davidsson <aphex@bredband.net> To: Maxim Frolov <mfr@compumatica.de> Cc: freebsd-gnats-submit@FreeBSD.org Subject: Re: i386/73706: ATA_IDENTIFY timed out under FreeBSD 5.3 Date: Wed, 08 Dec 2004 17:05:16 +0100 RELENG_5_3-p2 looks like this: if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { #if defined(__ia64__) || defined(__i386__) || defined(__amd64__) /* * Try to re-route interrupts. Sometimes the BIOS or * firmware may leave bogus values in these registers. * If the re-route fails, then just stick with what we * have. */ irq = PCI_ASSIGN_INTERRUPT(bus, dev); if (PCI_INTERRUPT_VALID(irq)) { pci_write_config(dev, PCIR_INTLINE, irq, 1); cfg->intline = irq; } else #endif irq = cfg->intline; resource_list_add(rl, SYS_RES_IRQ, 0, irq, irq, 1); } Do you mean to comment out everything between "#if defined" and "#endif"? This would leave if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { irq = cfg->intline; resource_list_add(rl, SYS_RES_IRQ, 0, irq, irq, 1); } active. Just checking to make sure, will try this tonight. Maxim Frolov wrote: > I found a workaround (or solution) for the problem: > > In file sys/dev/pci/pci.c: > > If the following block is commented out, ATA devices on primary controller are > working: > > #if 0 > #if defined(__ia64__) || defined(__i386__) || defined(__amd64__) || \ > defined(__arm__) > /* > * Try to re-route interrupts. Sometimes the BIOS or > * firmware may leave bogus values in these registers. > * If the re-route fails, then just stick with what we > * have. > */ > irq = PCI_ASSIGN_INTERRUPT(bus, dev); > if (PCI_INTERRUPT_VALID(irq)) { > pci_write_config(dev, PCIR_INTLINE, irq, 1); > cfg->intline = irq; > } else > #endif > #endif > > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412081610.iB8GATP9068717>