public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox