SATA 6Gb/s HDD run as SATA 1.5Gb/s

Hi,

I have two Seagate SATA 6Gb/s drives connected to GSATA_0 and GSATA_1 port that run as SATA 1.5Gb/s (known from dmesg). As Gigabyte official site states GSATA chip can run as SATA 3Gb/s. Don't know if FreeBSD 8.2-RELEASE supports this chip. How can HDD run as SATA 3Gb/s?

Here is the hardware spec:
=============================================
OS: FreeBSD 8.2 release
Motherboard: GIGABYTE GA-D525TUD
CPU: Intel® Atom D525 1.8GHz
Ram: Kingston DDR3 1333 2G X 1
System Drive: OCZ Vertex 2 60G SSD X 1
Data Drive: Seagate ST2000DL003 Barracuda LP Green SATA3 2TB X 2
 
dmesg -a | grep ata

dmesg -a | grep ata

Here is the output:
Code:
atapci0: <JMicron JMB363 UDMA133 controller> mem 0xfdefe000-0xfdefffff irq 17 at device 0.0 on pci2
atapci0: [ITHREAD]
atapci0: AHCI called from vendor specific driver
atapci0: AHCI v1.00 controller with 2 3Gbps ports, PM supported
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
atapci1: <JMicron JMB363 UDMA133 controller> port 0xdf00-0xdf07,0xde00-0xde03,0xdd00-0xdd07,0xdc00-0xdc03,0xdb00-0xdb0f irq 18 at device 0.1
 on pci2
atapci1: [ITHREAD]
ata4: <ATA channel 0> on atapci1
ata4: [ITHREAD]
atapci2: <Intel ICH7 SATA300 controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f mem 0xfdffe000-0xfdffe3ff
 irq 19 at device 31.2 on pci0
atapci2: [ITHREAD]
atapci2: AHCI called from vendor specific driver
atapci2: AHCI v1.10 controller with 4 3Gbps ports, PM not supported
ata5: <ATA channel 0> on atapci2
ata5: [ITHREAD]
ata6: <ATA channel 1> on atapci2
ata6: [ITHREAD]
ata7: <ATA channel 2> on atapci2
ata7: [ITHREAD]
ata8: <ATA channel 3> on atapci2
ata8: [ITHREAD]
ad4: 1907729MB <ST2000DL003 9VT166 CC32> at ata2-master UDMA100 SATA 1.5Gb/s
ad6: 1907729MB <ST2000DL003 9VT166 CC32> at ata3-master UDMA100 SATA 1.5Gb/s
ad10: 57241MB <OCZ VERTEX2 1.25> at ata5-master UDMA100 SATA 3Gb/s
 
pciconf -lvcb

pciconf -lvcb

here is the output:
Code:
atapci0@pci0:2:0:0:	class=0x010601 card=0xb0001458 chip=0x2363197b rev=0x02 hdr=0x00
    vendor     = 'JMicron Technology Corp.'
    device     = 'JMicron JMB362/JMB363 AHCI Controller (JMB36X)'
    class      = mass storage
    subclass   = SATA
    bar   [24] = type Memory, range 32, base 0xfdefe000, size 8192, enabled
    cap 01[68] = powerspec 2  supports D0 D3  current D0
    cap 10[50] = PCI-Express 1 legacy endpoint IRQ 2 max data 128(128) link x1(x1)
atapci1@pci0:2:0:1:	class=0x010185 card=0xb0001458 chip=0x2363197b rev=0x02 hdr=0x00
    vendor     = 'JMicron Technology Corp.'
    device     = 'JMicron JMB362/JMB363 AHCI Controller (JMB36X)'
    class      = mass storage
    subclass   = ATA
    bar   [10] = type I/O Port, range 32, base 0xdf00, size  8, enabled
    bar   [14] = type I/O Port, range 32, base 0xde00, size  4, enabled
    bar   [18] = type I/O Port, range 32, base 0xdd00, size  8, enabled
    bar   [1c] = type I/O Port, range 32, base 0xdc00, size  4, enabled
    bar   [20] = type I/O Port, range 32, base 0xdb00, size 16, enabled
    cap 01[68] = powerspec 2  supports D0 D3  current D0
 
That JMicron controller is indeed 3Gbps (even though it is unable pass more then 180MB/s). What's about reported speed, it could be a hardware issue, as SATA speed negotiation is a hardware process. I've already seen that some 6Gbps SATA controller and 3Gbps disk misnegotiated on 1.5Gbps until controller was strictly limited to 3Gbps.

If you really want to get full disk speed, use new ahci(4) driver with this controller to get NCQ support, that could be more important then interface speed.
 
I would really recommend using AHCI instead of the standard ata driver as mentioned by mav@. You get better hot plug support and NCQ.
I have the exact same board in my home fileserver and both the Intel & Gigabyte SATA chips can be set to AHCI in the BIOS.

Here's the relevant output from dmesg on my server:

Controller 1

Code:
ahci0: <JMicron JMB363 AHCI SATA controller> mem 0xfdefe000-0xfdefffff irq 17 at device 0.0 on pci2
ahci0: [ITHREAD]
ahci0: AHCI v1.00 with 2 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]

Controller 2

Code:
ahci1: <Intel ICH7 AHCI SATA controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f mem 0xfdffe000-
0xfdffe3ff irq 19 at device 31.2 on pci0
ahci1: [ITHREAD]
ahci1: AHCI v1.10 with 4 3Gbps ports, Port Multiplier not supported
ahcich2: <AHCI channel> at channel 0 on ahci1
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 1 on ahci1
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 2 on ahci1
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 3 on ahci1
ahcich5: [ITHREAD]

Drives:

Code:
ada0: <ST32000542AS CC34> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
ada1: <ST32000542AS CC34> ATA-8 SATA 2.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2 at ahcich2 bus 0 scbus2 target 0 lun 0
ada2: <ST32000542AS CC34> ATA-8 SATA 2.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada3 at ahcich3 bus 0 scbus3 target 0 lun 0
ada3: <ST32000542AS CC34> ATA-8 SATA 2.x device
ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada3: Command Queueing enabled
ada3: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)

Note: you'll probably want to add
Code:
ahci_load="YES"
to /boot/loader.conf before changing the BIOS.
 
Thanks mav@ and usdmatt.
Happy to have your reply. As you suggested that I should change the driver to AHCI, could you please give me more details of changing the driver? AHCI has been enabled in BIOS, I only need to add
Code:
ahci_load="YES"
to /boot/loader.conf file so that the system will probe for the data disks as AHCI device on next reboot? Sorry for my poor English.
 
after adding ahci_load = "YES"

After using ahci, the problem is not solved. Don't know if the Drive problem? Can the problem be solved by connecting the data drives to intel chip instead of GSATA2 chip?

here is the output of dmesg:
======================

Code:
ahci0: <JMicron JMB363 AHCI SATA controller> mem 0xfdefe000-0xfdefffff irq 17 at device 0.0 on pci2
ahci0: [ITHREAD]
ahci0: AHCI v1.00 with 2 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
atapci0: <JMicron JMB363 UDMA133 controller> port 0xdf00-0xdf07,0xde00-0xde03,0xdd00-0xdd07,0xdc00-0xdc03,0xdb00-0xdb0f irq 18 at device 0.1 
on pci2
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]

======================================

ahci1: <Intel ICH7 AHCI SATA controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f mem 0xfdffe000-0xfdffe3ff 
irq 19 at device 31.2 on pci0
ahci1: [ITHREAD]
ahci1: AHCI v1.10 with 4 3Gbps ports, Port Multiplier not supported
ahcich2: <AHCI channel> at channel 0 on ahci1
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 1 on ahci1
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 2 on ahci1
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 3 on ahci1
ahcich5: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff irq 0,8 on acpi0

====================================================

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada0: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)uhub3: 2 ports with 2 removable, self powered

ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
ada1: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada1: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2 at ahcich2 bus 0 scbus2 target 0 lun 0
ada2: <OCZ-VERTEX2 1.25> ATA-8 SATA 2.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 57241MB (117231408 512 byte sectors: 16H 63S/T 16383C)
 
Seagate goes to great lengths to hide their manuals, but the one for that drive is here.

It has no specific information on jumpers. There might be a label on the drive. It might not have jumpers at all.
 
Thanks wblock! The documentation is useful. It says that 'It is not necessary to set any jumpers or other configuration options.'
Beside, I also find out that the label on the HDD does not mention any information of jumper configuration. You can see from this forum http://www.hkepc.com/forum/viewthread.php?tid=1545133&extra=&page=1
Does the fact mean that I have no hope of getting the speed of 3.0Gb/s?
Do you suggest that the 2 data drives should connected to intel chip instead? If do so, do I need to reinstall FreeBSD?
 
kenchu said:
Does the fact mean that I have no hope of getting the speed of 3.0Gb/s?

Maybe not with that SATA controller. It only matters if the drive can actually supply data faster than 1.5 Gb/s. (I'd guess it can't, but only a benchmark will really show.)

Do you suggest that the 2 data drives should connected to intel chip instead? If do so, do I need to reinstall FreeBSD?

ICH7 doesn't do AHCI, only ICH7R. So you wouldn't get AHCI, but might get SATA II. I suspect ACHI and NCQ will make a bigger difference to performance than SATA II. With filesystem labels, it's easy enough to test. Just disable loading of the AHCI module before you switch the cable. No reinstall needed.
 
after exchanging the ports of the drives, all 3 drives support 300MB/s. The problem seems be solved. How to check if AHCI is supported?
Here is the output of dmesg:
===============================
Code:
ahci0: <JMicron JMB363 AHCI SATA controller> mem 0xfdefe000-0xfdefffff irq 17 at device 0.0 on pci2
ahci0: [ITHREAD]
ahci0: AHCI v1.00 with 2 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
atapci0: <JMicron JMB363 UDMA133 controller> port 0xdf00-0xdf07,0xde00-0xde03,0xdd00-0xdd07,0xdc00-0xdc03,0xdb00-0xdb0f irq 18 at device 0.1 
on pci2
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]

ahci1: <Intel ICH7 AHCI SATA controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f mem 0xfdffe000-0xfdffe3ff
irq 19 at device 31.2 on pci0
ahci1: [ITHREAD]
ahci1: AHCI v1.10 with 4 3Gbps ports, Port Multiplier not supported
ahcich2: <AHCI channel> at channel 0 on ahci1
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 1 on ahci1
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 2 on ahci1
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 3 on ahci1
ahcich5: [ITHREAD]

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <OCZ-VERTEX2 1.25> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 57241MB (117231408 512 byte sectors: 16H 63S/T 16383C)
ada1 at ahcich2 bus 0 scbus2 target 0 lun 0
ada1: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2 at ahcich3 bus 0 scbus3 target 0 lun 0
ada2: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
 
I have had the same experience with these Seagate drives and NVIDIA based (AMD) motherboard. When only one such drive is connected, it would always report 1.5Gbps link speed. When two such drives are connected, it would sometimes report 1.5Gbps, sometimes 3 Gbps -- randomly for either drive.

My guess it it's timeout related, but haven't investigated further.
 
kenchu said:
after exchanging the ports of the drives, all 3 drives support 300MB/s. The problem seems be solved. How to check if AHCI is supported?
Here is the output of dmesg:
===============================
Code:
ahci0: <JMicron JMB363 AHCI SATA controller> mem 0xfdefe000-0xfdefffff irq 17 at device 0.0 on pci2
ahci0: [ITHREAD]
ahci0: AHCI v1.00 with 2 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
atapci0: <JMicron JMB363 UDMA133 controller> port 0xdf00-0xdf07,0xde00-0xde03,0xdd00-0xdd07,0xdc00-0xdc03,0xdb00-0xdb0f irq 18 at device 0.1 
on pci2
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]

ahci1: <Intel ICH7 AHCI SATA controller> port 0xfa00-0xfa07,0xf900-0xf903,0xf800-0xf807,0xf700-0xf703,0xf600-0xf60f mem 0xfdffe000-0xfdffe3ff
irq 19 at device 31.2 on pci0
ahci1: [ITHREAD]
ahci1: AHCI v1.10 with 4 3Gbps ports, Port Multiplier not supported
ahcich2: <AHCI channel> at channel 0 on ahci1
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 1 on ahci1
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 2 on ahci1
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 3 on ahci1
ahcich5: [ITHREAD]

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <OCZ-VERTEX2 1.25> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 57241MB (117231408 512 byte sectors: 16H 63S/T 16383C)
ada1 at ahcich2 bus 0 scbus2 target 0 lun 0
ada1: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2 at ahcich3 bus 0 scbus3 target 0 lun 0
ada2: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)

I have exactly the same motherboard as this, however I am having the opposite issue where the JMicron controller is working at full 3.0 speed but the ICH7 is working at 1.5 speed only. Can you provide any more details on how you actually managed to sort this issue out?
 
Hello Kentu and all,

I just installed FreeBSD 9.1-RELEASE on my Asus Crossfire IV with the JMB363 Serial ATA Controller on it. I have three SSD hard disks and I would like to use the JMB363 internal port for a L2ARC/ZIL SSD. Exactly like you I have a speed of 1.5Gb/s instead of 3.0Gb/s on the internal SATA JMB363 black connector.

It is not related to my (3.0Gb/s) SSD hard disks since other two SSDs (also 3.0Gb/s) are running fine at 3.0Gb/s on two of the six red ATI IXP700 connectors and if I replace the SSD connected to the JMB363 with one of the red connectors the situation does not change.

kenchu said:
after exchanging the ports of the drives, all 3 drives support 300MB/s. The problem seems be solved.

I´m a noob of FreeBSD. Can you please provide me the code to do that? I read the Handbook (expecially the chapter for ports) but I was not able to solve the problem.

If you need I can post the dmesg and pciconf info.

Many thanks in advance to you and to anyone who wants to help me.
 
Oops... thanks @Savagedlight,

On the one hand I am happy about the simple(!) solution, on the other hand I'm wondering if for FreeBSD the JMB363 is somehow a "low" performance SATA controller. If this is confirmed it should be not suggested for high data transfer.

I´m reading a lot about FreeBSD and I´m pretty convinced that this operating system is striving to use the hardware in the most efficient and smart way possible. If FreeBSD is detecting 1.5Gb/s there is surely a (good) reason for this. It´s time now for me to buy a good PCIe SATA controller.

If someone is interested to investigate my little issue just let me know I would be happy to help in this project.

Take care.
 
Last edited by a moderator:
Back
Top