# Intel ICH7 82801GB capable of SATA300?



## eyebone (Apr 7, 2010)

hej folks,

just try to figure why a SATA300 drive is not working with the chipset which is supposed to work with SATA300.


```
computer# pciconf -lv | grep ATA
    device     = '82801G (ICH7 Family) Ultra ATA Storage Controller'
    subclass   = ATA
    device     = '82801GB/GR/GH (ICH7 Family) Serial ATA Storage Controller'
    subclass   = ATA
```


```
kernel: atapci1: <Intel ICH7 SATA300 controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f irq 19 at 
device 31.2 on pci0
```

if i check messages:

```
kernel: ad6: 152627MB <INTEL SSDSA2M160G2GC 2CV102HA> at ata3-master UDMA100 SATA
```

i wonder why it says "UDMA100 SATA", shouldn't it just state SATA?

changing the mode to SATA300 via atacontrol isn't working as well 
i tried to figure from the kerneland source in correlation with the version of the ICH7 chipset:


```
chipsets/ata-intel.c:     { ATA_I82801GB,     0,          0, 1, ATA_UDMA5, "ICH7" },
chipsets/ata-intel.c:     { ATA_I82801GB_S1,  0, INTEL_AHCI, 0, ATA_SA300, "ICH7" },
chipsets/ata-intel.c:     { ATA_I82801GB_R1,  0, INTEL_AHCI, 0, ATA_SA300, "ICH7" },
chipsets/ata-intel.c:     { ATA_I82801GB_AH,  0, INTEL_AHCI, 0, ATA_SA300, "ICH7" },
chipsets/ata-intel.c:     { ATA_I82801GBM_S1, 0, INTEL_AHCI, 0, ATA_SA150, "ICH7M" },
chipsets/ata-intel.c:     { ATA_I82801GBM_R1, 0, INTEL_AHCI, 0, ATA_SA150, "ICH7M" },
chipsets/ata-intel.c:     { ATA_I82801GBM_AH, 0, INTEL_AHCI, 0, ATA_SA150, "ICH7M" },
```

i wonder, as the device states "82801GB/GR/GH", "82801GB" for it alone would be UDMA5, i don't see where "GR" and "GH" are defined. as i just read a maillist entry about the changes within the mobile version of this kind of chipset, i wondered if there is addional chipset which wasn't 100% identified and is maybe just capable of SATA150.

thx for answering,


----------



## mav@ (Apr 8, 2010)

eyebone said:
			
		

> if i check messages:
> 
> ```
> kernel: ad6: 152627MB <INTEL SSDSA2M160G2GC 2CV102HA> at ata3-master UDMA100 SATA
> ...



UDMA100 reported because it is really existing PATA legacy. If you use some SATA<->PATA converter to connect device - it will be it's transfer speed. If not - U...100 doesn't mean anything. It is impossible to determine whether device is native SATA or using converter, as many converters are patching IDENTIFY DEVICE command response.

Another aspect there is DMA, there could be SATA devices supporting only PIO mode, for example, some CF<->SATA adapters, so it is possible to see "PIO4 SATA" there.

SATA in your case reported without speed, as most of ICH7 SATA controllers are unable to report real value. For more advanced controllers there is something like "SATA 3Gb/s" usually reported.


----------



## aka_john (Oct 15, 2010)

The same Intel ICH7 82801GB/GR/GH controller
Motherboard: P5LD2
hdd: WD10EADS-00L5B1

*when IDE (BIOS) mode:*


```
atapci2: <Intel ICH7 SATA300 controller> port 0x9800-0x9807,0x9400-0x9403,0x9000-0x9007,0x8800-0x8803,
0x8400-0x840f mem 0xcfcffc00-0xcfcfffff irq 23 at device 31.2 on pci0
atapci2: [ITHREAD]
ad8: ... at ata4-master UDMA100 SATA
```

'diskinfo':

```
Transfer rates:
        outside:       102400 kbytes in   0.862746 sec =   118691 kbytes/sec
        middle:        102400 kbytes in   1.092090 sec =    93765 kbytes/sec
        inside:        102400 kbytes in   1.924653 sec =    53204 kbytes/sec
```

*when AHCI (BIOS) mode:*


```
atapci2: <Intel ICH7 SATA300 controller> port 0x9800-0x9807,0x9400-0x9403,0x9000-0x9007,0x8800-0x8803,
0x8400-0x840f mem 0xcfcffc00-0xcfcfffff irq 23 at device 31.2 on pci0
atapci2: AHCI called from vendor specific driver
atapci2: AHCI v1.10 controller with 4 3Gbps ports, PM not supported
ad8: ... at ata4-master UDMA100 SATA 3Gb/s
```
'diskinfo':

```
Transfer rates:
        outside:       102400 kbytes in   0.868668 sec =   117882 kbytes/sec
        middle:        102400 kbytes in   1.091715 sec =    93797 kbytes/sec
        inside:        102400 kbytes in   1.919433 sec =    53349 kbytes/sec
```

*after ahci_enable=YES in loader.conf:*


```
ahci0: <Intel ICH7 AHCI SATA controller> port 0x9800-0x9807,0x9400-0x9403,0x9000-0x9007,0x8800-0x8803,
0x8400-0x840f mem 0xcfcffc00-0xcfcfffff irq 23 at device 31.2 on pci0
ada0: ... ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
```

'diskinfo':

```
Transfer rates:
        outside:       102400 kbytes in   0.836337 sec =   122439 kbytes/sec
        middle:        102400 kbytes in   1.082867 sec =    94564 kbytes/sec
        inside:        102400 kbytes in   1.922947 sec =    53252 kbytes/sec
```

I expected these numbers for AHCI to be 3 times faster then for IDE.

I also tried to copy file /home/1.dat to /home/2.dat (1,5 Gb) it took about 43 seconds.

What I am to do to get 300 Mb/s?


----------



## mav@ (Oct 15, 2010)

300MB/s is an interface speed. Theoretically you may reach it by reading from device cache, but in fact it is not yet reachable with regular HDDs at this time. 120MB/s is a good result. Only SSDs are able to beat it now.


----------



## aka_john (Oct 15, 2010)

mav@ said:
			
		

> 300MB/s is an interface speed. Theoretically you may reach it by reading from device cache, but in fact it is not yet reachable with regular HDDs at this time. 120MB/s is a good result. Only SSDs are able to beat it now.



Thank you for your reply. I see that 120 Mb/s is a good result.
But unfortunately I have about 35 Mb/s in all three cases described in my previous post (when I tried to copy 1,5 Gb file). I mean that there is no difference in speed between all those types of "connection". Is this HDD limit or something else?


----------



## mav@ (Oct 15, 2010)

"Type of connection" is always the same - SATA 3Gbps. Difference just in ability to detect and respectively report it in different controller configurations.

When speaking about copying, consider that those 35MB/s may mean 35MB/s read plus 35MB/s write plus periodic head seeks between them. Looking that your disk gives only 55MB/s read on inner part, I think 70MB/s of total I/O is probably not so bad. May be at the last test NCQ support could improve performance a bit, but probably single file copying doesn't create long enough requests queue to make difference visible.


----------

