Hello, ivorhuang_hjd wrote: > hello Tejun, > I am sorry for that and thank you for your reply.I should give you more > information. > 1.the sata IC is INI-SATA-1622B > 2.the sata card can work at x86 (kernel linux 2.6.29.1 ) > 4. the sata card can work at powerpc freescale mpc8313erdb(kernel linux > 2.6.23),I know it does not support LBA48.so I think this is not for the > u-boot. > 5.another sata card sis3512 can work at powerpc freescale mpc8313erdb > (kernel linux 2.6.29.1) > 6. the problem come out at powerpc freescale mpc8313erdb (kernel linux > 2.6.29.1) Hmm... > [ 825.618798] ata1: SATA max UDMA/133 mmio m4096@0x90000000 > <mailto:m4096@0x90000000> PORT 0x90000000 irq 17 > [ 825.626224] ata2: SATA max UDMA/133 mmio m4096@0x90000000 > <mailto:m4096@0x90000000> PORT 0x90000040 irq 17 > [ 825.982369] ata1: SATA link down (SStatus 0 SControl 300) > [ 826.494373] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 826.500610] err happen > [ 826.503026] ata2.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, > err_mask=0x80) > [ 831.990383] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 831.996613] err happen > [ 831.999040] ata2.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, > err_mask=0x80) > [ 832.006372] ata2: limiting SATA link speed to 1.5 Gbps > [ 837.486394] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 837.492624] err happen > [ 837.495051] ata2.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, > err_mask=0x80) ... > ************************************************* > the "err happen" is what I printk at function > inic_qc_fill_rtf(sata_inc162x.c 578 line). > can you help me to fix this problem. What is the attached device? Does it work if you skip INIT_DEV_PARAMS? You can skip it by editing libata-core.c::ata_dev_read_id() such that the if condition enclosing... erggh... by applying the following patch. diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 17c5d48..2d51b32 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -2210,7 +2210,7 @@ retry: goto retry; } - if ((flags & ATA_READID_POSTRESET) && class == ATA_DEV_ATA) { + if (0 && (flags & ATA_READID_POSTRESET) && class == ATA_DEV_ATA) { /* * The exact sequence expected by certain pre-ATA4 drives is: * SRST RESET -- tejun -- 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