Linux ATA/IDE development
 help / color / mirror / Atom feed
From: Moritz Heiber <moe@lunar-linux.org>
To: Tejun Heo <htejun@gmail.com>
Cc: linux-ide@vger.kernel.org
Subject: Re: Issues with AHCI and SATAII using JMD360
Date: Sun, 7 May 2006 15:10:21 +0200	[thread overview]
Message-ID: <20060507151021.2986c766.moe@lunar-linux.org> (raw)
In-Reply-To: <445DE5D1.3010203@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2624 bytes --]

On Sun, 07 May 2006 21:19:29 +0900
Tejun Heo <htejun@gmail.com> wrote:

<snip>
> >> More info can be obtained by printing SCR_CONTROL, just print the
> >> result of scr_read(ap, SCR_CONTROL) from
> >> libata.c::sata_print_link_status(), which prints the SStatus value.
> > 
> > I'm going to try to follow that lead. There doesn't seem to be any
> > sort of tool or application that runs the exact same test yet, is
> > there? hdparm fails on me.
> 
> Heh heh... I should have attached a patch for this.  I was too lazy. 
> I'm attaching one on this mail.

Here's the output:

------

libata version 1.20 loaded.
ahci 0000:03:00.0: version 1.2
PCI: Found IRQ 5 for device 0000:03:00.0
<...>
PCI: Setting latency timer of device 0000:03:00.0 to 64
ahci 0000:03:00.0: AHCI 0001.0000 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
ahci 0000:03:00.0: flags: 64bit ncq pm led clo pmp pio slum part 
ata1: SATA max UDMA/133 cmd 0xF8814100 ctl 0x0 bmdma 0x0 irq 5
<...>
ata1: SATA link up 1.5 (SStatus 113 SControl 300)
ata1: dev 0 cfg 49:2f00 82:346b 83:7fe9 84:4773 85:3469 86:3c01 87:4763 88:407f
ata1: dev 0 ATA-7, max UDMA/133, 321672960 sectors: LBA48
ata1: dev 0 configured for UDMA/133
scsi0 : ahci
  Vendor: ATA       Model: HDT722516DLA380   Rev: V43O
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sda: 321672960 512-byte hdwr sectors (164697 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
SCSI device sda: 321672960 512-byte hdwr sectors (164697 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 sda4
sd 0:0:0:0: Attached scsi disk sda
sd 0:0:0:0: Attached scsi generic sg0 type 0

------

I guess the Scontrol value of 300 is .. good?

I had to adjust your patch since it didn't apply to my 2.6.16.14 kernel.
The "corrected" patch is attached. I think I pretty much retained the
functionality you intended it to have.

Given your patch though .. your git-based code looks much simpler. I
wonder if that is a good or a bad thing and wether I should try a more
recent kernel .. (?)

> > Well, I'm just making an effort to get the best out of the hardware
> > I bought. I might fail at some point .. but at least I can say I
> > tried.
> 
> Yeap, good luck.  FYI, my seagate 7200.9 and samsung hd160jj work
> fine @ 3Gbps on ICH7 AHCI, sil3124 and sil3132.

Yeah, as I heard the ICH(n) chipsets are pretty well supported.
Unfortunately, I went with a ULi chipset since they are rumoured to be
rock solid and stable (which my motherboard is actually).

Regards,

Moritz

[-- Attachment #2: libata-scontrol.patch --]
[-- Type: application/octet-stream, Size: 1226 bytes --]

--- drivers/scsi/libata-core.c.orig	2006-05-07 14:35:46.000000000 +0200
+++ drivers/scsi/libata-core.c	2006-05-07 14:41:31.000000000 +0200
@@ -1543,7 +1543,7 @@
  */
 void __sata_phy_reset(struct ata_port *ap)
 {
-	u32 sstatus;
+	u32 sstatus, scontrol;
 	unsigned long timeout = jiffies + (HZ * 5);
 
 	if (ap->flags & ATA_FLAG_SATA_RESET) {
@@ -1565,6 +1565,8 @@
 
 	/* TODO: phy layer with polling, timeouts, etc. */
 	sstatus = scr_read(ap, SCR_STATUS);
+	scontrol = scr_read(ap, SCR_CONTROL);
+	
 	if (sata_dev_present(ap)) {
 		const char *speed;
 		u32 tmp;
@@ -1576,12 +1578,14 @@
 			speed = "3.0";
 		else
 			speed = "<unknown>";
-		printk(KERN_INFO "ata%u: SATA link up %s Gbps (SStatus %X)\n",
-		       ap->id, speed, sstatus);
+                printk(KERN_INFO
+                       "ata%u: SATA link up %s (SStatus %X SControl %X)\n",
+                       ap->id, speed, sstatus, scontrol);
 		ata_port_probe(ap);
 	} else {
-		printk(KERN_INFO "ata%u: SATA link down (SStatus %X)\n",
-		       ap->id, sstatus);
+                printk(KERN_INFO
+                       "ata%u: SATA link down (SStatus %X SControl %X)\n",
+                       ap->id, sstatus, scontrol);
 		ata_port_disable(ap);
 	}
 

  reply	other threads:[~2006-05-07 13:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-07  2:37 Issues with AHCI and SATAII using JMD360 Moritz Heiber
2006-05-07  2:59 ` Tejun Heo
2006-05-07 12:04   ` Moritz Heiber
2006-05-07 12:17     ` Mogens Valentin
2006-05-07 12:20       ` Tejun Heo
2006-05-07 12:19     ` Tejun Heo
2006-05-07 13:10       ` Moritz Heiber [this message]
2006-05-07 13:23         ` Tejun Heo
2006-05-07 14:52           ` Moritz Heiber
2006-05-07 12:14 ` Mogens Valentin
2006-05-07 15:02   ` Moritz Heiber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060507151021.2986c766.moe@lunar-linux.org \
    --to=moe@lunar-linux.org \
    --cc=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox