Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jun 2002 10:43:24 +0200 (SAST)
From:      Willie Viljoen <will@highveldcs.com>
To:        freebsd-hardware@freebsd.org
Subject:   Per-drive ATA configuration? (fwd)
Message-ID:  <20020612104259.H252-100000@phoenix.vh.laserfence.net>

next in thread | raw e-mail | index | archive | help
Hi,

I've recently set my system up in a rather perculiar way, the mainboard
(an Asus P3V133) has an onboard ATA-66 controller of some VIA flavour. I
have a CMD-469 ATA-100 controller lying around, which was needed to run my
40GB drive on an older motherboard.

I can boot directly off the 649, but the problem with this is that
ATA_STATIC_ID option turned on, then lists the drive as ad4, which means
at boot time, the system keeps probing for ad0, and my bootup is basically
stalled for about 60 seconds while the ata driver tries to get around the
fact that I have no ad0.

For this reason, I've reenabled the ATA-66 controller, and connected an
old drive (Conner Peripherals 425MB) to it.

The conner now holds root partitions for all my OSs, and the rest is
installed on the 40GB, controlled by the ATA-100.

This is also a slow boot, due to the lack of speed on the conner's part,
but is significantly faster than waiting for drivers looking for a drive
which is just not there.

I could just run the 40GB off the ATA-66, but I'm greedy in terms of
speed, and don't see why I should run at ATA-66 if my drive is ATA-100
capable.

The problem now is that under very heavy load, like installing a new world
or kernel etc into the root partition, the little conner freeses up. I've
tried with different drives, all give the same problem (A 210MB Seagate, a
1.7GB Seagate, and an 800MB Western Digital)

The machine goes into a hard lock and simply refuses to budge after the
lockup, no kernel panic output or even log messages to go by. Infact, it
does not even respond to ctrl+alt+delete, the soft power off sequence, or
even the ATX power switch on my case. The only way to get it out of this
lock is switching off the wall socket and switching it back on again.

After some testing, I noticed that the conner is running at WDMA2. I found
this strange, since the conner is a very old drive, and I doubt it was
built for DMA, even if it was, I doubt wether they had the specs
completely right back in 1994.

Upon disabling ATA DMA completely, I found that the conner loses no speed
at all, and the problem seems to be gone. From this it is rather evident
that these old drives should not be making an attempt at DMA.

The problem now is that ATA is disabled accross my entire system, meaning
I have to read the 40GB at PIO4, which, obviously, is less than desirable.
This has me to the point of simply wanting to remove the ATA-100
controller and using the ATA-66, but I'm usually not keen on just giving
up.

I checked the ata(4) manpage, and they mentioned a sysctl called
hw.atamodes. This sysctl (aparently) allows for individual tuning of ATA
parameters. However, to my great dismay, I discovered that this sysctl
does not exist on my system (FreeBSD 4.6-RC)

I've tried having sysctl display all its opaque variables, and this sysctl
still simply isn't there. I tried setting it from loader.conf asif it were
a kernel tunable, again, to no avail.

Has this controle been removed from the ata driver? Or has it simply not
yet been implimented...

Either of those cases being true, is there any way anyone can think of in
which I could individually tune my ATA devices, short of downgrading or
going to 5.0-CURRENT?

Regards,
Will

-- 
Willie Viljoen
Highveld Computing Solutions

214 Paul Kruger Avenue
Universitas
Bloemfontein
9321

South Africa

+27 51 522 15 60, a/h +27 51 522 44 36
+27 82 404 03 27

will@highveldcs.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hardware" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020612104259.H252-100000>