All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tribhuvan <loka@rcn.com>
To: linux-kernel@vger.kernel.org
Subject: SOLUTION: Problems with DMA on IDE ServerWorks
Date: Wed, 24 Nov 2004 19:44:34 +0000	[thread overview]
Message-ID: <41A4E4A2.30708@rcn.com> (raw)


The original post was regarding the inability to
use DMA on drives connected to the IDE interface
on a ServerWorks mainboard under linux (kernel=any)

The problem is that the standard PCI driver has been
attached to the IDE before the serverworks driver
which causes the latter not to be used:

relavant boot-console output:

[ ... too early ...  built-in ide driver loads ... ]
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 66MHz system bus speed for PIO modes         
hdd: HL-DT-ST CD-ROM GCR-8480B, ATAPI CD/DVD-ROM drive

[ ... too late  ...  ServerWorks IDE driver fails ... ]
SvrWks CSB5: port 0x0170 already claimed by ide1

DMA will not work.

SOLUTION:

Build all of the PCI/IDE drivers as _modules_ and re-install
the kernel. The mkinitrd script should insert the insmod
calls into the linuxrc script in initrd, but you may want to
check.

1) reconfigure the kernel:
   all PCI/IDE drivers selected as modules (including serverworks.ko)
2) Re-install kernel: make; make modules_install; make install
3) Check linuxrc:

   ("xyz" below is a fake name for your initrd file - will differ
    on each machine - mine is "initrd-2.6.9")

   # cp /boot/initrd-xyz /tmp/tmp/initrd-xyz.gz  #(added .gz extension)
   # gunzip /tmp/initrd-xyz.gz
   # mkdir -p /mnt/initrd && mount -o loop /tmp/initrd-xyz /mnt/initrd
   # cd /mnt/initrd
   # vi linuxrc

About half way down in the linuxrc script you should see something
similar to the following:

# echo "Starting udev"
# echo "/sbin/udev" > /proc/sys/kernel/hotplug
# echo "Creating devices"
# UDEVSTART_ON_BOOT=1
# export UDEVSTART_ON_BOOT
# /sbin/udevstart

# echo "Loading kernel/drivers/ide/pci/serverworks.ko"
# insmod /lib/modules/2.6.9/kernel/drivers/ide/pci/serverworks.ko

# echo "Loading kernel/drivers/ide/ide-disk.ko"
# insmod /lib/modules/2.6.9/kernel/drivers/ide/ide-disk.ko

# echo "Loading kernel/drivers/cdrom/cdrom.ko"
# insmod /lib/modules/2.6.9/kernel/drivers/cdrom/cdrom.ko

# echo "Loading kernel/drivers/ide/ide-cd.ko"
# insmod /lib/modules/2.6.9/kernel/drivers/ide/ide-cd.ko

If it looks OK, just reboot and do:

 # hdparm -d1 /dev/hdX

 and you should see something like:

/dev/hdc:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)

DONE

If not, add the `insmod` lines to linuxrc and save it, then:

install the new initrd file:

# cd /tmp && umount /mnt/initrd
# gzip -9 initrd-xyz
# cp initrd-xyz.gz /boot/initrd-xyz  #(removed .gz extension)

REBOOT and # hdparm -d1 /dev/hdX

DONE

The console messages shoule indicate proper loading of the
serverworks driver - at which time the hdX messages will
appear.

Since I saw the problem didn't have a solution posted, I thought
I'd send it - even though original post was a few months back...

Tribh


             reply	other threads:[~2004-11-24 20:03 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-24 19:44 Tribhuvan [this message]
2004-11-25  0:22 ` SOLUTION: Problems with DMA on IDE ServerWorks Bartlomiej Zolnierkiewicz

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=41A4E4A2.30708@rcn.com \
    --to=loka@rcn.com \
    --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.