Hello Tejun,
Tejun Heo wrote:
| I'll backport new sil24 to sil24-original tree so that we can
| eliminate all other factors and compare two drivers again to find the
| offending difference. I'm currently in the middle of something so it
| may take me a day or so.
Ok.
By the way, I tried a 32-bit kernel (libata-dev.git current, ALL branch).
Here is what it gives (dmesg hand-recopied [2]):
ata1: SATA max UDMA/100 cmd 0xF8820000 ctl 0x0 bmdma 0x0 irq 169
ata2: SATA max UDMA/100 cmd 0xF8822000 ctl 0x0 bmdma 0x0 irq 169
ata3: SATA max UDMA/100 cmd 0xF8824000 ctl 0x0 bmdma 0x0 irq 169
ata4: SATA max UDMA/100 cmd 0xF8826000 ctl 0x0 bmdma 0x0 irq 169
ata1: no device found (phy stat 00000000)
scsi0 : sata_sil24
ata2: no device found (phy stat 00000000)
scsi1 : sata_sil24
ata3: dev 0 not supported, ignoring
scsi2 : sata_sil24
ata4: dev 0 not supported, ignoring
scsi3 : sata_sil24
The disks are still not recognized. But the line [1] that usually displays
the most important words of the IDENTIFY DEVICE reply is not present. This
is interesting because it is probably a clue that an early error is occuring
somewhere before the IDENTIFY DEVICE reply is received. I immediately did
another test with ATA_DEBUG enabled (dmesg still hand-recopied [2]):
ata_device_add: ata1: probe begin
ata1: no device found (phy stat 00000000)
ata_device_add: ata1: probe end
scsi0 : sata_sil24
ata_device_add: ata2: probe begin
ata2: no device found (phy stat 00000000)
ata_device_add: ata2: probe end
scsi1 : sata_sil24
ata_device_add: ata3: probe begin
ata_dev_identify: ENTER, host 3, dev 0
ata_dev_identify: do ATA identify
ata_sg_setup_one: mapped buffer of 512 bytes for read
ata_sg_clean: unmapping 1 sg elements
ata3: dev 0 not supported, ignoring
ata_dev_identify: EXIT, err
ata_dev_identify: ENTER/EXIT (host 3, dev 1) -- nodev
ata_device_add: ata3: probe end
scsi2 : sata_sil24
[...
skipped the part for ata4 (similar to ata3)
...]
ata_device_add: probe begin
ata_scsi_dump_cdb: CDB (1:0,0,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,1,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,2,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,3,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,4,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,5,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,6,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,7,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,8,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,9,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,10,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,11,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,12,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,13,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,14,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:0,15,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,0,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,1,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,2,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,3,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,4,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,5,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,6,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,7,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,8,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,9,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,10,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,11,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,12,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,13,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,14,0) 12 00 00 00 24 00 00 00 00
ata_scsi_dump_cdb: CDB (1:1,15,0) 12 00 00 00 24 00 00 00 00
[...
then the above block composed of 32 "CDB" lines was basically
replicated 3 more times like:
ata_scsi_dump_cdb: CDB (2:x,y,z) 12 00 00 00 24 00 00 00 00
...
ata_scsi_dump_cdb: CDB (3:x,y,z) 12 00 00 00 24 00 00 00 00
...
ata_scsi_dump_cdb: CDB (4:x,y,z) 12 00 00 00 24 00 00 00 00
...
I paid attention to the "12 00 00 00 24 00 00 00 00" bytes,
they never change
...]
I lack the knowledge to fully interpret this dmesg correctly, but at least
I know I need to direct my investigations toward ata_dev_identify(). That
is what is on my TODO list for tomorrow...
[1] ataX: dev Y cfg 49:0000 82:0000 83:0000 84:0000 85:0000 86:0000 [...]
[2] Yes I know, next time I will use a serial console
--
Marc Bevand http://epita.fr/~bevand_m
Computer Science School EPITA - System, Network and Security Dept.
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html