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
next 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.