* [sata] libata update
@ 2004-03-27 2:27 Jeff Garzik
2004-03-30 22:59 ` Petr Sebor
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-27 2:27 UTC (permalink / raw)
To: linux-ide; +Cc: Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]
More work on libata... human-readable summary:
* scsi portion of command submission path now a lot more lightweight.
Should reduce CPU usage a bit.
* improved documentation (see below)
* New SiS SATA driver.
* Promise: minor improvements in locking, error handling, and
initialization. Promise users, please test.
* Intel ICH5: minor improvements in probing and combined mode handling.
Intel users, please test.
This is going to Linus after 2.6.5 is released.
BK repositories:
http://gkernel.bkbits.net/libata-2.[46]
Patches:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.25-libata15.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc2-bk6-libata2.patch.bz2
And also, there are some PDF docs generated from the source code.
Although this is always available via "make pdfdocs", I also post this
document at
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/libata.pdf
I have attached the short and long changelogs for the above patches,
versus upstream 2.6.x.
[-- Attachment #2: changelog.txt --]
[-- Type: text/plain, Size: 1150 bytes --]
<uwe.koziolek:gmx.net>:
o [libata] Add driver for SiS 964/180 SATA
Jeff Garzik:
o [libata sata_promise] better locking and error handling
o [libata] more documentation
o [libata] more cmd queue path cleanups
o [libata] more command queue path cleanup
o [libata] clean up command queue/submit path a bit
o [libata sata_promise] minor initialization updates
o [libata] documentation, and a couple tiny cleanups
o [libata] use scsi host lock
o [libata] reduce diff with 2.4 libata backport
o [libata] pci_dma_error() was renamed to pci_dma_mapping_error()
o [ata] move some generic stuff linux/libata.h -> linux/ata.h
o [libata] consolidate data transfer mode handling
o [libata] set up some of the per-command data beforehand
o [libata sata_promise] check for PATA port on PDC20375
o [libata ata_piix] fix combined mode device detection
o [libata ata_piix] clean up combined mode handling
o [libata ata_piix] do not disable SATA port on module unload
o [libata] use kmap_atomic() rather than kmap()
o [libata] use new pci_dma_error() to check for pci_map_single() failure
o [libata sata_sis] minor cleanups
[-- Attachment #3: changelog-long.txt --]
[-- Type: text/plain, Size: 5886 bytes --]
ChangeSet@1.1694, 2004-03-26 20:40:58-05:00, jgarzik@redhat.com
[libata sata_promise] better locking and error handling
* Prefer spin_lock() to spin_lock_irq() in interrupt handler
* Reset each port, before probing the SATA phy
* Reset port when every time an error occurs
ChangeSet@1.1673.6.13, 2004-03-26 18:02:34-05:00, jgarzik@redhat.com
[libata] more documentation
libata-scsi.c should now be fully documented.
ChangeSet@1.1673.6.12, 2004-03-26 04:04:17-05:00, jgarzik@redhat.com
[libata] more cmd queue path cleanups
Final part in tonight's series of changes to clean up the
command queueing path.
The simulate-ATA-over-SCSI code is moved to a new function,
ata_scsi_simulate(), and ata_scsi_rw_queue() is renamed to
ata_scsi_translate(). With the SCSI CDB debugging dump function
also moved into its own function, the queue-command path is now
nice, compact, and readable.
ChangeSet@1.1673.6.11, 2004-03-26 03:32:10-05:00, jgarzik@redhat.com
[libata] more command queue path cleanup
A new helper ata_scsi_xlat_possible(), and the command queue path
gets a bit more compact.
As side effects we kill the 'cmd_size' argument from two functions,
and mark ata_scsi_rw_queue() as static, as its only needed
in libata-scsi.c.
ChangeSet@1.1673.6.10, 2004-03-26 03:20:47-05:00, jgarzik@redhat.com
[libata] clean up command queue/submit path a bit
This change is part of a series that compartmentalizes and consolidates
ATA taskfile submission.
Here, the device-location-related checks are moved out of the ->queuecommand()
hook and into an inline helper function.
ChangeSet@1.1673.6.9, 2004-03-26 01:13:20-05:00, jgarzik@redhat.com
[libata sata_promise] minor initialization updates
* remove incorrect PATA port check
* enable undocumented bit 13 in flash control register,
because the Promise driver does so.
* wait 10 ms after setting TBG mode, for the same reason.
ChangeSet@1.1673.6.8, 2004-03-25 17:23:41-05:00, jgarzik@redhat.com
[libata] documentation, and a couple tiny cleanups
Add more per-function source code documentation. Some of this stuff
is esoteric ATA crapola, and definitely needed to be documented.
Also, two tiny cleanups spotted while documenting:
* kill unused arg from internal function ata_dev_try_classify()
* kill unused return value from ata_dev_id_string()
ChangeSet@1.1673.6.7, 2004-03-25 14:40:17-05:00, jgarzik@redhat.com
[libata] use scsi host lock
In 2.4 we release io_request_lock and take our own per-host lock,
in the ->queuecommand() hook. In 2.6, the SCSI layer provides a
useful to simply use the lock we already have, via scsi_assign_lock().
ChangeSet@1.1673.6.6, 2004-03-25 14:36:59-05:00, jgarzik@redhat.com
[libata] reduce diff with 2.4 libata backport
ChangeSet@1.1673.6.5, 2004-03-25 14:36:27-05:00, jgarzik@redhat.com
[libata] pci_dma_error() was renamed to pci_dma_mapping_error()
ChangeSet@1.1643.1.215, 2004-03-25 01:57:34-05:00, jgarzik@redhat.com
[ata] move some generic stuff linux/libata.h -> linux/ata.h
struct ata_taskfile is generic, and so far its flags (ATA_TFLAG_xxx)
Also, move ATA_PROT_xxx definitions into their own enum.
ChangeSet@1.1643.1.214, 2004-03-25 01:44:08-05:00, jgarzik@redhat.com
[libata] consolidate data transfer mode handling
The various ways you can send data to/from your ATA device is
known as the ATA taskfile protocol: PIO single sector, PIO
multiple sector, DMA, DMA TCQ, DMA NCQ, ...
Prior to this change, the data direction (read/write) was encoded
implicitly into the ATA_PROT_xxx value itself. This increased
complexity in some areas, and inhibited flexibility in others.
This change separates data direction from taskfile protocol, and also
moves the data direction flag (ATA_QCFLAG_WRITE) down to a lower
level (ATA_TFLAG_WRITE).
ChangeSet@1.1643.1.213, 2004-03-25 00:53:07-05:00, jgarzik@redhat.com
[libata] set up some of the per-command data beforehand
The data transfer mode and the set of read/write commands we generate
during normal operation remains constant until we change the data
transfer mode.
This removes a series of branches in the read/write fast path,
and in general cleans up that particular spot of code.
ChangeSet@1.1643.1.212, 2004-03-24 23:50:34-05:00, jgarzik@redhat.com
[libata sata_promise] check for PATA port on PDC20375
We don't handle it yet, but this prints out a message in its presence,
permitting verification of the check and informing users why their
PATA device is not recognized.
ChangeSet@1.1643.1.211, 2004-03-23 12:35:54-05:00, jgarzik@redhat.com
[libata ata_piix] fix combined mode device detection
SATA port detection should not have assumed that a single SATA port
mapped to a single struct ata_port. Combined mode breaks this
assumption.
Change code to simply detect if one or more devices are present
on the struct ata_port, which is what we really wanted to do.
ChangeSet@1.1643.1.210, 2004-03-23 11:52:00-05:00, jgarzik@redhat.com
[libata ata_piix] clean up combined mode handling
ChangeSet@1.1643.1.209, 2004-03-23 11:14:06-05:00, jgarzik@redhat.com
[libata ata_piix] do not disable SATA port on module unload
We were disabling the SATA port, but not enabling it on module load.
So, modprobe+rmmod+modprobe would fail.
ChangeSet@1.1643.1.208, 2004-03-23 09:20:14-05:00, jgarzik@redhat.com
[libata] use kmap_atomic() rather than kmap()
ChangeSet@1.1643.1.207, 2004-03-22 23:40:01-05:00, jgarzik@redhat.com
[libata] use new pci_dma_error() to check for pci_map_single() failure
ChangeSet@1.1643.39.2, 2004-03-21 12:15:16-05:00, jgarzik@redhat.com
[libata sata_sis] minor cleanups
ChangeSet@1.1643.39.1, 2004-03-21 11:55:35-05:00, uwe.koziolek@gmx.net
[libata] Add driver for SiS 964/180 SATA.
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [sata] libata update
2004-03-27 2:27 [sata] libata update Jeff Garzik
@ 2004-03-30 22:59 ` Petr Sebor
2004-03-30 23:14 ` Jeff Garzik
` (2 more replies)
0 siblings, 3 replies; 27+ messages in thread
From: Petr Sebor @ 2004-03-30 22:59 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2526 bytes --]
Hi Jeff,
I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
sata drive anymore...
I am seeing this:
-------------------------------------------------------------------
libata version 1.02 loaded.
sata_via version 0.20
sata_via(0000:00:0f.0): routed to hard irq line 11
ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
88:203f
ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
ata1: dev 0 configured for UDMA/100
scsi0 : sata_via
ata2: no device found (phy stat 00000000)
ata2: thread exiting
scsi1 : sata_via
Using anticipatory io scheduler
Vendor: ATA Model: WDC WD2500JD-00F Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
SCSI device sda: drive cache: write through
sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
--------------------------------------------------------------------
instead of this:
libata version 1.00 loaded.
sata_via version 0.11
ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
88:203f
ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
ata1: dev 0 configured for UDMA/100
scsi0 : sata_via
ata2: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
88:407f
ata2: dev 0 ATA, max UDMA/133, 72303840 sectors (lba48)
ata2: dev 0 configured for UDMA/133
scsi1 : sata_via
Using anticipatory io scheduler
Vendor: ATA Model: WDC WD2500JD-00F Rev: 1.00
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.00
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
SCSI device sda: drive cache: write through
sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sdb: 72303840 512-byte hdwr sectors (37020 MB)
SCSI device sdb: drive cache: write through
sdb: sdb1
Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
Attached scsi generic sg1 at scsi1, channel 0, id 0, lun 0, type 0
Regards,
Petr
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [sata] libata update
2004-03-30 22:59 ` Petr Sebor
@ 2004-03-30 23:14 ` Jeff Garzik
2004-03-31 1:43 ` Jarno Paananen
2004-03-30 23:16 ` Jeff Garzik
2004-03-31 8:24 ` [PATCH] " Jeff Garzik
2 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-30 23:14 UTC (permalink / raw)
To: Petr Sebor; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 160 bytes --]
Petr Sebor wrote:
> Hi Jeff,
>
> I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
> sata drive anymore...
Does this patch fix it?
Jeff
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 1184 bytes --]
===== drivers/scsi/sata_via.c 1.10 vs edited =====
--- 1.10/drivers/scsi/sata_via.c Thu Mar 25 07:30:08 2004
+++ edited/drivers/scsi/sata_via.c Tue Mar 30 18:13:16 2004
@@ -56,6 +56,7 @@
static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
static u32 svia_scr_read (struct ata_port *ap, unsigned int sc_reg);
static void svia_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
+static void svia_phy_reset(struct ata_port *ap);
static struct pci_device_id svia_pci_tbl[] = {
{ 0x1106, 0x3149, PCI_ANY_ID, PCI_ANY_ID, 0, 0, via_sata },
@@ -96,7 +97,7 @@
.check_status = ata_check_status_pio,
.exec_command = ata_exec_command_pio,
- .phy_reset = sata_phy_reset,
+ .phy_reset = svia_phy_reset,
.bmdma_start = ata_bmdma_start_pio,
.fill_sg = ata_fill_sg,
@@ -115,6 +116,13 @@
MODULE_DESCRIPTION("SCSI low-level driver for VIA SATA controllers");
MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, svia_pci_tbl);
+
+static void svia_phy_reset(struct ata_port *ap)
+{
+ ap->cbl = ATA_CBL_SATA;
+ ata_port_probe(ap);
+ ata_bus_reset(ap);
+}
static u32 svia_scr_read (struct ata_port *ap, unsigned int sc_reg)
{
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [sata] libata update
2004-03-30 23:14 ` Jeff Garzik
@ 2004-03-31 1:43 ` Jarno Paananen
2004-03-31 1:50 ` Jeff Garzik
0 siblings, 1 reply; 27+ messages in thread
From: Jarno Paananen @ 2004-03-31 1:43 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
Jeff Garzik <jgarzik@pobox.com> writes:
> Petr Sebor wrote:
>> Hi Jeff,
>> I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
>> sata drive anymore...
>
> Does this patch fix it?
I'm using the 2.4 kernel version (would be using 2.6 if there was
support for IT8212 ide-"raid" controller, hint hint Bart :) and had
the same problem. This fixed it:
libata version 1.02 loaded.
sata_via version 0.20
sata_via(00:0f.0): routed to hard irq line 5
ata1: SATA max UDMA/133 cmd 0xB400 ctl 0xB802 bmdma 0xC400 irq 20
ata2: SATA max UDMA/133 cmd 0xBC00 ctl 0xC002 bmdma 0xC408 irq 20
ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3e01
87:4003 88:407f
ata1: dev 0 ATA, max UDMA/133, 72303840 sectors (lba48)
ata1: dev 0 configured for UDMA/133
ata2: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3e01
87:4003 88:203f
ata2: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
ata2: dev 0 configured for UDMA/100
scsi1 : sata_via
scsi2 : sata_via
Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: WDC WD2500JD-22F Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
Attached scsi disk sda at scsi0, channel 0, id 3, lun 0
Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0
Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0
SCSI device sda: 71833096 512-byte hdwr sectors (36779 MB)
sda: sda1 sda2 sda3 < sda5 sda6 sda7 >
SCSI device sdb: 72303840 512-byte hdwr sectors (37020 MB)
sdb: sdb1
SCSI device sdc: 488397168 512-byte hdwr sectors (250059 MB)
sdc: sdc1 < sdc5 sdc6 >
(sda is a real SCSI disk)
Thanks,
// Jarno
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-31 1:43 ` Jarno Paananen
@ 2004-03-31 1:50 ` Jeff Garzik
2004-03-31 1:53 ` Jarno Paananen
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 1:50 UTC (permalink / raw)
To: Jarno Paananen; +Cc: linux-kernel
Jarno Paananen wrote:
> Jeff Garzik <jgarzik@pobox.com> writes:
>
>
>>Petr Sebor wrote:
>>
>>>Hi Jeff,
>>>I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
>>>sata drive anymore...
>>
>>Does this patch fix it?
>
>
> I'm using the 2.4 kernel version (would be using 2.6 if there was
> support for IT8212 ide-"raid" controller, hint hint Bart :) and had
> the same problem. This fixed it:
Sorry to be dumb, but just to clear... you had the same problem, and
the patch I posted fixed it?
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-31 1:50 ` Jeff Garzik
@ 2004-03-31 1:53 ` Jarno Paananen
0 siblings, 0 replies; 27+ messages in thread
From: Jarno Paananen @ 2004-03-31 1:53 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
Jeff Garzik <jgarzik@pobox.com> writes:
> Jarno Paananen wrote:
>> Jeff Garzik <jgarzik@pobox.com> writes:
>>
>>>Petr Sebor wrote:
>>>
>>>>Hi Jeff,
>>>>I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
>>>>sata drive anymore...
>>>
>>>Does this patch fix it?
>> I'm using the 2.4 kernel version (would be using 2.6 if there was
>> support for IT8212 ide-"raid" controller, hint hint Bart :) and had
>> the same problem. This fixed it:
>
>
> Sorry to be dumb, but just to clear... you had the same problem, and
> the patch I posted fixed it?
Yes, exactly, sorry for the confusion.
// Jarno
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-30 22:59 ` Petr Sebor
2004-03-30 23:14 ` Jeff Garzik
@ 2004-03-30 23:16 ` Jeff Garzik
2004-03-30 23:26 ` Petr Sebor
2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
2004-03-31 8:24 ` [PATCH] " Jeff Garzik
2 siblings, 2 replies; 27+ messages in thread
From: Jeff Garzik @ 2004-03-30 23:16 UTC (permalink / raw)
To: Petr Sebor; +Cc: linux-kernel
Petr Sebor wrote:
> Hi Jeff,
>
> I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
> sata drive anymore...
>
> I am seeing this:
> -------------------------------------------------------------------
> libata version 1.02 loaded.
> sata_via version 0.20
> sata_via(0000:00:0f.0): routed to hard irq line 11
> ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
> ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
> ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
> 88:203f
> ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
> ata1: dev 0 configured for UDMA/100
> scsi0 : sata_via
> ata2: no device found (phy stat 00000000)
> ata2: thread exiting
> scsi1 : sata_via
oh, and are both disks SATA?
Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
Do you have any special settings like BIOS RAID turned on, that might
interfere with things?
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-30 23:16 ` Jeff Garzik
@ 2004-03-30 23:26 ` Petr Sebor
2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
1 sibling, 0 replies; 27+ messages in thread
From: Petr Sebor @ 2004-03-30 23:26 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 409 bytes --]
Jeff Garzik wrote:
> oh, and are both disks SATA?
Both drives are SATA
> Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
Nope.
> Do you have any special settings like BIOS RAID turned on, that might
> interfere with things?
This thing is turned off. (at least I hope so... will check)
I'll try the patch you sent as soon as I reach the machine.
Thanks!
Best regards,
Petr
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-30 23:16 ` Jeff Garzik
2004-03-30 23:26 ` Petr Sebor
@ 2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
2004-03-30 23:47 ` Jeff Garzik
1 sibling, 1 reply; 27+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-03-30 23:39 UTC (permalink / raw)
To: Jeff Garzik, Petr Sebor; +Cc: linux-kernel
On Wednesday 31 of March 2004 01:16, Jeff Garzik wrote:
> Petr Sebor wrote:
> > Hi Jeff,
> >
> > I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
> > sata drive anymore...
> >
> > I am seeing this:
> > -------------------------------------------------------------------
> > libata version 1.02 loaded.
> > sata_via version 0.20
> > sata_via(0000:00:0f.0): routed to hard irq line 11
> > ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
> > ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
> > ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
> > 88:203f
> > ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
> > ata1: dev 0 configured for UDMA/100
> > scsi0 : sata_via
> > ata2: no device found (phy stat 00000000)
> > ata2: thread exiting
> > scsi1 : sata_via
>
> oh, and are both disks SATA?
>
> Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.00
Type: Direct-Access ANSI SCSI revision: 05
WD Raptor electronics includes PATA->SATA bridge.
Bartlomiej
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
@ 2004-03-30 23:47 ` Jeff Garzik
2004-03-31 0:28 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-30 23:47 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Petr Sebor, linux-kernel
Bartlomiej Zolnierkiewicz wrote:
> On Wednesday 31 of March 2004 01:16, Jeff Garzik wrote:
>
>>Petr Sebor wrote:
>>
>>>Hi Jeff,
>>>
>>>I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
>>>sata drive anymore...
>>>
>>>I am seeing this:
>>>-------------------------------------------------------------------
>>>libata version 1.02 loaded.
>>>sata_via version 0.20
>>>sata_via(0000:00:0f.0): routed to hard irq line 11
>>>ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
>>>ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
>>>ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
>>>88:203f
>>>ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
>>>ata1: dev 0 configured for UDMA/100
>>>scsi0 : sata_via
>>>ata2: no device found (phy stat 00000000)
>>>ata2: thread exiting
>>>scsi1 : sata_via
>>
>>oh, and are both disks SATA?
>>
>>Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
>
>
> Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.00
> Type: Direct-Access ANSI SCSI revision: 05
>
> WD Raptor electronics includes PATA->SATA bridge.
Yes, a lot of drives do.
I meant outside the drive, an adapter/bridge the user plugs into the
device, that allows it to pretend it is a SATA device.
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-30 23:47 ` Jeff Garzik
@ 2004-03-31 0:28 ` Bartlomiej Zolnierkiewicz
2004-03-31 2:33 ` Jeff Garzik
0 siblings, 1 reply; 27+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-03-31 0:28 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Petr Sebor, linux-kernel
On Wednesday 31 of March 2004 01:47, Jeff Garzik wrote:
> Bartlomiej Zolnierkiewicz wrote:
> > On Wednesday 31 of March 2004 01:16, Jeff Garzik wrote:
> >>Petr Sebor wrote:
> >>>Hi Jeff,
> >>>
> >>>I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
> >>>sata drive anymore...
> >>>
> >>>I am seeing this:
> >>>-------------------------------------------------------------------
> >>>libata version 1.02 loaded.
> >>>sata_via version 0.20
> >>>sata_via(0000:00:0f.0): routed to hard irq line 11
> >>>ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
> >>>ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
> >>>ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
> >>>88:203f
> >>>ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
> >>>ata1: dev 0 configured for UDMA/100
> >>>scsi0 : sata_via
> >>>ata2: no device found (phy stat 00000000)
> >>>ata2: thread exiting
> >>>scsi1 : sata_via
> >>
> >>oh, and are both disks SATA?
> >>
> >>Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
> >
> > Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.00
> > Type: Direct-Access ANSI SCSI revision: 05
> >
> > WD Raptor electronics includes PATA->SATA bridge.
>
> Yes, a lot of drives do.
>
> I meant outside the drive, an adapter/bridge the user plugs into the
> device, that allows it to pretend it is a SATA device.
Is there any difference (except cabling and power) ?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-31 0:28 ` Bartlomiej Zolnierkiewicz
@ 2004-03-31 2:33 ` Jeff Garzik
0 siblings, 0 replies; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 2:33 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Petr Sebor, linux-kernel
Bartlomiej Zolnierkiewicz wrote:
> On Wednesday 31 of March 2004 01:47, Jeff Garzik wrote:
>
>>Bartlomiej Zolnierkiewicz wrote:
>>
>>>On Wednesday 31 of March 2004 01:16, Jeff Garzik wrote:
>>>
>>>>Petr Sebor wrote:
>>>>
>>>>>Hi Jeff,
>>>>>
>>>>>I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
>>>>>sata drive anymore...
>>>>>
>>>>>I am seeing this:
>>>>>-------------------------------------------------------------------
>>>>>libata version 1.02 loaded.
>>>>>sata_via version 0.20
>>>>>sata_via(0000:00:0f.0): routed to hard irq line 11
>>>>>ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
>>>>>ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
>>>>>ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
>>>>>88:203f
>>>>>ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
>>>>>ata1: dev 0 configured for UDMA/100
>>>>>scsi0 : sata_via
>>>>>ata2: no device found (phy stat 00000000)
>>>>>ata2: thread exiting
>>>>>scsi1 : sata_via
>>>>
>>>>oh, and are both disks SATA?
>>>>
>>>>Or is the 37G drive a PATA drive on a PATA->SATA adapter (a.k.a. bridge)?
>>>
>>> Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.00
>>> Type: Direct-Access ANSI SCSI revision: 05
>>>
>>>WD Raptor electronics includes PATA->SATA bridge.
>>
>>Yes, a lot of drives do.
>>
>>I meant outside the drive, an adapter/bridge the user plugs into the
>>device, that allows it to pretend it is a SATA device.
>
>
> Is there any difference (except cabling and power) ?
Most drives use the well-known Marvell phy chip, while adapters are a
bit more random...
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] Re: [sata] libata update
2004-03-30 22:59 ` Petr Sebor
2004-03-30 23:14 ` Jeff Garzik
2004-03-30 23:16 ` Jeff Garzik
@ 2004-03-31 8:24 ` Jeff Garzik
2004-03-31 11:50 ` Petr Sebor
2 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 8:24 UTC (permalink / raw)
To: linux-kernel; +Cc: Petr Sebor, jpaana
[-- Attachment #1: Type: text/plain, Size: 827 bytes --]
Petr Sebor wrote:
> Hi Jeff,
>
> I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
> sata drive anymore...
>
> I am seeing this:
> -------------------------------------------------------------------
> libata version 1.02 loaded.
> sata_via version 0.20
> sata_via(0000:00:0f.0): routed to hard irq line 11
> ata1: SATA max UDMA/133 cmd 0xC400 ctl 0xC802 bmdma 0xD400 irq 20
> ata2: SATA max UDMA/133 cmd 0xCC00 ctl 0xD002 bmdma 0xD408 irq 20
> ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003
> 88:203f
> ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
> ata1: dev 0 configured for UDMA/100
> scsi0 : sata_via
> ata2: no device found (phy stat 00000000)
Here's a potentially better patch, if you guys (or anyone else) would be
willing to give it a quick test...?
Jeff
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 1577 bytes --]
===== drivers/scsi/sata_via.c 1.10 vs edited =====
--- 1.10/drivers/scsi/sata_via.c Thu Mar 25 07:30:08 2004
+++ edited/drivers/scsi/sata_via.c Wed Mar 31 03:20:50 2004
@@ -39,9 +39,10 @@
enum {
via_sata = 0,
- SATA_CHAN_ENAB = 0x40,
- SATA_INT_GATE = 0x41,
- SATA_NATIVE_MODE = 0x42,
+ SATA_CHAN_ENAB = 0x40, /* SATA channel enable */
+ SATA_INT_GATE = 0x41, /* SATA interrupt gating */
+ SATA_NATIVE_MODE = 0x42, /* Native mode enable */
+ SATA_PATA_SHARING = 0x49, /* PATA/SATA sharing func ctrl */
PORT0 = (1 << 1),
PORT1 = (1 << 0),
@@ -51,6 +52,9 @@
INT_GATE_ALL = PORT0 | PORT1,
NATIVE_MODE_ALL = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4),
+
+ SATA_EXT_PHY = (1 << 6), /* 0==use PATA, 1==ext phy */
+ SATA_2DEV = (1 << 5), /* SATA is master/slave */
};
static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -136,13 +140,7 @@
static unsigned long svia_scr_addr(unsigned long addr, unsigned int port)
{
- if (port >= 4)
- return 0; /* invalid port */
-
- addr &= ~((1 << 7) | (1 << 6));
- addr |= ((unsigned long)port << 6);
-
- return addr;
+ return addr + (port * 128);
}
/**
@@ -175,6 +173,13 @@
if (rc)
goto err_out;
+ pci_read_config_byte(pdev, SATA_PATA_SHARING, &tmp8);
+ if ((tmp8 & (SATA_EXT_PHY | SATA_2DEV)) != SATA_EXT_PHY) {
+ printk(KERN_ERR DRV_NAME "(%s): PATA sharing not supported (0x%x)\n",
+ pci_name(pdev), (int) tmp8);
+ rc = -EIO;
+ goto err_out_regions;
+ }
for (i = 0; i < ARRAY_SIZE(svia_bar_sizes); i++)
if ((pci_resource_start(pdev, i) == 0) ||
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [PATCH] Re: [sata] libata update
2004-03-31 8:24 ` [PATCH] " Jeff Garzik
@ 2004-03-31 11:50 ` Petr Sebor
2004-03-31 16:41 ` Jarno Paananen
2004-03-31 16:48 ` Jeff Garzik
0 siblings, 2 replies; 27+ messages in thread
From: Petr Sebor @ 2004-03-31 11:50 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, jpaana
[-- Attachment #1: Type: text/plain, Size: 460 bytes --]
Jeff Garzik wrote:
> Here's a potentially better patch, if you guys (or anyone else) would
> be willing to give it a quick test...?
>
> Jeff
Not good at all ...
(eye-copied from the console @ boot time)
2.6.5-rc3 + this patch:
sata_via (0000:00:0f.0): PATA sharing not supported (0x2)
via_sata: probe of (0000:00:0f.0) failed with error -5
with following panic
unable to mount root...
wrt sata_via, no more messages are written...
Regards,
Petr
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] Re: [sata] libata update
2004-03-31 11:50 ` Petr Sebor
@ 2004-03-31 16:41 ` Jarno Paananen
2004-03-31 16:48 ` Jeff Garzik
1 sibling, 0 replies; 27+ messages in thread
From: Jarno Paananen @ 2004-03-31 16:41 UTC (permalink / raw)
To: Petr Sebor; +Cc: Jeff Garzik, linux-kernel
Petr Sebor <petr@scssoft.com> writes:
> Jeff Garzik wrote:
>
>> Here's a potentially better patch, if you guys (or anyone else)
>> would be willing to give it a quick test...?
>>
>> Jeff
>
> Not good at all ...
>
> (eye-copied from the console @ boot time)
>
> 2.6.5-rc3 + this patch:
>
> sata_via (0000:00:0f.0): PATA sharing not supported (0x2)
> via_sata: probe of (0000:00:0f.0) failed with error -5
>
> with following panic
>
> unable to mount root...
>
> wrt sata_via, no more messages are written...
Yup, no good here either (still 2.4-bk kernel):
libata version 1.02 loaded.
sata_via version 0.20
sata_via(00:0f.0): PATA sharing not supported (0x82)
Attached scsi disk sda at scsi0, channel 0, id 3, lun 0
SCSI device sda: 71833096 512-byte hdwr sectors (36779 MB)
sda: sda1 sda2 sda3 < sda5 sda6 sda7 >
// Jarno
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] Re: [sata] libata update
2004-03-31 11:50 ` Petr Sebor
2004-03-31 16:41 ` Jarno Paananen
@ 2004-03-31 16:48 ` Jeff Garzik
2004-03-31 17:21 ` Jarno Paananen
1 sibling, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 16:48 UTC (permalink / raw)
To: Petr Sebor; +Cc: linux-kernel, jpaana
[-- Attachment #1: Type: text/plain, Size: 288 bytes --]
Petr Sebor wrote:
> 2.6.5-rc3 + this patch:
>
> sata_via (0000:00:0f.0): PATA sharing not supported (0x2)
> via_sata: probe of (0000:00:0f.0) failed with error -5
Thanks for testing. OK, one bug fix and here's a new patch...
Thanks for all your help in narrowing this down,
Jeff
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 1547 bytes --]
===== drivers/scsi/sata_via.c 1.10 vs edited =====
--- 1.10/drivers/scsi/sata_via.c Thu Mar 25 07:30:08 2004
+++ edited/drivers/scsi/sata_via.c Wed Mar 31 11:47:24 2004
@@ -39,9 +39,10 @@
enum {
via_sata = 0,
- SATA_CHAN_ENAB = 0x40,
- SATA_INT_GATE = 0x41,
- SATA_NATIVE_MODE = 0x42,
+ SATA_CHAN_ENAB = 0x40, /* SATA channel enable */
+ SATA_INT_GATE = 0x41, /* SATA interrupt gating */
+ SATA_NATIVE_MODE = 0x42, /* Native mode enable */
+ SATA_PATA_SHARING = 0x49, /* PATA/SATA sharing func ctrl */
PORT0 = (1 << 1),
PORT1 = (1 << 0),
@@ -51,6 +52,9 @@
INT_GATE_ALL = PORT0 | PORT1,
NATIVE_MODE_ALL = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4),
+
+ SATA_EXT_PHY = (1 << 6), /* 0==use PATA, 1==ext phy */
+ SATA_2DEV = (1 << 5), /* SATA is master/slave */
};
static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -136,13 +140,7 @@
static unsigned long svia_scr_addr(unsigned long addr, unsigned int port)
{
- if (port >= 4)
- return 0; /* invalid port */
-
- addr &= ~((1 << 7) | (1 << 6));
- addr |= ((unsigned long)port << 6);
-
- return addr;
+ return addr + (port * 128);
}
/**
@@ -175,6 +173,13 @@
if (rc)
goto err_out;
+ pci_read_config_byte(pdev, SATA_PATA_SHARING, &tmp8);
+ if (tmp8 & SATA_2DEV) {
+ printk(KERN_ERR DRV_NAME "(%s): SATA master/slave not supported (0x%x)\n",
+ pci_name(pdev), (int) tmp8);
+ rc = -EIO;
+ goto err_out_regions;
+ }
for (i = 0; i < ARRAY_SIZE(svia_bar_sizes); i++)
if ((pci_resource_start(pdev, i) == 0) ||
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [PATCH] Re: [sata] libata update
2004-03-31 16:48 ` Jeff Garzik
@ 2004-03-31 17:21 ` Jarno Paananen
2004-03-31 21:04 ` Jeff Garzik
0 siblings, 1 reply; 27+ messages in thread
From: Jarno Paananen @ 2004-03-31 17:21 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Petr Sebor, linux-kernel
Jeff Garzik <jgarzik@pobox.com> writes:
> Petr Sebor wrote:
>> 2.6.5-rc3 + this patch:
>> sata_via (0000:00:0f.0): PATA sharing not supported (0x2)
>> via_sata: probe of (0000:00:0f.0) failed with error -5
>
>
> Thanks for testing. OK, one bug fix and here's a new patch...
>
> Thanks for all your help in narrowing this down,
Thanks, that one works for me again:
libata version 1.02 loaded.
sata_via version 0.20
sata_via(00:0f.0): routed to hard irq line 5
ata1: SATA max UDMA/133 cmd 0xB400 ctl 0xB802 bmdma 0xC400 irq 20
ata2: SATA max UDMA/133 cmd 0xBC00 ctl 0xC002 bmdma 0xC408 irq 20
ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3e01
87:4003 88:407f
ata1: dev 0 ATA, max UDMA/133, 72303840 sectors (lba48)
ata1: dev 0 configured for UDMA/133
ata2: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3e01
87:4003 88:203f
ata2: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
ata2: dev 0 configured for UDMA/100
scsi1 : sata_via
scsi2 : sata_via
Vendor: ATA Model: WDC WD360GD-00FN Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: WDC WD2500JD-22F Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
Attached scsi disk sda at scsi0, channel 0, id 3, lun 0
Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0
Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0
SCSI device sda: 71833096 512-byte hdwr sectors (36779 MB)
sda: sda1 sda2 sda3 < sda5 sda6 sda7 >
SCSI device sdb: 72303840 512-byte hdwr sectors (37020 MB)
sdb: sdb1
SCSI device sdc: 488397168 512-byte hdwr sectors (250059 MB)
sdc: sdc1 < sdc5 sdc6 >
// Jarno
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] Re: [sata] libata update
2004-03-31 17:21 ` Jarno Paananen
@ 2004-03-31 21:04 ` Jeff Garzik
2004-04-01 7:35 ` Petr Sebor
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 21:04 UTC (permalink / raw)
To: Jarno Paananen; +Cc: Petr Sebor, linux-kernel
Jarno Paananen wrote:
> Jeff Garzik <jgarzik@pobox.com> writes:
>
>
>>Petr Sebor wrote:
>>
>>>2.6.5-rc3 + this patch:
>>>sata_via (0000:00:0f.0): PATA sharing not supported (0x2)
>>>via_sata: probe of (0000:00:0f.0) failed with error -5
>>
>>
>>Thanks for testing. OK, one bug fix and here's a new patch...
>>
>>Thanks for all your help in narrowing this down,
>
>
> Thanks, that one works for me again:
cool, that's the patch I'm going with.
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* [sata] libata update
@ 2004-04-25 2:48 Jeff Garzik
2004-04-25 4:24 ` J. Ryan Earl
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-04-25 2:48 UTC (permalink / raw)
To: linux-ide; +Cc: Linux Kernel
I'm slowly and (somewhat) quietly cleaning up the libata internals.
This is allow several interesting features to appear in rapid
succession: hotplug, random taskfile submission (SMART!), and ATAPI.
This is the first step in cleaning up the internals. Nothing terribly
interesting for existing users, except for one key change:
Promise SATA driver has been split. Promise TX2/TX4 SATA remains in
"sata_promise". The very-different Promise SX4 support is now found in
a new driver "sata_sx4". Promise users, please test and make sure I
didn't break anything. It seems to work on my Promise SATA h/w.
Linux 2.6.x patch and changelog:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.6-rc2-bk3-libata1.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.6-rc2-bk3-libata1.log
Linux 2.4.x patch and changelog:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.27-pre1-libata1.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.27-pre1-libata1.log
BitKeeper repositories:
http://gkernel.bkbits.net/libata-2.[46]
^ permalink raw reply [flat|nested] 27+ messages in thread
* [sata] libata update
@ 2004-03-31 21:02 Jeff Garzik
2004-04-03 0:45 ` Erik Andersen
0 siblings, 1 reply; 27+ messages in thread
From: Jeff Garzik @ 2004-03-31 21:02 UTC (permalink / raw)
To: linux-ide; +Cc: Linux Kernel
Small update, to fix a couple important 2.4-only bugs:
* SMP kernels would lock up during probing
* Hardware delays were incorrect, due to HZ=100
2.6.x kernels are not affected.
Also included is a fix for sata_via device-1 detection, which does
affect 2.6.x kernels.
BK repositories:
http://gkernel.bkbits.net/libata-2.[46]
2.4.x patch and log:
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.26-rc1-libata3.patch.bz2
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.26-rc1-libata3.log
2.6.x patch and log:
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc3-libata2.patch.bz2
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc3-libata2.log
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
2004-03-31 21:02 Jeff Garzik
@ 2004-04-03 0:45 ` Erik Andersen
0 siblings, 0 replies; 27+ messages in thread
From: Erik Andersen @ 2004-04-03 0:45 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-ide, Linux Kernel
On Wed Mar 31, 2004 at 04:02:43PM -0500, Jeff Garzik wrote:
>
> Small update, to fix a couple important 2.4-only bugs:
> * SMP kernels would lock up during probing
> * Hardware delays were incorrect, due to HZ=100
I have a Soyo P4 motherboard with built in Intel ICH5, Sil, and I have
"IDE + SATA" enabled in the bios, presumably meaning the ICH5 is in
combined mode. I usually boot with my rootfs on a ordinary IDE drive
(pata on ICH5 ide0), a cdrom (pata on ICH5 ide1) and a sata drive (sata1
on ICH5), which has all been working nicely. Many thanks. :-) Here is
what I usually see from the ICH5:
Uniform Multi-Platform E-IDE driver Revision: 7.00beta5-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH5: IDE controller at PCI slot 00:1f.1
ICH5: chipset revision 2
ICH5: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
hda: WDC WD2000JB-32EVA0, ATA DISK drive
hdc: SONY DVD RW DRU-510A, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: attached ide-disk driver.
hda: 390721968 sectors (200049 MB) w/8192KiB Cache, CHS=24321/255/63, UDMA(100)
Partition check:
hda: hda1 hda2
SCSI subsystem driver Revision: 1.00
libata version 1.02 loaded.
ata_piix version 1.02
PCI: Setting latency timer of device 00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0xC000 ctl 0xC402 bmdma 0xD000 irq 18
ata2: SATA max UDMA/133 cmd 0xC800 ctl 0xCC02 bmdma 0xD008 irq 18
ata1: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003 88:207f
ata1: dev 0 ATA, max UDMA/133, 398297088 sectors (lba48)
ata1: dev 0 configured for UDMA/133
ata2: SATA port has no device.
ata2: thread exiting
scsi0 : ata_piix
scsi1 : ata_piix
Vendor: ATA Model: Maxtor 6Y200M0 Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
Yesterday while doing some testing, I made a CD with the same kernel on
it as shown above, i.e. latest 2.4.26-rc1 + the current
2.4.26-rc1-libata3 patch. I then unplugged the power connector to my
usual rootfs drive (the WDC WD2000JB on ide0) to make sure I wouldn't
screw it up ;-).
Booting from CD (the SONY on ide1) with only the Maxtor 6Y200M0 (on the
ICH5 sata1), the libata driver wedged solid on bootup. After printing
ata1: SATA max UDMA/133 cmd 0xC000 ctl 0xC402 bmdma 0xD000 irq 18
ata2: SATA max UDMA/133 cmd 0xC800 ctl 0xCC02 bmdma 0xD008 irq 18
the box was dead dead dead. I can't test this setup with the bios set
to SATA only, since I don't own any SATA cdrom drives. Simply plugging
the WDC WD2000JB on ide0 back in allowed the system to boot normally.
As nearly as I can tell, one has to have a pata drive installed or the
ata_piix driver will wedge solid.
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
^ permalink raw reply [flat|nested] 27+ messages in thread
* [sata] libata update
@ 2004-03-30 21:31 Jeff Garzik
0 siblings, 0 replies; 27+ messages in thread
From: Jeff Garzik @ 2004-03-30 21:31 UTC (permalink / raw)
To: linux-ide; +Cc: Linux Kernel
A ton of SATA work in the past few weeks, but not a lot terribly new in
this update. The update is mainly to rediff against the latest 2.4 and
2.6 kernels. Note that this does not include experimental patches.
Notably absent are
* lba48 (large transfer) requests
* splitting up Promise driver into sata_promise (tx2/tx4) and sata_sx4
(sx4) drivers.
* adding better flush-cache / writeback caching support
The above are all experimental patches I have locally.
Finally, per user requests, I have started posting the associated
changelog as well.
BK repositories:
http://gkernel.bkbits.net/libata-2.[46]
2.6.x patch and changelog:
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc3-libata1.patch.bz2
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc3-libata1.log
2.4.x patch and changelog:
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.26-rc1-libata2.patch.bz2
ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.26-rc1-libata2.log
Drivers for SATA-2 controllers have been in development, and should be
making their appearance soon.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [sata] libata update
@ 2004-03-27 22:07 Henrik Gustafsson
2004-03-27 22:20 ` Jeff Garzik
0 siblings, 1 reply; 27+ messages in thread
From: Henrik Gustafsson @ 2004-03-27 22:07 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
(sorry for screwing with the thread, I was not subscribed when I read the
original post)
The patch seems to work just fine. It's been running for six hours now
with varying amounts of load and no catastrophes has occurred so far.
Only things are these lines saying 'abnormal status' (which has been there
all along). I assume the codes mean 'device not present' (which would be
correct, at least in my case) or something similar, but I don't know for
sure so I leave it to someone better informed to patch :)
(also, there is the 'Unknown device'-thing in my lspci, but that's neither
related to libata nor is it a 'real' problem)
Using a Promise FastTrack S150 SX4
Relevant piece of my dmesg, lspci follows (just let me know if you need
the rest)
// Henrik Gustafsson
libata version 1.02 loaded.
sata_promise version 0.92
ata1: SATA max UDMA/133 cmd 0xE29D7200 ctl 0xE29D7238 bmdma 0x0 irq 10
ata2: SATA max UDMA/133 cmd 0xE29D7280 ctl 0xE29D72B8 bmdma 0x0 irq 10
ata3: SATA max UDMA/133 cmd 0xE29D7300 ctl 0xE29D7338 bmdma 0x0 irq 10
ata4: SATA max UDMA/133 cmd 0xE29D7380 ctl 0xE29D73B8 bmdma 0x0 irq 10
ata1: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003
88:207f
ata1: dev 0 ATA, max UDMA/133, 490234752 sectors (lba48)
ata1: dev 0 configured for UDMA/133
scsi0 : sata_promise
ATA: abnormal status 0x7F on port 0xE29D729C
ata2: thread exiting
scsi1 : sata_promise
ATA: abnormal status 0x7F on port 0xE29D731C
ata3: thread exiting
scsi2 : sata_promise
ATA: abnormal status 0x7F on port 0xE29D739C
ata4: thread exiting
scsi3 : sata_promise
Vendor: ATA Model: Maxtor 7Y250M0 Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 490234752 512-byte hdwr sectors (251000 MB)
SCSI device sda: drive cache: write through
sda: sda1
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
00:0b.0 RAID bus controller: Promise Technology, Inc.: Unknown device 6622
(rev 01)
Subsystem: Promise Technology, Inc.: Unknown device 6622
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 96 (1500ns min, 4500ns max), cache line size 08
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at c400 [size=256]
Region 1: I/O ports at c800 [size=256]
Region 2: I/O ports at cc00 [size=256]
Region 3: Memory at da000000 (32-bit, non-prefetchable) [size=1M]
Region 4: Memory at da140000 (32-bit, non-prefetchable) [size=32K]
Expansion ROM at <unassigned> [disabled] [size=64K]
Capabilities: [60] Power Management version 1
Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [sata] libata update
2004-03-27 22:07 Henrik Gustafsson
@ 2004-03-27 22:20 ` Jeff Garzik
0 siblings, 0 replies; 27+ messages in thread
From: Jeff Garzik @ 2004-03-27 22:20 UTC (permalink / raw)
To: Henrik Gustafsson; +Cc: linux-kernel
Henrik Gustafsson wrote:
> (sorry for screwing with the thread, I was not subscribed when I read
> the original post)
>
> The patch seems to work just fine. It's been running for six hours now
> with varying amounts of load and no catastrophes has occurred so far.
>
> Only things are these lines saying 'abnormal status' (which has been
> there all along). I assume the codes mean 'device not present' (which
> would be correct, at least in my case) or something similar, but I don't
> know for sure so I leave it to someone better informed to patch :)
>
> (also, there is the 'Unknown device'-thing in my lspci, but that's
> neither related to libata nor is it a 'real' problem)
>
> Using a Promise FastTrack S150 SX4
> Relevant piece of my dmesg, lspci follows (just let me know if you need
> the rest)
Thanks for testing.
Yes, the SX4, unlike the TX2/TX4, does not directly give me access to
the SATA ports, so I cannot test directly for device presence. Instead
I let the normal error handling routines notice the behavior. I need to
fix that up, but for now that's an annoying but harmless message.
Jeff
^ permalink raw reply [flat|nested] 27+ messages in thread
* [sata] libata update
@ 2004-03-23 18:04 Jeff Garzik
0 siblings, 0 replies; 27+ messages in thread
From: Jeff Garzik @ 2004-03-23 18:04 UTC (permalink / raw)
To: linux-ide; +Cc: Linux Kernel, Andrew Morton, miquels
This adds a driver for SiS SATA, and updates Intel ICH5 (ata_piix)
probing. Particularly users with combined mode probing problems and
modprobe+rmmod+modprobe problems. Please test.
BK repositories (note that these URLs are BK not HTTP):
http://gkernel.bkbits.net/libata-2.4
http://gkernel.bkbits.net/libata-2.6
Patches:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.25-libata11.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc2-bk3-libata1.patch.bz2
This will go upstream once 2.6.5 is released.
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2004-04-25 4:23 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-27 2:27 [sata] libata update Jeff Garzik
2004-03-30 22:59 ` Petr Sebor
2004-03-30 23:14 ` Jeff Garzik
2004-03-31 1:43 ` Jarno Paananen
2004-03-31 1:50 ` Jeff Garzik
2004-03-31 1:53 ` Jarno Paananen
2004-03-30 23:16 ` Jeff Garzik
2004-03-30 23:26 ` Petr Sebor
2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
2004-03-30 23:47 ` Jeff Garzik
2004-03-31 0:28 ` Bartlomiej Zolnierkiewicz
2004-03-31 2:33 ` Jeff Garzik
2004-03-31 8:24 ` [PATCH] " Jeff Garzik
2004-03-31 11:50 ` Petr Sebor
2004-03-31 16:41 ` Jarno Paananen
2004-03-31 16:48 ` Jeff Garzik
2004-03-31 17:21 ` Jarno Paananen
2004-03-31 21:04 ` Jeff Garzik
2004-04-01 7:35 ` Petr Sebor
-- strict thread matches above, loose matches on Subject: below --
2004-04-25 2:48 Jeff Garzik
2004-04-25 4:24 ` J. Ryan Earl
2004-03-31 21:02 Jeff Garzik
2004-04-03 0:45 ` Erik Andersen
2004-03-30 21:31 Jeff Garzik
2004-03-27 22:07 Henrik Gustafsson
2004-03-27 22:20 ` Jeff Garzik
2004-03-23 18:04 Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox