Re: SATA update in 2.4, ICH8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Vincent,

On Thu, Jun 21, 2007 at 09:41:58AM +0200, Vincent Bernat wrote:
> Hi !
> 
> I have patched 2.4.34 with the  following patch to allow the use of SATA
> drive on an ICH8 motherboard :
> 

> --- linux/drivers/scsi/ata_piix.c~	2006-12-22 17:06:45.000000000 -0500
> +++ linux/drivers/scsi/ata_piix.c	2007-06-14 05:27:02.000000000 -0400
> @@ -115,6 +115,8 @@
>  	{ 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm },
>  	{ 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
>  	{ 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
> +	{ 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
> +	{ 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
>  	{ 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, esb2_sata },
>  
>  	{ }	/* terminate list */

> 
> This works fine for the disk but  this does not work for the CDROM. Here
> is lspci:
> 
> 00:00.0 Host bridge: Intel Corporation Q963/Q965 Memory Controller Hub (rev 02)
> 00:01.0 PCI bridge: Intel Corporation Q963/Q965 PCI Express Root Port (rev 02)
> 00:02.0 VGA compatible controller: Intel Corporation Q963/Q965 Integrated Graphics Controller (rev 02)
> 00:02.1 Display controller: Intel Corporation Q963/Q965 Integrated Graphics Controller (rev 02)
> 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 (rev 02)
> 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #5 (rev 02)
> 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #2 (rev 02)
> 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
> 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
> 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 02)
> 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #1 (rev 02)
> 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #2 (rev 02)
> 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #3 (rev 02)
> 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #1 (rev 02)
> 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
> 00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)
> 00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller (rev 02)
> 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
> 00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port SATA IDE Controller (rev 02)
> 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5754 Gigabit Ethernet PCI Express (rev 02)
> 
> An excerpt of dmesg :
> 
> Jun 21 05:11:10 debian kernel: libata version 1.20 loaded.
> Jun 21 05:11:10 debian kernel: PCI(00:1f.2): version 1.05
> Jun 21 05:11:10 debian kernel: PCI: Setting latency timer of device 00:1f.2 to 64
> Jun 21 05:11:10 debian kernel: PCI: Setting latency timer of device 00:1f.5 to 64
> Jun 21 05:11:10 debian kernel: ata1: SATA max UDMA/133 cmd 0xFE00 ctl 0xFE12 bmdma 0xFEC0 irq 20
> Jun 21 05:11:10 debian kernel: ata2: SATA max UDMA/133 cmd 0xFE20 ctl 0xFE32 bmdma 0xFEC8 irq 20
> Jun 21 05:11:10 debian kernel: ata1: dev 0 cfg 49:2f00 82:346b 83:7701 84:4023 85:3469 86:3601 87:4023 88:207f
> Jun 21 05:11:10 debian kernel: ata1: dev 0 ATA-7, max UDMA/133, 156250000 sectors: LBA48
> Jun 21 05:11:10 debian kernel: ata1: dev 0 configured for UDMA/133
> Jun 21 05:11:10 debian kernel: ata2: dev 0 cfg 49:0f00 82:4210 83:5000 84:4000 85:0210 86:1000 87:4000 88:203f
> Jun 21 05:11:10 debian kernel: ata2: dev 0 ATAPI, max UDMA/100
> Jun 21 05:11:10 debian kernel: ata2: PIO error
> Jun 21 05:11:10 debian kernel: ata2: dev 1 cfg 49:0000 82:0000 83:0000 84:0000 85:0000 86:0000 87:0000 88:0000
> Jun 21 05:11:10 debian kernel: ata2: no dma
> Jun 21 05:11:10 debian kernel: ata2: dev 1 not supported, ignoring
> Jun 21 05:11:10 debian kernel: ata2: dev 0 configured for UDMA/100
> Jun 21 05:11:10 debian kernel: ata3: SATA max UDMA/133 cmd 0xFE40 ctl 0xFE52 bmdma 0xFED0 irq 20
> Jun 21 05:11:10 debian kernel: ata4: SATA max UDMA/133 cmd 0xFE60 ctl 0xFE72 bmdma 0xFED8 irq 20
> Jun 21 05:11:10 debian kernel: ata3: SATA port has no device.
> Jun 21 05:11:10 debian kernel: ata4: SATA port has no device.
> Jun 21 05:11:10 debian kernel: scsi0 : ata_piix
> Jun 21 05:11:10 debian kernel: scsi1 : ata_piix
> Jun 21 05:11:10 debian kernel: scsi2 : ata_piix
> Jun 21 05:11:10 debian kernel: scsi3 : ata_piix
> Jun 21 05:11:10 debian kernel:   Vendor: ATA       Model: ST3808110AS       Rev: 3.AD
> Jun 21 05:11:10 debian kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05
> Jun 21 05:11:10 debian kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
> Jun 21 05:11:10 debian kernel: SCSI device sda: 156250000 512-byte hdwr sectors (80000 MB)
> Jun 21 05:11:10 debian kernel: Partition check:
> Jun 21 05:11:10 debian kernel:  sda: sda1 sda2 < sda5 >
> 
> I suppose the problem is "dev  1 not supported". From source, I see that
> it is because, no DMA support was available.
> With a 2.6.18, I get :
> 
> Jun 11 07:44:27 debian kernel: ata1.00: ATA-7, max UDMA/133, 156250000 sectors: LBA48 NCQ (depth 0/32)
> Jun 11 07:44:27 debian kernel: ata1.00: ata1: dev 0 multi count 8
> Jun 11 07:44:27 debian kernel: ata1.00: configured for UDMA/133
> Jun 11 07:44:27 debian kernel:   Vendor: ATA       Model: ST3808110AS       Rev: 3.AD
> Jun 11 07:44:27 debian kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05
> Jun 11 07:44:27 debian kernel: ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xFEC8 irq 15
> Jun 11 07:44:27 debian kernel: scsi1 : ata_piix
> Jun 11 07:44:27 debian kernel: ata2.00: ATAPI, max UDMA/100
> Jun 11 07:44:27 debian kernel: ata2.00: configured for UDMA/100
> Jun 11 07:44:27 debian kernel:   Vendor: SONY      Model: CDRWDVD CRX310S   Rev: VDK2
> Jun 11 07:44:27 debian kernel:   Type:   CD-ROM                             ANSI SCSI revision: 05
> Jun 11 07:44:27 debian kernel: ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]
> 
> Of course, I have compiled CDROM support :
> CONFIG_BLK_DEV_SR=y
> # CONFIG_BLK_DEV_SR_VENDOR is not set
> 
> If I try AHCI driver instead (and add PCI ID into ahci.c), I get an oops
> (libata-compat.h, line 141).
> 
> Now,  back  with   ata_piix,  it  seems  that  because   of  PIO  error,
> all capabilities  are set to  0. In 2.6,  PIO error seems to  be handled
> differently.
> 
> Any hint on how to fix this ?

I do not have any idea right now. I recall having had some difficulties some
time ago with ata_piix when piix itself was not disabled, but those were in
the early libata times. I *believe* it's OK now but you might want to check.

Also, is your CDROM driver parallel ATA or SATA ? It is not clear to me from
your logs. Because if it is ATA, you should need to run with piix enabled just
for it, and, if my memory serves me correctly, to start piix before ata_piix.

I have CCed Jeff who's the libata author, just in case he has an opinion or
even a good advice on the subject. But please don't harrass him since he told
us a long time ago that he did not want to spend much time on 2.4's libata.

BTW, what motherboard is it ? And provided that the CDROM drive finally works,
or that we find a valid reason for it not to work, are you implicitly asking
for mainline inclusion of your patch (or a fixed one) or is it here just for
explanation purposes ?


> Thanks.
> -- 
> Vincent Bernat
> 118 rue de Tocqueville, 75017 Paris
> Tel: +33 1 53 42 12 86
> http://www.wallix.com

Regards,
Willy


-
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux