All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Aron Rubin <arubin@atl.lmco.com>, linux-ide@vger.kernel.org
Subject: Re: SII 3512 SATA Progress but help still needed
Date: Mon, 08 Dec 2003 15:33:42 -0500	[thread overview]
Message-ID: <3FD4E026.2020307@pobox.com> (raw)
In-Reply-To: <200312082126.32948.bzolnier@elka.pw.edu.pl>

Bartlomiej Zolnierkiewicz wrote:
> I don't know. ;-)
> 
> I have only one idea right now - look what drivers/scsi/libata.c
> does for SATA controllers during init and what drivers/ide/ doesn't.
> 
> I am talking about sata_phy_reset() in libata.c.

libata-core.c :)

Basically for Silicon Image:
* use SATA "SCR" (status and control register) to bring device out of 
any low-power state it may be in
* use SATA SCR to reset SATA bus
* do _not_ issue ATA software reset or E.D.D. (90h), as the desired 
signature is already in the ATA command block registers
* look at the signature, decide ATA or ATAPI
* issue IDENTIFY [PACKET] DEVICE
* issue SET FEATURES (XFER)

That's the ATA_FLAG_SATA_RESET code path.  If the driver has the flag 
ATA_FLAG_SRST, then the first few steps change to:
* issue ATA software reset, by flipping SRST bit in Device Control
* look at signature[...]

I'm pretty sure drivers/ide/pci/siimage.c already does the 
bring-it-out-of-low-power thing, twiddling the SCRs.

(the SCRs are documented in the public SATA spec on www.serialata.org)

In addition, drivers/ide/pci/siimage.c actually does initialize the 
hardware a bit more fully than my SII driver does, IIRC...

	Jeff





  reply	other threads:[~2003-12-08 20:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-04 20:37 SII 3512 SATA Progress but help still needed Aron Rubin
2003-12-08 20:01 ` Aron Rubin
2003-12-08 20:26   ` Bartlomiej Zolnierkiewicz
2003-12-08 20:33     ` Jeff Garzik [this message]
2003-12-09 12:23       ` Aron Rubin

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=3FD4E026.2020307@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=B.Zolnierkiewicz@elka.pw.edu.pl \
    --cc=arubin@atl.lmco.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.