public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Deven Balani <devenbalani@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: reference code for non-PCI libata complaint SATA for ARM boards.
Date: Tue, 25 Oct 2005 16:37:12 +0100	[thread overview]
Message-ID: <1130254633.25191.33.camel@localhost.localdomain> (raw)
In-Reply-To: <7a37e95e0510250511g631db9edoe4c739ed24b7a79b@mail.gmail.com>

On Maw, 2005-10-25 at 17:41 +0530, Deven Balani wrote:
> Hi All!
> 
> I am currently writing a low-level driver for non-PCI SATA controller
> in ARM platform.which uses libata-core.c for linux-2.4.25. Can any one
> tell me any reference code available under linux.

At the moment its a bit hard to do a non PCI driver because the core
code assumes that there is a device structure (or pci_dev structure) for
everything. Fixing that is a two line change for 2.6 (probably similar
for 2.4) but Jeff Garzik rejected it. A second problem is that it
doesn't return the host_set by default but 2.4 libata doesn't have the
changes for unloading SATA modules so that should be ignorable


With that patched something like this will do the job (you'll probably
be using MMIO while the example is PIO)

static __init int legacy_init_one(unsigned long io, unsigned long ctrl,
int irq)
{
        struct ata_probe_ent ae;
        int ret;

        memset(&ae, 0, sizeof(struct ata_probe_ent));
        ae.dev = NULL;
        ae.port_ops = &legacy_port_ops;
        ae.sht = &legacy_sht;
        ae.n_ports = 2;
        ae.pio_mask = 0x1F;
        ae.irq = irq;
        ae.irq_flags = 0;
        ae.host_flags = ATA_FLAG_SLAVE_POSS;
        ae.port[0].cmd_addr = io;
        ata_std_ports(&ae.port[0]);
        ae.port[0].altstatus_addr = ctrl;
        ae.port[0].ctl_addr =   ctrl;

        ret = ata_device_add(&ae);
        if(ret == 0)
                return -ENODEV;

        legacy_host[nr_legacy_host++] = ae.host_set;
        return 0;
}


  reply	other threads:[~2005-10-25 15:08 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-25 12:11 reference code for non-PCI libata complaint SATA for ARM boards Deven Balani
2005-10-25 15:37 ` Alan Cox [this message]
2005-10-25 17:37   ` Jeff Garzik
2005-10-26  5:58     ` Deven Balani
2005-10-26 13:16       ` Erik Mouw
2005-11-14  8:22     ` Deven Balani

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=1130254633.25191.33.camel@localhost.localdomain \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=devenbalani@gmail.com \
    --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