From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932260AbWJTPD5 (ORCPT ); Fri, 20 Oct 2006 11:03:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932261AbWJTPD5 (ORCPT ); Fri, 20 Oct 2006 11:03:57 -0400 Received: from math.ut.ee ([193.40.36.2]:44796 "EHLO math.ut.ee") by vger.kernel.org with ESMTP id S932260AbWJTPD4 (ORCPT ); Fri, 20 Oct 2006 11:03:56 -0400 Date: Fri, 20 Oct 2006 18:03:53 +0300 (EEST) From: Meelis Roos To: Linux Kernel list Subject: PCI cache line not set - how to set? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org I use sii3112 in Motorola Powerstack II computer with 300 Mhz PowerPC 604r CPU (should use 32-byte cache line size). However, its firmware is OF based and seems to literally ignore non-OF PCI cards like the sii3112. Linux still sees the cards and I can use them, but... sata_sil 0000:00:07.0: cache line size not set. Driver may not function and a new SATA disk that is 70+ MB/s in a PC yields only 10 MB/s here. So a wild guess that either PCI latency (set to 0) or PCI cache line size need to be set. setpci -s 00:07.0 CACHE_LINE_SIZE 00 so I do setpci -s 00:07.0 CACHE_LINE_SIZE=08 and I can read 08 back - fine. But reloading sata_sil still tells that cache line size not set. sata_sil uses sil_get_device_cache_line() to read the cache line size and that does a simple pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &cache_line); So should this setpci work? Setpci PCI_LATENCY works and gives measurable bad results. Setting latency timer to 32 (20 hex) drops the performance even more (to 3.5-3.7 MB/s) so I reset it to 0. NCR 53C825 SCSI with 36G 10Krpm disk also gives 10 MB/s, cache line size 08, latency timer 00. Where to look next? lspci -vvvxxx is here: 00:00.0 Host bridge: IBM 82660 CPU to PCI Bridge (rev 02) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR-