linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: the4hoffmans@earthlink.net
Cc: Tejun Heo <tj@kernel.org>, linux-ide@vger.kernel.org, blward@micron.com
Subject: Re: Issue with AHCI driver
Date: Fri, 08 Aug 2008 17:43:19 -0400	[thread overview]
Message-ID: <489CBDF7.8070707@pobox.com> (raw)
In-Reply-To: <1592636.1218228104177.JavaMail.root@elwamui-wigeon.atl.sa.earthlink.net>

the4hoffmans@earthlink.net wrote:
> Update:
> 
> We got Fedora 2.6.25-14 build running.  It recognizes our card.  It identifies our device but at some point after that we die.  Using an analyzer we found that the problem is due to a buffer alignment issue.
> 
> Our card is a prototype and currently under development.  It currently only supports memory buffers that are quadword aligned.  We are dying because we get a buffer for a subsequent identify command that is on a dword boundary.  That is the problem we need to solve next.
> 
> We know we need to change our hardware and we will do that.  However, is there a way during driver init to specify quadword buffer alignment so we can continue our testing with Linux?

Not easily, no :/  The entirety of SATA, both devices, the protocol, and 
controllers, are all very 32-bit-centric.  Given that each SATA FIS is 
one or more dwords, this fundamental feature propagates through 
everything touched by SATA:  Linux kernel drivers, controller 
interfaces, etc.

I would be surprised if standard filesystem I/O (via bio's) was 
unaligned... but all the ATA commands we use for control, various 
internal [and often controller-specific] data structures that are 
DMA-mapped and directly accessed are usually found on 32-bit boundaries, 
but nothing more than that.

Avoiding commands outside the READ DMA / WRITE DMA realm may help you 
limp along... if you want to hack things up to speed up local 
development, I would turn on libata DEBUG and VERBOSE_DEBUG, follow the 
trace until you find the failing (non-aligned) command, and try to omit 
that from the probing process.  The main non-data operation during 
probing we really care about is IDENTIFY [PACKET] DEVICE, and that 
/should/ be aligned at a minimum on a quadword boundary, if I'm not 
mistaken.

Also, avoid ATAPI devices and testing ATAPI, as you will _definitely_ 
not be getting quadword alignment there.

	Jeff





  reply	other threads:[~2008-08-08 21:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-08 20:41 Issue with AHCI driver the4hoffmans
2008-08-08 21:43 ` Jeff Garzik [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-08-07 20:51 the4hoffmans
2008-08-06 16:59 the4hoffmans
2008-08-06 23:15 ` Tejun Heo
2008-08-06 13:17 the4hoffmans
2008-08-05 21:28 the4hoffmans
2008-08-05 23:10 ` Tejun Heo
2008-08-05 20:14 the4hoffmans
2008-08-04 20:56 the4hoffmans
2008-08-04 23:10 ` Tejun Heo
2008-08-04 19:18 the4hoffmans
2008-08-04 19:33 ` Jeff Garzik
2008-08-04 14:36 the4hoffmans
2008-08-04 14:44 ` Tejun Heo
2008-07-10 15:17 the4hoffmans
2008-08-01  4:06 ` Tejun Heo

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=489CBDF7.8070707@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=blward@micron.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=the4hoffmans@earthlink.net \
    --cc=tj@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;
as well as URLs for NNTP newsgroup(s).