Hi all,
Let me jump in. From the OS point of view the BME should be set for:
1) PCI bridges
2) for PCI class of IOAPIC devices (otherwise OS will not get any interrupt!) This PCI IOAPIC is for example on more high-end Xeons
3) sometimes it needs to be set on internal chipset devices. I remember that if 440BX had clear special cycle cleared it would refuse to poweroff - hard to debug! I guess per chipset it must be checked if it works with BME off...
4) the rest of the devices should have BME off
Side note:
BME is ignored by Intel integrated graphics - the DMA runs even if the BME is clear (this happens on core i7 chipsets for example) Thus thatswhy it needs RMRR IOMMU range for VGA...
Thanks Rudolf