* Oliver Hartkopp (socketcan@xxxxxxxxxxxx) wrote: > On 03.01.2012 19:39, Chris Wright wrote: > > > * Oliver Hartkopp (socketcan@xxxxxxxxxxxx) wrote: > >> i have a Dell 6510 with i7 CPU (M 640 @ 2.80GHz) with integrated GPU. > >> > >> With 3.2-rc - even with the very latest Linux version from Linus' tree > >> 3.2.0-rc7-w-iommu-00081-g733bbb7 from today - i encountered some problems with > >> my built-in MMC adapter: > > > > Ricoh device? If so, appears to be a buggy device (issues DMA from > > pci function 0 despite programming pci function > 0). > > > Yes. It is a Ricoh device - lspci says: > > 03:00.0 CardBus bridge: Ricoh Co Ltd Device e476 (rev 02) > 03:00.1 SD Host controller: Ricoh Co Ltd MMC/SD Host Controller (rev 03) Yeah, that's just buggy. The driver is programming pci Bus:Dev.Func (03:00.1) to do DMA (and so the IOMMU should have translations for that device). However, the device appears to issue the DMA from 03:00.0 giving the DMA errors you showed, like this: > >> [ 71.818618] DMAR:[DMA Write] Request device [03:00.0] fault addr fffff000 > >> [ 71.818620] DMAR:[fault reason 02] Present bit in context entry is clear > >> [ 71.818800] mmc0: unrecognised EXT_CSD revision 112 > >> [ 71.818808] mmc0: error -22 whilst initialising MMC card <snip> > >> I do not get this problem when using a Debian distribution kernel 3.1.0 config > >> as a base for the 3.2-rc7. Therefore i assume that they enabled something with > >> visualization, that i did not enable on my development box. > > > > They may have IOMMU defaulting to off (CONFIG_INTEL_IOMMU_DEFAULT_ON > > turned off). > > > There is no CONFIG_INTEL_IOMMU_DEFAULT_ON in the 3.1.0 kernel. > > They do it like this in 3.1: > > CONFIG_IOMMU_HELPER=y > CONFIG_IOMMU_API=y > CONFIG_IOMMU_SUPPORT=y > CONFIG_DMAR=y > # CONFIG_DMAR_DEFAULT_ON is not set This is the same config item (it's just been renamed). > CONFIG_DMAR_FLOPPY_WA=y > # CONFIG_VIRT_DRIVERS is not set > > > > >> Are there probably wrong Kconfig depencies killing my MMC access?? > >> > >> Attached you'll find both of my kernel configs with and without IOMMU enabled. > >> Any idea? > > > > You should be able to boot with either intel_iommu=off (disabled) or > > intel_iommu=on iommu=pt (enabled in passthrough mode, so only useful for > > pci device assignment to guest virtual machines). > > > IMHO it should work even with everything is switched on. Yes, it should. Currently, just a bug (and a quirk in hw that we need to work around in sw). > I put the MMC people in CC if there's a 'correct' way to handle the Ricoh MMC > together with IOMMU (e.g. disable DMA?). -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html