Find the answer to your Linux question:
Results 1 to 10 of 10
I'm running a small Slackware 1o.o installation from a 256Mb CF (IDE > CF adapter) and it runs boots and runs fine. Well, after all sorts of dma timeout delays ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Jan 2005
    Posts
    13

    DMA issue with CF


    I'm running a small Slackware 1o.o installation from a 256Mb CF (IDE > CF adapter) and it runs boots and runs fine. Well, after all sorts of dma timeout delays on boot and when mounting the CF. The CF is a SanDisk SDCFH-256 and the system is a Via EPIA 5000. No problems and no errors reported with a standard HD.

    Here's what dmesg reports:

    hdc: SanDisk SDCFH-256, CFA DISK drive
    blk: queue c03b37b4, I/O limit 4095Mb (mask 0xffffffff)
    ide1 at 0x170-0x177,0x376 on irq 15
    hdc: attached ide-disk driver.
    hdc: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
    hdc: task_no_data_intr: error=0x04 { DriveStatusError }
    hdc: 501760 sectors (257 MB) w/1KiB Cache, CHS=980/16/32, DMA
    Partition check:
    hdc:<4>hdc: dma_timer_expiry: dma status == 0x21
    hdc: error waiting for DMA
    hdc: dma timeout retry: status=0x58 { DriveReady SeekComplete DataRequest }

    Obviously, it eventually gets past the error but it takes over a minute to do so. Also obviously, I currently have it connected as a 2nd IDE Master but the behavior is the same if it's on /dev/hda

    When I mount the CF (it is read only and is only used for loading into RAMDISK). Mounting takes over a minute before it completes and it does mount ok:

    root@rush: mount /dev/hdc /tmp/cf

    hdc:<4>hdc: dma_timer_expiry: dma status == 0x21
    hdc: error waiting for DMA
    hdc: dma timeout retry: status=0x58 { DriveReady SeekComplete DataRequest }

    hdc1 hdc2 hdc3 hdc4
    hdc: dma_timer_expiry: dma status == 0x21
    hdc: error waiting for DMA
    hdc: dma timeout retry: status=0x58 { DriveReady SeekComplete DataRequest }

    hdc: dma_timer_expiry: dma status == 0x21
    hdc: error waiting for DMA
    hdc: dma timeout retry: status=0x58 { DriveReady SeekComplete DataRequest }

    hdc: hdc1 hdc2 hdc3 hdc4
    hdc: hdc1 hdc2 hdc3 hdc4
    UMSDOS 0.86k (compatibility level 0.4, fast msdos)


    It does mount:

    root@rush: df -h

    Filesystem Size Used Avail Use% Mounted on
    /dev/fd2 171M 124M 38M 77% /
    /dev/hdc 245M 50M 196M 21% /tmp/cf



    Any thoughts?

  2. #2
    Just Joined!
    Join Date
    Jan 2005
    Posts
    1
    I'm seeing the same thing but with a custom built version of the kernel. It's based on 2.6.10.

    I have a sandisk CF 256. I have multiple processor boards.

    I'm thinking there is a bug here. I think I found something on the redhat bugzilla site.

    Have you seen or found out anything else??

    -stv

  3. #3
    Linux Enthusiast
    Join Date
    Jun 2004
    Location
    Windsor, CO
    Posts
    656
    The last time I had a DMA problem, it was because I compiled support for the chipsets involved (usually the motherboard chipset, but you'll probably want the IDE->CF adapter chipset too if possible) as modules instead of built-in. Try rcompiling the kernel with those things built-in, and see if that works.
    Emotions are the key to the soul.
    Registered Linux User #375050

  4. $spacer_open
    $spacer_close
  5. #4
    Just Joined!
    Join Date
    Jan 2005
    Posts
    6

    well I'll be darned

    So someone finallyhad a problem similar to mine?
    I'm running Slack10 on a CV860a mainboard and my problem is that with kernel 2.6.10 I cannot format or run badblocks on the card. I just started looking at the dmesg errors. I only get a few - this is the output of mine:
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdcio, hddio
    hdc: TOSHIBA THNCF256MMA, CFA DISK drive
    hdc: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
    hdc: set_drive_speed_status: error=0x04 { DriveStatusError }
    hdc: max request size: 128KiB
    hdc: 500736 sectors (256 MB) w/2KiB Cache, CHS=978/16/32
    hdc: cache flushes not supported
    hdc: hdc1

    I did compile in support for the mainboard chipset but I wonder what else needs to be compiled in? Everything works fine in kernel 2.4 but I want updated ALSA and USB support

  6. #5
    Just Joined!
    Join Date
    Jan 2005
    Posts
    13
    I finally solved my problem by turning off DMA at boot. This can be done in GRUB or LILO, whichever one you use.

    Although how I've got a different problem - I can't boot off the CF now.

    It's been a real PITA trying to eliminate a hard disk from my system!

  7. #6
    Just Joined!
    Join Date
    Jan 2005
    Posts
    6
    Didn't help me - I disabled DMA in BIOS and in Grub and I set the PIO down to mode 3 in BIOS. The kernel still shows an error with the speed setting and I can't format the card.

    As for your problem - are you using LILO or Grub? I had to install grub to the MBR in one instance and another time I've had to install it to the 1st partition.

  8. #7
    Just Joined!
    Join Date
    Jan 2005
    Posts
    13
    Quote Originally Posted by gdarkblade
    Didn't help me - I disabled DMA in BIOS and in Grub and I set the PIO down to mode 3 in BIOS. The kernel still shows an error with the speed setting and I can't format the card.

    As for your problem - are you using LILO or Grub? I had to install grub to the MBR in one instance and another time I've had to install it to the 1st partition.
    I'm using Lilo (using Slack 10.0 as my "small" build. I formatted the CF as FAT16 and am using Syslinux as my bootloader.

  9. #8
    Just Joined!
    Join Date
    Jan 2005
    Posts
    6
    I think most people using CF cards have been using LILO but I perfer grub myself. I had a little trouble with LILO at first but once I removed LILO and got grub installed it's been fine.

    I got a kernel from my vendor to test today and it didn't work either so as odd as it seems (since it works in kernel 2.4 and only messes up in 2.6) I'm almost convinced this is a flaky CF card.

  10. #9
    Just Joined!
    Join Date
    Jan 2005
    Posts
    6

    SOLUTION

    form another forum someone mentioned they had the same issue and accidentally formatted it at /dev/hdc instead of /dev/hdc1 - that worked. Must be something in the newer kernel that won't let you acces the CF as a fixed device and makes you format it as a removable. Whatever the cause it worked so I'm continuing with my work until it breaks again

  11. #10
    Linux Enthusiast
    Join Date
    Jun 2004
    Location
    Windsor, CO
    Posts
    656
    Do CF cards even use DMA? Just wondering. You might want to check the option in the kernel config for turning DMA on for HDs only.
    Emotions are the key to the soul.
    Registered Linux User #375050

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •