From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: jwilliams@itee.uq.edu.au
Cc: linux-kernel@vger.kernel.org
Subject: Re: [SATA] non-PCI SATA devices and libata
Date: Tue, 5 Apr 2005 18:37:34 +0200 [thread overview]
Message-ID: <58cb370e05040509377d1313cc@mail.gmail.com> (raw)
In-Reply-To: <423E0522.8050600@itee.uq.edu.au>
Hi,
On Mar 21, 2005 1:20 AM, John Williams <jwilliams@itee.uq.edu.au> wrote:
> Hello,
>
> I am looking into developing a driver for a custom, non-PCI SATA
> controller. The target arch is Microblaze, an FPGA-based NOMMU target
> on a 2.4.29-uc0 kernel.
>
> It seems that Jeff Garzik's libata is the way to go for SATA, however
> there seems to be some degree of coupling between libata and PCI support.
>
> Some comments/observations, please correct me if I am wrong:
>
> - include/linux/libata.h appears to recognise that CONFIG_PCI may not
> be set, however libata-compat.h is entirely PCI-specific. Indeed, it
This is because generic DMA API and generic driver model
are not present in 2.4.x kernels.
> effectively maps generic bus/dma operations onto their pci-specific
> equivalents. Also, libata.h unconditionally includes pci.h.
>
> - All of the drivers/scsi/sata_XXX drivers target PCI devices only.
>
> It seems I have a few choices here.
>
> Option 1 is to just hack together stubbed PCI support for my arch,
> making our on-chip bus pretend to be PCI for the purposes of libata (and
> indeed many other bus subsystems, like USB). This is pretty unclean,
> particularly since it is entirely likely that someone will build a
> microblaze system with a true PCI bridge and bus, meaning that this
> temporary hack would certainly come back to haunt me[1].
>
> Option 2 is to try to decouple libata from PCI support. This may be as
> simple as a conditional inclusion of libata-compat.h from libata.h,
> however I am not yet familiar enough with libata to be sure.
Option 2 is better then Option 1. You may need to add
#ifdefs for DMA support on your arch to libata-compat.h
(kind of hack which shouldn't be needed in 2.6.x).
> For now this will be staying in the NOMMU 2.4 kernel (uClinux), but if I
> choose option (2) I would like to work with libata, not against it. It
> may well be that non-PCI SATA support is a Good Thing in a broader
> sense, so perhaps this is a good discussion to have anyway.
>
> All input, suggestions and comments welcome.
>
> Thanks,
>
> John
>
> [1] There is a bigger picture here, that with FPGA-based CPUs like
> Microblaze, we can build systems with arbitrary CPU/memory/IO bus
> topologies. Indeed, we do so on a daily basis. In the back of my mind
> I am envisioning some kind of generic bus abstraction API, of which PCI,
> USB etc would be mere instances.
Use 2.6.x :)
Bartlomiej
prev parent reply other threads:[~2005-04-05 16:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-20 23:20 [SATA] non-PCI SATA devices and libata John Williams
2005-04-05 16:37 ` Bartlomiej Zolnierkiewicz [this message]
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=58cb370e05040509377d1313cc@mail.gmail.com \
--to=bzolnier@gmail.com \
--cc=jwilliams@itee.uq.edu.au \
--cc=linux-kernel@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