Re: reference code for non-PCI libata complaint SATA for ARM boards.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux