# HP Compaq dx2300, Intel 946 chipset; no DMA on SATA hdd

## almagest

I'm trying to install Gentoo Linux using the 2.6.22-gentoo-r8 kernel on an HP Compaq dx2300, and everything works fine, except for my sata hdd does not have dma enabled:

```
hdparm /dev/hda

/dev/hda:

 multcount    =  0 (off)

 IO_support   =  0 (default 16-bit)

 unmaskirq    =  0 (off)

 using_dma    =  0 (off)

 keepsettings =  0 (off)

 readonly     =  0 (off)

 readahead    = 256 (on)

 geometry     = 16383/255/63, sectors = 80026361856, start = 0
```

```
hdparm -i /dev/hda

/dev/hda:

 Model=ST380815AS, FwRev=3.CHF, SerialNo=9RW0W09C

 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=off

 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488

 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

 PIO modes:  pio0 pio1 pio2 pio3 pio4 

 DMA modes:  mdma0 mdma1 mdma2 

 UDMA modes: udma0 udma1 udma2 

 AdvancedPM=no WriteCache=enabled

 Drive conforms to: device does not report version: 

 * signifies the current active mode
```

It appears to support DMA/UDMA, but trying to enable it through the command line results in the following:

```
hdparm -d1 /dev/hda

/dev/hda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 using_dma    =  0 (off)
```

This is not an ideal solution anyway, since I'd rather have DMA support automatically, but still.  I've tried recompiling & following the guide at http://gentoo-wiki.com/HARDWARE_SATA to no avail, as well.  Google shows me nothing useful, either.  Please help!

```
lspci

00:00.0 Host bridge: Intel Corporation Memory Controller Hub (rev 02)

00:01.0 PCI bridge: Intel Corporation PCI Express Root Port (rev 02)

00:02.0 VGA compatible controller: Intel Corporation Integrated Graphics Controller (rev 02)

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)

00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)

02:08.0 Ethernet controller: Intel Corporation 82801G (ICH7 Family) LAN Controller (rev 01)
```

----------

## almagest

Also, HP's website tells me this machine is using the 946 Express chipset.

----------

## bunder

sata drives don't use dma, despite their appearance in hdparm.  however, you could be missing dma support in your kernel.  take a peek under ata support:

 *Quote:*   

>  [*]         Use PCI DMA by default when available   

 

could yours be off?

cheers

----------

## almagest

Thanks for your help.

I'm not seeing that option in Device Drivers -> ATA/ATAPI/MFM/RLL Support, though.  Perhaps it's called something else in 2.6.22/2.6.23?  Or are there any other options not mentioned in any of the HOWTOs that might be helpful?  I did try using the 2.6.23 kernel, and enabling all the Intel piix drivers available as well.  Still no dice:

```
hdparm -t /dev/hda

/dev/hda:

 Timing buffered disk reads:   12 MB in  3.24 seconds =   3.70 MB/sec
```

----------

## almagest

I also enabled the following options, to no avail:

```
Force Enable legacy 2.0.x HOSTS to use DMA

Special UDMA Feature

SCSI target support

Support for DMA Engines

Intel I/OAT DMA Support
```

----------

## almagest

Not sure why the drive is detected as hda and not sda as well.  I also tried a Knoppix live cd, which could not detect the drive as sata as well.

----------

## DaggyStyle

are you sure you've enabled the right settings? your HD should be sdx not hdx

----------

## almagest

 *DaggyStyle wrote:*   

> are you sure you've enabled the right settings? your HD should be sdx not hdx

 

I am aware of this.  Compiling the kernel without standard PATA support results in a kernel panic, even after adjusting the grub.conf and fstab to sda.  Also, this drive is recognized as hda on live cds as well.

My attempt to use a generic 2.6.23 kernel direct from kernels.org fails as well.  Anyone have any further advice?

----------

## bunder

 *almagest wrote:*   

> Not sure why the drive is detected as hda and not sda as well.

 

check your bios.  it has an option to make sata look like ide if your operating system doesn't support sata.

----------

## almagest

 *bunder wrote:*   

> check your bios.  it has an option to make sata look like ide if your operating system doesn't support sata.

 

I thought this could be the issue as well, but I'm not seeing an option like that anywhere in the BIOS.  The only one I can see is an option to disable the IDE HDD device, which only results in a "BOOTABLE DEVICE NOT FOUND" error.  Do most Award BIOS have a hidden "advanced" options page?  That's the only other place I can think of that would have an IDE compatibility option like that.

I also tried flashing the BIOS to the latest version, which didn't help either.

----------

