Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

grub ide=nodma not working with CF card - boot delay

156 views
Skip to first unread message

Stephen G

unread,
Mar 7, 2007, 6:20:09 AM3/7/07
to
Hi there. I have been trying to figure out how to get rid of the dma timer errors that I am getting when booting my debian testing (etch) from compact flash (Kingston) using a CF-to-IDE interface.

I have placed the following in my /boot/grub/menu.lst:

kernel /boot/vmlinuz-2.6.18-4-686 ide=nodma root=/dev/hda1 ro


But I still get the following DMA errors during the bootup sequence:

Probing IDE interface ide0...

hda: KINGSTON, ATA DISK drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

hda: max request size: 128KiB

hda: 4061232 sectors (2079 MB) w/1KiB Cache, CHS=4029/16/63, DMA

hda:<4>hda: dma_timer_expiry: dma status == 0x21

hda: DMA timeout error

hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }

ide: failed opcode was: unknown

hda1 hda2 <<4>hda: dma_timer_expiry: dma status == 0x21

hda: DMA timeout error

hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }

ide: failed opcode was: unknown

hda5 >

hda: dma_timer_expiry: dma status == 0x21

hda: DMA timeout error

hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }

ide: failed opcode was: unknown

hda: dma_timer_expiry: dma status == 0x21

hda: DMA timeout error

hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }

ide: failed opcode was: unknown

Attempting manual resume


And then the bootup continues OK. Is there anyway to avoid this at bootup? Will this cause any problems?

Thanks!

srfeo

unread,
Mar 25, 2007, 7:50:07 PM3/25/07
to

I have no answer for you, but I am experiencing the same problem. I'm trying to find out if my Kingston CF card does not support DMA, or if my IDE-CF adaptor does not support DMA.

I have also tried turning DMA off in GRUB, but it seems as though later on in the bootup sequence, Debian probes the drives again and tries to enable DMA on the CF drive.

I'll post something if I find an answer.

I have a SATA-CF adaptor and I think that I will be buying a CF card (Sandisk) that supports DMA...


--
To UNSUBSCRIBE, email to debian-us...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

geoff

unread,
Apr 9, 2007, 6:00:11 PM4/9/07
to

I'm also seeing the same issue with the Debian 4.0 Release (Etch). I have a custom Celeron based SBC with an IDE CF slot as the primary drive. The board itself does not support DMA, so I've been using the 'ide=nodma' boot parameter with RedHat 9.0 and Debian Sarge. On these older distributions, the nodma parameter works fine for both DMA and non-DMA enabled CF cards.

The only thing I'm doing different with my Etch based card is that I'm using a kernel wit in initrd enabled. I'll try without to see if that helps.

geoff

unread,
Apr 11, 2007, 9:20:08 PM4/11/07
to

I think I solved the ide=nodma not being recognized problem by compiling and installing a custom kernel. I turned [b]off[/b] the option [b]CONFIG_IDEDMA_PCI_AUTO[/b] in the .config file. This option is set to "Y" in the standard Debian 4.0 kernel. From 'menuconfig' help for this option:


CONFIG_IDEDMA_PCI_AUTO: │
│ │
│ Prior to kernel version 2.1.112, Linux used to automatically use │
│ DMA for IDE drives and chipsets which support it. Due to concerns │
│ about a couple of cases where buggy hardware may have caused damage, │
│ the default is now to NOT use DMA automatically. To revert to the │
│ previous behaviour, say Y to this question. │
│ │
│ If you suspect your hardware is at all flaky, say N here. │
│ Do NOT email the IDE kernel people regarding this issue! │
│ │
│ It is normally safe to answer Y to this question unless your │
│ motherboard uses a VIA VP2 chipset, in which case you should say N. │
│ │
│ Symbol: IDEDMA_PCI_AUTO [=n] │
│ Prompt: Use PCI DMA by default when available │
│ Defined at drivers/ide/Kconfig:426 │
│ Depends on: IDE && BLK_DEV_IDE && BLK_DEV_IDEDMA_PCI │
│ Location: │
│ -> Device Drivers │
│ -> ATA/ATAPI/MFM/RLL support │
│ -> ATA/ATAPI/MFM/RLL support (IDE [=y]) │
│ -> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (BLK_DEV_IDE [=m]) │
│ -> PCI IDE chipset support (BLK_DEV_IDEPCI [=y]) │
│ -> Generic PCI bus-master DMA support (BLK_DEV_IDEDMA_PCI [=y])


Once I installed my custom kernel, the system booted quickly without IDE DMA timeouts. I don't even think I need to pass the [i]ide=nodma[/i] option anymore.

By the way, I recommend installing 'kernel-package' which installs the make-kpg tool. It creates a proper custom .deb package file you can use to install the kernel painlessly on the target system. Roughly the steps were:

1) apt-get install kernel-package libncurses5-dev fakeroot
2) apt-get install linux-source-2.6
3) tar jtvf /usr/src/linux-source-2-6-18-4 build_dir
4) cd build_dir/linux-source-2.6.18.
5) make-kpgg --rootcmd fakeroot --config menu kernel-image
6) Browse the menuconfig interface, toggle the CONFIG_IDEDMA_PCI_AUTO setting.
7) make some tea.

Assuming the build went well, the resulting .deb file should be in the parent directory.

8) Copy the linux-image-2.6.18custom10.deb file to the target system.
9) Install on the target system dpkg -i linux-image-2.6.18custom10.deb.
10) reboot.

-Geoff

srfeo

unread,
Jul 9, 2007, 1:40:09 PM7/9/07
to

Geoff,

Thanks for the info. I switched to another Intel-based motherboard and another CF card reader (due to other VIA-related hard-lockup problems) and am now using an IDE CF-card reader with a Seagate Microdrive which is built-into the board. I'm running Debian Etch (4.0) on that server.

The Microdrive seems to support DMA, but after a few days of uptime, one of the DMA timers fails and the drive resets itself and resets as read-only:

0 new messages