lkml.org 
[lkml]   [2005]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: Banging my head on SATA / ATAPI DMA problem. Help?
From
On Tue, Jan 25, 2005 at 07:57:58PM -0800, Rick Bressler wrote:
> I've played with a lot of hardware since the Linux 1.0.9 days but not
> yet run into something quite like this. Alan has been talking a lot
> lately about ATA/SATA patches, and while I mostly lurk on this list,
> thought this one might be interesting enough for somebody to give me
> some advice.
>
> A friend of mine won an IBM 8482-2RU at Linux World last year and he is
> trying to get it working with a 2.6.x kernel.
>
> The problem I'm unable to resolve is that his primary drive, a Seagate
> ST3160023AS (SATA) works fine in DMA mode, but whenever it is plugged
> in, he can't get his PLEXTOR PX-716A DVD/CD-RW (PATA) to come up in DMA
> mode. (Works in PIO mode.)
>
> At first I was wondering if it wasn't a BIOS setting (legacy mode ATA
> etc) but he swears he can't find anything like that in his BIOS. (He's
> on the latest BIOS that IBM has for the box.)
>
> He's in California and I'm in Washington so I have to take his word for
> it.
>
> hdparm says the DVD/CD can do DMA, and in theory is being configured by the
> BIOS
>
> DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4
>
> The kernel doesn't detect it. It can't be turned on manually with
> hdparm. If the hard drive is unplugged, I note that it is recognizes
> the CD as as being on an ICH5 chipset, but it doesn't seem to identify
> it as such with the hard drive plugged in. Odd hardware? Strange
> hardware detection? Something subtle in the kernel config that I keep
> missing? (BLK_DEV_PIIX is turned on.)
>
> Both drives come up DMA on 2.4.x (no libata). but no 2.6 kernel we've
> tried (2.6.6, 2.6.9, 2.6.10 2.6.10-ac10) seems to be able to manage it.
>
> I've been working with him for a couple of weeks, but have exhausted my
> luck on Google, list archives etc. and decided it is time to see if
> anybody can give me some ideas on how to proceed. Maybe it is just
> flakey hardware...
>
> Any help, pointers or suggestions that you may care to offer would be
> appreciated.
>
> I monitor the list (in nightly batch mode) so feel free to reply any way
> you like, list or email...
>
> Thanks in advance.
>
> His PCI layout:
>
> # lspci
> 0000:00:00.0 Host bridge: Intel Corp. 82875P/E7210 Memory Controller Hub (rev 02)
> 0000:00:03.0 PCI bridge: Intel Corp. 82875P/E7210 Processor to PCI to CSA Bridge (rev 02)
> 0000:00:1c.0 PCI bridge: Intel Corp. 6300ESB 64-bit PCI-X Bridge (rev 02)
> 0000:00:1d.0 USB Controller: Intel Corp. 6300ESB USB Universal Host Controller (rev 02)
> 0000:00:1d.1 USB Controller: Intel Corp. 6300ESB USB Universal Host Controller (rev 02)
> 0000:00:1d.4 System peripheral: Intel Corp. 6300ESB Watchdog Timer (rev 02)
> 0000:00:1d.5 PIC: Intel Corp. 6300ESB I/O Advanced Programmable Interrupt Controller (rev 02)
> 0000:00:1d.7 USB Controller: Intel Corp. 6300ESB USB2 Enhanced Host Controller (rev 02)
> 0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 0a)
> 0000:00:1f.0 ISA bridge: Intel Corp. 6300ESB LPC Interface Controller (rev 02)
> 0000:00:1f.2 IDE interface: Intel Corp. 6300ESB SATA Storage Controller (rev 02)
> 0000:00:1f.3 SMBus: Intel Corp. 6300ESB SMBus Controller (rev 02)
> 0000:02:01.0 Ethernet controller: Intel Corp. 82547GI Gigabit Ethernet Controller
> 0000:03:04.0 SCSI storage controller: Adaptec AIC-7901 U320 (rev 10)
> 0000:04:02.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
> 0000:04:08.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
>
> A boot from a Knoppix CD with the hard drive unplugged yielded a working
> DMA enabled CDROM with a 2.6.9 kernel.
>
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> ICH5: IDE controller at PCI slot 0000:00:1f.1
> ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
> ICH5: chipset revision 2
> ICH5: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0x1460-0x1467, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0x1468-0x146f, BIOS settings: hdc:pio, hdd:pio
> Probing IDE interface ide0...
> hda: PLEXTOR DVDR PX-716A, ATAPI CD/DVD-ROM drive

Above the piix drive was loaded and took care of the IDE channel.

> Bits of dmesg for the failure case:
>
> No DMA on CD-ROM with hd plugged in
>
> Probing IDE interface ide0...
> hda: PLEXTOR DVDR PX-716A, ATAPI CD/DVD-ROM drive
> ide1: I/O resource 0x170-0x177 not free.
> ide1: ports already in use, skipping probe
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 8192kB Cache
> Uniform CD-ROM driver Revision: 3.20

This looks like ide-generic which doesn't do DMA since it isn't chipset
specific. Make SURE you load the piix driver for the PATA channels, and
don't let the system auto load ide-generic when you try to access the
CD. On debian I add these lines to /etc/modules to ensure they are
loaded in that order early in boot:

piix
ide-generic
ide-cd

Without it, trying to access /dev/hda causes ide-generic to be loaded
since that is what modprobe tries. There is probably an alias that
could be set to make ide always try piix first but I don't know what it
is, and I want piix loaded at all times anyhow.

> The SATA drive comes up fine.
>
> libata version 1.10 loaded.
> ata_piix version 1.03
> ata_piix: combined mode detected
> ACPI: PCI interrupt 0000:00:1f.2[A] -> GSI 18 (level, low) -> IRQ 18
> ata: 0x1f0 IDE port busy
> PCI: Setting latency timer of device 0000:00:1f.2 to 64
> ata1: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x1478 irq 15
> ata1: dev 0 cfg 49:2f00 82:346b 83:7d01 84:4003 85:3469 86:3c01 87:4003 88:207f
> ata1: dev 0 ATA, max UDMA/133, 312581808 sectors: lba48
> ata1: dev 0 configured for UDMA/133
> scsi0 : ata_piix
> Vendor: ATA Model: ST3160023AS Rev: 3.18
> Type: Direct-Access ANSI SCSI revision: 05
> SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
> SCSI device sda: drive cache: write back
> SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
> SCSI device sda: drive cache: write back
> sda: sda1 sda2 < sda5 sda6 sda7 sda8 sda9 sda10 sda11 sda12 sda13 sda14 >
> Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
>
> He does get an error when first accessing the CD-ROM, but it keeps on
> working in PIO mode.
>
> hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
> hda: drive_cmd: error=0x04 { AbortedCommand }
>
>
> Anything else you'd like to see? Let me know and I'll get it from him.

Try doing lsmod and seeing what modules are actually in use. I see piix
with use 1 and ide-generic with use 0.

Len Sorensen
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:09    [W:0.030 / U:0.640 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site