2001-03-01 13:02:31

by Hylke van der Schaaf

[permalink] [raw]
Subject: DMA on a AMD7409 controller with kernel 2.4.2

With kernet 2.2.18 DMA mode for my harddisks worked just fine,
getting IDE DMA working on an AMD7409 controller with kernel 2.4.2 is a problem.

questions:
Why is DMA disabled on revision < C4?
How can I gat DMA working again?

The Information:

in 2.2.18 I get:
--------- dmesg: ----------
PCI_IDE: unknown IDE controller on PCI bus 00 device 39, VID=1022, DID=7409
PCI_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
PCI_IDE: simplex device: DMA disabled
ide1: PCI_IDE Bus-Master DMA disabled (BIOS)
hda: IBM-DPTA-372050, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: IBM-DPTA-372050, 19574MB w/1961kB Cache, CHS=2495/255/63
---------------------------

hylke:/home/hylke# hdparm -v /dev/hda

/dev/hda:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2495/255/63, sectors = 40088160, start = 0
hylke:/home/hylke# hdparm -tT /dev/hda

/dev/hda:
Timing buffer-cache reads: 128 MB in 0.89 seconds =143.82 MB/sec
Timing buffered disk reads: 64 MB in 2.85 seconds = 22.46 MB/sec
----------------------------

All was fine.
I compiled 2.4.2, with:

CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_PCI_WIP=y
CONFIG_AMD7409_OVERRIDE=y
CONFIG_IDEDMA_AUTO=y
CONFIG_IDEDMA_IVB=y

and I get:

--------- dmesg: ----------
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
AMD7409: IDE controller on PCI bus 00 dev 39
AMD7409: chipset revision 3
AMD7409: not 100% native mode: will probe irqs later
AMD7409: disabling single-word DMA support (revision < C4)
AMD7409: simplex device: DMA forced
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: IBM-DPTA-372050, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 40088160 sectors (20525 MB) w/1961KiB Cache, CHS=2495/255/63
--------------------------
hylke:/home/hylke# hdparm -v /dev/hda

/dev/hda:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2495/255/63, sectors = 40088160, start = 0
hylke:/home/hylke# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
hylke:/home/hylke# hdparm -tT /dev/hda

/dev/hda:
Timing buffer-cache reads: 128 MB in 0.90 seconds =142.22 MB/sec
Timing buffered disk reads: 64 MB in 12.59 seconds = 5.08 MB/sec
-------------------------

My harddisk speed is down to 25%...

Greets,
Hylke van der Schaaf


--
Hi, I'm a signature virus. plz set me as your signature and help me
spread :)


2001-03-01 23:59:52

by Andre Hedrick

[permalink] [raw]
Subject: Re: DMA on a AMD7409 controller with kernel 2.4.2

On Thu, 1 Mar 2001, Hylke van der Schaaf wrote:

> With kernet 2.2.18 DMA mode for my harddisks worked just fine,
> getting IDE DMA working on an AMD7409 controller with kernel 2.4.2 is a problem.
>
> questions:
> Why is DMA disabled on revision < C4?
> How can I gat DMA working again?


AMD7409: disabling single-word DMA support (revision < C4)

This is not Ultra DMA it is the class of orignal from ATA-1/2

>
> The Information:
>
> in 2.2.18 I get:
> --------- dmesg: ----------
> PCI_IDE: unknown IDE controller on PCI bus 00 device 39, VID=1022, DID=7409
> PCI_IDE: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
> PCI_IDE: simplex device: DMA disabled
> ide1: PCI_IDE Bus-Master DMA disabled (BIOS)
> hda: IBM-DPTA-372050, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: IBM-DPTA-372050, 19574MB w/1961kB Cache, CHS=2495/255/63
> ---------------------------
>
> hylke:/home/hylke# hdparm -v /dev/hda
>
> /dev/hda:
> multcount = 16 (on)
> I/O support = 1 (32-bit)
> unmaskirq = 1 (on)
> using_dma = 1 (on)
> keepsettings = 0 (off)
> nowerr = 0 (off)
> readonly = 0 (off)
> readahead = 8 (on)
> geometry = 2495/255/63, sectors = 40088160, start = 0
> hylke:/home/hylke# hdparm -tT /dev/hda
>
> /dev/hda:
> Timing buffer-cache reads: 128 MB in 0.89 seconds =143.82 MB/sec
> Timing buffered disk reads: 64 MB in 2.85 seconds = 22.46 MB/sec
> ----------------------------
>
> All was fine.
> I compiled 2.4.2, with:
>
> CONFIG_BLK_DEV_IDEPCI=y
> CONFIG_IDEPCI_SHARE_IRQ=y
> CONFIG_BLK_DEV_IDEDMA_PCI=y
> CONFIG_IDEDMA_PCI_AUTO=y
> CONFIG_BLK_DEV_IDEDMA=y
> CONFIG_IDEDMA_PCI_WIP=y
> CONFIG_AMD7409_OVERRIDE=y
> CONFIG_IDEDMA_AUTO=y
> CONFIG_IDEDMA_IVB=y
>
> and I get:
>
> --------- dmesg: ----------
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> AMD7409: IDE controller on PCI bus 00 dev 39
> AMD7409: chipset revision 3
> AMD7409: not 100% native mode: will probe irqs later
> AMD7409: disabling single-word DMA support (revision < C4)
> AMD7409: simplex device: DMA forced
> ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
> hda: IBM-DPTA-372050, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: 40088160 sectors (20525 MB) w/1961KiB Cache, CHS=2495/255/63
> --------------------------
> hylke:/home/hylke# hdparm -v /dev/hda
>
> /dev/hda:
> multcount = 16 (on)
> I/O support = 1 (32-bit)
> unmaskirq = 1 (on)
> using_dma = 0 (off)
> keepsettings = 0 (off)
> nowerr = 0 (off)
> readonly = 0 (off)
> readahead = 8 (on)
> geometry = 2495/255/63, sectors = 40088160, start = 0
> hylke:/home/hylke# hdparm -d1 /dev/hda
>
> /dev/hda:
> setting using_dma to 1 (on)
> HDIO_SET_DMA failed: Operation not permitted
> using_dma = 0 (off)
> hylke:/home/hylke# hdparm -tT /dev/hda
>
> /dev/hda:
> Timing buffer-cache reads: 128 MB in 0.90 seconds =142.22 MB/sec
> Timing buffered disk reads: 64 MB in 12.59 seconds = 5.08 MB/sec
> -------------------------
>
> My harddisk speed is down to 25%...
>
> Greets,
> Hylke van der Schaaf
>
>
> --
> Hi, I'm a signature virus. plz set me as your signature and help me
> spread :)
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Andre Hedrick
Linux ATA Development
ASL Kernel Development
-----------------------------------------------------------------------------
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035 Web: http://www.aslab.com

2001-03-02 15:31:39

by Thomas Dodd

[permalink] [raw]
Subject: Re: DMA on a AMD7409 controller with kernel 2.4.2

> On Thu, 1 Mar 2001, Hylke van der Schaaf wrote:
>
> > With kernet 2.2.18 DMA mode for my harddisks worked just fine,
> > getting IDE DMA working on an AMD7409 controller with kernel 2.4.2 is a problem.
> >
> > questions:
> > Why is DMA disabled on revision < C4?
> > How can I gat DMA working again?
> > in 2.2.18 I get:
> > hylke:/home/hylke# hdparm -tT /dev/hda
> >
> > /dev/hda:
> > Timing buffer-cache reads: 128 MB in 0.89 seconds =143.82 MB/sec
> > Timing buffered disk reads: 64 MB in 2.85 seconds = 22.46 MB/sec
> > ----------------------------
> >
> > All was fine.
> > I compiled 2.4.2, with:
> > CONFIG_AMD7409_OVERRIDE=y

I'm not using this, since my drives are not UDMA66 or UDMA100

> > hylke:/home/hylke# hdparm -v /dev/hda
> >
> > /dev/hda:
> > multcount = 16 (on)
> > I/O support = 1 (32-bit)
> > unmaskirq = 1 (on)
> > using_dma = 0 (off)
> > keepsettings = 0 (off)
> > nowerr = 0 (off)
> > readonly = 0 (off)
> > readahead = 8 (on)
> > geometry = 2495/255/63, sectors = 40088160, start = 0
> > hylke:/home/hylke# hdparm -tT /dev/hda
> >
> > /dev/hda:
> > Timing buffer-cache reads: 128 MB in 0.90 seconds =142.22 MB/sec
> > Timing buffered disk reads: 64 MB in 12.59 seconds = 5.08 MB/sec

I get 148.8 and 12 MB/sec on my IBM-DTTA-351010 drives.
I get the same message about no single word DMA due
to chip revision.
# hdparm -v /dev/hda

/dev/hda:
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 19650/16/63, sectors = 19807200, start = 0

What does /proc/ide/hda/settings show?
What about /proc/ide/amd74xx ?


-Thomas

2001-03-02 20:19:15

by Andre Hedrick

[permalink] [raw]
Subject: Re: DMA on a AMD7409 controller with kernel 2.4.2

On Fri, 2 Mar 2001, Thomas Dodd wrote:

> > > using_dma = 0 (off)

DMA is off and I bet you did not enable the new AUTODMA config setting.


Andre Hedrick
Linux ATA Development
ASL Kernel Development
-----------------------------------------------------------------------------
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035 Web: http://www.aslab.com