linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* amd74xx (nforce) driver problem ?
@ 2005-08-01  9:06 Sonny Rao
  2005-08-05 12:27 ` Vojtech Pavlik
  0 siblings, 1 reply; 3+ messages in thread
From: Sonny Rao @ 2005-08-01  9:06 UTC (permalink / raw)
  To: vojtech; +Cc: linux-kernel, akpm

Hi,

I have a system based on the Nforce2 chipset which uses the amd7xx
driver for it's IDE support, and I noticed that one of the drives was
performing very slowly.  I looked into it a bit more and it seems the
drive was operating as UDMA33 instead of UDMA100 for some reason.

The affected drive was getting about 20-25Mb/sec sequential read (dumb
hdparm test) while a similar drive on the other channel was getting
about 45-50 Mb/sec.  The drive on the other channel was operating at
UDMA100.  Both drives are attached using the proper 80-wire cable.

Kernel is 2.6.13-rc4 

If I go into the bios and twiddle an "IDE Master" setting from the
"none" to the "auto" setting then the driver operates at the expected
speed. 


I'm confused though why the driver never correctly set up that IDE
channel?  It claims in the kernel log that it detected the BIOS
borkage: 

NFORCE2: IDE controller at PCI slot 0000:00:09.0
NFORCE2: chipset revision 162
NFORCE2: not 100% native mode: will probe irqs later
NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.
NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA


Shouldn't the driver set the channel to UDMA100 after it detects the BIOS
set up the chip improperly, or am I mistaken about this behavior?  Isn't
that the "workaround" or does that mean something else?

Here is the output of /proc/ide/amd74xx:

----------AMD BusMastering IDE Configuration----------------
Driver Version:                     2.13
South Bridge:                       0000:00:09.0
Revision:                           IDE 0xa2
Highest DMA rate:                   UDMA133
BM-DMA base:                        0xf000
PCI clock:                          33.3MHz
-----------------------Primary IDE-------Secondary IDE------
Prefetch Buffer:              yes                 yes
Post Write Buffer:            yes                 yes
Enabled:                      yes                 yes
Simplex only:                  no                  no
Cable Type:                   40w                 80w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode:       UDMA       DMA      UDMA       DMA
Address Setup:       30ns      90ns      30ns      90ns
Cmd Active:          90ns      90ns      90ns      90ns
Cmd Recovery:        30ns      30ns      30ns      30ns
Data Active:         90ns     330ns      90ns     330ns
Data Recovery:       30ns     270ns      30ns     270ns
Cycle Time:          60ns     600ns      20ns     600ns
Transfer Rate:   33.3MB/s   3.3MB/s  99.9MB/s   3.3MB/s

If I change all of my BIOS settings to "auto" then the drive operates
at UDMA100 as expected and /proc/ide/amd74xx reports the 80-wire cable
correctly and reports the transfer rates for drive0 correctly. 

This isn't a major issue since I can fix it in the BIOS, but I just
wanted to alert the maintainers.

Thanks in advance,

Sonny

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: amd74xx (nforce) driver problem ?
  2005-08-01  9:06 amd74xx (nforce) driver problem ? Sonny Rao
@ 2005-08-05 12:27 ` Vojtech Pavlik
  0 siblings, 0 replies; 3+ messages in thread
From: Vojtech Pavlik @ 2005-08-05 12:27 UTC (permalink / raw)
  To: Sonny Rao; +Cc: linux-kernel, akpm

On Mon, Aug 01, 2005 at 05:06:33AM -0400, Sonny Rao wrote:
> Hi,
> 
> I have a system based on the Nforce2 chipset which uses the amd7xx
> driver for it's IDE support, and I noticed that one of the drives was
> performing very slowly.  I looked into it a bit more and it seems the
> drive was operating as UDMA33 instead of UDMA100 for some reason.
> 
> The affected drive was getting about 20-25Mb/sec sequential read (dumb
> hdparm test) while a similar drive on the other channel was getting
> about 45-50 Mb/sec.  The drive on the other channel was operating at
> UDMA100.  Both drives are attached using the proper 80-wire cable.
> 
> Kernel is 2.6.13-rc4 
> 
> If I go into the bios and twiddle an "IDE Master" setting from the
> "none" to the "auto" setting then the driver operates at the expected
> speed. 
> 
> 
> I'm confused though why the driver never correctly set up that IDE
> channel?  It claims in the kernel log that it detected the BIOS
> borkage: 
> 
> NFORCE2: IDE controller at PCI slot 0000:00:09.0
> NFORCE2: chipset revision 162
> NFORCE2: not 100% native mode: will probe irqs later
> NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.
> NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
>     ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
>     ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
> 
> 
> Shouldn't the driver set the channel to UDMA100 after it detects the BIOS
> set up the chip improperly, or am I mistaken about this behavior?  Isn't
> that the "workaround" or does that mean something else?
 
The driver simply takes the information from another register, also
supplied by the BIOS. If you set the drive to 'none', it doesn't have
anywhere to look, since the primary location is borked because of bad BIOS.

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: amd74xx (nforce) driver problem ?
       [not found] <4wEt8-4Qk-1@gated-at.bofh.it>
@ 2005-08-01 18:10 ` Robert Hancock
  0 siblings, 0 replies; 3+ messages in thread
From: Robert Hancock @ 2005-08-01 18:10 UTC (permalink / raw)
  To: linux-kernel

Sonny Rao wrote:
> NFORCE2: IDE controller at PCI slot 0000:00:09.0
> NFORCE2: chipset revision 162
> NFORCE2: not 100% native mode: will probe irqs later
> NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.
> NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
>     ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
>     ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
> 
> 
> Shouldn't the driver set the channel to UDMA100 after it detects the BIOS
> set up the chip improperly, or am I mistaken about this behavior?  Isn't
> that the "workaround" or does that mean something else?

I think the workaround is something else. I get that message as well on 
nForce4 (Asus A8N-SLI Deluxe). The drives are definitely set to auto in 
the BIOS (only optical drives are on the PATA controller).

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-08-05 12:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-01  9:06 amd74xx (nforce) driver problem ? Sonny Rao
2005-08-05 12:27 ` Vojtech Pavlik
     [not found] <4wEt8-4Qk-1@gated-at.bofh.it>
2005-08-01 18:10 ` Robert Hancock

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).