WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: READ DMA issues  (Read 1941 times)

Offline CentralWare

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 764
READ DMA issues
« on: November 17, 2014, 12:16:58 PM »
Motherboard: VIA C3/800A with two onboard PATA.
Drives:
IDE 0:0 has a CF to IDE adapter with a Seagate micro-drive (CF interface, 4GB moving-parts drive)
IDE 1:0 and 1:1 have standard 2.5" drives

The MicroDrive does not seem to support standard DMA, though in BIOS it registers as mode 2.
When core boots, it hangs when trying to read SDA (since HDx no longer applies it seems)
Finally, it flags with READ DMA error and eventually moves on.  The other two drives are fine.

Boot codes: I know about ide-core.nodma=x:x and libata.dma=x
Setting ide-core.nodma=x:x (if memory serves) only applies when devices are managed as hd# (PATA) which hasn't been the case for some time.
Setting libata on the other hand throws a question I'm concerned about.

Code: [Select]
libata.dma=0   Disable all PATA and SATA DMA
libata.dma=1   PATA and SATA Disk DMA only
libata.dma=2   ATAPI (CDROM) DMA only
libata.dma=4   Compact Flash DMA only
     Combinations also work, so libata.dma=3 enables DMA
     for disks and CDROMs, but not CFs.

If the system does not detect the drive as a CF (seen as SDA) then IMO setting dma=3 would be of no use.  If I disable PATA/SATA...  then I have to assume the two other IDE drives would suffer by not having DMA support.

Code: [Select]
/dev/sda:
hdparm: HDIO_GET_MULTCOUNT: Inappropriate ioctl for device
 IO_support     =  0 (default 16-bit)
hdparm: HDIO_GET_UNMASKINTR: Inappropriate ioctl for device
hdparm: HDIO_GET_DMA: Inappropriate ioctl for device
hdparm: HDIO_GET_KEEPSETTINGS: Inappropriate ioctl for device
 readonly       =  0 (off)
 readahead      = 256 (on)
 geometry       = 0/255/63, sectors = 0, start = 0

Any thoughts on the issue would be greatly appreciated!

Offline core-user

  • Full Member
  • ***
  • Posts: 192
  • Linux since 1999
Re: READ DMA issues
« Reply #1 on: November 18, 2014, 01:08:39 PM »
Quote
Combinations also work,
Would libata.dma=7 maybe work?
AMD, ARM, & Intel.