All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steffen Moser <lists@steffen-moser.de>
To: "Roedel, Joerg" <Joerg.Roedel@amd.com>
Cc: Jeff Garzik <jeff@garzik.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linux IDE mailing list <linux-ide@vger.kernel.org>
Subject: Re: IOMMU and DMA mode of pata_jmicron
Date: Mon, 03 Jan 2011 21:15:59 +0100	[thread overview]
Message-ID: <4D222E7F.5080305@steffen-moser.de> (raw)
In-Reply-To: <20110103112952.GA2100@amd.com>

Hi Joerg,

On 01/03/2011 12:29 PM, Roedel, Joerg wrote:
> On Tue, Dec 28, 2010 at 08:00:12PM -0500, Jeff Garzik wrote:
>> (CC'd linux-ide, Joerg)
>> 
>> On 12/28/2010 06:43 PM, Steffen Moser wrote:
>> > I've encountered a problem with my AMD 890FX based system
>> > and linux-2.6.35.10 (x86_64 platform).
>> >
>> > After activating the option "IOMMU" in the mainboard's BIOS
>> > setup, the onboard P-ATA controller "JMicron Technology Corp.
>> > JMB361 AHCI/IDE (rev 02)" puts itself back in the PIO mode.
>> > When loading the module, the kernel reports:
>> >
>> >    pata_jmicron 0000:06:00.1: BMDMA: failed to set dma mask, \
>> >                               falling back to PIO
>> [...]
>> > As soon as I deactivate IOMMU in BIOS setup, the P-ATA channel
>> > runs in the DMA mode again. The S-ATA controllers don't seem
>> > to be affected.
>> >
>> > My question is: Is this a known behavior? Are there any
>> > things I have to consider when activating IOMMU (which seems
>> > to be AMD-Vi) on an 890FX based system? Is it a problem of
>> > the chipset and/or the controller or is it related to a
>> > problem in the libata area?
>> >
>> > Some information about the affected system:
>> >
>> >  - Mainboard:    ASUS M4A89TD Pro/USB3
>> >  - BIOS version: 1101 (most recent version)
>> >  - Chipset:      AMD 890FX
>> >  - Processor:    AMD Phenom 1090T
>> >  - Memory:       4 x 4 GB (Kingston KVR1333D3E9S/4G)
>> >  - Distribution: openSUSE 11.3
>> >  - Kernel:       2.6.35.10 (from "kernel.org"), x86_64
>> >
>> 
>> This condition occurs when the PCI API cannot set the PCI device's DMA 
>> mask to the 32-bit value
>> 	#define ATA_DMA_MASK            0xffffffffULL
>> 
>> That is an unusual failure for such a modern system, which certainly can 
>> handle 32-bit masks like that, one would think.
> 
> Luckily I have exactly the same motherboard under my desk. It shows the
> same issue. The problem is that the PCI device of the PATA controler
> (4:00.1 in my case) is not described in the IVRS ACPI table. So the
> IOMMU driver does not feel responsible for it and the dma_supported()
> call on this device will fail. This also makes pci_set_dma_mask() fail
> on this device. So it comes down to a BIOS bug. 

That sounds quite comprehensible for me.

> I look into it to find a workaround.

Thank you.

Beside a possible work-around, do you think, it makes sense to
report the problem to ASUS as the straight way should be to have
a correct IVRS table for the board?

Kind regards,
Steffen

  reply	other threads:[~2011-01-03 20:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-28 23:43 IOMMU and DMA mode of pata_jmicron Steffen Moser
2010-12-29  1:00 ` Jeff Garzik
2011-01-03 11:29   ` Roedel, Joerg
2011-01-03 20:15     ` Steffen Moser [this message]
2011-01-04 10:23       ` Roedel, Joerg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D222E7F.5080305@steffen-moser.de \
    --to=lists@steffen-moser.de \
    --cc=Joerg.Roedel@amd.com \
    --cc=jeff@garzik.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.