Messages in this thread | | | Date | Mon, 23 Sep 2002 17:27:39 -0400 | From | Jeff Garzik <> | Subject | Quick aic7xxx bug hunt... |
| |
Justin T. Gibbs wrote: > On some motherboards with some chipsets, you can get these messages if > another busmaster (say an IDE drive or a sound card) is hogging the bus. > Usually this is with a VIA chipset. Its not clear why the aic7xxx_old > driver would behave differently other than it disables memory write > and invalidate PCI transactions on this chip. The new driver doesn't > need that work around.
Justin,
One thing I notice is at least one PCI posting bug. When using MMIO (write[bwlq] under Linux), you _must_ use a read[bwlq] to flush the write to PCI, if you wish to ensure the write posts at a certain point in the code.
Here is the example PCI posting bug, in ahc_clear_critical_section: > ahc_outb(ahc, HCNTRL, ahc->unpause); > do { > ahc_delay(200); > } while (!ahc_is_paused(ahc));
As you can see, there is no read before the udelay(), which is very wrong on modern CPUs with write posting... that's definitely a driver bug that will bite you on modern x86 motherboards [and is totally broken on ia64 and other platforms].
Please let me know if you have further questions on PCI write posting...
Jeff
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |