Re: PCI hotplug problems: how to debug?

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

 



On Fri, Nov 13, 2009 at 06:26:52PM -0600, Bjorn Helgaas wrote:
> On Friday 13 November 2009 03:36:52 pm Ira W. Snyder wrote:
> > On Fri, Nov 06, 2009 at 02:47:54PM -0600, Bjorn Helgaas wrote:
> > > On Friday 06 November 2009 12:57:17 pm Ira W. Snyder wrote:
> > > > On Thu, Nov 05, 2009 at 06:34:56PM -0600, Bjorn Helgaas wrote:
> > > > 
> > > > [ big snip ]
> > > > 
> > > > > 
> > > > > Of course, this doesn't help if you actually power off the slot or
> > > > > press your reset button.  In that case, we have to assign things from
> > > > > scratch, and we really need to know what the host bridge apertures are.
> > > > > It'd be best if the BIOS gave us an ACPI description, so we could just
> > > > > use "pci=use_crs".  Without that, I think we'll need a host bridge
> > > > > driver to read them out of the hardware, and it sounds like we don't
> > > > > have the specs required to write such a driver.
> > > > > 
> > > > 
> > > > What would actually be needed to write this driver? I ran an the command
> > > > "lspci -MH1 -vv -xxx", which I found in a very old email. It manages to
> > > > dump out all 0x100 bytes of configuration space on the bridges.  Using
> > > > this and lspci, it is clear what memory lives behind the bridge, I
> > > > think.
> > > > 
> > > > Here is a dump from my Force computer's Broadcom host bridges. Look
> > > > closely at the 4 16-bit registers starting at 0xC0. If you correlate
> > > > them with the BAR dump, shown below, it shows:
> > > > 
> > > > Bridge 00:00.0
> > > > 	non-prefetchable memory from 0xf9000000 - 0xf93fffff
> > > > 	prefectchable    memory from 0xf9400000 - 0xf96fffff
> > > > 
> > > > Bridge 00:00.1
> > > > 	non-prefetchable memory from 0xf98c0000 - 0xfaffffff
> > > > 	prefectchable    memory from NONE PRESENT
> > > 
> > > Hey, this is cool!  Nice detective work :-)
> > > 
> > > There should also be a bus number range: it looks like the 00.0
> > > host bridge has bus 00 below it, and 00.1 has at least buses 01-02
> > > below it.
> > > 
> > > And there should be an I/O port range.  Your Freescale device doesn't
> > > use any I/O ports, but presumably you could plug in a card that did,
> > > and the BIOS should allocate space for it.
> > > 
> > > That's basically all the info we should need to write a driver.  There's
> > > not really a good model for one yet because we don't have any kind of
> > > generic PCI host bridge structure.  We do have drivers/acpi/pci_root.c
> > > and arch/x86/pci/amd_bus.c, which are two different approaches to this.
> > > amd_bus.c is closer to what we need here, but it's not well integrated
> > > into PCI, so I don't really want to add more stuff like it.
> > > 
> > 
> > Ok, I've started to write a driver for this, but I can't get anything to
> > change when I run the hotplug. I've tried:
> > 
> > 1) add a quirk on the host bridge, like intel_bus.c
> >    from the quirk, change the dev->bus->resource[] start, end, flags
> >    This totally crashes and burns, it probably isn't what I want to do.
> 
> This seems like what you want; maybe we just need to debug it.  I
> think you need a quirk like pci_root_bus_res(), but with your
> Broadcom vendor/device ID.  It should call update_res().  Then
> when we call x86_pci_root_bus_res_quirks() from pcibios_fixup_bus(),
> it should notice that we've found a host bridge, and it will then
> update the root bus resources (you probably have to change
> x86_pci_root_bus_res_quirks() so it does this even if we only
> found one host bridge).
> 
> If you post what you've got so far and the dmesg log, I can try to
> help debug it.
> 

Here it is, both patch and dmesg inlined. The dmesg log just keeps going
forever after the "--- [ cut here ] ---" line.

I've do not have a board plugged in behind the bridge at the moment. The
only devices are the onboard ethernet, vga, etc. That's why the second
host bridge has no memory behind it.

>From f5221cc24ad5fe10a6639448f26284e40e99a70f Mon Sep 17 00:00:00 2001
From: Ira W. Snyder <iws@xxxxxxxxxxxxxxxx>
Date: Mon, 16 Nov 2009 08:42:39 -0800
Subject: [PATCH] PCI: read memory ranges out of Broadcom CNB20LE host bridge

Read the memory ranges behind the Broadcom CNB20LE host bridge out of the
hardware. This allows PCI hotplugging to work, since we know which memory
range to allocate PCI BAR's from.

Signed-off-by: Ira W. Snyder <iws@xxxxxxxxxxxxxxxx>
---
 arch/x86/pci/Makefile       |    1 +
 arch/x86/pci/broadcom_bus.c |   72 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+), 0 deletions(-)
 create mode 100644 arch/x86/pci/broadcom_bus.c

diff --git a/arch/x86/pci/Makefile b/arch/x86/pci/Makefile
index d8a0a62..f762c05 100644
--- a/arch/x86/pci/Makefile
+++ b/arch/x86/pci/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_X86_NUMAQ)		+= numaq_32.o
 
 obj-y				+= common.o early.o
 obj-y				+= amd_bus.o
+obj-y				+= broadcom_bus.o
 obj-$(CONFIG_X86_64)		+= intel_bus.o
 
 ifeq ($(CONFIG_PCI_DEBUG),y)
diff --git a/arch/x86/pci/broadcom_bus.c b/arch/x86/pci/broadcom_bus.c
new file mode 100644
index 0000000..a9406a2
--- /dev/null
+++ b/arch/x86/pci/broadcom_bus.c
@@ -0,0 +1,72 @@
+/*
+ * Read address ranges from a Broadcom CNB20LE Host Bridge
+ *
+ * Copyright (c) 2009 Ira W. Snyder <iws@xxxxxxxxxxxxxxxx>
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2. This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#define DEBUG 1
+
+#include <linux/delay.h>
+#include <linux/dmi.h>
+#include <linux/pci.h>
+#include <linux/init.h>
+#include <asm/pci_x86.h>
+
+#include "bus_numa.h"
+
+static int res_num = 0;
+
+static void __devinit cnb20le_res(struct pci_dev *dev)
+{
+	struct pci_bus *bus = dev->bus;
+	u16 word1, word2;
+	u8 fbus, lbus;
+
+	pci_read_config_byte(dev, 0x44, &fbus);
+	pci_read_config_byte(dev, 0x45, &lbus);
+	dev_dbg(&dev->dev, "CNB20LE: busses: %d to %d\n", fbus, lbus);
+
+	pci_read_config_word(dev, 0xc0, &word1);
+	pci_read_config_word(dev, 0xc2, &word2);
+	if (word1 != word2) {
+		bus->resource[res_num]->start = (word1 << 16) | 0x0000;
+		bus->resource[res_num]->end = (word2 << 16) | 0xffff;
+		bus->resource[res_num]->flags = IORESOURCE_MEM;
+		dev_dbg(&dev->dev, "CNB20LE: noPF %pR\n", bus->resource[res_num]);
+		res_num++;
+	}
+
+	pci_read_config_word(dev, 0xc4, &word1);
+	pci_read_config_word(dev, 0xc6, &word2);
+	if (word1 != word2) {
+		bus->resource[res_num]->start = (word1 << 16) | 0x0000;
+		bus->resource[res_num]->end = (word2 << 16) | 0xffff;
+		bus->resource[res_num]->flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
+		dev_dbg(&dev->dev, "CNB20LE: PF %pR\n", bus->resource[res_num]);
+		res_num++;
+	}
+
+	pci_read_config_word(dev, 0xd0, &word1);
+	pci_read_config_word(dev, 0xd2, &word2);
+	if (word1 != word2) {
+		bus->resource[res_num]->start = word1;
+		bus->resource[res_num]->end = word2;
+		bus->resource[res_num]->flags = IORESOURCE_IO;
+		dev_dbg(&dev->dev, "CNB20LE: IO %pR\n", bus->resource[res_num]);
+		res_num++;
+	}
+
+	dev_dbg(&dev->dev, "CNB20LE: parent bus: %p number %d pri %d sec %d\n", bus, bus->number, bus->primary, bus->secondary);
+	dev_dbg(&dev->dev, "CNB20LE: parent res0: %pR\n", dev->bus->resource[0]);
+	dev_dbg(&dev->dev, "CNB20LE: parent res1: %pR\n", dev->bus->resource[1]);
+	dev_dbg(&dev->dev, "CNB20LE: parent res2: %pR\n", dev->bus->resource[2]);
+	dev_dbg(&dev->dev, "CNB20LE: parent res3: %pR\n", dev->bus->resource[3]);
+	dev_dbg(&dev->dev, "CNB20LE: parent res4: %pR\n", dev->bus->resource[4]);
+	dev_dbg(&dev->dev, "CNB20LE: parent res5: %pR\n", dev->bus->resource[5]);
+}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE, cnb20le_res);
-- 
1.5.4.3



[    0.000000] Linux version 2.6.32-rc6-00079-g8c8def2-dirty (iws@desk1) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) #12 Fri Nov 13 14:24:39 PST 2009
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009f400 (usable)
[    0.000000]  BIOS-e820: 000000000009f400 - 000000000009f800 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 0000000040000000 (usable)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec02000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] DMI 2.3 present.
[    0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] last_pfn = 0x40000 max_arch_pfn = 0x100000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-C7FFF write-protect
[    0.000000]   C8000-DFFFF uncachable
[    0.000000]   E0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask FC0000000 write-back
[    0.000000]   1 disabled
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] PAT not supported by CPU.
[    0.000000] Warning only 895MB will be used.
[    0.000000] Use a HIGHMEM enabled kernel.
[    0.000000] Scanning 0 areas for low memory corruption
[    0.000000] modified physical RAM map:
[    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
[    0.000000]  modified: 0000000000010000 - 000000000009f400 (usable)
[    0.000000]  modified: 000000000009f400 - 000000000009f800 (reserved)
[    0.000000]  modified: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  modified: 0000000000100000 - 0000000040000000 (usable)
[    0.000000]  modified: 00000000fec00000 - 00000000fec02000 (reserved)
[    0.000000]  modified: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  modified: 00000000fff80000 - 0000000100000000 (reserved)
[    0.000000] initial memory mapped : 0 - 01c00000
[    0.000000] init_memory_mapping: 0000000000000000-0000000037fa2000
[    0.000000]  0000000000 - 0000400000 page 4k
[    0.000000]  0000400000 - 0037c00000 page 2M
[    0.000000]  0037c00000 - 0037fa2000 page 4k
[    0.000000] kernel direct mapping tables up to 37fa2000 @ 10000-15000
[    0.000000] RAMDISK: 3ff25000 - 3ffdee5a
[    0.000000] Allocated new RAMDISK: 00100000 - 001b9e5a
[    0.000000] Move RAMDISK from 000000003ff25000 - 000000003ffdee59 to 00100000 - 001b9e59
[    0.000000] ACPI Error: A valid RSDP was not found (20090903/tbxfroot-219)
[    0.000000] 895MB LOWMEM available.
[    0.000000]   mapped low ram: 0 - 37fa2000
[    0.000000]   low ram: 0 - 37fa2000
[    0.000000]   node 0 low ram: 00000000 - 37fa2000
[    0.000000]   node 0 bootmap 00011000 - 00017ff8
[    0.000000] (7 early reservations) ==> bootmem [0000000000 - 0037fa2000]
[    0.000000]   #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
[    0.000000]   #1 [0001000000 - 0001872618]    TEXT DATA BSS ==> [0001000000 - 0001872618]
[    0.000000]   #2 [000009f000 - 0000100000]    BIOS reserved ==> [000009f000 - 0000100000]
[    0.000000]   #3 [0001873000 - 000187a1dc]              BRK ==> [0001873000 - 000187a1dc]
[    0.000000]   #4 [0000010000 - 0000011000]          PGTABLE ==> [0000010000 - 0000011000]
[    0.000000]   #5 [0000100000 - 00001b9e5a]      NEW RAMDISK ==> [0000100000 - 00001b9e5a]
[    0.000000]   #6 [0000011000 - 0000018000]          BOOTMAP ==> [0000011000 - 0000018000]
[    0.000000] found SMP MP-table at [c00ff780] ff780
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   Normal   0x00001000 -> 0x00037fa2
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009f
[    0.000000]     0: 0x00000100 -> 0x00037fa2
[    0.000000] On node 0 totalpages: 229169
[    0.000000] free_area_init_node: node 0, pgdat c1320684, node_mem_map c187b200
[    0.000000]   DMA zone: 32 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3951 pages, LIFO batch:0
[    0.000000]   Normal zone: 1760 pages used for memmap
[    0.000000]   Normal zone: 223426 pages, LIFO batch:31
[    0.000000] Using APIC driver default
[    0.000000] 0 reading 2 from a: 600
[    0.000000] 0 reading 2 from 0: 1166
[    0.000000] 0 reading 2 from 2: 9
[    0.000000] 0 reading 1 from e: 80
[    0.000000] 0 reading 2 from a: 600
[    0.000000] 0 reading 2 from 0: 1166
[    0.000000] 0 reading 2 from 2: 9
[    0.000000] 0 reading 1 from e: 80
[    0.000000] 0 reading 2 from a: ffff
[    0.000000] 1 reading 2 from a: ffff
[    0.000000] 2 reading 2 from a: ffff
[    0.000000] 3 reading 2 from a: ffff
[    0.000000] 4 reading 2 from a: ffff
[    0.000000] 5 reading 2 from a: 200
[    0.000000] 5 reading 2 from 0: 8086
[    0.000000] 5 reading 2 from 2: 1229
[    0.000000] 5 reading 1 from e: 0
[    0.000000] 6 reading 2 from a: 200
[    0.000000] 6 reading 2 from 0: 8086
[    0.000000] 6 reading 2 from 2: 1229
[    0.000000] 6 reading 1 from e: 0
[    0.000000] 7 reading 2 from a: 300
[    0.000000] 7 reading 2 from 0: 102c
[    0.000000] 7 reading 2 from 2: c30
[    0.000000] 7 reading 1 from e: 0
[    0.000000] 8 reading 2 from a: ffff
[    0.000000] 9 reading 2 from a: ffff
[    0.000000] a reading 2 from a: ffff
[    0.000000] b reading 2 from a: ffff
[    0.000000] c reading 2 from a: ffff
[    0.000000] d reading 2 from a: ffff
[    0.000000] e reading 2 from a: ffff
[    0.000000] f reading 2 from a: 601
[    0.000000] f reading 2 from 0: 1166
[    0.000000] f reading 2 from 2: 200
[    0.000000] f reading 1 from e: 80
[    0.000000] f reading 2 from a: 101
[    0.000000] f reading 2 from 0: 1166
[    0.000000] f reading 2 from 2: 211
[    0.000000] f reading 1 from e: 80
[    0.000000] f reading 2 from a: c03
[    0.000000] f reading 2 from 0: 1166
[    0.000000] f reading 2 from 2: 220
[    0.000000] f reading 1 from e: 80
[    0.000000] f reading 2 from a: ffff
[    0.000000] 10 reading 2 from a: ffff
[    0.000000] 11 reading 2 from a: ffff
[    0.000000] 12 reading 2 from a: ffff
[    0.000000] 13 reading 2 from a: ffff
[    0.000000] 14 reading 2 from a: ffff
[    0.000000] 15 reading 2 from a: ffff
[    0.000000] 16 reading 2 from a: ffff
[    0.000000] 17 reading 2 from a: ffff
[    0.000000] 18 reading 2 from a: ffff
[    0.000000] 19 reading 2 from a: ffff
[    0.000000] 1a reading 2 from a: ffff
[    0.000000] 1b reading 2 from a: ffff
[    0.000000] 1c reading 2 from a: ffff
[    0.000000] 1d reading 2 from a: ffff
[    0.000000] 1e reading 2 from a: ffff
[    0.000000] 1f reading 2 from a: ffff
[    0.000000] Intel MultiProcessor Specification v1.1
[    0.000000]     Virtual Wire compatibility mode.
[    0.000000] MPTABLE: OEM ID: AMI
[    0.000000] MPTABLE: Product ID: CNB30LE
[    0.000000] MPTABLE: APIC at: 0xFEE00000
[    0.000000] Processor #0 (Bootup-CPU)
[    0.000000] I/O APIC #4 Version 17 at 0xFEC00000.
[    0.000000] I/O APIC #5 Version 17 at 0xFEC01000.
[    0.000000] Enabling APIC mode:  Flat.  Using 2 I/O APICs
[    0.000000] Processors: 1
[    0.000000] nr_irqs_gsi: 32
[    0.000000] Allocating PCI resources starting at 40000000 (gap: 40000000:bec00000)
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 227377
[    0.000000] Kernel command line: initrd=initramfs-generic-i686.cpio.gz ignore_loglevel root=/dev/nfs ide0=noprobe ide1=noprobe ro console=ttyS0,115200 lapic ip=bridge BOOT_IMAGE=bzImage-2.6.31.2-cpci
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Enabling fast FPU save and restore... done.
[    0.000000] Enabling unmasked SIMD FPU exception support... done.
[    0.000000] Initializing CPU#0
[    0.000000] Memory: 899152k/917128k available (2064k kernel code, 17424k reserved, 1152k data, 256k init, 0k highmem)
[    0.000000] virtual kernel memory layout:
[    0.000000]     fixmap  : 0xfffa4000 - 0xfffff000   ( 364 kB)
[    0.000000]     vmalloc : 0xf87a2000 - 0xfffa2000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf7fa2000   ( 895 MB)
[    0.000000]       .init : 0xc1325000 - 0xc1365000   ( 256 kB)
[    0.000000]       .data : 0xc1204063 - 0xc1324338   (1152 kB)
[    0.000000]       .text : 0xc1000000 - 0xc1204063   (2064 kB)
[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] RCU-based detection of stalled CPUs is enabled.
[    0.000000] NR_IRQS:288
[    0.000000] CPU 0 irqstacks, hard=c12f0000 soft=c12f1000
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [ttyS0] enabled
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3567 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.000000] Fast TSC calibration using PIT
[    0.000000] Detected 999.623 MHz processor.
[    0.012066] Calibrating delay loop (skipped), value calculated using timer frequency.. 1999.24 BogoMIPS (lpj=3998492)
[    0.020083] Mount-cache hash table entries: 512
[    0.026005] CPU: L1 I cache: 16K, L1 D cache: 16K
[    0.032010] CPU: L2 cache: 256K
[    0.035146] CPU serial number disabled.
[    0.036016] mce: CPU supports 5 MCE banks
[    0.040046] CPU: Intel Pentium III (Coppermine) stepping 0a
[    0.049243] Checking 'hlt' instruction... OK.
[    0.069627] ExtINT not setup in hardware but reported by MP table
[    0.076317] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0
[    0.080001] ..MP-BIOS bug: 8254 timer not connected to IO-APIC
[    0.080001] ...trying to set up timer (IRQ0) through the 8259A ...
[    0.080001] ..... (found apic 0 pin 0) ...
[    0.121595] ....... works.
[    0.235564] NET: Registered protocol family 16
[    0.242441] PCI: PCI BIOS revision 2.10 entry at 0xfdbb1, last bus=1
[    0.244094] PCI: Using configuration type 1 for base access
[    0.264276] bio: create slab <bio-0> at 0
[    0.268581] ACPI: Interpreter disabled.
[    0.273068] vgaarb: loaded
[    0.276964] PCI: Probing PCI hardware
[    0.280085] PCI: Probing PCI hardware (bus 00)
[    0.284360] pci_bus 0000:00: scanning bus
[    0.288128] pci 0000:00:00.0: found [1166:0009] class 000600 header type 00
[    0.292023] pci 0000:00:00.0: calling quirk_no_ata_d3+0x0/0x24
[    0.296019] pci 0000:00:00.0: calling acpi_pm_check_graylist+0x0/0x2d
[    0.300010] * The chipset may have PM-Timer Bug. Due to workarounds for a bug,
[    0.300015] * this clock source is slow. If you are sure your timer does not have
[    0.300019] * this bug, please use "acpi_pm_good" to disable the workaround
[    0.304015] pci 0000:00:00.0: calling cnb20le_res+0x0/0x2fb
[    0.308014] pci 0000:00:00.0: CNB20LE: busses: 0 to 0
[    0.312017] pci 0000:00:00.0: CNB20LE: noPF [mem 0xfc200000-0xfeafffff]
[    0.316015] pci 0000:00:00.0: CNB20LE: PF [mem 0xfc000000-0xfc0fffff pref]
[    0.320013] pci 0000:00:00.0: CNB20LE: IO (null)
[    0.324011] pci 0000:00:00.0: CNB20LE: parent bus: f7883800 number 0 pri 0 sec 0
[    0.328011] pci 0000:00:00.0: CNB20LE: parent res0: [mem 0xfc200000-0xfeafffff]
[    0.332011] pci 0000:00:00.0: CNB20LE: parent res1: [mem 0xfc000000-0xfc0fffff pref]
[    0.336009] pci 0000:00:00.0: CNB20LE: parent res1: (null)
[    0.340009] pci 0000:00:00.0: CNB20LE: parent res1: (null)
[    0.344009] pci 0000:00:00.0: CNB20LE: parent res1: (null)
[    0.348009] pci 0000:00:00.0: CNB20LE: parent res1: (null)
[    0.352076] pci 0000:00:00.0: calling quirk_resource_alignment+0x0/0x164
[    0.356090] pci 0000:00:00.1: found [1166:0009] class 000600 header type 00
[    0.360014] pci 0000:00:00.1: calling quirk_no_ata_d3+0x0/0x24
[    0.364013] pci 0000:00:00.1: calling acpi_pm_check_graylist+0x0/0x2d
[    0.368009] * The chipset may have PM-Timer Bug. Due to workarounds for a bug,
[    0.368014] * this clock source is slow. If you are sure your timer does not have
[    0.368018] * this bug, please use "acpi_pm_good" to disable the workaround
[    0.372013] pci 0000:00:00.1: calling cnb20le_res+0x0/0x2fb
[    0.376014] pci 0000:00:00.1: CNB20LE: busses: 1 to 1
[    0.380013] pci 0000:00:00.1: CNB20LE: noPF (null)
[    0.384013] pci 0000:00:00.1: CNB20LE: PF (null)
[    0.388013] pci 0000:00:00.1: CNB20LE: IO (null)
[    0.392011] pci 0000:00:00.1: CNB20LE: parent bus: f7883800 number 0 pri 0 sec 0
[    0.396011] pci 0000:00:00.1: CNB20LE: parent res0: [mem 0xfc200000-0xfeafffff]
[    0.400011] pci 0000:00:00.1: CNB20LE: parent res1: [mem 0xfc000000-0xfc0fffff pref]
[    0.404010] pci 0000:00:00.1: CNB20LE: parent res1: (null)
[    0.408010] pci 0000:00:00.1: CNB20LE: parent res1: (null)
[    0.412009] pci 0000:00:00.1: CNB20LE: parent res1: (null)
[    0.416009] pci 0000:00:00.1: CNB20LE: parent res1: (null)
[    0.420069] pci 0000:00:00.1: calling quirk_resource_alignment+0x0/0x164
[    0.424073] pci 0000:00:05.0: found [8086:1229] class 000200 header type 00
[    0.428042] pci 0000:00:05.0: reg 10: [mem 0xfe2bd000-0xfe2bdfff]
[    0.432020] pci 0000:00:05.0: reg 14: [io  0xde80-0xdebf]
[    0.436020] pci 0000:00:05.0: reg 18: [mem 0xfcf00000-0xfcffffff]
[    0.440044] pci 0000:00:05.0: reg 30: [mem 0xfce00000-0xfcefffff pref]
[    0.444020] pci 0000:00:05.0: calling quirk_resource_alignment+0x0/0x164
[    0.448015] pci 0000:00:05.0: calling pci_fixup_transparent_bridge+0x0/0x2b
[    0.452035] pci 0000:00:05.0: supports D1 D2
[    0.456011] pci 0000:00:05.0: PME# supported from D0 D1 D2 D3hot
[    0.460015] pci 0000:00:05.0: PME# disabled
[    0.464044] pci 0000:00:06.0: found [8086:1229] class 000200 header type 00
[    0.468042] pci 0000:00:06.0: reg 10: [mem 0xfe2be000-0xfe2befff]
[    0.472020] pci 0000:00:06.0: reg 14: [io  0xdf00-0xdf3f]
[    0.476021] pci 0000:00:06.0: reg 18: [mem 0xfe100000-0xfe1fffff]
[    0.480045] pci 0000:00:06.0: reg 30: [mem 0xfe000000-0xfe0fffff pref]
[    0.484020] pci 0000:00:06.0: calling quirk_resource_alignment+0x0/0x164
[    0.488015] pci 0000:00:06.0: calling pci_fixup_transparent_bridge+0x0/0x2b
[    0.492035] pci 0000:00:06.0: supports D1 D2
[    0.496011] pci 0000:00:06.0: PME# supported from D0 D1 D2 D3hot
[    0.500014] pci 0000:00:06.0: PME# disabled
[    0.504038] pci 0000:00:07.0: found [102c:0c30] class 000300 header type 00
[    0.508030] pci 0000:00:07.0: reg 10: [mem 0xfd000000-0xfdffffff]
[    0.512062] pci 0000:00:07.0: reg 30: [mem 0xfe2c0000-0xfe2fffff pref]
[    0.516020] pci 0000:00:07.0: calling quirk_resource_alignment+0x0/0x164
[    0.520060] pci 0000:00:0f.0: found [1166:0200] class 000601 header type 00
[    0.524018] pci 0000:00:0f.0: calling quirk_no_ata_d3+0x0/0x24
[    0.528078] pci 0000:00:0f.0: calling quirk_resource_alignment+0x0/0x164
[    0.532047] pci 0000:00:0f.1: found [1166:0211] class 000101 header type 00
[    0.536018] pci 0000:00:0f.1: calling quirk_no_ata_d3+0x0/0x24
[    0.540056] pci 0000:00:0f.1: reg 20: [io  0xffa0-0xffaf]
[    0.544038] pci 0000:00:0f.1: calling quirk_resource_alignment+0x0/0x164
[    0.548039] pci 0000:00:0f.2: found [1166:0220] class 000c03 header type 00
[    0.552018] pci 0000:00:0f.2: calling quirk_no_ata_d3+0x0/0x24
[    0.556026] pci 0000:00:0f.2: reg 10: [mem 0xfe2bf000-0xfe2bffff]
[    0.560068] pci 0000:00:0f.2: calling quirk_resource_alignment+0x0/0x164
[    0.564084] pci_bus 0000:00: fixups for bus
[    0.568012] pci_bus 0000:00: bus scan returning with max=00
[    0.573309] vgaarb: device added: PCI:0000:00:07.0,decodes=io+mem,owns=io+mem,locks=none
[    0.577260] pci_bus 0000:01: scanning bus
[    0.584042] pci_bus 0000:01: fixups for bus
[    0.588011] pci_bus 0000:01: bus scan returning with max=01
[    0.592010] PCI: Discovered primary peer bus 01 [IRQ]
[    0.596045] pci 0000:00:0f.0: ServerWorks IRQ router [1166:0200]
[    0.600049] PCI: pci_cache_line_size set to 32 bytes
[    0.604036] pci 0000:00:05.0: BAR 0: reserving [mem 0xfe2bd000-0xfe2bdfff flags 0x20200] (d=0, p=0)
[    0.608018] pci 0000:00:05.0: BAR 1: reserving [io  0xde80-0xdebf flags 0x20101] (d=0, p=0)
[    0.612012] pci 0000:00:05.0: no compatible bridge window for [io  0xde80-0xdebf]
[    0.616011] pci 0000:00:05.0: can't reserve [io  0xde80-0xdebf]
[    0.620014] pci 0000:00:05.0: BAR 2: reserving [mem 0xfcf00000-0xfcffffff flags 0x20200] (d=0, p=0)
[    0.624022] pci 0000:00:06.0: BAR 0: reserving [mem 0xfe2be000-0xfe2befff flags 0x20200] (d=0, p=0)
[    0.628015] pci 0000:00:06.0: BAR 1: reserving [io  0xdf00-0xdf3f flags 0x20101] (d=0, p=0)
[    0.632012] pci 0000:00:06.0: no compatible bridge window for [io  0xdf00-0xdf3f]
[    0.636011] pci 0000:00:06.0: can't reserve [io  0xdf00-0xdf3f]
[    0.640014] pci 0000:00:06.0: BAR 2: reserving [mem 0xfe100000-0xfe1fffff flags 0x20200] (d=0, p=0)
[    0.644023] pci 0000:00:07.0: BAR 0: reserving [mem 0xfd000000-0xfdffffff flags 0x20200] (d=0, p=0)
[    0.648029] pci 0000:00:0f.1: BAR 0: reserving [io  0x01f0-0x01f7 flags 0x110] (d=0, p=0)
[    0.652012] pci 0000:00:0f.1: no compatible bridge window for [io  0x01f0-0x01f7]
[    0.656011] pci 0000:00:0f.1: can't reserve [io  0x01f0-0x01f7]
[    0.660013] pci 0000:00:0f.1: BAR 1: reserving [io  0x03f6 flags 0x110] (d=0, p=0)
[    0.664011] pci 0000:00:0f.1: no compatible bridge window for [io  0x03f6]
[    0.668011] pci 0000:00:0f.1: can't reserve [io  0x03f6]
[    0.672013] pci 0000:00:0f.1: BAR 2: reserving [io  0x0170-0x0177 flags 0x110] (d=0, p=0)
[    0.676012] pci 0000:00:0f.1: no compatible bridge window for [io  0x0170-0x0177]
[    0.680011] pci 0000:00:0f.1: can't reserve [io  0x0170-0x0177]
[    0.684013] pci 0000:00:0f.1: BAR 3: reserving [io  0x0376 flags 0x110] (d=0, p=0)
[    0.688011] pci 0000:00:0f.1: no compatible bridge window for [io  0x0376]
[    0.692011] pci 0000:00:0f.1: can't reserve [io  0x0376]
[    0.696013] pci 0000:00:0f.1: BAR 4: reserving [io  0xffa0-0xffaf flags 0x20101] (d=0, p=0)
[    0.700012] pci 0000:00:0f.1: no compatible bridge window for [io  0xffa0-0xffaf]
[    0.704011] pci 0000:00:0f.1: can't reserve [io  0xffa0-0xffaf]
[    0.708021] pci 0000:00:0f.2: BAR 0: reserving [mem 0xfe2bf000-0xfe2bffff flags 0x20200] (d=0, p=0)
[    0.712679] initcall pci_subsys_init+0x0/0x20 returned with preemption imbalance
[    0.716012] ------------[ cut here ]------------
[    0.720002] WARNING: at /home/iws/devel/linux-2.6/kernel/mutex-debug.c:64 mutex_remove_waiter+0x68/0xc2()
[    0.720002] Hardware name: To Be Filled By O.E.M.
[    0.720002] Modules linked in:
[    0.720002] Pid: 1, comm: swapper Not tainted 2.6.32-rc6-00079-g8c8def2-dirty #12
[    0.720002] Call Trace:
[    0.720002]  [<c101e459>] warn_slowpath_common+0x60/0x77
[    0.720002]  [<c101e47d>] warn_slowpath_null+0xd/0x10
[    0.720002]  [<c1038098>] mutex_remove_waiter+0x68/0xc2
[    0.720002]  [<c1202126>] mutex_lock_nested+0x1d6/0x21f
[    0.720002]  [<c1341b6c>] ? proto_init+0x0/0xf
[    0.720002]  [<c1196ddc>] register_pernet_subsys+0x12/0x2f
[    0.720002]  [<c1341b79>] proto_init+0xd/0xf
[    0.720002]  [<c100104b>] do_one_initcall+0x4b/0x135
[    0.720002]  [<c13252ab>] do_initcalls+0x15/0x25
[    0.720002]  [<c132553a>] ? kernel_init+0x0/0x74
[    0.720002]  [<c13252e1>] do_basic_setup+0x26/0x28
[    0.720002]  [<c1325570>] kernel_init+0x36/0x74
[    0.720002]  [<c10030f3>] kernel_thread_helper+0x7/0x1a
[    0.720002]  <IRQ>  [<c1023dcf>] ? proc_dointvec+0x0/0x14
[    0.720002]  [<c101984f>] ? sched_rt_handler+0x0/0xbc
[    0.720002]  [<c101984f>] ? sched_rt_handler+0x0/0xbc
[    0.720002]  [<c1023dcf>] ? proc_dointvec+0x0/0x14
[

Thanks,
Ira
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux