Re: PCI hotplug problems: how to debug?

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

 



On Mon, Nov 16, 2009 at 11:45:53AM -0800, Yinghai Lu wrote:

[ big snip ]

> >
> > So I know how many resources I've consumed so far. The same dev->bus
> > structure is given to me for both host bridges. I wanted to keep track
> > of which dev->bus->resource[i] files I'd filled in so far.
> >
> > Should I try and figure out which ones are not used so far?
> 
> please check the one in intel_bus.c
> 

Here is what I tried, using the code from intel_bus.c and amd_bus.c as
examples. I've lost *ALL* of my PCI devices by using that code. But the
kernel doesn't panic.

Bjorn, you'll notice that the x86_pci_root_bus_res_quirks() function is
called now. It seems to be called by the PCI layer if it is defined. It
is normally a weak symbol on x86_32.

Here is the patch I used, and output:

>From a3a9b51cc08912e4205a6f6225dd42ec59f38412 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/amd_bus.c      |   10 +++-
 arch/x86/pci/broadcom_bus.c |  108 +++++++++++++++++++++++++++++++++++++++++++
 arch/x86/pci/bus_numa.h     |    4 +-
 4 files changed, 118 insertions(+), 5 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/amd_bus.c b/arch/x86/pci/amd_bus.c
index 995f360..6bd3eb6 100644
--- a/arch/x86/pci/amd_bus.c
+++ b/arch/x86/pci/amd_bus.c
@@ -17,8 +17,6 @@
  * also get peer root bus resource for io,mmio
  */
 
-#ifdef CONFIG_X86_64
-
 int pci_root_num;
 struct pci_root_info pci_root_info[PCI_ROOT_NR];
 static int found_all_numa_early;
@@ -29,6 +27,8 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b)
 	int j;
 	struct pci_root_info *info;
 
+	printk(KERN_DEBUG "PCI: %s called\n", __func__);
+
 	/* don't go for it if _CRS is used already */
 	if (b->resource[0] != &ioport_resource ||
 	    b->resource[1] != &iomem_resource)
@@ -67,6 +67,8 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b)
 	}
 }
 
+#ifdef CONFIG_X86_64
+
 #define RANGE_NUM 16
 
 struct res_range {
@@ -119,6 +121,8 @@ static void __init update_range(struct res_range *range, size_t start,
 	}
 }
 
+#endif /* CONFIG_X86_64 */
+
 void __init update_res(struct pci_root_info *info, size_t start,
 			      size_t end, unsigned long flags, int merge)
 {
@@ -168,6 +172,8 @@ addit:
 	info->res_num++;
 }
 
+#ifdef CONFIG_X86_64
+
 struct pci_hostbridge_probe {
 	u32 bus;
 	u32 slot;
diff --git a/arch/x86/pci/broadcom_bus.c b/arch/x86/pci/broadcom_bus.c
new file mode 100644
index 0000000..f53563b
--- /dev/null
+++ b/arch/x86/pci/broadcom_bus.c
@@ -0,0 +1,108 @@
+/*
+ * 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"
+
+#if 0
+static int res_num = 0;
+#endif
+
+static void __devinit cnb20le_res(struct pci_dev *dev)
+{
+#if 0
+	struct pci_bus *bus = dev->bus;
+#endif
+	struct pci_root_info *info;
+	unsigned long flags;
+	u16 word1, word2;
+	u32 start, end;
+	u8 fbus, lbus;
+
+	info = &pci_root_info[pci_root_num];
+	pci_root_num++;
+
+	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);
+
+	info->bus_min = fbus;
+	info->bus_max = lbus;
+
+	pci_read_config_word(dev, 0xc0, &word1);
+	pci_read_config_word(dev, 0xc2, &word2);
+	dev_dbg(&dev->dev, "CNB20LE: noPF 0x%.4x 0x%.4x\n", word1, word2);
+	if (word1 != word2) {
+		start = word1;
+		end   = word2;
+		flags = IORESOURCE_MEM;
+		update_res(info, start, end, flags, 0);
+#if 0
+		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++;
+#endif
+	}
+
+	pci_read_config_word(dev, 0xc4, &word1);
+	pci_read_config_word(dev, 0xc6, &word2);
+	dev_dbg(&dev->dev, "CNB20LE: PF 0x%.4x 0x%.4x\n", word1, word2);
+	if (word1 != word2) {
+		start = (word1 << 16) | 0x0000;
+		end   = (word2 << 16) | 0xffff;
+		flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
+		update_res(info, start, end, flags, 0);
+#if 0
+		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++;
+#endif
+	}
+
+	pci_read_config_word(dev, 0xd0, &word1);
+	pci_read_config_word(dev, 0xd2, &word2);
+	dev_dbg(&dev->dev, "CNB20LE: IO 0x%.4x 0x%.4x\n", word1, word2);
+	if (word1 != word2) {
+		start = (word1 << 16) | 0x0000;
+		end   = (word2 << 16) | 0xffff;
+		flags = IORESOURCE_IO;
+		update_res(info, start, end, flags, 0);
+#if 0
+		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++;
+#endif
+	}
+
+#if 0
+	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]);
+#endif
+}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE, cnb20le_res);
diff --git a/arch/x86/pci/bus_numa.h b/arch/x86/pci/bus_numa.h
index 4ff126a..03ee918 100644
--- a/arch/x86/pci/bus_numa.h
+++ b/arch/x86/pci/bus_numa.h
@@ -1,5 +1,3 @@
-#ifdef CONFIG_X86_64
-
 /*
  * sub bus (transparent) will use entres from 3 to store extra from
  * root, so need to make sure we have enought slot there, Should we
@@ -23,4 +21,4 @@ extern struct pci_root_info pci_root_info[PCI_ROOT_NR];
 
 extern void update_res(struct pci_root_info *info, size_t start,
 			      size_t end, unsigned long flags, int merge);
-#endif
+
-- 
1.5.4.3


[    0.304015] pci 0000:00:00.0: calling cnb20le_res+0x0/0x1ff
[    0.308014] pci 0000:00:00.0: CNB20LE: busses: 0 to 0
[    0.312014] pci 0000:00:00.0: CNB20LE: noPF 0xfc20 0xfeaf
[    0.316015] pci 0000:00:00.0: CNB20LE: PF 0xfc00 0xfc0f
[    0.320014] pci 0000:00:00.0: CNB20LE: IO 0xd000 0xdffc
[    0.324076] pci 0000:00:00.0: calling quirk_resource_alignment+0x0/0x164
[    0.328090] pci 0000:00:00.1: found [1166:0009] class 000600 header type 00
[    0.332014] pci 0000:00:00.1: calling quirk_no_ata_d3+0x0/0x24
[    0.336013] pci 0000:00:00.1: calling acpi_pm_check_graylist+0x0/0x2d
[    0.340009] * The chipset may have PM-Timer Bug. Due to workarounds for a bug,
[    0.340014] * this clock source is slow. If you are sure your timer does not have
[    0.340018] * this bug, please use "acpi_pm_good" to disable the workaround
[    0.344013] pci 0000:00:00.1: calling cnb20le_res+0x0/0x1ff
[    0.348014] pci 0000:00:00.1: CNB20LE: busses: 1 to 1
[    0.352014] pci 0000:00:00.1: CNB20LE: noPF 0xfeb0 0xfebf
[    0.356014] pci 0000:00:00.1: CNB20LE: PF 0xfc10 0xfc1f
[    0.360014] pci 0000:00:00.1: CNB20LE: IO 0xe000 0xeffc
[    0.364070] pci 0000:00:00.1: calling quirk_resource_alignment+0x0/0x164
[    0.368072] pci 0000:00:05.0: found [8086:1229] class 000200 header type 00
[    0.372043] pci 0000:00:05.0: reg 10: [mem 0xfe2bd000-0xfe2bdfff]
[    0.376020] pci 0000:00:05.0: reg 14: [io  0xde80-0xdebf]
[    0.380020] pci 0000:00:05.0: reg 18: [mem 0xfcf00000-0xfcffffff]
[    0.384044] pci 0000:00:05.0: reg 30: [mem 0xfce00000-0xfcefffff pref]
[    0.388020] pci 0000:00:05.0: calling quirk_resource_alignment+0x0/0x164
[    0.392015] pci 0000:00:05.0: calling pci_fixup_transparent_bridge+0x0/0x2b
[    0.396035] pci 0000:00:05.0: supports D1 D2
[    0.400011] pci 0000:00:05.0: PME# supported from D0 D1 D2 D3hot
[    0.404014] pci 0000:00:05.0: PME# disabled
[    0.408043] pci 0000:00:06.0: found [8086:1229] class 000200 header type 00
[    0.412041] pci 0000:00:06.0: reg 10: [mem 0xfe2be000-0xfe2befff]
[    0.416020] pci 0000:00:06.0: reg 14: [io  0xdf00-0xdf3f]
[    0.420020] pci 0000:00:06.0: reg 18: [mem 0xfe100000-0xfe1fffff]
[    0.424044] pci 0000:00:06.0: reg 30: [mem 0xfe000000-0xfe0fffff pref]
[    0.428020] pci 0000:00:06.0: calling quirk_resource_alignment+0x0/0x164
[    0.432014] pci 0000:00:06.0: calling pci_fixup_transparent_bridge+0x0/0x2b
[    0.436035] pci 0000:00:06.0: supports D1 D2
[    0.440010] pci 0000:00:06.0: PME# supported from D0 D1 D2 D3hot
[    0.444014] pci 0000:00:06.0: PME# disabled
[    0.448038] pci 0000:00:07.0: found [102c:0c30] class 000300 header type 00
[    0.452030] pci 0000:00:07.0: reg 10: [mem 0xfd000000-0xfdffffff]
[    0.456062] pci 0000:00:07.0: reg 30: [mem 0xfe2c0000-0xfe2fffff pref]
[    0.460020] pci 0000:00:07.0: calling quirk_resource_alignment+0x0/0x164
[    0.464059] pci 0000:00:0f.0: found [1166:0200] class 000601 header type 00
[    0.468018] pci 0000:00:0f.0: calling quirk_no_ata_d3+0x0/0x24
[    0.472078] pci 0000:00:0f.0: calling quirk_resource_alignment+0x0/0x164
[    0.476046] pci 0000:00:0f.1: found [1166:0211] class 000101 header type 00
[    0.480017] pci 0000:00:0f.1: calling quirk_no_ata_d3+0x0/0x24
[    0.484055] pci 0000:00:0f.1: reg 20: [io  0xffa0-0xffaf]
[    0.488038] pci 0000:00:0f.1: calling quirk_resource_alignment+0x0/0x164
[    0.492039] pci 0000:00:0f.2: found [1166:0220] class 000c03 header type 00
[    0.496017] pci 0000:00:0f.2: calling quirk_no_ata_d3+0x0/0x24
[    0.500025] pci 0000:00:0f.2: reg 10: [mem 0xfe2bf000-0xfe2bffff]
[    0.504067] pci 0000:00:0f.2: calling quirk_resource_alignment+0x0/0x164
[    0.508083] pci_bus 0000:00: fixups for bus
[    0.512010] PCI: x86_pci_root_bus_res_quirks called
[    0.516010] PCI: peer root bus 00 res updated from pci conf
[    0.520017] pci_bus 0000:00: bus scan returning with max=00
[    0.525304] vgaarb: device added: PCI:0000:00:07.0,decodes=io+mem,owns=io+mem,locks=none
[    0.533113] pci_bus 0000:01: scanning bus
[    0.536117] pci_bus 0000:01: fixups for bus
[    0.540010] PCI: x86_pci_root_bus_res_quirks called
[    0.544010] PCI: peer root bus 01 res updated from pci conf
[    0.548016] pci_bus 0000:01: bus scan returning with max=01
[    0.552010] PCI: Discovered primary peer bus 01 [IRQ]
[    0.556044] pci 0000:00:0f.0: ServerWorks IRQ router [1166:0200]
[    0.560048] PCI: pci_cache_line_size set to 32 bytes
[    0.564036] pci 0000:00:05.0: BAR 0: reserving [mem 0xfe2bd000-0xfe2bdfff flags 0x20200] (d=0, p=0)
[    0.568013] pci 0000:00:05.0: no compatible bridge window for [mem 0xfe2bd000-0xfe2bdfff]
[    0.572012] pci 0000:00:05.0: can't reserve [mem 0xfe2bd000-0xfe2bdfff]
[    0.576013] pci 0000:00:05.0: BAR 1: reserving [io  0xde80-0xdebf flags 0x20101] (d=0, p=0)
[    0.580012] pci 0000:00:05.0: no compatible bridge window for [io  0xde80-0xdebf]
[    0.584011] pci 0000:00:05.0: can't reserve [io  0xde80-0xdebf]
[    0.588014] pci 0000:00:05.0: BAR 2: reserving [mem 0xfcf00000-0xfcffffff flags 0x20200] (d=0, p=0)
[    0.592012] pci 0000:00:05.0: no compatible bridge window for [mem 0xfcf00000-0xfcffffff]
[    0.596011] pci 0000:00:05.0: can't reserve [mem 0xfcf00000-0xfcffffff]
[    0.600022] pci 0000:00:06.0: BAR 0: reserving [mem 0xfe2be000-0xfe2befff flags 0x20200] (d=0, p=0)
[    0.604012] pci 0000:00:06.0: no compatible bridge window for [mem 0xfe2be000-0xfe2befff]
[    0.608011] pci 0000:00:06.0: can't reserve [mem 0xfe2be000-0xfe2befff]
[    0.612013] pci 0000:00:06.0: BAR 1: reserving [io  0xdf00-0xdf3f flags 0x20101] (d=0, p=0)
[    0.616012] pci 0000:00:06.0: no compatible bridge window for [io  0xdf00-0xdf3f]
[    0.620011] pci 0000:00:06.0: can't reserve [io  0xdf00-0xdf3f]
[    0.624014] pci 0000:00:06.0: BAR 2: reserving [mem 0xfe100000-0xfe1fffff flags 0x20200] (d=0, p=0)
[    0.628012] pci 0000:00:06.0: no compatible bridge window for [mem 0xfe100000-0xfe1fffff]
[    0.632011] pci 0000:00:06.0: can't reserve [mem 0xfe100000-0xfe1fffff]
[    0.636021] pci 0000:00:07.0: BAR 0: reserving [mem 0xfd000000-0xfdffffff flags 0x20200] (d=0, p=0)
[    0.640012] pci 0000:00:07.0: no compatible bridge window for [mem 0xfd000000-0xfdffffff]
[    0.644011] pci 0000:00:07.0: can't reserve [mem 0xfd000000-0xfdffffff]
[    0.648028] 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.696014] 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.712012] pci 0000:00:0f.2: no compatible bridge window for [mem 0xfe2bf000-0xfe2bffff]
[    0.716012] pci 0000:00:0f.2: can't reserve [mem 0xfe2bf000-0xfe2bffff]
[    0.721409] Switching to clocksource tsc
[    0.724486] pnp: PnP ACPI: disabled
[    0.730211] pci 0000:00:05.0: no compatible bridge window for [mem 0xfce00000-0xfcefffff pref]
[    0.738913] pci 0000:00:06.0: no compatible bridge window for [mem 0xfe000000-0xfe0fffff pref]
[    0.747533] pci 0000:00:07.0: no compatible bridge window for [mem 0xfe2c0000-0xfe2fffff pref]
[    0.756180] pci 0000:00:07.0: BAR 0: can't assign mem (size 0x1000000)
[    0.762715] pci 0000:00:05.0: BAR 2: can't assign mem (size 0x100000)
[    0.769162] pci 0000:00:05.0: BAR 6: assigned [mem 0xfc000000-0xfc0fffff pref]
[    0.776388] pci 0000:00:06.0: BAR 2: can't assign mem (size 0x100000)
[    0.782835] pci 0000:00:06.0: BAR 6: can't assign mem pref (size 0x100000)
[    0.789717] pci 0000:00:07.0: BAR 6: can't assign mem pref (size 0x40000)
[    0.796509] pci 0000:00:05.0: BAR 0: can't assign mem (size 0x1000)
[    0.802781] pci 0000:00:06.0: BAR 0: can't assign mem (size 0x1000)
[    0.809052] pci 0000:00:0f.2: BAR 0: can't assign mem (size 0x1000)
[    0.815327] pci 0000:00:05.0: BAR 1: assigned [io  0xd0000000-0xd000003f]
[    0.822130] pci 0000:00:05.0: BAR 1: set to [io  0xd0000000-0xd000003f] (PCI address [0xd0000000-0xd000003f]
[    0.831959] pci 0000:00:06.0: BAR 1: assigned [io  0xd0000040-0xd000007f]
[    0.838758] pci 0000:00:06.0: BAR 1: set to [io  0xd0000040-0xd000007f] (PCI address [0xd0000040-0xd000007f]
[    0.848587] pci 0000:00:0f.1: BAR 4: assigned [io  0xd0000080-0xd000008f]
[    0.855382] pci 0000:00:0f.1: BAR 4: error updating (0xd0000081 != 0x000081)
[    0.862435] pci 0000:00:0f.1: BAR 4: set to [io  0xd0000080-0xd000008f] (PCI address [0xd0000080-0xd000008f]
[    0.872264] pci_bus 0000:00: resource 0 [mem 0x0000fc20-0x0000feaf]
[    0.878535] pci_bus 0000:00: resource 1 [mem 0xfc000000-0xfc0fffff pref]
[    0.885241] pci_bus 0000:00: resource 2 [io  0xd0000000-0xdffcffff]
[    0.891514] pci_bus 0000:01: resource 0 [mem 0x0000feb0-0x0000febf]
[    0.897786] pci_bus 0000:01: resource 1 [mem 0xfc100000-0xfc1fffff pref]
[    0.904491] pci_bus 0000:01: resource 2 [io  0xe0000000-0xeffcffff]
[    0.910838] NET: Registered protocol family 2
[    0.915421] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.923336] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.935396] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
[    0.959580] TCP: Hash tables configured (established 131072 bind 65536)
[    0.966321] TCP reno registered
[    0.969769] NET: Registered protocol family 1
[    0.974611] RPC: Registered udp transport module.
[    0.979356] RPC: Registered tcp transport module.
[    0.984066] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.990546] pci 0000:00:00.0: calling quirk_cardbus_legacy+0x0/0x21
[    0.996832] pci 0000:00:00.0: calling quirk_usb_early_handoff+0x0/0x42
[    1.003392] pci 0000:00:00.0: calling pci_fixup_video+0x0/0x93
[    1.009243] pci 0000:00:00.1: calling quirk_cardbus_legacy+0x0/0x21
[    1.015518] pci 0000:00:00.1: calling quirk_usb_early_handoff+0x0/0x42
[    1.022051] pci 0000:00:00.1: calling pci_fixup_video+0x0/0x93
[    1.027898] pci 0000:00:05.0: calling quirk_e100_interrupt+0x0/0x15a
[    1.034261] pci 0000:00:05.0: calling quirk_cardbus_legacy+0x0/0x21
[    1.040534] pci 0000:00:05.0: calling quirk_usb_early_handoff+0x0/0x42
[    1.047067] pci 0000:00:05.0: calling pci_fixup_video+0x0/0x93
[    1.052914] pci 0000:00:06.0: calling quirk_e100_interrupt+0x0/0x15a
[    1.059275] pci 0000:00:06.0: calling quirk_cardbus_legacy+0x0/0x21
[    1.065547] pci 0000:00:06.0: calling quirk_usb_early_handoff+0x0/0x42
[    1.072081] pci 0000:00:06.0: calling pci_fixup_video+0x0/0x93
[    1.077927] pci 0000:00:07.0: calling quirk_cardbus_legacy+0x0/0x21
[    1.084200] pci 0000:00:07.0: calling quirk_usb_early_handoff+0x0/0x42
[    1.090731] pci 0000:00:07.0: calling pci_fixup_video+0x0/0x93
[    1.096569] pci 0000:00:07.0: Boot video device
[    1.101115] pci 0000:00:0f.0: calling quirk_cardbus_legacy+0x0/0x21
[    1.107388] pci 0000:00:0f.0: calling quirk_usb_early_handoff+0x0/0x42
[    1.113920] pci 0000:00:0f.0: calling pci_fixup_video+0x0/0x93
[    1.119767] pci 0000:00:0f.1: calling quirk_cardbus_legacy+0x0/0x21
[    1.126040] pci 0000:00:0f.1: calling quirk_usb_early_handoff+0x0/0x42
[    1.132572] pci 0000:00:0f.1: calling pci_fixup_video+0x0/0x93
[    1.138419] pci 0000:00:0f.2: calling quirk_cardbus_legacy+0x0/0x21
[    1.144693] pci 0000:00:0f.2: calling quirk_usb_early_handoff+0x0/0x42
[    1.151226] pci 0000:00:0f.2: calling pci_fixup_video+0x0/0x93
[    1.157069] PCI: CLS 32 bytes, default 32
[    1.161496] Unpacking initramfs...
[    1.215295] Freeing initrd memory: 743k freed
[    1.222893] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    1.233116] microcode: CPU0 sig=0x68a, pf=0x10, revision=0x1
[    1.239091] Microcode Update Driver: v2.00 <tigran@xxxxxxxxxxxxxxxxxxxx>, Peter Oruba
[    1.247014] Scanning for low memory corruption every 60 seconds
[    1.274346] fuse init (API version 7.13)
[    1.279192] msgmni has been set to 1757
[    1.284366] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    1.291855] io scheduler noop registered
[    1.295785] io scheduler deadline registered (default)
[    1.301329] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.323910] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.331064] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.337897] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.345861] Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
[    1.352337] Copyright (c) 1999-2006 Intel Corporation.
[    1.357756] e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
[    1.363731] e1000e: Copyright (c) 1999-2008 Intel Corporation.
[    1.369809] vcan: Virtual CAN interface driver
[    1.374273] CAN device driver interface
[    1.378114] sja1000 CAN netdevice driver
[    1.382570] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[    1.388683] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.394269] e100 0000:00:05.0: PCI->APIC IRQ transform: INT A -> IRQ 17
[    1.400889] e100: 0000:00:05.0: e100_probe: Cannot find proper PCI device base address, aborting.
[    1.409840] e100 0000:00:06.0: PCI->APIC IRQ transform: INT A -> IRQ 18
[    1.416457] e100: 0000:00:06.0: e100_probe: Cannot find proper PCI device base address, aborting.
[    1.425552] tun: Universal TUN/TAP device driver, 1.6
[    1.430634] tun: (C) 1999-2004 Max Krasnyansky <maxk@xxxxxxxxxxxx>
[    1.437934] PNP: No PS/2 controller found. Probing ports directly.
[    1.447590] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.452651] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.457709] Clocksource tsc unstable (delta = 227561390 ns)
[    1.464264] Switching to clocksource jiffies
[    1.469528] mice: PS/2 mouse device common for all mice
[    1.473658] Driver 'rtc_cmos' needs updating - please use bus_type methods
[    1.477576] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    1.480657] rtc0: alarms up to one day, 114 bytes nvram
[    1.484758] i2c /dev entries driver
[    1.489435] piix4_smbus 0000:00:0f.0: SMBus Host Controller at 0x440, revision 0
[    1.494102] cpuidle: using governor ladder
[    1.496620] cpuidle: using governor menu
[    1.500897] TCP cubic registered
[    1.504611] NET: Registered protocol family 17
[    1.508851] can: controller area network core (rev 20090105 abi 8)
[    1.512704] NET: Registered protocol family 29
[    1.516566] can: raw protocol (rev 20090105)
[    1.520603] can: broadcast manager protocol (rev 20090105 t)
[    1.524580] Using IPI Shortcut mode
[    1.529436] rtc_cmos rtc_cmos: setting system clock to 2009-11-16 19:47:54 UTC (1258400874)
[    1.532827] Freeing unused kernel memory: 256k freed
[    1.537308] Write protecting the kernel text: 2068k
[    1.540755] Write protecting the kernel read-only data: 932k
[    1.549545] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0

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