* Re: Bart's efforts?
@ 2007-11-03 15:41 Mikael Pettersson
2007-11-03 16:22 ` Alan Cox
2007-11-09 10:27 ` Bart's efforts? Mikael Pettersson
0 siblings, 2 replies; 17+ messages in thread
From: Mikael Pettersson @ 2007-11-03 15:41 UTC (permalink / raw)
To: alan, greg.freemyer; +Cc: linux-ide
On Sat, 3 Nov 2007 14:10:22 +0000, Alan Cox wrote:
> > My question is if the drivers/ide infrastructure is slowly moving in
> > the direction of being leverageable by libata when/if it moves out of
> > scsi. Or does the drivers/ide code simply have the wrong kind of
> > plumbing for libata to ever use.
>
> I don't think there is anything useful in old IDE that isn't in the new.
For semi-modern machines that might be true. However:
1) there's no libata replacement for the IDE pmac driver
2) pata_pdc202xx_old can't do UDMA on my 440BX PIII box
3) pata_legacy doesn't release io/irq combinations for failed
probes, causing conflicts with drivers loaded later on
(Not a complaint, just a reminder that rm -rf drivers/ide/
isn't an option yet.)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-03 15:41 Bart's efforts? Mikael Pettersson
@ 2007-11-03 16:22 ` Alan Cox
2007-11-07 22:37 ` Mark Lord
2007-11-09 10:27 ` Bart's efforts? Mikael Pettersson
1 sibling, 1 reply; 17+ messages in thread
From: Alan Cox @ 2007-11-03 16:22 UTC (permalink / raw)
To: Mikael Pettersson; +Cc: greg.freemyer, linux-ide
> 1) there's no libata replacement for the IDE pmac driver
This is true currently. David Woodhouse loaned me a Pmac to fix that but
it died so thats waiting for the PPC people to do something about it.
> 2) pata_pdc202xx_old can't do UDMA on my 440BX PIII box
Bug # ?
> 3) pata_legacy doesn't release io/irq combinations for failed
> probes, causing conflicts with drivers loaded later on
In my tree it does but I'm still testing some bits. I've been rewriting
the legacy driver to make it a lot cleaner and easy to plug other ISA/VLB
device handlers into it.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-03 16:22 ` Alan Cox
@ 2007-11-07 22:37 ` Mark Lord
2007-11-07 23:21 ` Alan Cox
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2007-11-07 22:37 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
delkin_cb is also missing from libata.
I was going to port it over once, but no longer have a cardbus slot
in either of my notebooks here.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-07 22:37 ` Mark Lord
@ 2007-11-07 23:21 ` Alan Cox
2007-11-07 23:28 ` Mark Lord
0 siblings, 1 reply; 17+ messages in thread
From: Alan Cox @ 2007-11-07 23:21 UTC (permalink / raw)
To: Mark Lord; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
On Wed, 07 Nov 2007 17:37:07 -0500
Mark Lord <liml@rtr.ca> wrote:
> delkin_cb is also missing from libata.
>
> I was going to port it over once, but no longer have a cardbus slot
> in either of my notebooks here.
Yes I looked at it but it didn't have any proper speed setting, so I
decided it wasn't actually worth doing.
Alan
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-07 23:21 ` Alan Cox
@ 2007-11-07 23:28 ` Mark Lord
2007-11-07 23:31 ` Alan Cox
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
0 siblings, 2 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-07 23:28 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Alan Cox wrote:
> On Wed, 07 Nov 2007 17:37:07 -0500
> Mark Lord <liml@rtr.ca> wrote:
>
>> delkin_cb is also missing from libata.
>>
>> I was going to port it over once, but no longer have a cardbus slot
>> in either of my notebooks here.
>
> Yes I looked at it but it didn't have any proper speed setting, so I
> decided it wasn't actually worth doing.
..
Yeah. No docs whatsoever, but there's more than a few users
of it out there.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-07 23:28 ` Mark Lord
@ 2007-11-07 23:31 ` Alan Cox
2007-11-07 23:34 ` Mark Lord
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
1 sibling, 1 reply; 17+ messages in thread
From: Alan Cox @ 2007-11-07 23:31 UTC (permalink / raw)
To: Mark Lord; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
> Yeah. No docs whatsoever, but there's more than a few users
> of it out there.
So how do we handle devices that don't support PIO4 ?
Other than the speed handling mystery the port is trivial.
Alan
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-07 23:31 ` Alan Cox
@ 2007-11-07 23:34 ` Mark Lord
0 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-07 23:34 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Alan Cox wrote:
>> Yeah. No docs whatsoever, but there's more than a few users
>> of it out there.
>
> So how do we handle devices that don't support PIO4 ?
..
I'm not actually sure that it's even running that fast (PIO4),
as the performance is still only half of what Windoze gets.
I have a logic analyzer here, but no Cardbus extender to hook it onto.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Bart's efforts?
2007-11-03 15:41 Bart's efforts? Mikael Pettersson
2007-11-03 16:22 ` Alan Cox
@ 2007-11-09 10:27 ` Mikael Pettersson
1 sibling, 0 replies; 17+ messages in thread
From: Mikael Pettersson @ 2007-11-09 10:27 UTC (permalink / raw)
To: Mikael Pettersson; +Cc: alan, greg.freemyer, linux-ide
Mikael Pettersson writes:
> On Sat, 3 Nov 2007 14:10:22 +0000, Alan Cox wrote:
> > > My question is if the drivers/ide infrastructure is slowly moving in
> > > the direction of being leverageable by libata when/if it moves out of
> > > scsi. Or does the drivers/ide code simply have the wrong kind of
> > > plumbing for libata to ever use.
> >
> > I don't think there is anything useful in old IDE that isn't in the new.
>
> For semi-modern machines that might be true. However:
>
...
> 2) pata_pdc202xx_old can't do UDMA on my 440BX PIII box
See <http://bugzilla.kernel.org/show_bug.cgi?id=9337> for details.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-07 23:28 ` Mark Lord
2007-11-07 23:31 ` Alan Cox
@ 2007-11-12 20:11 ` Mark Lord
2007-11-12 20:12 ` Mark Lord
` (2 more replies)
1 sibling, 3 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-12 20:11 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Mark Lord wrote:
> Alan Cox wrote:
>> On Wed, 07 Nov 2007 17:37:07 -0500
>> Mark Lord <liml@rtr.ca> wrote:
>>
>>> delkin_cb is also missing from libata.
>>>
>>> I was going to port it over once, but no longer have a cardbus slot
>>> in either of my notebooks here.
>>
>> Yes I looked at it but it didn't have any proper speed setting, so I
>> decided it wasn't actually worth doing.
> ..
>
> Yeah. No docs whatsoever, but there's more than a few users
> of it out there.
...
Mmmm.. the NetBSD people seem to have detailed information on these chips!
There seems to be more than enough information in the NetBSD sources
to implement full timings support and full bus-master DMA support:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32var.h?rev=1.3&content-type=text/x-cvsweb-markup
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32reg.h?rev=1.3&content-type=text/x-cvsweb-markup
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32.c?rev=1.9&content-type=text/x-cvsweb-markup
Anyone want to take this on?
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
@ 2007-11-12 20:12 ` Mark Lord
2007-11-12 20:15 ` Mark Lord
2007-11-12 21:27 ` Alan Cox
2007-11-14 0:57 ` Alan Cox
2 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2007-11-12 20:12 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Mark Lord wrote:
> Mark Lord wrote:
>> Alan Cox wrote:
>>> On Wed, 07 Nov 2007 17:37:07 -0500
>>> Mark Lord <liml@rtr.ca> wrote:
>>>
>>>> delkin_cb is also missing from libata.
>>>>
>>>> I was going to port it over once, but no longer have a cardbus slot
>>>> in either of my notebooks here.
>>>
>>> Yes I looked at it but it didn't have any proper speed setting, so I
>>> decided it wasn't actually worth doing.
>> ..
>>
>> Yeah. No docs whatsoever, but there's more than a few users
>> of it out there.
> ...
>
> Mmmm.. the NetBSD people seem to have detailed information on these chips!
> There seems to be more than enough information in the NetBSD sources
> to implement full timings support and full bus-master DMA support:
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32var.h?rev=1.3&content-type=text/x-cvsweb-markup
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32reg.h?rev=1.3&content-type=text/x-cvsweb-markup
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32.c?rev=1.9&content-type=text/x-cvsweb-markup
..
Plus the man page (which looks slightly out of date):
http://netbsd.gw.com/cgi-bin/man-cgi/man?njata+4+NetBSD-current
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-12 20:12 ` Mark Lord
@ 2007-11-12 20:15 ` Mark Lord
0 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-12 20:15 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Mark Lord wrote:
> Mark Lord wrote:
>> Mark Lord wrote:
>>> Alan Cox wrote:
>>>> On Wed, 07 Nov 2007 17:37:07 -0500
>>>> Mark Lord <liml@rtr.ca> wrote:
>>>>
>>>>> delkin_cb is also missing from libata.
>>>>>
>>>>> I was going to port it over once, but no longer have a cardbus slot
>>>>> in either of my notebooks here.
>>>>
>>>> Yes I looked at it but it didn't have any proper speed setting, so I
>>>> decided it wasn't actually worth doing.
>>> ..
>>>
>>> Yeah. No docs whatsoever, but there's more than a few users
>>> of it out there.
>> ...
>>
>> Mmmm.. the NetBSD people seem to have detailed information on these
>> chips!
>> There seems to be more than enough information in the NetBSD sources
>> to implement full timings support and full bus-master DMA support:
>>
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32var.h?rev=1.3&content-type=text/x-cvsweb-markup
>>
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32reg.h?rev=1.3&content-type=text/x-cvsweb-markup
>>
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32.c?rev=1.9&content-type=text/x-cvsweb-markup
>
> Plus the man page (which looks slightly out of date):
>
> http://netbsd.gw.com/cgi-bin/man-cgi/man?njata+4+NetBSD-current
..
One more link, with many PCI IDs for these chips:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/cardbus/njata_cardbus.c?rev=1.5&content-type=text/x-cvsweb-markup
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
2007-11-12 20:12 ` Mark Lord
@ 2007-11-12 21:27 ` Alan Cox
2007-11-12 22:56 ` Mark Lord
2007-11-14 0:57 ` Alan Cox
2 siblings, 1 reply; 17+ messages in thread
From: Alan Cox @ 2007-11-12 21:27 UTC (permalink / raw)
To: Mark Lord; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
On Mon, 12 Nov 2007 15:11:16 -0500
Mark Lord <liml@rtr.ca> wrote:
> Mark Lord wrote:
> > Alan Cox wrote:
> >> On Wed, 07 Nov 2007 17:37:07 -0500
> >> Mark Lord <liml@rtr.ca> wrote:
> >>
> >>> delkin_cb is also missing from libata.
> >>>
> >>> I was going to port it over once, but no longer have a cardbus slot
> >>> in either of my notebooks here.
> >>
> >> Yes I looked at it but it didn't have any proper speed setting, so I
> >> decided it wasn't actually worth doing.
> > ..
> >
> > Yeah. No docs whatsoever, but there's more than a few users
> > of it out there.
> ...
>
> Mmmm.. the NetBSD people seem to have detailed information on these chips!
> There seems to be more than enough information in the NetBSD sources
> to implement full timings support and full bus-master DMA support:
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32var.h?rev=1.3&content-type=text/x-cvsweb-markup
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32reg.h?rev=1.3&content-type=text/x-cvsweb-markup
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32.c?rev=1.9&content-type=text/x-cvsweb-markup
>
>
> Anyone want to take this on?
I'll knock a driver out next week providing someone with hardware is
willing to be test monkey.
Alan
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-12 21:27 ` Alan Cox
@ 2007-11-12 22:56 ` Mark Lord
0 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-12 22:56 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Alan Cox wrote:
> On Mon, 12 Nov 2007 15:11:16 -0500
> Mark Lord <liml@rtr.ca> wrote:
>
>> Mark Lord wrote:
>>> Alan Cox wrote:
>>>> On Wed, 07 Nov 2007 17:37:07 -0500
>>>> Mark Lord <liml@rtr.ca> wrote:
>>>>
>>>>> delkin_cb is also missing from libata.
>>>>>
>>>>> I was going to port it over once, but no longer have a cardbus slot
>>>>> in either of my notebooks here.
>>>> Yes I looked at it but it didn't have any proper speed setting, so I
>>>> decided it wasn't actually worth doing.
>>> ..
>>>
>>> Yeah. No docs whatsoever, but there's more than a few users
>>> of it out there.
>> ...
>>
>> Mmmm.. the NetBSD people seem to have detailed information on these chips!
>> There seems to be more than enough information in the NetBSD sources
>> to implement full timings support and full bus-master DMA support:
>>
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32var.h?rev=1.3&content-type=text/x-cvsweb-markup
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32reg.h?rev=1.3&content-type=text/x-cvsweb-markup
>> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/ninjaata32.c?rev=1.9&content-type=text/x-cvsweb-markup
>>
>>
>> Anyone want to take this on?
>
> I'll knock a driver out next week providing someone with hardware is
> willing to be test monkey.
I've got hardware here that you can have, if you want it.
It's just a cardbus CF adapter, and neither of my own notebooks have slots.
Email me privately with mailing address if you want it.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
2007-11-12 20:12 ` Mark Lord
2007-11-12 21:27 ` Alan Cox
@ 2007-11-14 0:57 ` Alan Cox
2007-11-14 4:50 ` Mark Lord
2 siblings, 1 reply; 17+ messages in thread
From: Alan Cox @ 2007-11-14 0:57 UTC (permalink / raw)
To: Mark Lord; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
First guess
/*
* pata_ninja32.c - Ninja32 PATA for new ATA layer
* (C) 2007 Red Hat Inc
* Alan Cox <alan@redhat.com>
*
* Note: The controller like many controllers has shared timings for
* PIO and DMA. We thus flip to the DMA timings in dma_start and flip back
* in the dma_stop function. Thus we actually don't need a set_dmamode
* method as the PIO method is always called and will set the right PIO
* timing parameters.
*
* The Ninja32 Cardbus is not a generic SFF controller. Instead it is
* laid out as follows off BAR 0. This is based upon Mark Lord's delkin
* driver and the extensive analysis done by the BSD developers, notably
* ITOH Yasufumi.
*
* Base + 0x00 IRQ Status
* Base + 0x01 IRQ control
* Base + 0x02 Chipset control
* Base + 0x04 VDMA and reset control + wait bits
* Base + 0x08 BMIMBA
* Base + 0x0C DMA Length
* Base + 0x10 Taskfile
* Base + 0x18 BMDMA Status ?
* Base + 0x1C
* Base + 0x1D Bus master control
* bit 0 = enable
* bit 1 = 0 write/1 read
* bit 2 = 1 sgtable
* bit 3 = go
* bit 4-6 wait bits
* bit 7 = done
* Base + 0x1E AltStatus
* Base + 0x1F timing register
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <scsi/scsi_host.h>
#include <linux/libata.h>
#define DRV_NAME "pata_ninja32"
#define DRV_VERSION "0.0.1"
/**
* ninja32_configure_piomode - set chip PIO timing
* @ap: ATA interface
* @adev: ATA device
* @pio: PIO mode
*
* Called to do the PIO mode setup. Our timing registers are shared
* so a configure_dmamode call will undo any work we do here and vice
* versa
*/
static void ninja32_configure_piomode(struct ata_port *ap, struct ata_device *adev, int pio)
{
static u16 pio_timing[5] = {
0xd6, 0x85, 0x44, 0x33, 0x13
};
iowrite8(pio_timing[pio], ap->ioaddr.bmdma_addr + 0x1f);
}
/**
* ninja32_set_piomode - set initial PIO mode data
* @ap: ATA interface
* @adev: ATA device
*
* Called to do the PIO mode setup. Our timing registers are shared
* but we want to set the PIO timing by default.
*/
static void ninja32_set_piomode(struct ata_port *ap, struct ata_device *adev)
{
ninja32_configure_piomode(ap, adev, adev->pio_mode - XFER_PIO_0);
}
static struct scsi_host_template ninja32_sht = {
.module = THIS_MODULE,
.name = DRV_NAME,
.ioctl = ata_scsi_ioctl,
.queuecommand = ata_scsi_queuecmd,
.can_queue = ATA_DEF_QUEUE,
.this_id = ATA_SHT_THIS_ID,
.sg_tablesize = LIBATA_MAX_PRD,
.cmd_per_lun = ATA_SHT_CMD_PER_LUN,
.emulated = ATA_SHT_EMULATED,
.use_clustering = ATA_SHT_USE_CLUSTERING,
.proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param,
};
static struct ata_port_operations ninja32_port_ops = {
.set_piomode = ninja32_set_piomode,
.mode_filter = ata_pci_default_filter,
.tf_load = ata_tf_load,
.tf_read = ata_tf_read,
.check_status = ata_check_status,
.exec_command = ata_exec_command,
.dev_select = ata_std_dev_select,
.freeze = ata_bmdma_freeze,
.thaw = ata_bmdma_thaw,
.error_handler = ata_bmdma_error_handler,
.post_internal_cmd = ata_bmdma_post_internal_cmd,
.cable_detect = ata_cable_40wire,
.bmdma_setup = ata_bmdma_setup,
.bmdma_start = ata_bmdma_start,
.bmdma_stop = ata_bmdma_stop,
.bmdma_status = ata_bmdma_status,
.qc_prep = ata_qc_prep,
.qc_issue = ata_qc_issue_prot,
.data_xfer = ata_data_xfer,
.irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear,
.irq_on = ata_irq_on,
.port_start = ata_sff_port_start,
};
static int ninja32_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{
struct ata_host *host;
struct ata_port *ap;
void __iomem *base;
int rc;
host = ata_host_alloc(&dev->dev, 1);
if (!host)
return -ENOMEM;
ap = host->ports[0];
/* Set up the PCI device */
rc = pcim_enable_device(dev);
if (rc)
return rc;
rc = pcim_iomap_regions(dev, 1 << 0, DRV_NAME);
if (rc == -EBUSY)
pcim_pin_device(dev);
if (rc)
return rc;
host->iomap = pcim_iomap_table(dev);
rc = pci_set_dma_mask(dev, ATA_DMA_MASK);
if (rc)
return rc;
rc = pci_set_consistent_dma_mask(dev, ATA_DMA_MASK);
if (rc)
return rc;
pci_set_master(dev);
/* Set up the register mappings */
base = host->iomap[0];
if (!base)
return -ENOMEM;
ap->ops = &ninja32_port_ops;
ap->pio_mask = 0x1F;
ap->flags |= ATA_FLAG_SLAVE_POSS;
ap->ioaddr.cmd_addr = base + 0x10;
ap->ioaddr.ctl_addr = base + 0x1E;
ap->ioaddr.altstatus_addr = base + 0x1E;
ap->ioaddr.bmdma_addr = base;
ata_std_ports(&ap->ioaddr);
return ata_host_activate(host, dev->irq, ata_interrupt, IRQF_SHARED, &ninja32_sht);
}
static const struct pci_device_id ninja32[] = {
{ 0x1145, 0xf021, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ 0x1145, 0xf024, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ },
};
static struct pci_driver ninja32_pci_driver = {
.name = DRV_NAME,
.id_table = ninja32,
.probe = ninja32_init_one,
.remove = ata_pci_remove_one
};
static int __init ninja32_init(void)
{
return pci_register_driver(&ninja32_pci_driver);
}
static void __exit ninja32_exit(void)
{
pci_unregister_driver(&ninja32_pci_driver);
}
MODULE_AUTHOR("Alan Cox");
MODULE_DESCRIPTION("low-level driver for Ninja32 ATA");
MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, ninja32);
MODULE_VERSION(DRV_VERSION);
module_init(ninja32_init);
module_exit(ninja32_exit);
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2007-11-14 0:57 ` Alan Cox
@ 2007-11-14 4:50 ` Mark Lord
0 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2007-11-14 4:50 UTC (permalink / raw)
To: Alan Cox; +Cc: Mikael Pettersson, greg.freemyer, linux-ide
Alan wrote:
> First guess
>
> /*
> * pata_ninja32.c - Ninja32 PATA for new ATA layer
..
Okay, I tried it on the wife's notebook.
It needs the patch below to enable chip interrupts,
and it is *very* slow on I/O (1MB/sec), slower even
than delkin_cb at present.
But it does work, with this patch:
Signed-off-by: Mark Lord <mlord@pobox.com>
---
(I still have hardware here to send you..)
--- old/pata_ninja32.c 2007-11-13 23:06:21.000000000 -0500
+++ new/pata_ninja32.c 2007-11-13 23:49:24.000000000 -0500
@@ -169,6 +169,7 @@
ap->pio_mask = 0x1F;
ap->flags |= ATA_FLAG_SLAVE_POSS;
+ iowrite8(0x05, base + 1);
ap->ioaddr.cmd_addr = base + 0x10;
ap->ioaddr.ctl_addr = base + 0x1E;
ap->ioaddr.altstatus_addr = base + 0x1E;
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
@ 2008-01-17 20:39 Iain Barker
2008-01-17 23:11 ` Alan Cox
0 siblings, 1 reply; 17+ messages in thread
From: Iain Barker @ 2008-01-17 20:39 UTC (permalink / raw)
To: alan, liml; +Cc: linux-ide
Alan, Mark,
FYI, I had a chance to test the Ninja driver today using two manufacturers CardBus32 CF card adpaters (a Viking and a Lexar).
I can confirm Mark's observation that the access speeds are slower - around half the speed of the earlier Linux PIO driver, and a quarter the performance of WinXP. Test CF card was a SanDisk UltraII as the target, with CB1410 (Yenta compatible TI clone) as the host CB32 controller.
The driver works, but appears to use PIO only (PIO 4 is reported, actual performance is nearer PIO 0)
Should the UDMA modes of the CF be usable?
Linux throughput of 'dd bs=100MD' writing to FAT16 (Dell 3GHz P4 x86 32bit, kernel 2.6.23):
3.1MB/sec for Linux PCMCIA (legacy delkin_cb.c )
1.8MB/sec for Linux CardBus 32 (libata pata_ninja32.c)
For comparison:
1.4MB/sec for WinXP PCMCIA (generic driver)
7.8MB/sec for WinXP CardBus 32 (Lexmark driver)
Note: As a reference I used a SanDisk CF->USB2 adapter connected via an NEC USB2->CardBus32 in this same slot.
It gets >10MB/s to the same card so this is not a limitation with host DMA or the PCI/Yenta socket driver.
The following is the dmesg trace and hdparm in case it's of any use in locating the cause of the slowdown.
pccard: CardBus card inserted into slot 0
PCI: Found 0000:01:00.0 [1145/f021] 000180 00
PCI: Calling quirk c0022948 for 0000:01:00.0
PCI: Succeeded allocate mem resource #1:1000@34000000 for 0000:01:00.0
got res [34000000:34000fff] bus [34000000:34000fff] flags 200 for BAR 1 of 0000:01:00.0
PCI: moved device 0000:01:00.0 resource 1 (200) to 34000000
PCI: Succeeded allocate I/O resource #0:20@2400 for 0000:01:00.0
got res [2400:241f] bus [2400:241f] flags 101 for BAR 0 of 0000:01:00.0
PCI: moved device 0000:01:00.0 resource 0 (101) to 2400
PCI: enabling device 0000:01:00.0 (0000 -> 0003)
PCI: Enabling bus mastering for device 0000:01:00.0
PCI: Setting latency timer of device 0000:01:00.0 to 64
scsi0 : pata_ninja32
ata1: PATA max PIO4 cmd 0x00012410 ctl 0x0001241e bmdma 0x00012400 irq 39
ata1.00: CFA: SanDisk SDCFH-2048, HDX 4.04, max MWDMA2
ata1.00: 4001760 sectors, multi 0: LBA
ata1.00: configured for PIO4
scsi 0:0:0:0: Direct-Access ATA SanDisk SDCFH-20 HDX PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 4001760 512-byte hardware sectors (2049 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 4001760 512-byte hardware sectors (2049 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 249/255/63, sectors = 4001760, start = 0
# hdparm -I /dev/sda
/dev/sda:
CompactFlash ATA device, with removable media
Model Number: SanDisk SDCFH-2048
Serial Number: 011908D1907Q3145
Firmware Revision: HDX 4.04
Standards:
Supported: 4
Likely used: 4
Configuration:
Logical max current
cylinders 3970 3970
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 4001760
LBA user addressable sectors: 4001760
device size with M = 1024*1024: 1953 MBytes
device size with M = 1000*1000: 2048 MBytes (2 GB)
Capabilities:
LBA, IORDY(may be)(cannot be disabled)
Standby timer values: spec'd by Vendor
R/W multiple sector transfer: Max = 4 Current = 0
DMA: mdma0 mdma1 mdma2 (?)
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* CFA feature set
# hdparm -d1 /dev/sda
/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
Let me know if there's any more useful info I could provide.
regards,
Iain Barker
----
To: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Subject: Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
From: Mark Lord <liml@xxxxxx>
Date: Tue, 13 Nov 2007 23:50:47 -0500
Cc: Mikael Pettersson <mikpe@xxxxxxxx>, greg.freemyer@xxxxxxxxx, linux-ide@xxxxxxxxxxxxxxx
In-reply-to: <20071114005718.7b151b37@xxxxxxxxxxxxxxxxx>
References: <200711031541.lA3FfJ6h006120@xxxxxxxxxxxxxx> <20071103162203.5388a37f@xxxxxxxxxxxxxxxxx> <47323E13.3030205@xxxxxx> <20071107232132.238fdf04@xxxxxxxxxxxxxxxxx> <47324A16.5010205@xxxxxx> <4738B364.5030806@xxxxxx> <20071114005718.7b151b37@xxxxxxxxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.6 (X11/20070728)
--------------------------------------------------------------------------------
Alan wrote:
First guess
/*
* pata_ninja32.c - Ninja32 PATA for new ATA layer
..
Okay, I tried it on the wife's notebook.
It needs the patch below to enable chip interrupts,
and it is *very* slow on I/O (1MB/sec), slower even
than delkin_cb at present.
But it does work, with this patch:
Signed-off-by: Mark Lord <mlord@xxxxxxxxx>
---
(I still have hardware here to send you..)
--- old/pata_ninja32.c 2007-11-13 23:06:21.000000000 -0500
+++ new/pata_ninja32.c 2007-11-13 23:49:24.000000000 -0500
@@ -169,6 +169,7 @@
ap->pio_mask = 0x1F;
ap->flags |= ATA_FLAG_SLAVE_POSS;
+ iowrite8(0x05, base + 1);
ap->ioaddr.cmd_addr = base + 0x10;
ap->ioaddr.ctl_addr = base + 0x1E;
ap->ioaddr.altstatus_addr = base + 0x1E;
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset
2008-01-17 20:39 Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Iain Barker
@ 2008-01-17 23:11 ` Alan Cox
0 siblings, 0 replies; 17+ messages in thread
From: Alan Cox @ 2008-01-17 23:11 UTC (permalink / raw)
To: Iain Barker; +Cc: liml, linux-ide
> I can confirm Mark's observation that the access speeds are slower - around half the speed of the earlier Linux PIO driver, and a quarter the performance of WinXP. Test CF card was a SanDisk UltraII as the target, with CB1410 (Yenta compatible TI clone) as the host CB32 controller.
>
> The driver works, but appears to use PIO only (PIO 4 is reported, actual performance is nearer PIO 0)
> Should the UDMA modes of the CF be usable?
Due to lack of documentation - not at the moment. Even the BSD folks
haven't managed to get that bit going. Pulling the card registers for the
device in Windows PIO4 would be most useful.
> Linux throughput of 'dd bs=100MD' writing to FAT16 (Dell 3GHz P4 x86 32bit, kernel 2.6.23):
>
> 3.1MB/sec for Linux PCMCIA (legacy delkin_cb.c )
> 1.8MB/sec for Linux CardBus 32 (libata pata_ninja32.c)
Yes. I've not had time to go back and do more investigating.
Alan
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2008-01-17 23:12 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-03 15:41 Bart's efforts? Mikael Pettersson
2007-11-03 16:22 ` Alan Cox
2007-11-07 22:37 ` Mark Lord
2007-11-07 23:21 ` Alan Cox
2007-11-07 23:28 ` Mark Lord
2007-11-07 23:31 ` Alan Cox
2007-11-07 23:34 ` Mark Lord
2007-11-12 20:11 ` Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Mark Lord
2007-11-12 20:12 ` Mark Lord
2007-11-12 20:15 ` Mark Lord
2007-11-12 21:27 ` Alan Cox
2007-11-12 22:56 ` Mark Lord
2007-11-14 0:57 ` Alan Cox
2007-11-14 4:50 ` Mark Lord
2007-11-09 10:27 ` Bart's efforts? Mikael Pettersson
-- strict thread matches above, loose matches on Subject: below --
2008-01-17 20:39 Delkin Cardbus IDE, a.k.a. ASKA "Ninja" chipset Iain Barker
2008-01-17 23:11 ` Alan Cox
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).