Sometimes ata_piix fails to detect second SATA disk
I'm trying to debug a strange problem on an IBM xSeries 206m where I installed a Debian Testing with a self-compiled Linux kernel 2.6.15.
I have two SATA disks (Hitachi Deskstart HDS728080PLA380) 80 Gb, atatched to the ICH7 controller:
0000:00:1f.1 IDE interface: Intel Corporation 82801G
(ICH7 Family) IDE Controller (rev 01)
0000:00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH
(ICH7 Family) Serial ATA Storage Controllers cc=IDE (rev 01)
Sometimes the kernel at boot time does not detect the second hard disk, as in this case:
libata version 1.20 loaded.ata_piix 0000:00:1f.2: version 1.05
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 225
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x30C8 ctl 0x30BE bmdma 0x3090 irq 225
ata2: SATA max UDMA/133 cmd 0x30C0 ctl 0x30BA bmdma 0x3098 irq 225
ata1: dev 0 cfg 49:2f00 82:346b 83:7fe9 84:4773 85:3469
86:3c01 87:4763 88:207f
ata1: dev 0 ATA-7, max UDMA/133, 156312576 sectors: LBA48
ata1: dev 0 configured for UDMA/133
scsi0 : ata_piix
ata2: SATA port has no device.
scsi1 : ata_piix
Vendor: ATA Model: HDS728080PLA380 Rev: PF2O
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sda: drive cache: write back
SCSI device sda: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 < sda5 sda6 sda7 >
sd 0:0:0:0: Attached scsi disk sda
Strange enough, the bug seems to appear only if ata_piix is compiled staically into the kernel. If I use a kernel with ata_piix compiled as a module, both disks are always detected (see below the log).
I tried to modify - into the ata_piix.c - the function piix_sata_phy_reset(): I repeated the piix_sata_probe() call up to 100 times if it fails, with an udelay(10) between. No luck: the "SATA port has no device" message sometimes appears.
Any idea on how solve or debug this problem?
Thanks.
This is a log where both disks are detected:
ata_piix 0000:00:1f.2: version 1.05
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 50
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x30C8 ctl 0x30BE bmdma 0x3090 irq 50
ata2: SATA max UDMA/133 cmd 0x30C0 ctl 0x30BA bmdma 0x3098 irq 50
hda: ATAPI 48X CD-ROM drive, 128kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20
ata1: dev 0 cfg 49:2f00 82:346b 83:7fe9 84:4773 85:3469
86:3c01 87:4763 88:207f
ata1: dev 0 ATA-7, max UDMA/133, 156312576 sectors: LBA48
ata1: dev 0 configured for UDMA/133
scsi0 : ata_piix
ata2: dev 0 cfg 49:2f00 82:346b 83:7fe9 84:4773 85:3469
86:3c01 87:4763 88:207f ata2: dev 0 ATA-7, max UDMA/133, 156312576 sectors: LBA48 ata2: dev 0 configured for UDMA/133 scsi1 : ata_piix Vendor: ATA Model: HDS728080PLA380 Rev: PF2O Type: Direct-Access ANSI SCSI revision: 05 Vendor: ATA Model: HDS728080PLA380 Rev: PF2O Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sda: drive cache: write back
SCSI device sda: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 < sda5 sda6 sda7 >
sd 0:0:0:0: Attached scsi disk sda
SCSI device sdb: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sdb: drive cache: write back
SCSI device sdb: 156312576 512-byte hdwr sectors (80032 MB) SCSI device sdb: drive cache: write back
sdb: sdb1 sdb2 < sdb5 sdb6 sdb7 >
sd 1:0:0:0: Attached scsi disk sdb
Signature · 4 lines
Niccolo Rigacci Firenze - Italy Iraq, missione di pace: 38475 morti - www.iraqbodycount.net
Quoted 1 line · Niccolo Rigacci
I'm trying to debug a strange problem on an IBM xSeries 206m where I installed a Debian Testing with a self-compiled Linux kernel 2.6.15.
Can you try just released 2.6.17? ata_piix probing received some updates during 2.6.16 devel cycle and some fixes during .17.
Signature · 1 line
tejun
Quoted 7 lines · Tejun Heo
Quoted 3 lines · Niccolo Rigacci
I'm trying to debug a strange problem on an IBM xSeries 206m where I installed a Debian Testing with a self-compiled Linux kernel 2.6.15.
Can you try just released 2.6.17?
ata_piixprobing received some updates during 2.6.16 devel cycle and some fixes during .17.
I started to test 2.6.17 vanilla last night, it seems to resolve the problem.
I will post a new message in a day or two to confirm that the problem is fixed.
Thanks for the great work to the kernel guys. Sorry for bothering you before testing the latest version, I can't believe how much work is done in just two minor releases!
I hope my mail will remains for people googling on this problem.
Signature · 4 lines
Niccolo Rigacci Firenze - Italy Iraq, missione di pace: 38475 morti - www.iraqbodycount.net