Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Odd hardware - PCI Device not showing up in lspci or scanpci
View unanswered posts
View posts from last 24 hours

Goto page 1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Sat Jun 12, 2010 4:19 am    Post subject: Odd hardware - PCI Device not showing up in lspci or scanpci Reply with quote

For starters, I am running an Intel ss4200 nas. It's basically a headless completer with intel guts. I have a PATA 4gb DOM for booting and 2 SATA drives (room for 4) plugged in. In the BIOS for the disk controller config, there are 2 options, enchanced or Compatible. If I choose compatible, I can only see 4 disks, with my DOM being the first (sda w/ DMA): DOM + 3 SATA. If I choose enchanced, I can see only the SATA disks, and if I load the legacy ide drivers, the dom comes up as hda no DMA. The third option is to boot this device into recovery mode with a button combo. In recovery mode, I see all 4 SATA and the DOM w/ DMA last - sdc

Here's the difference:

When I boot into recovery mode, I see the following:

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation 82801GR/GH (ICH7 Family) SATA AHCI Controller (rev 01)

/sys/bus/scsi/devices - 4:0:0:0 is the PATA DOM /dev/sdc w/ DMA
0:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
3:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host3/target3:0:0/3:0:0:0
4:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.1/host4/target4:0:0/4:0:0:0

When I boot into compatible mode, I see the following:
Grub can only see my DOM and 1 sata (tested with the geometry command)

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)

/sys/bus/scsi/devices - 0:0:0:0 is the PATA DOM /dev/sdc w/ DMA also missing a SATA drive.
0:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
1:0:1:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:1/1:0:1:0

When I boot into enhanced mode, I see the following:
My DOM doesn't exist without the legacy IDE drivers.
Grub can see my DOM and all sata disks (tested with the geometry command)

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 01)

1:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0
5:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host5/target5:0:0/5:0:0:0

In Enhanced mode, I can get to GRUB and start booting, but then I get the VFS error, as if it cannot see my DOM.

I'm still working on pulling all of the stats from the enhanced mode, I need to reload my USB with a recovery that includes legacy IDE modules, I'll get it posted tomorrow.

Ultimately, the goal is to boot from the DOM with DMA and see all 4 SATA disks. I have tried booting with pci=nobios, but it does not make a difference. Does anyone have any other ideas? Is it possible to provide the kernel with the device options at boot time? I'm not sure what else to try.

Thanks
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sat Jun 12, 2010 5:56 am    Post subject: Reply with quote

I'd say this is either a BIOS bug or a "feature". The BIOS can hide certain
functions of a chipset from a PCI scan (in your case the 1f.1 IDE ctrl),
and it looks like that only in recovery mode all disk interface controllers
are actually made discoverable.
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Sat Jun 12, 2010 11:18 am    Post subject: Reply with quote

Agrreed, so is there a way to tell the kernel about the device? Grub has no problem seeing it.
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sat Jun 12, 2010 4:06 pm    Post subject: Reply with quote

Grub "sees" it because it uses BIOS calls to access it.

Unless the controller shows up as a PCI device, linux won't access it.
The controller can probably be revealed the same way the hidden SMBus device on
ASUS motherboards is.
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sat Jun 12, 2010 4:51 pm    Post subject: Reply with quote

could you please post outputs of "lspci" and "lspci -n" ?

I've made a kernelpatch against 2.6.34-rc3 which should theoretically
enable the hidden ide controller, but I need to know some PCI ids
of your system.
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sat Jun 12, 2010 5:11 pm    Post subject: Reply with quote

try this very hacky patch (on latest -git) In theory it should work, usual disclaimers apply.

Code:

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 477345d..b70b891 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2842,3 +2842,53 @@ int pci_dev_specific_reset(struct pci_dev *dev, int probe)
 
    return -ENOTTY;
 }
+
+
+/* XXX: hack to enable the PATA device on ICH7 */
+static void __iomem *xybrd_rcba_base;
+static void xybrd_hides_ide_lpc_ich7_suspend(struct pci_dev *dev)
+{
+   u32 rcba;
+
+   if (xybrd_rcba_base) {
+      printk(KERN_ALERT "WARNING: more than one ICH7 PATA!\n");
+      return;
+   }
+
+   pci_read_config_dword(dev, 0xF0, &rcba);
+   /* use bits 31:14, 16 kB aligned */
+   xybrd_rcba_base = ioremap_nocache(rcba & 0xFFFFC000, 0x4000);
+   if (xybrd_rcba_base == NULL)
+      return;
+}
+
+static void xybrd_hides_ide_lpc_ich7_resume_early(struct pci_dev *dev)
+{
+   u32 val;
+
+   if (!xybrd_rcba_base)
+      return;
+   /* read the Function Disable register, dword mode only */
+   val = readl(xybrd_rcba_base + 0x3418);
+   writel(val & 0xFFFFFFFD, xybrd_rcba_base + 0x3418); /* enable the PATA device */
+}
+
+static void xybrd_hides_ide_lpc_ich7_resume(struct pci_dev *dev)
+{
+   if (!xybrd_rcba_base)
+      return;
+   iounmap(xybrd_rcba_base);
+   xybrd_rcba_base = NULL;
+   dev_info(&dev->dev, "Enabled ICH7 IDE device\n");
+}
+
+static void xybrd_hides_ide_lpc_ich7(struct pci_dev *dev)
+{
+   xybrd_hides_ide_lpc_ich7_suspend(dev);
+   xybrd_hides_ide_lpc_ich7_resume_early(dev);
+   xybrd_hides_ide_lpc_ich7_resume(dev);
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_1,   xybrd_hides_ide_lpc_ich7);
+DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_1,   xybrd_hides_ide_lpc_ich7_suspend);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_1,   xybrd_hides_ide_lpc_ich7_resume);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_1,   xybrd_hides_ide_lpc_ich7_resume_early);
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Sun Jun 13, 2010 12:47 am    Post subject: Reply with quote

Recovery Mode: lspci -n

00:00.0 0600: 8086:2770 (rev 02)
00:02.0 0300: 8086:2772 (rev 02)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.2 0604: 8086:27d4 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:244e (rev e1)
00:1f.0 0601: 8086:27b8 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.2 0106: 8086:27c1 (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
01:00.0 0200: 8086:108b (rev 03)
02:00.0 0180: 1095:3132 (rev 01)

lspci:

00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 Ethernet controller: Intel Corporation 82573V Gigabit Ethernet Controller (Copper) (rev 03)
02:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sun Jun 13, 2010 5:48 am    Post subject: Reply with quote

msalerno wrote:
Recovery Mode: lspci -n

00:1f.0 0601: 8086:27b8 (rev 01)


Ah, then in the patches' last 4 lines, change PCI_DEVICE_ID_INTEL_ICH7_1 to PCI_DEVICE_ID_INTEL_ICH7_0
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Sun Jun 13, 2010 5:21 pm    Post subject: Reply with quote

I apologize for having to ask this question, but I am not familiar with the kernel GIT repos. My assumption is that you are using the repo i pasted below, but i'm not 100% sure. Can you confirm?

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


Thanks
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sun Jun 13, 2010 5:27 pm    Post subject: Reply with quote

yes its the correct one. The patch should also apply to 2.6.34 and previous
with little or no fuzz.
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Sun Jun 13, 2010 6:16 pm    Post subject: Reply with quote

Out of curiosity, have you ever tried booting (Free)DOS from your DOM?
I'd like to know whether DOS works from the DOM when you don't use
recovery mode in your BIOS.
Thanks!
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Sun Jun 13, 2010 6:56 pm    Post subject: Reply with quote

Ill check it out. Freenas (freebsd) has no issues booting from dom.
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Mon Jun 14, 2010 4:57 pm    Post subject: Reply with quote

It patched perfectly against 2.6.34-stable. I'm compiling now. When I get home I will be able to change the settings to enhanced and see if it worked.
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Mon Jun 14, 2010 7:05 pm    Post subject: Reply with quote

Looks promising!!!!

Now I see this in compatible mode. 0:0:0:0 being the DOM.

0:0:0:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
1:0:1:0 -> ../../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:1/1:0:1:0


Code:
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)


Now I just need to boot into enhanced and see.
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
msalerno
Veteran
Veteran


Joined: 17 Dec 2002
Posts: 1336
Location: Sweating in South Florida

PostPosted: Mon Jun 14, 2010 11:33 pm    Post subject: Reply with quote

It works!!!! The dom comes up as sdc, but i'll play with the BIOS to see if I can change that. So now the question is... How do we get this upstream? I know lots of people who will be very happy once I link this thread.

Can't quite figure out how to get sdc to be sda no matter what bios settings I change. Grub sees it has hd2 in enhanced mode. I went with ext labels in my fstab for now. A topic for another thread.
_________________
When harmonious relationships dissolve
Then respect and devotion arise;
When a nation falls to chaos
Then loyalty and patriotism are born.
-Lao Tse
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Tue Jun 15, 2010 5:41 am    Post subject: Reply with quote

msalerno wrote:
It works!!!! ... So now the question is... How do we get this upstream?


I can tell you right now that these kind of patches will never be accepted upstream.
As it is the patch is far too generic, unconditionally enabling the pata device
on (almost) every ICH7.
The correct way to solve this is to bug the BIOS people to fix this. Usually there's
a reason why certain features are disabled, though.

Quote:

Can't quite figure out how to get sdc to be sda no matter what bios settings I change. Grub sees it has hd2 in enhanced mode. I went with ext labels in my fstab for now. A topic for another thread.


Which disks get assigned to sda/sdb? It may simply be a driver probe order issue
(make the other disk controller drivers modules), or the DOM is wired to the
secondary IDE channel, in which case the sdc won't go away unless you disconnect
the disks on the primary channel.
Back to top
View user's profile Send private message
RottenMutt
n00b
n00b


Joined: 30 Sep 2010
Posts: 15
Location: fort worth

PostPosted: Thu Sep 30, 2010 11:41 pm    Post subject: Reply with quote

hi, i'm in the same boat as the poster, but running fedora 13, kernel 2.6.34.7-56 x86_64, can i use this same patch???

cross post in fedora forums, and then i found this thread here:
http://forums.fedoraforum.org/showthread.php?p=1403261#post1403261


Last edited by RottenMutt on Fri Oct 01, 2010 2:28 pm; edited 1 time in total
Back to top
View user's profile Send private message
RottenMutt
n00b
n00b


Joined: 30 Sep 2010
Posts: 15
Location: fort worth

PostPosted: Fri Oct 01, 2010 6:08 am    Post subject: Reply with quote

roarinelk wrote:
yes its the correct one. The patch should also apply to 2.6.34 and previous
with little or no fuzz.


i got fuzz. rpmbuild gave me an error and stoped;

Code:
+ case "$patch" in
+ patch -p1 -F1 -s
+ ApplyPatch ss4200_ICH7.patch
+ local patch=ss4200_ICH7.patch
+ shift
+ '[' '!' -f /home/eric/rpmbuild/SOURCES/ss4200_ICH7.patch ']'
Patch13000: ss4200_ICH7.patch
+ case "$patch" in
+ patch -p1 -F1 -s
1 out of 1 hunk FAILED -- saving rejects to file drivers/pci/quirks.c.rej
error: Bad exit status from /var/tmp/rpm-tmp.a5qm5O (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.a5qm5O (%prep)

rpm-tmp... says:
# get rid of unwanted files resulting from patch fuzz

if i run the patch on the file i get "hunk #1 succedded at 2824 with fuzz 2 (offset -18 lines)."

so i took the new quirks.c module from the .new source and patched it and put it back then built a patch in fedora:

Code:
diff -uNrp kernel-2.6.34.fc13.orig/drivers/pci/quirks.c kernel-2.6.34.fc13.new/drivers/pci/quirks.c
--- kernel-2.6.34.fc13.orig/drivers/pci/quirks.c    2010-10-01 01:19:07.915256467 -0500
+++ kernel-2.6.34.fc13.new/drivers/pci/quirks.c    2010-10-01 06:21:02.560376000 -0500
@@ -2833,3 +2833,53 @@ int pci_dev_specific_reset(struct pci_de
 
     return -ENOTTY;
 }
+
+
+/* XXX: hack to enable the PATA device on ICH7 */
+static void __iomem *xybrd_rcba_base;
+static void xybrd_hides_ide_lpc_ich7_suspend(struct pci_dev *dev)
+{
+   u32 rcba;
+
+   if (xybrd_rcba_base) {
+      printk(KERN_ALERT "WARNING: more than one ICH7 PATA!\n");
+      return;
+   }
+
+   pci_read_config_dword(dev, 0xF0, &rcba);
+   /* use bits 31:14, 16 kB aligned */
+   xybrd_rcba_base = ioremap_nocache(rcba & 0xFFFFC000, 0x4000);
+   if (xybrd_rcba_base == NULL)
+      return;
+}
+
+static void xybrd_hides_ide_lpc_ich7_resume_early(struct pci_dev *dev)
+{
+   u32 val;
+
+   if (!xybrd_rcba_base)
+      return;
+   /* read the Function Disable register, dword mode only */
+   val = readl(xybrd_rcba_base + 0x3418);
+   writel(val & 0xFFFFFFFD, xybrd_rcba_base + 0x3418); /* enable the PATA device */
+}
+
+static void xybrd_hides_ide_lpc_ich7_resume(struct pci_dev *dev)
+{
+   if (!xybrd_rcba_base)
+      return;
+   iounmap(xybrd_rcba_base);
+   xybrd_rcba_base = NULL;
+   dev_info(&dev->dev, "Enabled ICH7 IDE device\n");
+}
+
+static void xybrd_hides_ide_lpc_ich7(struct pci_dev *dev)
+{
+   xybrd_hides_ide_lpc_ich7_suspend(dev);
+   xybrd_hides_ide_lpc_ich7_resume_early(dev);
+   xybrd_hides_ide_lpc_ich7_resume(dev);
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_0,   xybrd_hides_ide_lpc_ich7);
+DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_0,   xybrd_hides_ide_lpc_ich7_suspend);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_0,   xybrd_hides_ide_lpc_ich7_resume);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ICH7_0,   xybrd_hides_ide_lpc_ich7_resume_early);


building a kernel at 2.0 GB per second is slow, pio mode on my root drive! i've been following this how to http://fedoraproject.org/wiki/Docs/CustomKernel#Prepare_Build_Files


Last edited by RottenMutt on Fri Oct 01, 2010 2:11 pm; edited 2 times in total
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Fri Oct 01, 2010 10:34 am    Post subject: Reply with quote

RottenMutt wrote:
hi, i'm in the same boat as the poster, but running fedora 13, kernel 2.6.34.7-56 x86_64, can i use this same patch???

http://forums.fedoraforum.org/showthread.php?p=1403261#post1403261


You seem to have an identical chipset, so I see no reason why it shouldn't work.
I see you already patched your fedora kernel, do you see the message
"Enabled ICH7 IDE Device" in dmesg?
Back to top
View user's profile Send private message
RottenMutt
n00b
n00b


Joined: 30 Sep 2010
Posts: 15
Location: fort worth

PostPosted: Fri Oct 01, 2010 2:18 pm    Post subject: Reply with quote

I'm still compiling, it is slow when your stuck in PIO mode on your root drive. :cry:

thank you for the patch. can i ask how it works, what calls it and when? I would guess it switches the eide controller id or tells the kernel to use different driver code.

processing files: kernel-debug....
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Fri Oct 01, 2010 2:37 pm    Post subject: Reply with quote

RottenMutt wrote:
I'm still compiling, it is slow when your stuck in PIO mode on your root drive.

thank you for the patch. can i ask how it works, what calls it and when?


In essence it accesses one of the ICH7 configuration registers (xybrd_rcba_base + 0x3418)
to enable the IDE controller PCI function. The base address of the block which contains
this reg (xybrd_rcba_base) is read from the PCI config space of the LPC bridge function.
(The code is a clone of the ASUS SMBus unhide functionality also in the kernel).

Download the ICH7 specs from intel, they describe all the registers pretty well.
Back to top
View user's profile Send private message
RottenMutt
n00b
n00b


Joined: 30 Sep 2010
Posts: 15
Location: fort worth

PostPosted: Fri Oct 01, 2010 4:31 pm    Post subject: Reply with quote

the patch works, i get 33MB/s on my 2.5 system drive. after rebooting it appeared as /dev/sde

I may be stuck in UDMA 33 mode, still huge improvement. transfering a large iso from raid to my home file confirms 33 MB/s in gkrellm. anyone know how to kick the drive up?


Code:
[root@ss4200 eric]# lspci
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 Ethernet controller: Intel Corporation 82573V Gigabit Ethernet Controller (Copper) (rev 03)
02:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)

[root@ss4200 eric]# lspci -n
00:00.0 0600: 8086:2770 (rev 02)
00:02.0 0300: 8086:2772 (rev 02)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.2 0604: 8086:27d4 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:244e (rev e1)
00:1f.0 0601: 8086:27b8 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.2 0106: 8086:27c1 (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
01:00.0 0200: 8086:108b (rev 03)
02:00.0 0180: 1095:3132 (rev 01)


some stuff i found of interest in dmesg:
Code:
pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
pci 0000:00:1f.0: Enabled ICH7 IDE device
pci 0000:00:1f.0: quirk: [io  0x0800-0x087f] claimed by ICH6 ACPI/GPIO/TCO
pci 0000:00:1f.0: quirk: [io  0x0480-0x04bf] claimed by ICH6 GPIO
pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0a00 (mask 00ff)
pci 0000:00:1f.1: reg 10: [io  0x0000-0x0007]
pci 0000:00:1f.1: reg 14: [io  0x0000-0x0003]
pci 0000:00:1f.1: reg 18: [io  0x08f0-0x08f7]
pci 0000:00:1f.1: reg 1c: [io  0x08f8-0x08fb]
pci 0000:00:1f.1: reg 20: [io  0xffa0-0xffaf]
pci 0000:00:1f.2: reg 10: [io  0xe080-0xe087]
pci 0000:00:1f.2: reg 14: [io  0xe000-0xe003]
pci 0000:00:1f.2: reg 18: [io  0xdc00-0xdc07]
pci 0000:00:1f.2: reg 1c: [io  0xd880-0xd883]
pci 0000:00:1f.2: reg 20: [io  0xd800-0xd80f]
pci 0000:00:1f.2: reg 24: [mem 0xffa3fc00-0xffa3ffff]
pci 0000:00:1f.2: PME# supported from D3hot
pci 0000:00:1f.2: PME# disabled
pci 0000:00:1f.3: reg 20: [io  0x0400-0x041f]
....
ata_piix 0000:00:1f.1: version 2.13
ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
ata_piix 0000:00:1f.1: setting latency timer to 64
....
ata5.00: ATA-8: WDC WD1600BEVE-00A0HT0, 11.01A11, max UDMA/100
ata5.00: 312581808 sectors, multi 16: LBA48
ata5.00: limited to UDMA/33 due to 40-wire cable
ata5.00: configured for UDMA/33
ata1.00: ATA-8: Hitachi HDS722020ALA330, JKAOA28A, max UDMA/133
ata1.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
ata1.00: configured for UDMA/133
ata3.00: ATA-8: Hitachi HDS722020ALA330, JKAOA28A, max UDMA/133
ata3.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
ata2.00: ATA-8: Hitachi HDS722020ALA330, JKAOA28A, max UDMA/133
ata2.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
ata4.00: ATA-8: Hitachi HDS722020ALA330, JKAOA28A, max UDMA/133
ata4.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
ata3.00: configured for UDMA/133
ata2.00: configured for UDMA/133
ata4.00: configured for UDMA/133
...
sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] Attached SCSI disk
sd 1:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 2:0:0:0: Attached scsi generic sg2 type 0
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 3:0:0:0: [sdd] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 3:0:0:0: Attached scsi generic sg3 type 0
sd 3:0:0:0: [sdd] Write Protect is off
sd 3:0:0:0: [sdd] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 4:0:0:0: [sde] 312581808 512-byte logical blocks: (160 GB/149 GiB)
sd 4:0:0:0: Attached scsi generic sg4 type 0
sd 4:0:0:0: [sde] Write Protect is off
sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 4:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 3:0:0:0: [sdd] Attached SCSI disk
sd 2:0:0:0: [sdc] Attached SCSI disk
sd 1:0:0:0: [sdb] Attached SCSI disk
sd 4:0:0:0: [sde] Attached SCSI disk
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Fri Oct 01, 2010 5:11 pm    Post subject: Reply with quote

Quote:

ata5.00: limited to UDMA/33 due to 40-wire cable
ata5.00: configured for UDMA/33


Either you have a bad cable or cable detection is broken; probably the
latter.
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 445

PostPosted: Fri Oct 01, 2010 5:17 pm    Post subject: Reply with quote

Do a "lspci -vn -s 1f.1" as root and post the output, I may have a solution for your UDMA33 limit.

EDIT: open the kernel source file drivers/ata/ata_piix.c, search for "struct ich_laptop",
copy one of the lines with 27df in the first column, and replace the other numbers with
the numbers of the "Subdevice" output of the lspci line above. Then rebuild kernel and
it should give you ata100 speeds.
Back to top
View user's profile Send private message
RottenMutt
n00b
n00b


Joined: 30 Sep 2010
Posts: 15
Location: fort worth

PostPosted: Fri Oct 01, 2010 6:50 pm    Post subject: Reply with quote

roarinelk wrote:
Do a "lspci -vn -s 1f.1" as root and post the output, I may have a solution for your UDMA33 limit.

EDIT: open the kernel source file drivers/ata/ata_piix.c, search for "struct ich_laptop",
copy one of the lines with 27df in the first column, and replace the other numbers with
the numbers of the "Subdevice" output of the lspci line above. Then rebuild kernel and
it should give you ata100 speeds.


Code:
[eric@ss4200 ~]$ lspci -vn -s 1f.1
00:1f.1 0101: 8086:27df (rev 01) (prog-if 8a [Master SecP PriP])
   Subsystem: 8086:27df
   Flags: bus master, medium devsel, latency 0, IRQ 18
   I/O ports at 01f0 [size=8]
   I/O ports at 03f4 [size=1]
   I/O ports at 0170 [size=8]
   I/O ports at 0374 [size=1]
   I/O ports at ffa0 [size=16]
   Kernel driver in use: ata_piix
   Kernel modules: ata_generic, pata_acpi


to do it the fedora way, i would edit the kernel and generate a patch again, i believe.

here is the section in ata_piix.c refered to, if i pick "ICH7 on unknown Intel" which are the Subdevice?
Code:
/*
 *    List of laptops that use short cables rather than 80 wire
 */

static const struct ich_laptop ich_laptop[] = {
    /* devid, subvendor, subdev */
    { 0x27DF, 0x0005, 0x0280 },    /* ICH7 on Acer 5602WLMi */
    { 0x27DF, 0x1025, 0x0102 },    /* ICH7 on Acer 5602aWLMi */
    { 0x27DF, 0x1025, 0x0110 },    /* ICH7 on Acer 3682WLMi */
    { 0x27DF, 0x1028, 0x02b0 },    /* ICH7 on unknown Dell */
    { 0x27DF, 0x1043, 0x1267 },    /* ICH7 on Asus W5F */
    { 0x27DF, 0x103C, 0x30A1 },    /* ICH7 on HP Compaq nc2400 */
    { 0x27DF, 0x103C, 0x361a },    /* ICH7 on unknown HP  */
    { 0x27DF, 0x1071, 0xD221 },    /* ICH7 on Hercules EC-900 */
    { 0x27DF, 0x152D, 0x0778 },    /* ICH7 on unknown Intel */
    { 0x24CA, 0x1025, 0x0061 },    /* ICH4 on ACER Aspire 2023WLMi */
    { 0x24CA, 0x1025, 0x003d },    /* ICH4 on ACER TM290 */
    { 0x266F, 0x1025, 0x0066 },    /* ICH6 on ACER Aspire 1694WLMi */
    { 0x2653, 0x1043, 0x82D8 },    /* ICH6M on Asus Eee 701 */
    { 0x27df, 0x104d, 0x900e },    /* ICH7 on Sony TZ-90 */
    /* end marker */
    { 0, }


Last edited by RottenMutt on Fri Oct 01, 2010 7:15 pm; edited 3 times in total
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum