"Yinghai Lu" yhlu@tyan.com writes:
Sometimes, if you not enable PCI master, the device can not work properly in Linux.
But Eric/Ron didn't enable that in PCI main loop, because some devices don't need that.
As a general rule devices don't need that and it is the responsibility of the device driver to enable/os to enable it.
So the master bit should only be enabled for devices that are needed to boot. So we do need to enable this on the ioapic that transmit interrupts over the pci bus for example. Both because it is needed to boot and because it is architectural hardware.
Unless someone can show me a relevant passage of the pci spec, that says differently.
Any linux device driver that can't cope with a device that does not have it's bus master bit clear and needs it set is broken.
Devices with bus master set are allowed to DMA into main memory whenever they feel like it so it is dangerous to enable that bit indiscriminately.
Eric