All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
@ 2014-05-14 20:43 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-05-14 20:43 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie

With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret
introduced a efifb vga_default_device() so that EFI systems that do not
load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
attribute on the corresponding PCI device.

Xorg is refusing to autodetect devices when boot_vga=0 which is the case
on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
into common function in vgaarb.c].

Other architectures with PCI GPU might need a similar fixup.

Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
      as a stub that returns NULL, making this adjustment insufficient.
      In addition, with the merge of x86/ia64 fixup code, this would
      also result in disabled fixup.
      Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
This is ported to changes in pci/fixup.c that landed in 3.15-rcs.

Is this fine to go in, if so who will take it?

I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
which added moving the ia64 pci boot_vga fixup).
I've been running this revision for a week or so on 3.15-rc kernels here
(mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
where the patch was not required).


 arch/ia64/pci/fixup.c       | 56 ++-------------------------------
 arch/x86/include/asm/vga.h  |  6 ----
 arch/x86/pci/fixup.c        | 55 +--------------------------------
 drivers/gpu/vga/vgaarb.c    | 75 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 -----------------------
 include/linux/vgaarb.h      | 37 ++++++++++++++++++++++
 6 files changed, 116 insertions(+), 151 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,64 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,60 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
@ 2014-05-14 20:43 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-05-14 20:43 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list

With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret
introduced a efifb vga_default_device() so that EFI systems that do not
load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
attribute on the corresponding PCI device.

Xorg is refusing to autodetect devices when boot_vga=0 which is the case
on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
into common function in vgaarb.c].

Other architectures with PCI GPU might need a similar fixup.

Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
      as a stub that returns NULL, making this adjustment insufficient.
      In addition, with the merge of x86/ia64 fixup code, this would
      also result in disabled fixup.
      Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
This is ported to changes in pci/fixup.c that landed in 3.15-rcs.

Is this fine to go in, if so who will take it?

I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
which added moving the ia64 pci boot_vga fixup).
I've been running this revision for a week or so on 3.15-rc kernels here
(mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
where the patch was not required).


 arch/ia64/pci/fixup.c       | 56 ++-------------------------------
 arch/x86/include/asm/vga.h  |  6 ----
 arch/x86/pci/fixup.c        | 55 +--------------------------------
 drivers/gpu/vga/vgaarb.c    | 75 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 -----------------------
 include/linux/vgaarb.h      | 37 ++++++++++++++++++++++
 6 files changed, 116 insertions(+), 151 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,64 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,60 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
  2014-05-14 20:43 ` Bruno Prémont
@ 2014-05-27 23:42   ` Bjorn Helgaas
  -1 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-05-27 23:42 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: DRI mailing list, Linux PCI, Dave Airlie

On Wed, May 14, 2014 at 10:43:39PM +0200, Bruno Prémont wrote:
> With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret

I think there's an emerging convention to use reference commits as
<12-char-SHA1> ("subject"), i.e.,

    b4aa0163056b ("efifb: Implement vga_default_device() (v2)")

for this case.  Also, s/Garret/Garrett/.

> introduced a efifb vga_default_device() so that EFI systems that do not
> load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
> attribute on the corresponding PCI device.
> 
> Xorg is refusing to autodetect devices when boot_vga=0 which is the case
> on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
> into common function in vgaarb.c].

I think it would be good to split this into two patches:

  1) Merge the x86 and ia64 pci_fixup_video() implementations.  This should
  have no functional change at all.

  2) Whatever else you need to actually fix the bug.  This will be much
  smaller, and the actual bug fix will be easier to see.

It would also be nice to have a URL for a bugzilla or mailing list report
of the problem, where there might be dmesg and/or Xorg logs.

This sounds like it might be applicable for the stable kernels.  If so, you
probably should order these so the small bug-fix comes first (even though
this may mean applying the same bugfix for x86 and ia64), and the merge
second.  That way the fix can be applied to the stable kernels without the
merge.

> Other architectures with PCI GPU might need a similar fixup.
> 
> Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
>       as a stub that returns NULL, making this adjustment insufficient.
>       In addition, with the merge of x86/ia64 fixup code, this would
>       also result in disabled fixup.
>       Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.

I'm not quite sure what this means, or if this is hint that something is
still wrong even with this patch.  Do you mean that if CONFIG_VGA_ARB is
unset, something still doesn't work?

Maybe this will become obvious to me when you split up the patch.

> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
> This is ported to changes in pci/fixup.c that landed in 3.15-rcs.
> 
> Is this fine to go in, if so who will take it?
> 
> I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
> which added moving the ia64 pci boot_vga fixup).
> I've been running this revision for a week or so on 3.15-rc kernels here
> (mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
> where the patch was not required).
> 
> 
>  arch/ia64/pci/fixup.c       | 56 ++-------------------------------
>  arch/x86/include/asm/vga.h  |  6 ----
>  arch/x86/pci/fixup.c        | 55 +--------------------------------
>  drivers/gpu/vga/vgaarb.c    | 75 +++++++++++++++++++++++++++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 -----------------------
>  include/linux/vgaarb.h      | 37 ++++++++++++++++++++++
>  6 files changed, 116 insertions(+), 151 deletions(-)
> 
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..5df22f9 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -9,64 +9,14 @@
>  
>  #include <asm/machvec.h>
>  
> -/*
> - * Fixup to mark boot BIOS video selected by BIOS before it changes
> - *
> - * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> - *
> - * The standard boot ROM sequence for an x86 machine uses the BIOS
> - * to select an initial video card for boot display. This boot video
> - * card will have it's BIOS copied to C0000 in system RAM.
> - * IORESOURCE_ROM_SHADOW is used to associate the boot video
> - * card with this copy. On laptops this copy has to be used since
> - * the main ROM may be compressed or combined with another image.
> - * See pci_map_rom() for use of this flag. Before marking the device
> - * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> - * by either arch cde or vga-arbitration, if so only apply the fixup to this
> - * already determined primary video card.
> - */
> -
> -static void pci_fixup_video(struct pci_dev *pdev)
> +static void pci_ia64_fixup_video(struct pci_dev *pdev)
>  {
> -	struct pci_dev *bridge;
> -	struct pci_bus *bus;
> -	u16 config;
> -
>  	if ((strcmp(ia64_platform_name, "dig") != 0)
>  	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> -	/* Is VGA routed to us? */
> -	bus = pdev->bus;
> -	while (bus) {
> -		bridge = bus->self;
> -
> -		/*
> -		 * From information provided by
> -		 * "David Miller" <davem@davemloft.net>
> -		 * The bridge control register is valid for PCI header
> -		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> -		 * PCI header type NORMAL.
> -		 */
> -		if (bridge
> -		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> -		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
> -			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> -						&config);
> -			if (!(config & PCI_BRIDGE_CTL_VGA))
> -				return;
> -		}
> -		bus = bus->parent;
> -	}
> -	if (!vga_default_device() || pdev == vga_default_device()) {
> -		pci_read_config_word(pdev, PCI_COMMAND, &config);
> -		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> -			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -			vga_set_default_device(pdev);
> -		}
> -	}
> +	pci_fixup_video(pdev);
>  }
>  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
> -				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
> +				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..b599847 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -302,60 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
>  
> -/*
> - * Fixup to mark boot BIOS video selected by BIOS before it changes
> - *
> - * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> - *
> - * The standard boot ROM sequence for an x86 machine uses the BIOS
> - * to select an initial video card for boot display. This boot video
> - * card will have it's BIOS copied to C0000 in system RAM.
> - * IORESOURCE_ROM_SHADOW is used to associate the boot video
> - * card with this copy. On laptops this copy has to be used since
> - * the main ROM may be compressed or combined with another image.
> - * See pci_map_rom() for use of this flag. Before marking the device
> - * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> - * by either arch cde or vga-arbitration, if so only apply the fixup to this
> - * already determined primary video card.
> - */
> -
> -static void pci_fixup_video(struct pci_dev *pdev)
> -{
> -	struct pci_dev *bridge;
> -	struct pci_bus *bus;
> -	u16 config;
> -
> -	/* Is VGA routed to us? */
> -	bus = pdev->bus;
> -	while (bus) {
> -		bridge = bus->self;
> -
> -		/*
> -		 * From information provided by
> -		 * "David Miller" <davem@davemloft.net>
> -		 * The bridge control register is valid for PCI header
> -		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> -		 * PCI header type NORMAL.
> -		 */
> -		if (bridge
> -		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> -		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
> -			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> -						&config);
> -			if (!(config & PCI_BRIDGE_CTL_VGA))
> -				return;
> -		}
> -		bus = bus->parent;
> -	}
> -	if (!vga_default_device() || pdev == vga_default_device()) {
> -		pci_read_config_word(pdev, PCI_COMMAND, &config);
> -		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> -			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -			vga_set_default_device(pdev);
> -		}
> -	}
> -}
> +/* pci_fixup_video shared in vgaarb.c */
>  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
>  				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
>  
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index af02597..f0fbdf6 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
>  }
>  #endif
>  
> +/*
> + * Fixup to mark boot BIOS video selected by BIOS before it changes
> + *
> + * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> + *
> + * The standard boot ROM sequence for an x86 machine uses the BIOS
> + * to select an initial video card for boot display. This boot video
> + * card will have it's BIOS copied to C0000 in system RAM.
> + * IORESOURCE_ROM_SHADOW is used to associate the boot video
> + * card with this copy. On laptops this copy has to be used since
> + * the main ROM may be compressed or combined with another image.
> + * See pci_map_rom() for use of this flag. Before marking the device
> + * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> + * by either arch cde or vga-arbitration, if so only apply the fixup to this
> + * already determined primary video card.
> + */
> +
> +void pci_fixup_video(struct pci_dev *pdev)
> +{
> +	struct pci_dev *bridge;
> +	struct pci_bus *bus;
> +	u16 config;
> +
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
> +	/* Is VGA routed to us? */
> +	bus = pdev->bus;
> +	while (bus) {
> +		bridge = bus->self;
> +
> +		/*
> +		 * From information provided by
> +		 * "David Miller" <davem@davemloft.net>
> +		 * The bridge control register is valid for PCI header
> +		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> +		 * PCI header type NORMAL.
> +		 */
> +		if (bridge
> +		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> +		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {

I have a patch in my pci/pci_is_bridge branch that will conflict with this,
but I'll take care of sorting that out.  You can continue to base your
patch on v3.15-rc1 or whatever you're using.

> +			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> +						&config);
> +			if (!(config & PCI_BRIDGE_CTL_VGA))
> +				return;
> +		}
> +		bus = bus->parent;
> +	}
> +	if (!vga_default_device() || pdev == vga_default_device()) {
> +		pci_read_config_word(pdev, PCI_COMMAND, &config);
> +		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> +			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> +			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> +			vga_set_default_device(pdev);
> +		}
> +	}
> +}
> +
>  static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
>  {
>  	if (vgadev->irq_set_state)
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
> index 2c02f3a..6518460 100644
> --- a/include/linux/vgaarb.h
> +++ b/include/linux/vgaarb.h
> @@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
>  #define vga_put(pdev, rsrc)
>  #endif
>  
> +/**
> + *     pci_fixup_video
> + *
> + *     This can be called by arch PCI to fixup boot VGA tagging
> + *     of VGA PCI devices (e.g. for X86, IA64)
> + *
> + *     This code was initially spread/duplicated across:
> + *     - X86 PCI-fixup
> + *     - IA64 PCI-fixup
> + *     - EFI_FB
> + *
> + *     * PCI-fixup part:
> + *     Fixup to mark boot BIOS video selected by BIOS before it changes
> + *
> + *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> + *
> + *     The standard boot ROM sequence for an x86 machine uses the BIOS
> + *     to select an initial video card for boot display. This boot video
> + *     card will have it's BIOS copied to C0000 in system RAM.
> + *     IORESOURCE_ROM_SHADOW is used to associate the boot video
> + *     card with this copy. On laptops this copy has to be used since
> + *     the main ROM may be compressed or combined with another image.
> + *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
> + *     is marked here since the boot video device will be the only enabled
> + *     video device at this point.
> + *
> + *     * EFI_FB part:
> + *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
> + *     shadow Video-BIOS and thus can only be detected by framebuffer
> + *     IO memory range. Flag the corresponding GPU as boot_vga.
> + */

I would fold this information into the comment at the function definition.
It looks like pci_fixup_video() is only called as a quirk, so there aren't
going to be random callers that will look for information at this
declaration.

> +
> +#if defined(CONFIG_VGA_ARB)
> +void pci_fixup_video(struct pci_dev *pdev);
> +#else
> +static inline void pci_fixup_video(struct pci_dev *pdev) { }
> +#endif
>  
>  /**
>   *     vga_default_device

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
@ 2014-05-27 23:42   ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-05-27 23:42 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: Linux PCI, DRI mailing list

On Wed, May 14, 2014 at 10:43:39PM +0200, Bruno Prémont wrote:
> With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret

I think there's an emerging convention to use reference commits as
<12-char-SHA1> ("subject"), i.e.,

    b4aa0163056b ("efifb: Implement vga_default_device() (v2)")

for this case.  Also, s/Garret/Garrett/.

> introduced a efifb vga_default_device() so that EFI systems that do not
> load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
> attribute on the corresponding PCI device.
> 
> Xorg is refusing to autodetect devices when boot_vga=0 which is the case
> on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
> into common function in vgaarb.c].

I think it would be good to split this into two patches:

  1) Merge the x86 and ia64 pci_fixup_video() implementations.  This should
  have no functional change at all.

  2) Whatever else you need to actually fix the bug.  This will be much
  smaller, and the actual bug fix will be easier to see.

It would also be nice to have a URL for a bugzilla or mailing list report
of the problem, where there might be dmesg and/or Xorg logs.

This sounds like it might be applicable for the stable kernels.  If so, you
probably should order these so the small bug-fix comes first (even though
this may mean applying the same bugfix for x86 and ia64), and the merge
second.  That way the fix can be applied to the stable kernels without the
merge.

> Other architectures with PCI GPU might need a similar fixup.
> 
> Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
>       as a stub that returns NULL, making this adjustment insufficient.
>       In addition, with the merge of x86/ia64 fixup code, this would
>       also result in disabled fixup.
>       Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.

I'm not quite sure what this means, or if this is hint that something is
still wrong even with this patch.  Do you mean that if CONFIG_VGA_ARB is
unset, something still doesn't work?

Maybe this will become obvious to me when you split up the patch.

> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
> This is ported to changes in pci/fixup.c that landed in 3.15-rcs.
> 
> Is this fine to go in, if so who will take it?
> 
> I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
> which added moving the ia64 pci boot_vga fixup).
> I've been running this revision for a week or so on 3.15-rc kernels here
> (mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
> where the patch was not required).
> 
> 
>  arch/ia64/pci/fixup.c       | 56 ++-------------------------------
>  arch/x86/include/asm/vga.h  |  6 ----
>  arch/x86/pci/fixup.c        | 55 +--------------------------------
>  drivers/gpu/vga/vgaarb.c    | 75 +++++++++++++++++++++++++++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 -----------------------
>  include/linux/vgaarb.h      | 37 ++++++++++++++++++++++
>  6 files changed, 116 insertions(+), 151 deletions(-)
> 
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..5df22f9 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -9,64 +9,14 @@
>  
>  #include <asm/machvec.h>
>  
> -/*
> - * Fixup to mark boot BIOS video selected by BIOS before it changes
> - *
> - * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> - *
> - * The standard boot ROM sequence for an x86 machine uses the BIOS
> - * to select an initial video card for boot display. This boot video
> - * card will have it's BIOS copied to C0000 in system RAM.
> - * IORESOURCE_ROM_SHADOW is used to associate the boot video
> - * card with this copy. On laptops this copy has to be used since
> - * the main ROM may be compressed or combined with another image.
> - * See pci_map_rom() for use of this flag. Before marking the device
> - * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> - * by either arch cde or vga-arbitration, if so only apply the fixup to this
> - * already determined primary video card.
> - */
> -
> -static void pci_fixup_video(struct pci_dev *pdev)
> +static void pci_ia64_fixup_video(struct pci_dev *pdev)
>  {
> -	struct pci_dev *bridge;
> -	struct pci_bus *bus;
> -	u16 config;
> -
>  	if ((strcmp(ia64_platform_name, "dig") != 0)
>  	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> -	/* Is VGA routed to us? */
> -	bus = pdev->bus;
> -	while (bus) {
> -		bridge = bus->self;
> -
> -		/*
> -		 * From information provided by
> -		 * "David Miller" <davem@davemloft.net>
> -		 * The bridge control register is valid for PCI header
> -		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> -		 * PCI header type NORMAL.
> -		 */
> -		if (bridge
> -		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> -		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
> -			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> -						&config);
> -			if (!(config & PCI_BRIDGE_CTL_VGA))
> -				return;
> -		}
> -		bus = bus->parent;
> -	}
> -	if (!vga_default_device() || pdev == vga_default_device()) {
> -		pci_read_config_word(pdev, PCI_COMMAND, &config);
> -		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> -			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -			vga_set_default_device(pdev);
> -		}
> -	}
> +	pci_fixup_video(pdev);
>  }
>  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
> -				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
> +				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..b599847 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -302,60 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
>  
> -/*
> - * Fixup to mark boot BIOS video selected by BIOS before it changes
> - *
> - * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> - *
> - * The standard boot ROM sequence for an x86 machine uses the BIOS
> - * to select an initial video card for boot display. This boot video
> - * card will have it's BIOS copied to C0000 in system RAM.
> - * IORESOURCE_ROM_SHADOW is used to associate the boot video
> - * card with this copy. On laptops this copy has to be used since
> - * the main ROM may be compressed or combined with another image.
> - * See pci_map_rom() for use of this flag. Before marking the device
> - * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> - * by either arch cde or vga-arbitration, if so only apply the fixup to this
> - * already determined primary video card.
> - */
> -
> -static void pci_fixup_video(struct pci_dev *pdev)
> -{
> -	struct pci_dev *bridge;
> -	struct pci_bus *bus;
> -	u16 config;
> -
> -	/* Is VGA routed to us? */
> -	bus = pdev->bus;
> -	while (bus) {
> -		bridge = bus->self;
> -
> -		/*
> -		 * From information provided by
> -		 * "David Miller" <davem@davemloft.net>
> -		 * The bridge control register is valid for PCI header
> -		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> -		 * PCI header type NORMAL.
> -		 */
> -		if (bridge
> -		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> -		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
> -			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> -						&config);
> -			if (!(config & PCI_BRIDGE_CTL_VGA))
> -				return;
> -		}
> -		bus = bus->parent;
> -	}
> -	if (!vga_default_device() || pdev == vga_default_device()) {
> -		pci_read_config_word(pdev, PCI_COMMAND, &config);
> -		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> -			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -			vga_set_default_device(pdev);
> -		}
> -	}
> -}
> +/* pci_fixup_video shared in vgaarb.c */
>  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
>  				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
>  
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index af02597..f0fbdf6 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
>  }
>  #endif
>  
> +/*
> + * Fixup to mark boot BIOS video selected by BIOS before it changes
> + *
> + * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> + *
> + * The standard boot ROM sequence for an x86 machine uses the BIOS
> + * to select an initial video card for boot display. This boot video
> + * card will have it's BIOS copied to C0000 in system RAM.
> + * IORESOURCE_ROM_SHADOW is used to associate the boot video
> + * card with this copy. On laptops this copy has to be used since
> + * the main ROM may be compressed or combined with another image.
> + * See pci_map_rom() for use of this flag. Before marking the device
> + * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
> + * by either arch cde or vga-arbitration, if so only apply the fixup to this
> + * already determined primary video card.
> + */
> +
> +void pci_fixup_video(struct pci_dev *pdev)
> +{
> +	struct pci_dev *bridge;
> +	struct pci_bus *bus;
> +	u16 config;
> +
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
> +	/* Is VGA routed to us? */
> +	bus = pdev->bus;
> +	while (bus) {
> +		bridge = bus->self;
> +
> +		/*
> +		 * From information provided by
> +		 * "David Miller" <davem@davemloft.net>
> +		 * The bridge control register is valid for PCI header
> +		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
> +		 * PCI header type NORMAL.
> +		 */
> +		if (bridge
> +		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
> +		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {

I have a patch in my pci/pci_is_bridge branch that will conflict with this,
but I'll take care of sorting that out.  You can continue to base your
patch on v3.15-rc1 or whatever you're using.

> +			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
> +						&config);
> +			if (!(config & PCI_BRIDGE_CTL_VGA))
> +				return;
> +		}
> +		bus = bus->parent;
> +	}
> +	if (!vga_default_device() || pdev == vga_default_device()) {
> +		pci_read_config_word(pdev, PCI_COMMAND, &config);
> +		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
> +			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> +			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> +			vga_set_default_device(pdev);
> +		}
> +	}
> +}
> +
>  static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
>  {
>  	if (vgadev->irq_set_state)
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
> index 2c02f3a..6518460 100644
> --- a/include/linux/vgaarb.h
> +++ b/include/linux/vgaarb.h
> @@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
>  #define vga_put(pdev, rsrc)
>  #endif
>  
> +/**
> + *     pci_fixup_video
> + *
> + *     This can be called by arch PCI to fixup boot VGA tagging
> + *     of VGA PCI devices (e.g. for X86, IA64)
> + *
> + *     This code was initially spread/duplicated across:
> + *     - X86 PCI-fixup
> + *     - IA64 PCI-fixup
> + *     - EFI_FB
> + *
> + *     * PCI-fixup part:
> + *     Fixup to mark boot BIOS video selected by BIOS before it changes
> + *
> + *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
> + *
> + *     The standard boot ROM sequence for an x86 machine uses the BIOS
> + *     to select an initial video card for boot display. This boot video
> + *     card will have it's BIOS copied to C0000 in system RAM.
> + *     IORESOURCE_ROM_SHADOW is used to associate the boot video
> + *     card with this copy. On laptops this copy has to be used since
> + *     the main ROM may be compressed or combined with another image.
> + *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
> + *     is marked here since the boot video device will be the only enabled
> + *     video device at this point.
> + *
> + *     * EFI_FB part:
> + *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
> + *     shadow Video-BIOS and thus can only be detected by framebuffer
> + *     IO memory range. Flag the corresponding GPU as boot_vga.
> + */

I would fold this information into the comment at the function definition.
It looks like pci_fixup_video() is only called as a quirk, so there aren't
going to be random callers that will look for information at this
declaration.

> +
> +#if defined(CONFIG_VGA_ARB)
> +void pci_fixup_video(struct pci_dev *pdev);
> +#else
> +static inline void pci_fixup_video(struct pci_dev *pdev) { }
> +#endif
>  
>  /**
>   *     vga_default_device

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
  2014-05-27 23:42   ` Bjorn Helgaas
@ 2014-06-02 18:16     ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:16 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie

On Tue, 27 May 2014 Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Wed, May 14, 2014 at 10:43:39PM +0200, Bruno Prémont wrote:
> > With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret
> 
> I think there's an emerging convention to use reference commits as
> <12-char-SHA1> ("subject"), i.e.,
> 
>     b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> 
> for this case.  Also, s/Garret/Garrett/.

Adjusted

> > introduced a efifb vga_default_device() so that EFI systems that do not
> > load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
> > attribute on the corresponding PCI device.
> > 
> > Xorg is refusing to autodetect devices when boot_vga=0 which is the case
> > on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> > the dri device but then bails out with "no devices detected".
> > 
> > With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> > while having native drivers for the GPU also makes selecting
> > sysfb/efifb optional.
> > 
> > Remove the efifb implementation of vga_default_device() and initialize
> > vgaarb's vga_default_device() with the PCI GPU that matches boot
> > screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
> > into common function in vgaarb.c].
> 
> I think it would be good to split this into two patches:
> 
>   1) Merge the x86 and ia64 pci_fixup_video() implementations.  This should
>   have no functional change at all.
> 
>   2) Whatever else you need to actually fix the bug.  This will be much
>   smaller, and the actual bug fix will be easier to see.
> 
> It would also be nice to have a URL for a bugzilla or mailing list report
> of the problem, where there might be dmesg and/or Xorg logs.
> 
> This sounds like it might be applicable for the stable kernels.  If so, you
> probably should order these so the small bug-fix comes first (even though
> this may mean applying the same bugfix for x86 and ia64), and the merge
> second.  That way the fix can be applied to the stable kernels without the
> merge.

Split up patches come in reply to this mail

> > Other architectures with PCI GPU might need a similar fixup.
> > 
> > Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
> >       as a stub that returns NULL, making this adjustment insufficient.
> >       In addition, with the merge of x86/ia64 fixup code, this would
> >       also result in disabled fixup.
> >       Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.
> 
> I'm not quite sure what this means, or if this is hint that something is
> still wrong even with this patch.  Do you mean that if CONFIG_VGA_ARB is
> unset, something still doesn't work?
> 
> Maybe this will become obvious to me when you split up the patch.

This means that if someone unsets CONFIG_VGA_ARB (he need to set CONFIG_EXPERT
to do so) the fixup will not happen at all.

Without fixup the systems that need to set the IORESOURCE_ROM_SHADOW
flag will not have it, and boot_vga pci device attribute will be 0
more often as well.

Moving the unified function somewhere else than vgaarb.c would fix the new
IORESOURCE_ROM_SHADOW fixup dependency on VGA_ARB, though not prevent the
issue I try to fix as vga_default_device() always returns NULL without VGA_ARB.

One possible location would be drivers/pci/quirks.c.

Bruno

> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> > This is ported to changes in pci/fixup.c that landed in 3.15-rcs.
> > 
> > Is this fine to go in, if so who will take it?
> > 
> > I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
> > which added moving the ia64 pci boot_vga fixup).
> > I've been running this revision for a week or so on 3.15-rc kernels here
> > (mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
> > where the patch was not required).

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb
@ 2014-06-02 18:16     ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:16 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list

On Tue, 27 May 2014 Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Wed, May 14, 2014 at 10:43:39PM +0200, Bruno Prémont wrote:
> > With commit b4aa0163056b6c70029b6e8619ce07c274351f42 Matthew Garret
> 
> I think there's an emerging convention to use reference commits as
> <12-char-SHA1> ("subject"), i.e.,
> 
>     b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> 
> for this case.  Also, s/Garret/Garrett/.

Adjusted

> > introduced a efifb vga_default_device() so that EFI systems that do not
> > load shadow VBIOS or setup VGA get proper value for boot_vga PCI sysfs
> > attribute on the corresponding PCI device.
> > 
> > Xorg is refusing to autodetect devices when boot_vga=0 which is the case
> > on some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> > the dri device but then bails out with "no devices detected".
> > 
> > With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> > while having native drivers for the GPU also makes selecting
> > sysfb/efifb optional.
> > 
> > Remove the efifb implementation of vga_default_device() and initialize
> > vgaarb's vga_default_device() with the PCI GPU that matches boot
> > screen_info in pci_fixup_video() [x86 and ia64 pci_fixup_video merged
> > into common function in vgaarb.c].
> 
> I think it would be good to split this into two patches:
> 
>   1) Merge the x86 and ia64 pci_fixup_video() implementations.  This should
>   have no functional change at all.
> 
>   2) Whatever else you need to actually fix the bug.  This will be much
>   smaller, and the actual bug fix will be easier to see.
> 
> It would also be nice to have a URL for a bugzilla or mailing list report
> of the problem, where there might be dmesg and/or Xorg logs.
> 
> This sounds like it might be applicable for the stable kernels.  If so, you
> probably should order these so the small bug-fix comes first (even though
> this may mean applying the same bugfix for x86 and ia64), and the merge
> second.  That way the fix can be applied to the stable kernels without the
> merge.

Split up patches come in reply to this mail

> > Other architectures with PCI GPU might need a similar fixup.
> > 
> > Note: If CONFIG_VGA_ARB is unset vga_default_device() is only available
> >       as a stub that returns NULL, making this adjustment insufficient.
> >       In addition, with the merge of x86/ia64 fixup code, this would
> >       also result in disabled fixup.
> >       Unsetting CONFIG_VGA_ARB requires CONFIG_EXPERT=y though.
> 
> I'm not quite sure what this means, or if this is hint that something is
> still wrong even with this patch.  Do you mean that if CONFIG_VGA_ARB is
> unset, something still doesn't work?
> 
> Maybe this will become obvious to me when you split up the patch.

This means that if someone unsets CONFIG_VGA_ARB (he need to set CONFIG_EXPERT
to do so) the fixup will not happen at all.

Without fixup the systems that need to set the IORESOURCE_ROM_SHADOW
flag will not have it, and boot_vga pci device attribute will be 0
more often as well.

Moving the unified function somewhere else than vgaarb.c would fix the new
IORESOURCE_ROM_SHADOW fixup dependency on VGA_ARB, though not prevent the
issue I try to fix as vga_default_device() always returns NULL without VGA_ARB.

One possible location would be drivers/pci/quirks.c.

Bruno

> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> > This is ported to changes in pci/fixup.c that landed in 3.15-rcs.
> > 
> > Is this fine to go in, if so who will take it?
> > 
> > I got no feedback on my last respin (on top of 3.14 a couple of weeks ago,
> > which added moving the ia64 pci boot_vga fixup).
> > I've been running this revision for a week or so on 3.15-rc kernels here
> > (mostly EFI-enabled system, the mentioned MBA as wells as non-Apple systems
> > where the patch was not required).
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 2/2] x86, ia64: Merge common vga fixup code
  2014-06-02 18:16     ` Bruno Prémont
@ 2014-06-02 18:19       ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:19 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie

The fixup code for PCI VGA devices in ia64 and x86 is mostly identical.

Merge it into a single function called from both sides.

The common code is moved to vgaarb.c which makes in dependant on
CONFIG_VGA_ARB.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
 arch/ia64/pci/fixup.c    | 77 ++----------------------------------------------
 arch/x86/pci/fixup.c     | 76 +----------------------------------------------
 drivers/gpu/vga/vgaarb.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/vgaarb.h   | 37 +++++++++++++++++++++++
 4 files changed, 116 insertions(+), 149 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index 9ed5bef..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,85 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 7246cf2..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,81 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2] x86, ia64: Merge common vga fixup code
@ 2014-06-02 18:19       ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:19 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list

The fixup code for PCI VGA devices in ia64 and x86 is mostly identical.

Merge it into a single function called from both sides.

The common code is moved to vgaarb.c which makes in dependant on
CONFIG_VGA_ARB.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
 arch/ia64/pci/fixup.c    | 77 ++----------------------------------------------
 arch/x86/pci/fixup.c     | 76 +----------------------------------------------
 drivers/gpu/vga/vgaarb.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/vgaarb.h   | 37 +++++++++++++++++++++++
 4 files changed, 116 insertions(+), 149 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index 9ed5bef..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,85 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 7246cf2..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,81 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-02 18:16     ` Bruno Prémont
@ 2014-06-02 18:19       ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:19 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie

With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
Matthew Garrett introduced a efifb vga_default_device() so that EFI
systems that do not load shadow VBIOS or setup VGA get proper value for
boot_vga PCI sysfs attribute on the corresponding PCI device.

Xorg is refusing to detect devices when boot_vga=0 which is the case on
some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

Note: When vga_default_device() is set boot_vga PCI sysfs attribute
reflects its state. When unset this attribute is 1 whenever
IORESOURCE_ROM_SHADOW flag is set.

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video().

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
 arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
 arch/x86/include/asm/vga.h  |  6 ------
 arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 --------------------------------------
 4 files changed, 42 insertions(+), 44 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..9ed5bef 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..7246cf2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-02 18:19       ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-02 18:19 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list

With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
Matthew Garrett introduced a efifb vga_default_device() so that EFI
systems that do not load shadow VBIOS or setup VGA get proper value for
boot_vga PCI sysfs attribute on the corresponding PCI device.

Xorg is refusing to detect devices when boot_vga=0 which is the case on
some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

Note: When vga_default_device() is set boot_vga PCI sysfs attribute
reflects its state. When unset this attribute is 1 whenever
IORESOURCE_ROM_SHADOW flag is set.

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video().

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
 arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
 arch/x86/include/asm/vga.h  |  6 ------
 arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 --------------------------------------
 4 files changed, 42 insertions(+), 44 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..9ed5bef 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..7246cf2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-02 18:19       ` Bruno Prémont
@ 2014-06-17 22:35         ` Bjorn Helgaas
  -1 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-06-17 22:35 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: DRI mailing list, Linux PCI, Dave Airlie

On Mon, Jun 02, 2014 at 08:19:26PM +0200, Bruno Prémont wrote:
> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> systems that do not load shadow VBIOS or setup VGA get proper value for
> boot_vga PCI sysfs attribute on the corresponding PCI device.
> 
> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> reflects its state. When unset this attribute is 1 whenever
> IORESOURCE_ROM_SHADOW flag is set.
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video().
> 
> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>  arch/x86/include/asm/vga.h  |  6 ------
>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>  4 files changed, 42 insertions(+), 44 deletions(-)

Something went wrong here.  It seems like the [2/2] patch should have
been [1/2], and this one should be [2/2].  And this one modifies both
arch/ia64/pci/fixup.c and arch/x86/pci/fixup.c, but the other patch
mostly combines them, so I don't see how this one applies.

And there were unrelated (trivial) changes to these files, so they
need to be rebased to v3.16-rc1.  I'd take care of the rebase, but
I don't understand the other stuff I mentioned.

Bjorn

> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..9ed5bef 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..7246cf2 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  	struct pci_bus *bus;
>  	u16 config;
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> -- 
> 1.8.5.5
> 

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-17 22:35         ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-06-17 22:35 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: Linux PCI, DRI mailing list

On Mon, Jun 02, 2014 at 08:19:26PM +0200, Bruno Prémont wrote:
> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> systems that do not load shadow VBIOS or setup VGA get proper value for
> boot_vga PCI sysfs attribute on the corresponding PCI device.
> 
> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> reflects its state. When unset this attribute is 1 whenever
> IORESOURCE_ROM_SHADOW flag is set.
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video().
> 
> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>  arch/x86/include/asm/vga.h  |  6 ------
>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>  4 files changed, 42 insertions(+), 44 deletions(-)

Something went wrong here.  It seems like the [2/2] patch should have
been [1/2], and this one should be [2/2].  And this one modifies both
arch/ia64/pci/fixup.c and arch/x86/pci/fixup.c, but the other patch
mostly combines them, so I don't see how this one applies.

And there were unrelated (trivial) changes to these files, so they
need to be rebased to v3.16-rc1.  I'd take care of the rebase, but
I don't understand the other stuff I mentioned.

Bjorn

> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..9ed5bef 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..7246cf2 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  	struct pci_bus *bus;
>  	u16 config;
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> -- 
> 1.8.5.5
> 

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-17 22:35         ` Bjorn Helgaas
@ 2014-06-18  6:09           ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-18  6:09 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie

On Tue, 17 Jun 2014 16:35:42 -0600 Bjorn Helgaas wrote:
> On Mon, Jun 02, 2014 at 08:19:26PM +0200, Bruno Prémont wrote:
> > With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> > Matthew Garrett introduced a efifb vga_default_device() so that EFI
> > systems that do not load shadow VBIOS or setup VGA get proper value for
> > boot_vga PCI sysfs attribute on the corresponding PCI device.
> > 
> > Xorg is refusing to detect devices when boot_vga=0 which is the case on
> > some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> > the dri device but then bails out with "no devices detected".
> > 
> > Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> > reflects its state. When unset this attribute is 1 whenever
> > IORESOURCE_ROM_SHADOW flag is set.
> > 
> > With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> > while having native drivers for the GPU also makes selecting
> > sysfb/efifb optional.
> > 
> > Remove the efifb implementation of vga_default_device() and initialize
> > vgaarb's vga_default_device() with the PCI GPU that matches boot
> > screen_info in pci_fixup_video().
> > 
> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> >  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
> >  arch/x86/include/asm/vga.h  |  6 ------
> >  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
> >  drivers/video/fbdev/efifb.c | 38 --------------------------------------
> >  4 files changed, 42 insertions(+), 44 deletions(-)
> 
> Something went wrong here.  It seems like the [2/2] patch should have
> been [1/2], and this one should be [2/2].  And this one modifies both
> arch/ia64/pci/fixup.c and arch/x86/pci/fixup.c, but the other patch
> mostly combines them, so I don't see how this one applies.

I ordered both patches the other way around from your explicit ordering
proposal following the stable kernel suggestion following it.

My patch 1/2 fixes the encountered issue and is the one that may go
stable while my patch 2/2 performs unification of common code.
The unification will need to be placed somewhere else than in vgaarb.c
if one wants to keep current fixup working with CONFIG_VGA_ARB=n.

> And there were unrelated (trivial) changes to these files, so they
> need to be rebased to v3.16-rc1.  I'd take care of the rebase, but
> I don't understand the other stuff I mentioned.

Ok

Bruno

> Bjorn
> 
> > diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> > index eee069a..9ed5bef 100644
> > --- a/arch/ia64/pci/fixup.c
> > +++ b/arch/ia64/pci/fixup.c
> > @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
> >  		return;
> >  	/* Maybe, this machine supports legacy memory map. */
> >  
> > +	if (!vga_default_device()) {
> > +		resource_size_t start, end;
> > +		int i;
> > +
> > +		/* Does firmware framebuffer belong to us? */
> > +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> > +				continue;
> > +
> > +			start = pci_resource_start(pdev, i);
> > +			end  = pci_resource_end(pdev, i);
> > +
> > +			if (!start || !end)
> > +				continue;
> > +
> > +			if (screen_info.lfb_base >= start &&
> > +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> > +				vga_set_default_device(pdev);
> > +		}
> > +	}
> > +
> >  	/* Is VGA routed to us? */
> >  	bus = pdev->bus;
> >  	while (bus) {
> > diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> > index 44282fb..c4b9dc2 100644
> > --- a/arch/x86/include/asm/vga.h
> > +++ b/arch/x86/include/asm/vga.h
> > @@ -17,10 +17,4 @@
> >  #define vga_readb(x) (*(x))
> >  #define vga_writeb(x, y) (*(y) = (x))
> >  
> > -#ifdef CONFIG_FB_EFI
> > -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> > -extern struct pci_dev *vga_default_device(void);
> > -extern void vga_set_default_device(struct pci_dev *pdev);
> > -#endif
> > -
> >  #endif /* _ASM_X86_VGA_H */
> > diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> > index 94ae9ae..7246cf2 100644
> > --- a/arch/x86/pci/fixup.c
> > +++ b/arch/x86/pci/fixup.c
> > @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
> >  	struct pci_bus *bus;
> >  	u16 config;
> >  
> > +	if (!vga_default_device()) {
> > +		resource_size_t start, end;
> > +		int i;
> > +
> > +		/* Does firmware framebuffer belong to us? */
> > +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> > +				continue;
> > +
> > +			start = pci_resource_start(pdev, i);
> > +			end  = pci_resource_end(pdev, i);
> > +
> > +			if (!start || !end)
> > +				continue;
> > +
> > +			if (screen_info.lfb_base >= start &&
> > +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> > +				vga_set_default_device(pdev);
> > +		}
> > +	}
> > +
> >  	/* Is VGA routed to us? */
> >  	bus = pdev->bus;
> >  	while (bus) {
> > diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> > index ae9618f..a033180 100644
> > --- a/drivers/video/fbdev/efifb.c
> > +++ b/drivers/video/fbdev/efifb.c
> > @@ -19,8 +19,6 @@
> >  
> >  static bool request_mem_succeeded = false;
> >  
> > -static struct pci_dev *default_vga;
> > -
> >  static struct fb_var_screeninfo efifb_defined = {
> >  	.activate		= FB_ACTIVATE_NOW,
> >  	.height			= -1,
> > @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
> >  	.fb_imageblit	= cfb_imageblit,
> >  };
> >  
> > -struct pci_dev *vga_default_device(void)
> > -{
> > -	return default_vga;
> > -}
> > -
> > -EXPORT_SYMBOL_GPL(vga_default_device);
> > -
> > -void vga_set_default_device(struct pci_dev *pdev)
> > -{
> > -	default_vga = pdev;
> > -}
> > -
> >  static int efifb_setup(char *options)
> >  {
> >  	char *this_opt;
> > @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
> >  		}
> >  	}
> >  
> > -	for_each_pci_dev(dev) {
> > -		int i;
> > -
> > -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> > -			continue;
> > -
> > -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > -			resource_size_t start, end;
> > -
> > -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> > -				continue;
> > -
> > -			start = pci_resource_start(dev, i);
> > -			end  = pci_resource_end(dev, i);
> > -
> > -			if (!start || !end)
> > -				continue;
> > -
> > -			if (screen_info.lfb_base >= start &&
> > -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> > -				default_vga = dev;
> > -		}
> > -	}
> > -
> >  	return 0;
> >  }
> >  
> > -- 
> > 1.8.5.5
> > 

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-18  6:09           ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-18  6:09 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list

On Tue, 17 Jun 2014 16:35:42 -0600 Bjorn Helgaas wrote:
> On Mon, Jun 02, 2014 at 08:19:26PM +0200, Bruno Prémont wrote:
> > With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> > Matthew Garrett introduced a efifb vga_default_device() so that EFI
> > systems that do not load shadow VBIOS or setup VGA get proper value for
> > boot_vga PCI sysfs attribute on the corresponding PCI device.
> > 
> > Xorg is refusing to detect devices when boot_vga=0 which is the case on
> > some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> > the dri device but then bails out with "no devices detected".
> > 
> > Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> > reflects its state. When unset this attribute is 1 whenever
> > IORESOURCE_ROM_SHADOW flag is set.
> > 
> > With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> > while having native drivers for the GPU also makes selecting
> > sysfb/efifb optional.
> > 
> > Remove the efifb implementation of vga_default_device() and initialize
> > vgaarb's vga_default_device() with the PCI GPU that matches boot
> > screen_info in pci_fixup_video().
> > 
> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> >  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
> >  arch/x86/include/asm/vga.h  |  6 ------
> >  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
> >  drivers/video/fbdev/efifb.c | 38 --------------------------------------
> >  4 files changed, 42 insertions(+), 44 deletions(-)
> 
> Something went wrong here.  It seems like the [2/2] patch should have
> been [1/2], and this one should be [2/2].  And this one modifies both
> arch/ia64/pci/fixup.c and arch/x86/pci/fixup.c, but the other patch
> mostly combines them, so I don't see how this one applies.

I ordered both patches the other way around from your explicit ordering
proposal following the stable kernel suggestion following it.

My patch 1/2 fixes the encountered issue and is the one that may go
stable while my patch 2/2 performs unification of common code.
The unification will need to be placed somewhere else than in vgaarb.c
if one wants to keep current fixup working with CONFIG_VGA_ARB=n.

> And there were unrelated (trivial) changes to these files, so they
> need to be rebased to v3.16-rc1.  I'd take care of the rebase, but
> I don't understand the other stuff I mentioned.

Ok

Bruno

> Bjorn
> 
> > diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> > index eee069a..9ed5bef 100644
> > --- a/arch/ia64/pci/fixup.c
> > +++ b/arch/ia64/pci/fixup.c
> > @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
> >  		return;
> >  	/* Maybe, this machine supports legacy memory map. */
> >  
> > +	if (!vga_default_device()) {
> > +		resource_size_t start, end;
> > +		int i;
> > +
> > +		/* Does firmware framebuffer belong to us? */
> > +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> > +				continue;
> > +
> > +			start = pci_resource_start(pdev, i);
> > +			end  = pci_resource_end(pdev, i);
> > +
> > +			if (!start || !end)
> > +				continue;
> > +
> > +			if (screen_info.lfb_base >= start &&
> > +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> > +				vga_set_default_device(pdev);
> > +		}
> > +	}
> > +
> >  	/* Is VGA routed to us? */
> >  	bus = pdev->bus;
> >  	while (bus) {
> > diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> > index 44282fb..c4b9dc2 100644
> > --- a/arch/x86/include/asm/vga.h
> > +++ b/arch/x86/include/asm/vga.h
> > @@ -17,10 +17,4 @@
> >  #define vga_readb(x) (*(x))
> >  #define vga_writeb(x, y) (*(y) = (x))
> >  
> > -#ifdef CONFIG_FB_EFI
> > -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> > -extern struct pci_dev *vga_default_device(void);
> > -extern void vga_set_default_device(struct pci_dev *pdev);
> > -#endif
> > -
> >  #endif /* _ASM_X86_VGA_H */
> > diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> > index 94ae9ae..7246cf2 100644
> > --- a/arch/x86/pci/fixup.c
> > +++ b/arch/x86/pci/fixup.c
> > @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
> >  	struct pci_bus *bus;
> >  	u16 config;
> >  
> > +	if (!vga_default_device()) {
> > +		resource_size_t start, end;
> > +		int i;
> > +
> > +		/* Does firmware framebuffer belong to us? */
> > +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> > +				continue;
> > +
> > +			start = pci_resource_start(pdev, i);
> > +			end  = pci_resource_end(pdev, i);
> > +
> > +			if (!start || !end)
> > +				continue;
> > +
> > +			if (screen_info.lfb_base >= start &&
> > +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> > +				vga_set_default_device(pdev);
> > +		}
> > +	}
> > +
> >  	/* Is VGA routed to us? */
> >  	bus = pdev->bus;
> >  	while (bus) {
> > diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> > index ae9618f..a033180 100644
> > --- a/drivers/video/fbdev/efifb.c
> > +++ b/drivers/video/fbdev/efifb.c
> > @@ -19,8 +19,6 @@
> >  
> >  static bool request_mem_succeeded = false;
> >  
> > -static struct pci_dev *default_vga;
> > -
> >  static struct fb_var_screeninfo efifb_defined = {
> >  	.activate		= FB_ACTIVATE_NOW,
> >  	.height			= -1,
> > @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
> >  	.fb_imageblit	= cfb_imageblit,
> >  };
> >  
> > -struct pci_dev *vga_default_device(void)
> > -{
> > -	return default_vga;
> > -}
> > -
> > -EXPORT_SYMBOL_GPL(vga_default_device);
> > -
> > -void vga_set_default_device(struct pci_dev *pdev)
> > -{
> > -	default_vga = pdev;
> > -}
> > -
> >  static int efifb_setup(char *options)
> >  {
> >  	char *this_opt;
> > @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
> >  		}
> >  	}
> >  
> > -	for_each_pci_dev(dev) {
> > -		int i;
> > -
> > -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> > -			continue;
> > -
> > -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> > -			resource_size_t start, end;
> > -
> > -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> > -				continue;
> > -
> > -			start = pci_resource_start(dev, i);
> > -			end  = pci_resource_end(dev, i);
> > -
> > -			if (!start || !end)
> > -				continue;
> > -
> > -			if (screen_info.lfb_base >= start &&
> > -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> > -				default_vga = dev;
> > -		}
> > -	}
> > -
> >  	return 0;
> >  }
> >  
> > -- 
> > 1.8.5.5
> > 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-02 18:19       ` Bruno Prémont
@ 2014-06-24 20:41         ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 20:41 UTC (permalink / raw)
  To: Bjorn Helgaas, Dave Airlie
  Cc: DRI mailing list, Linux PCI, Anibal Francisco Martinez Cortina, nouveau

On Mon, 02 June 2014 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> systems that do not load shadow VBIOS or setup VGA get proper value for
> boot_vga PCI sysfs attribute on the corresponding PCI device.
> 
> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> reflects its state. When unset this attribute is 1 whenever
> IORESOURCE_ROM_SHADOW flag is set.
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video().

Quite a few people trip over this issue, apparently concentrated on
Apple Macs (EFI) with Nvidia graphics.

It has shown up in at least two bugzilla reports (as side-issue):
  https://bugs.freedesktop.org/show_bug.cgi?id=58556#c16
  https://bugs.freedesktop.org/show_bug.cgi?id=76732#c34

My initial report and discussion on freenode, #nouveau:
  http://people.freedesktop.org/~cbrill/dri-log/?channel=nouveau&date=2013-11-23
followed by initial patch proposal:
  http://permalink.gmane.org/gmane.comp.video.dri.devel/95943

>From today on #nouveau:
  Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>

As reported on #nouveau, every now and then someone trips over this issue
and falls back to enabling efifb so X server accepts to start without
explicit configuration.

It would also be worth to add for first patch:
  Cc: stable@vger.kernel.org

Bruno


> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>  arch/x86/include/asm/vga.h  |  6 ------
>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>  4 files changed, 42 insertions(+), 44 deletions(-)
> 
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..9ed5bef 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..7246cf2 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  	struct pci_bus *bus;
>  	u16 config;
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-24 20:41         ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 20:41 UTC (permalink / raw)
  To: Bjorn Helgaas, Dave Airlie
  Cc: Linux PCI, Anibal Francisco Martinez Cortina, DRI mailing list, nouveau

On Mon, 02 June 2014 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> systems that do not load shadow VBIOS or setup VGA get proper value for
> boot_vga PCI sysfs attribute on the corresponding PCI device.
> 
> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> reflects its state. When unset this attribute is 1 whenever
> IORESOURCE_ROM_SHADOW flag is set.
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video().

Quite a few people trip over this issue, apparently concentrated on
Apple Macs (EFI) with Nvidia graphics.

It has shown up in at least two bugzilla reports (as side-issue):
  https://bugs.freedesktop.org/show_bug.cgi?id=58556#c16
  https://bugs.freedesktop.org/show_bug.cgi?id=76732#c34

My initial report and discussion on freenode, #nouveau:
  http://people.freedesktop.org/~cbrill/dri-log/?channel=nouveau&date=2013-11-23
followed by initial patch proposal:
  http://permalink.gmane.org/gmane.comp.video.dri.devel/95943

From today on #nouveau:
  Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>

As reported on #nouveau, every now and then someone trips over this issue
and falls back to enabling efifb so X server accepts to start without
explicit configuration.

It would also be worth to add for first patch:
  Cc: stable@vger.kernel.org

Bruno


> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>  arch/x86/include/asm/vga.h  |  6 ------
>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>  4 files changed, 42 insertions(+), 44 deletions(-)
> 
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..9ed5bef 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..7246cf2 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  	struct pci_bus *bus;
>  	u16 config;
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-02 18:19       ` Bruno Prémont
@ 2014-06-24 22:55         ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 22:55 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
Matthew Garrett introduced a efifb vga_default_device() so that EFI
systems that do not load shadow VBIOS or setup VGA get proper value for
boot_vga PCI sysfs attribute on the corresponding PCI device.

Xorg is refusing to detect devices when boot_vga=0 which is the case on
some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

Note: When vga_default_device() is set boot_vga PCI sysfs attribute
reflects its state. When unset this attribute is 1 whenever
IORESOURCE_ROM_SHADOW flag is set.

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video().

Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
Cc: Matthew Garrett <matthew.garrett@nebula.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---

Changes since v1:
  Added Tested-by, Cc

 arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
 arch/x86/include/asm/vga.h  |  6 ------
 arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 --------------------------------------
 4 files changed, 42 insertions(+), 44 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..9ed5bef 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..7246cf2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-24 22:55         ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 22:55 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Linux PCI, DRI mailing list, Matthew Garrett

With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
Matthew Garrett introduced a efifb vga_default_device() so that EFI
systems that do not load shadow VBIOS or setup VGA get proper value for
boot_vga PCI sysfs attribute on the corresponding PCI device.

Xorg is refusing to detect devices when boot_vga=0 which is the case on
some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
the dri device but then bails out with "no devices detected".

Note: When vga_default_device() is set boot_vga PCI sysfs attribute
reflects its state. When unset this attribute is 1 whenever
IORESOURCE_ROM_SHADOW flag is set.

With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
while having native drivers for the GPU also makes selecting
sysfb/efifb optional.

Remove the efifb implementation of vga_default_device() and initialize
vgaarb's vga_default_device() with the PCI GPU that matches boot
screen_info in pci_fixup_video().

Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
Cc: Matthew Garrett <matthew.garrett@nebula.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---

Changes since v1:
  Added Tested-by, Cc

 arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
 arch/x86/include/asm/vga.h  |  6 ------
 arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
 drivers/video/fbdev/efifb.c | 38 --------------------------------------
 4 files changed, 42 insertions(+), 44 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index eee069a..9ed5bef 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
index 44282fb..c4b9dc2 100644
--- a/arch/x86/include/asm/vga.h
+++ b/arch/x86/include/asm/vga.h
@@ -17,10 +17,4 @@
 #define vga_readb(x) (*(x))
 #define vga_writeb(x, y) (*(y) = (x))
 
-#ifdef CONFIG_FB_EFI
-#define __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-extern void vga_set_default_device(struct pci_dev *pdev);
-#endif
-
 #endif /* _ASM_X86_VGA_H */
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 94ae9ae..7246cf2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index ae9618f..a033180 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -19,8 +19,6 @@
 
 static bool request_mem_succeeded = false;
 
-static struct pci_dev *default_vga;
-
 static struct fb_var_screeninfo efifb_defined = {
 	.activate		= FB_ACTIVATE_NOW,
 	.height			= -1,
@@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
 	.fb_imageblit	= cfb_imageblit,
 };
 
-struct pci_dev *vga_default_device(void)
-{
-	return default_vga;
-}
-
-EXPORT_SYMBOL_GPL(vga_default_device);
-
-void vga_set_default_device(struct pci_dev *pdev)
-{
-	default_vga = pdev;
-}
-
 static int efifb_setup(char *options)
 {
 	char *this_opt;
@@ -126,30 +112,6 @@ static int efifb_setup(char *options)
 		}
 	}
 
-	for_each_pci_dev(dev) {
-		int i;
-
-		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-			continue;
-
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			resource_size_t start, end;
-
-			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(dev, i);
-			end  = pci_resource_end(dev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				default_vga = dev;
-		}
-	}
-
 	return 0;
 }
 
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2 v2] x86, ia64: Merge common vga fixup code
  2014-06-24 22:55         ` Bruno Prémont
@ 2014-06-24 22:58           ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 22:58 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett,
	Anibal Francisco Martinez Cortina

The fixup code for PCI VGA devices in ia64 and x86 is mostly identical.

Merge it into a single function called from both sides.

The common code is moved to vgaarb.c which makes in dependant on
CONFIG_VGA_ARB.

Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
Cc: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---

Changes since v1:
  Added Tested-by, Cc

 arch/ia64/pci/fixup.c    | 77 ++----------------------------------------------
 arch/x86/pci/fixup.c     | 76 +----------------------------------------------
 drivers/gpu/vga/vgaarb.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/vgaarb.h   | 37 +++++++++++++++++++++++
 4 files changed, 116 insertions(+), 149 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index 9ed5bef..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,85 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 7246cf2..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,81 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2 v2] x86, ia64: Merge common vga fixup code
@ 2014-06-24 22:58           ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-06-24 22:58 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Linux PCI, Anibal Francisco Martinez Cortina, DRI mailing list,
	Matthew Garrett

The fixup code for PCI VGA devices in ia64 and x86 is mostly identical.

Merge it into a single function called from both sides.

The common code is moved to vgaarb.c which makes in dependant on
CONFIG_VGA_ARB.

Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
Cc: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---

Changes since v1:
  Added Tested-by, Cc

 arch/ia64/pci/fixup.c    | 77 ++----------------------------------------------
 arch/x86/pci/fixup.c     | 76 +----------------------------------------------
 drivers/gpu/vga/vgaarb.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/vgaarb.h   | 37 +++++++++++++++++++++++
 4 files changed, 116 insertions(+), 149 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index 9ed5bef..5df22f9 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -9,85 +9,14 @@
 
 #include <asm/machvec.h>
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
+static void pci_ia64_fixup_video(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
 	if ((strcmp(ia64_platform_name, "dig") != 0)
 	    && (strcmp(ia64_platform_name, "hpzx1")  != 0))
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    &&((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       ||(bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
+	pci_fixup_video(pdev);
 }
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
-				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
+				PCI_CLASS_DISPLAY_VGA, 8, pci_ia64_fixup_video);
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 7246cf2..b599847 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -302,81 +302,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PB1,	pcie_r
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC,	pcie_rootport_aspm_quirk);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_MCH_PC1,	pcie_rootport_aspm_quirk);
 
-/*
- * Fixup to mark boot BIOS video selected by BIOS before it changes
- *
- * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
- *
- * The standard boot ROM sequence for an x86 machine uses the BIOS
- * to select an initial video card for boot display. This boot video
- * card will have it's BIOS copied to C0000 in system RAM.
- * IORESOURCE_ROM_SHADOW is used to associate the boot video
- * card with this copy. On laptops this copy has to be used since
- * the main ROM may be compressed or combined with another image.
- * See pci_map_rom() for use of this flag. Before marking the device
- * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
- * by either arch cde or vga-arbitration, if so only apply the fixup to this
- * already determined primary video card.
- */
-
-static void pci_fixup_video(struct pci_dev *pdev)
-{
-	struct pci_dev *bridge;
-	struct pci_bus *bus;
-	u16 config;
-
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-				(screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
-	/* Is VGA routed to us? */
-	bus = pdev->bus;
-	while (bus) {
-		bridge = bus->self;
-
-		/*
-		 * From information provided by
-		 * "David Miller" <davem@davemloft.net>
-		 * The bridge control register is valid for PCI header
-		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
-		 * PCI header type NORMAL.
-		 */
-		if (bridge
-		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
-			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
-						&config);
-			if (!(config & PCI_BRIDGE_CTL_VGA))
-				return;
-		}
-		bus = bus->parent;
-	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
-		pci_read_config_word(pdev, PCI_COMMAND, &config);
-		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
-			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
-		}
-	}
-}
+/* pci_fixup_video shared in vgaarb.c */
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
 
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..f0fbdf6 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -149,6 +149,81 @@ void vga_set_default_device(struct pci_dev *pdev)
 }
 #endif
 
+/*
+ * Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ * From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ * The standard boot ROM sequence for an x86 machine uses the BIOS
+ * to select an initial video card for boot display. This boot video
+ * card will have it's BIOS copied to C0000 in system RAM.
+ * IORESOURCE_ROM_SHADOW is used to associate the boot video
+ * card with this copy. On laptops this copy has to be used since
+ * the main ROM may be compressed or combined with another image.
+ * See pci_map_rom() for use of this flag. Before marking the device
+ * with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
+ * by either arch cde or vga-arbitration, if so only apply the fixup to this
+ * already determined primary video card.
+ */
+
+void pci_fixup_video(struct pci_dev *pdev)
+{
+	struct pci_dev *bridge;
+	struct pci_bus *bus;
+	u16 config;
+
+	if (!vga_default_device()) {
+		resource_size_t start, end;
+		int i;
+
+		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(pdev, i);
+			end  = pci_resource_end(pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base >= start &&
+				(screen_info.lfb_base + screen_info.lfb_size) < end)
+				vga_set_default_device(pdev);
+		}
+	}
+
+	/* Is VGA routed to us? */
+	bus = pdev->bus;
+	while (bus) {
+		bridge = bus->self;
+
+		/*
+		 * From information provided by
+		 * "David Miller" <davem@davemloft.net>
+		 * The bridge control register is valid for PCI header
+		 * type BRIDGE, or CARDBUS. Host to PCI controllers use
+		 * PCI header type NORMAL.
+		 */
+		if (bridge
+		    && ((bridge->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		       || (bridge->hdr_type == PCI_HEADER_TYPE_CARDBUS))) {
+			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
+						&config);
+			if (!(config & PCI_BRIDGE_CTL_VGA))
+				return;
+		}
+		bus = bus->parent;
+	}
+	if (!vga_default_device() || pdev == vga_default_device()) {
+		pci_read_config_word(pdev, PCI_COMMAND, &config);
+		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
+			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
+			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
+			vga_set_default_device(pdev);
+		}
+	}
+}
+
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
 	if (vgadev->irq_set_state)
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..6518460 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -162,6 +162,43 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
 #define vga_put(pdev, rsrc)
 #endif
 
+/**
+ *     pci_fixup_video
+ *
+ *     This can be called by arch PCI to fixup boot VGA tagging
+ *     of VGA PCI devices (e.g. for X86, IA64)
+ *
+ *     This code was initially spread/duplicated across:
+ *     - X86 PCI-fixup
+ *     - IA64 PCI-fixup
+ *     - EFI_FB
+ *
+ *     * PCI-fixup part:
+ *     Fixup to mark boot BIOS video selected by BIOS before it changes
+ *
+ *     From information provided by "Jon Smirl" <jonsmirl@gmail.com>
+ *
+ *     The standard boot ROM sequence for an x86 machine uses the BIOS
+ *     to select an initial video card for boot display. This boot video
+ *     card will have it's BIOS copied to C0000 in system RAM.
+ *     IORESOURCE_ROM_SHADOW is used to associate the boot video
+ *     card with this copy. On laptops this copy has to be used since
+ *     the main ROM may be compressed or combined with another image.
+ *     See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
+ *     is marked here since the boot video device will be the only enabled
+ *     video device at this point.
+ *
+ *     * EFI_FB part:
+ *     Some EFI-based system (e.g. Intel-Macs from Apple) do not setup
+ *     shadow Video-BIOS and thus can only be detected by framebuffer
+ *     IO memory range. Flag the corresponding GPU as boot_vga.
+ */
+
+#if defined(CONFIG_VGA_ARB)
+void pci_fixup_video(struct pci_dev *pdev);
+#else
+static inline void pci_fixup_video(struct pci_dev *pdev) { }
+#endif
 
 /**
  *     vga_default_device
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-24 22:55         ` Bruno Prémont
@ 2014-06-24 23:02           ` Matthew Garrett
  -1 siblings, 0 replies; 62+ messages in thread
From: Matthew Garrett @ 2014-06-24 23:02 UTC (permalink / raw)
  To: bonbons; +Cc: dri-devel, linux-pci, bhelgaas, airlied

T24gV2VkLCAyMDE0LTA2LTI1IGF0IDAwOjU1ICswMjAwLCBCcnVubyBQcsOpbW9udCB3cm90ZToN
Cg0KPiBXaXRoIGludHJvZHVjdGlvbiBvZiBzeXNmYi9zaW1wbGVmYi9zaW1wbGVkcm0gZWZpZmIg
aXMgZ2V0dGluZyBvYnNvbGV0ZQ0KPiB3aGlsZSBoYXZpbmcgbmF0aXZlIGRyaXZlcnMgZm9yIHRo
ZSBHUFUgYWxzbyBtYWtlcyBzZWxlY3RpbmcNCj4gc3lzZmIvZWZpZmIgb3B0aW9uYWwuDQo+IA0K
DQpCb3RoIGxvb2sgZ29vZCB0byBtZS4NCg0KQWNrZWQtYnk6IE1hdHRoZXcgR2FycmV0dCA8bWF0
dGhldy5nYXJyZXR0QG5lYnVsYS5jb20+DQoNCi0tIA0KTWF0dGhldyBHYXJyZXR0IDxtYXR0aGV3
LmdhcnJldHRAbmVidWxhLmNvbT4NCg==

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-06-24 23:02           ` Matthew Garrett
  0 siblings, 0 replies; 62+ messages in thread
From: Matthew Garrett @ 2014-06-24 23:02 UTC (permalink / raw)
  To: bonbons; +Cc: dri-devel, linux-pci, bhelgaas, airlied

On Wed, 2014-06-25 at 00:55 +0200, Bruno Prémont wrote:

> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 

Both look good to me.

Acked-by: Matthew Garrett <matthew.garrett@nebula.com>

-- 
Matthew Garrett <matthew.garrett@nebula.com>

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-06-24 22:55         ` Bruno Prémont
                           ` (2 preceding siblings ...)
  (?)
@ 2014-07-05 17:15         ` Bjorn Helgaas
  2014-08-10  0:21           ` Andreas Noever
  -1 siblings, 1 reply; 62+ messages in thread
From: Bjorn Helgaas @ 2014-07-05 17:15 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> systems that do not load shadow VBIOS or setup VGA get proper value for
> boot_vga PCI sysfs attribute on the corresponding PCI device.
> 
> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> the dri device but then bails out with "no devices detected".
> 
> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> reflects its state. When unset this attribute is 1 whenever
> IORESOURCE_ROM_SHADOW flag is set.
> 
> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> while having native drivers for the GPU also makes selecting
> sysfb/efifb optional.
> 
> Remove the efifb implementation of vga_default_device() and initialize
> vgaarb's vga_default_device() with the PCI GPU that matches boot
> screen_info in pci_fixup_video().
> 
> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
> Cc: Matthew Garrett <matthew.garrett@nebula.com>
> Cc: stable@vger.kernel.org
> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>

I applied both with Matthew's ack to pci/misc for v3.17, thanks!

> ---
> 
> Changes since v1:
>   Added Tested-by, Cc
> 
>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>  arch/x86/include/asm/vga.h  |  6 ------
>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>  4 files changed, 42 insertions(+), 44 deletions(-)
> 
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index eee069a..9ed5bef 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  		return;
>  	/* Maybe, this machine supports legacy memory map. */
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
> index 44282fb..c4b9dc2 100644
> --- a/arch/x86/include/asm/vga.h
> +++ b/arch/x86/include/asm/vga.h
> @@ -17,10 +17,4 @@
>  #define vga_readb(x) (*(x))
>  #define vga_writeb(x, y) (*(y) = (x))
>  
> -#ifdef CONFIG_FB_EFI
> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
> -extern struct pci_dev *vga_default_device(void);
> -extern void vga_set_default_device(struct pci_dev *pdev);
> -#endif
> -
>  #endif /* _ASM_X86_VGA_H */
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index 94ae9ae..7246cf2 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>  	struct pci_bus *bus;
>  	u16 config;
>  
> +	if (!vga_default_device()) {
> +		resource_size_t start, end;
> +		int i;
> +
> +		/* Does firmware framebuffer belong to us? */
> +		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> +			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> +				continue;
> +
> +			start = pci_resource_start(pdev, i);
> +			end  = pci_resource_end(pdev, i);
> +
> +			if (!start || !end)
> +				continue;
> +
> +			if (screen_info.lfb_base >= start &&
> +				(screen_info.lfb_base + screen_info.lfb_size) < end)
> +				vga_set_default_device(pdev);
> +		}
> +	}
> +
>  	/* Is VGA routed to us? */
>  	bus = pdev->bus;
>  	while (bus) {
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index ae9618f..a033180 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -19,8 +19,6 @@
>  
>  static bool request_mem_succeeded = false;
>  
> -static struct pci_dev *default_vga;
> -
>  static struct fb_var_screeninfo efifb_defined = {
>  	.activate		= FB_ACTIVATE_NOW,
>  	.height			= -1,
> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>  	.fb_imageblit	= cfb_imageblit,
>  };
>  
> -struct pci_dev *vga_default_device(void)
> -{
> -	return default_vga;
> -}
> -
> -EXPORT_SYMBOL_GPL(vga_default_device);
> -
> -void vga_set_default_device(struct pci_dev *pdev)
> -{
> -	default_vga = pdev;
> -}
> -
>  static int efifb_setup(char *options)
>  {
>  	char *this_opt;
> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>  		}
>  	}
>  
> -	for_each_pci_dev(dev) {
> -		int i;
> -
> -		if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> -			continue;
> -
> -		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
> -			resource_size_t start, end;
> -
> -			if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
> -				continue;
> -
> -			start = pci_resource_start(dev, i);
> -			end  = pci_resource_end(dev, i);
> -
> -			if (!start || !end)
> -				continue;
> -
> -			if (screen_info.lfb_base >= start &&
> -			    (screen_info.lfb_base + screen_info.lfb_size) < end)
> -				default_vga = dev;
> -		}
> -	}
> -
>  	return 0;
>  }
>  
> -- 
> 1.8.5.5
> 

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-07-05 17:15         ` Bjorn Helgaas
@ 2014-08-10  0:21           ` Andreas Noever
  2014-08-10  0:36             ` Andreas Noever
  0 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-10  0:21 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Bruno Prémont, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett

On Sat, Jul 5, 2014 at 7:15 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
>> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
>> Matthew Garrett introduced a efifb vga_default_device() so that EFI
>> systems that do not load shadow VBIOS or setup VGA get proper value for
>> boot_vga PCI sysfs attribute on the corresponding PCI device.
>>
>> Xorg is refusing to detect devices when boot_vga=0 which is the case on
>> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
>> the dri device but then bails out with "no devices detected".
>>
>> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
>> reflects its state. When unset this attribute is 1 whenever
>> IORESOURCE_ROM_SHADOW flag is set.
>>
>> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
>> while having native drivers for the GPU also makes selecting
>> sysfb/efifb optional.
>>
>> Remove the efifb implementation of vga_default_device() and initialize
>> vgaarb's vga_default_device() with the PCI GPU that matches boot
>> screen_info in pci_fixup_video().
>>
>> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
>> Cc: Matthew Garrett <matthew.garrett@nebula.com>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
>
> I applied both with Matthew's ack to pci/misc for v3.17, thanks!

I just tried to run the latest kernel.  It failed to boot and git
bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
graphics).

The (now removed) code in efifb_setup did always set default_vga, even
if it had already been set earlier. The new code in pci_fixup_video
runs only if vga_default_device() is NULL. Removing the check fixes
the regression.


The following calls to vga_set_default_device are made during boot:

vga_arbiter_add_pci_device -> vga_set_default_device(intel)
pci_fixup_video -> vga_set_default_device(intel) (there are two calls
in pci_fixup_video, this one is the one near "Boot video device")
pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
firmware framebuffer belong to us?" loop, only if I remove the check)

vga_arbiter_add_pci_device chooses intel simply because it is the
first device. Next pci_fixup_video(intel) sees that it is the default
device, sets the IORESOURCE_ROM_SHADOW flag and calls
vga_set_default_device again. And finally (if the check is removed)
pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
itself as the default device which allows the system to boot again.

Does setting the ROM_SHADOW flag on (possibly) the wrong device have
any effect? Maybe we should also move this whole detection logic to
some earlier stage to make sure that the default device is correct
from the beginning and doesn't change?


>
>> ---
>>
>> Changes since v1:
>>   Added Tested-by, Cc
>>
>>  arch/ia64/pci/fixup.c       | 21 +++++++++++++++++++++
>>  arch/x86/include/asm/vga.h  |  6 ------
>>  arch/x86/pci/fixup.c        | 21 +++++++++++++++++++++
>>  drivers/video/fbdev/efifb.c | 38 --------------------------------------
>>  4 files changed, 42 insertions(+), 44 deletions(-)
>>
>> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
>> index eee069a..9ed5bef 100644
>> --- a/arch/ia64/pci/fixup.c
>> +++ b/arch/ia64/pci/fixup.c
>> @@ -37,6 +37,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>>               return;
>>       /* Maybe, this machine supports legacy memory map. */
>>
>> +     if (!vga_default_device()) {
>> +             resource_size_t start, end;
>> +             int i;
>> +
>> +             /* Does firmware framebuffer belong to us? */
>> +             for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
>> +                     if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
>> +                             continue;
>> +
>> +                     start = pci_resource_start(pdev, i);
>> +                     end  = pci_resource_end(pdev, i);
>> +
>> +                     if (!start || !end)
>> +                             continue;
>> +
>> +                     if (screen_info.lfb_base >= start &&
>> +                             (screen_info.lfb_base + screen_info.lfb_size) < end)
>> +                             vga_set_default_device(pdev);
>> +             }
>> +     }
>> +
>>       /* Is VGA routed to us? */
>>       bus = pdev->bus;
>>       while (bus) {
>> diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h
>> index 44282fb..c4b9dc2 100644
>> --- a/arch/x86/include/asm/vga.h
>> +++ b/arch/x86/include/asm/vga.h
>> @@ -17,10 +17,4 @@
>>  #define vga_readb(x) (*(x))
>>  #define vga_writeb(x, y) (*(y) = (x))
>>
>> -#ifdef CONFIG_FB_EFI
>> -#define __ARCH_HAS_VGA_DEFAULT_DEVICE
>> -extern struct pci_dev *vga_default_device(void);
>> -extern void vga_set_default_device(struct pci_dev *pdev);
>> -#endif
>> -
>>  #endif /* _ASM_X86_VGA_H */
>> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
>> index 94ae9ae..7246cf2 100644
>> --- a/arch/x86/pci/fixup.c
>> +++ b/arch/x86/pci/fixup.c
>> @@ -325,6 +325,27 @@ static void pci_fixup_video(struct pci_dev *pdev)
>>       struct pci_bus *bus;
>>       u16 config;
>>
>> +     if (!vga_default_device()) {
>> +             resource_size_t start, end;
>> +             int i;
>> +
>> +             /* Does firmware framebuffer belong to us? */
>> +             for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
>> +                     if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
>> +                             continue;
>> +
>> +                     start = pci_resource_start(pdev, i);
>> +                     end  = pci_resource_end(pdev, i);
>> +
>> +                     if (!start || !end)
>> +                             continue;
>> +
>> +                     if (screen_info.lfb_base >= start &&
>> +                             (screen_info.lfb_base + screen_info.lfb_size) < end)
>> +                             vga_set_default_device(pdev);
>> +             }
>> +     }
>> +
>>       /* Is VGA routed to us? */
>>       bus = pdev->bus;
>>       while (bus) {
>> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
>> index ae9618f..a033180 100644
>> --- a/drivers/video/fbdev/efifb.c
>> +++ b/drivers/video/fbdev/efifb.c
>> @@ -19,8 +19,6 @@
>>
>>  static bool request_mem_succeeded = false;
>>
>> -static struct pci_dev *default_vga;
>> -
>>  static struct fb_var_screeninfo efifb_defined = {
>>       .activate               = FB_ACTIVATE_NOW,
>>       .height                 = -1,
>> @@ -84,18 +82,6 @@ static struct fb_ops efifb_ops = {
>>       .fb_imageblit   = cfb_imageblit,
>>  };
>>
>> -struct pci_dev *vga_default_device(void)
>> -{
>> -     return default_vga;
>> -}
>> -
>> -EXPORT_SYMBOL_GPL(vga_default_device);
>> -
>> -void vga_set_default_device(struct pci_dev *pdev)
>> -{
>> -     default_vga = pdev;
>> -}
>> -
>>  static int efifb_setup(char *options)
>>  {
>>       char *this_opt;
>> @@ -126,30 +112,6 @@ static int efifb_setup(char *options)
>>               }
>>       }
>>
>> -     for_each_pci_dev(dev) {
>> -             int i;
>> -
>> -             if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
>> -                     continue;
>> -
>> -             for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
>> -                     resource_size_t start, end;
>> -
>> -                     if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM))
>> -                             continue;
>> -
>> -                     start = pci_resource_start(dev, i);
>> -                     end  = pci_resource_end(dev, i);
>> -
>> -                     if (!start || !end)
>> -                             continue;
>> -
>> -                     if (screen_info.lfb_base >= start &&
>> -                         (screen_info.lfb_base + screen_info.lfb_size) < end)
>> -                             default_vga = dev;
>> -             }
>> -     }
>> -
>>       return 0;
>>  }
>>
>> --
>> 1.8.5.5
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-10  0:21           ` Andreas Noever
@ 2014-08-10  0:36             ` Andreas Noever
  2014-08-10  9:26                 ` Bruno Prémont
  0 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-10  0:36 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Bruno Prémont, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett

On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noever
<andreas.noever@gmail.com> wrote:
> On Sat, Jul 5, 2014 at 7:15 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
>>> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
>>> Matthew Garrett introduced a efifb vga_default_device() so that EFI
>>> systems that do not load shadow VBIOS or setup VGA get proper value for
>>> boot_vga PCI sysfs attribute on the corresponding PCI device.
>>>
>>> Xorg is refusing to detect devices when boot_vga=0 which is the case on
>>> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
>>> the dri device but then bails out with "no devices detected".
>>>
>>> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
>>> reflects its state. When unset this attribute is 1 whenever
>>> IORESOURCE_ROM_SHADOW flag is set.
>>>
>>> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
>>> while having native drivers for the GPU also makes selecting
>>> sysfb/efifb optional.
>>>
>>> Remove the efifb implementation of vga_default_device() and initialize
>>> vgaarb's vga_default_device() with the PCI GPU that matches boot
>>> screen_info in pci_fixup_video().
>>>
>>> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
>>> Cc: Matthew Garrett <matthew.garrett@nebula.com>
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
>>
>> I applied both with Matthew's ack to pci/misc for v3.17, thanks!
>
> I just tried to run the latest kernel.  It failed to boot and git
> bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
> graphics).
>
> The (now removed) code in efifb_setup did always set default_vga, even
> if it had already been set earlier. The new code in pci_fixup_video
> runs only if vga_default_device() is NULL. Removing the check fixes
> the regression.
>
>
> The following calls to vga_set_default_device are made during boot:
>
> vga_arbiter_add_pci_device -> vga_set_default_device(intel)
> pci_fixup_video -> vga_set_default_device(intel) (there are two calls
> in pci_fixup_video, this one is the one near "Boot video device")
> pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
> firmware framebuffer belong to us?" loop, only if I remove the check)
>
> vga_arbiter_add_pci_device chooses intel simply because it is the
> first device. Next pci_fixup_video(intel) sees that it is the default
> device, sets the IORESOURCE_ROM_SHADOW flag and calls
> vga_set_default_device again. And finally (if the check is removed)
> pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> itself as the default device which allows the system to boot again.
>
> Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> any effect?
Yes it does. Removing the line changes a long standing
i915 0000:00:02.0: Invalid ROM contents
into a
i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
0x20000000] (bogus alignment).

The first is logged at KERN_ERR and the second one only at KERN_INFO.
We are making progress.

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-10  0:36             ` Andreas Noever
@ 2014-08-10  9:26                 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-10  9:26 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:

> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noever
> <andreas.noever@gmail.com> wrote:
> > On Sat, Jul 5, 2014 at 7:15 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
> >> On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
> >>> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> >>> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> >>> systems that do not load shadow VBIOS or setup VGA get proper value for
> >>> boot_vga PCI sysfs attribute on the corresponding PCI device.
> >>>
> >>> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> >>> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> >>> the dri device but then bails out with "no devices detected".
> >>>
> >>> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> >>> reflects its state. When unset this attribute is 1 whenever
> >>> IORESOURCE_ROM_SHADOW flag is set.
> >>>
> >>> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> >>> while having native drivers for the GPU also makes selecting
> >>> sysfb/efifb optional.
> >>>
> >>> Remove the efifb implementation of vga_default_device() and initialize
> >>> vgaarb's vga_default_device() with the PCI GPU that matches boot
> >>> screen_info in pci_fixup_video().
> >>>
> >>> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
> >>> Cc: Matthew Garrett <matthew.garrett@nebula.com>
> >>> Cc: stable@vger.kernel.org
> >>> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> >>
> >> I applied both with Matthew's ack to pci/misc for v3.17, thanks!
> >
> > I just tried to run the latest kernel.  It failed to boot and git
> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
> > graphics).
> >
> > The (now removed) code in efifb_setup did always set default_vga, even
> > if it had already been set earlier. The new code in pci_fixup_video
> > runs only if vga_default_device() is NULL. Removing the check fixes
> > the regression.
> >
> >
> > The following calls to vga_set_default_device are made during boot:
> >
> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
> > in pci_fixup_video, this one is the one near "Boot video device")
> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
> > firmware framebuffer belong to us?" loop, only if I remove the check)
> >
> > vga_arbiter_add_pci_device chooses intel simply because it is the
> > first device. Next pci_fixup_video(intel) sees that it is the default
> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
> > vga_set_default_device again. And finally (if the check is removed)
> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> > itself as the default device which allows the system to boot again.
> >
> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> > any effect?
> Yes it does. Removing the line changes a long standing
> i915 0000:00:02.0: Invalid ROM contents
> into a
> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
> 0x20000000] (bogus alignment).
> 
> The first is logged at KERN_ERR and the second one only at KERN_INFO.
> We are making progress.

How does your system behave if you change vga_arbiter_add_pci_device()
not to set vga_set_default_device() with the first device registered?

That is remove the 
#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
code block in vga_arbiter_add_pci_device().

How did your system behave in the past if you did not enable efifb?

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-08-10  9:26                 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-10  9:26 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, Linux PCI, DRI mailing list, Matthew Garrett

On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:

> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noever
> <andreas.noever@gmail.com> wrote:
> > On Sat, Jul 5, 2014 at 7:15 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
> >> On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
> >>> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
> >>> Matthew Garrett introduced a efifb vga_default_device() so that EFI
> >>> systems that do not load shadow VBIOS or setup VGA get proper value for
> >>> boot_vga PCI sysfs attribute on the corresponding PCI device.
> >>>
> >>> Xorg is refusing to detect devices when boot_vga=0 which is the case on
> >>> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
> >>> the dri device but then bails out with "no devices detected".
> >>>
> >>> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
> >>> reflects its state. When unset this attribute is 1 whenever
> >>> IORESOURCE_ROM_SHADOW flag is set.
> >>>
> >>> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
> >>> while having native drivers for the GPU also makes selecting
> >>> sysfb/efifb optional.
> >>>
> >>> Remove the efifb implementation of vga_default_device() and initialize
> >>> vgaarb's vga_default_device() with the PCI GPU that matches boot
> >>> screen_info in pci_fixup_video().
> >>>
> >>> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
> >>> Cc: Matthew Garrett <matthew.garrett@nebula.com>
> >>> Cc: stable@vger.kernel.org
> >>> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> >>
> >> I applied both with Matthew's ack to pci/misc for v3.17, thanks!
> >
> > I just tried to run the latest kernel.  It failed to boot and git
> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
> > graphics).
> >
> > The (now removed) code in efifb_setup did always set default_vga, even
> > if it had already been set earlier. The new code in pci_fixup_video
> > runs only if vga_default_device() is NULL. Removing the check fixes
> > the regression.
> >
> >
> > The following calls to vga_set_default_device are made during boot:
> >
> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
> > in pci_fixup_video, this one is the one near "Boot video device")
> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
> > firmware framebuffer belong to us?" loop, only if I remove the check)
> >
> > vga_arbiter_add_pci_device chooses intel simply because it is the
> > first device. Next pci_fixup_video(intel) sees that it is the default
> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
> > vga_set_default_device again. And finally (if the check is removed)
> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> > itself as the default device which allows the system to boot again.
> >
> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> > any effect?
> Yes it does. Removing the line changes a long standing
> i915 0000:00:02.0: Invalid ROM contents
> into a
> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
> 0x20000000] (bogus alignment).
> 
> The first is logged at KERN_ERR and the second one only at KERN_INFO.
> We are making progress.

How does your system behave if you change vga_arbiter_add_pci_device()
not to set vga_set_default_device() with the first device registered?

That is remove the 
#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
code block in vga_arbiter_add_pci_device().

How did your system behave in the past if you did not enable efifb?

Bruno
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-10  9:26                 ` Bruno Prémont
  (?)
@ 2014-08-10  9:56                 ` Andreas Noever
  2014-08-10 16:34                     ` Bruno Prémont
  -1 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-10  9:56 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

On Sun, Aug 10, 2014 at 11:26 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
>
>> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noever
>> <andreas.noever@gmail.com> wrote:
>> > On Sat, Jul 5, 2014 at 7:15 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> >> On Wed, Jun 25, 2014 at 12:55:01AM +0200, Bruno Prémont wrote:
>> >>> With commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)")
>> >>> Matthew Garrett introduced a efifb vga_default_device() so that EFI
>> >>> systems that do not load shadow VBIOS or setup VGA get proper value for
>> >>> boot_vga PCI sysfs attribute on the corresponding PCI device.
>> >>>
>> >>> Xorg is refusing to detect devices when boot_vga=0 which is the case on
>> >>> some EFI system (e.g. MacBookAir2,1). Xorg detects the GPU and finds
>> >>> the dri device but then bails out with "no devices detected".
>> >>>
>> >>> Note: When vga_default_device() is set boot_vga PCI sysfs attribute
>> >>> reflects its state. When unset this attribute is 1 whenever
>> >>> IORESOURCE_ROM_SHADOW flag is set.
>> >>>
>> >>> With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
>> >>> while having native drivers for the GPU also makes selecting
>> >>> sysfb/efifb optional.
>> >>>
>> >>> Remove the efifb implementation of vga_default_device() and initialize
>> >>> vgaarb's vga_default_device() with the PCI GPU that matches boot
>> >>> screen_info in pci_fixup_video().
>> >>>
>> >>> Tested-by: Anibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
>> >>> Cc: Matthew Garrett <matthew.garrett@nebula.com>
>> >>> Cc: stable@vger.kernel.org
>> >>> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
>> >>
>> >> I applied both with Matthew's ack to pci/misc for v3.17, thanks!
>> >
>> > I just tried to run the latest kernel.  It failed to boot and git
>> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
>> > graphics).
>> >
>> > The (now removed) code in efifb_setup did always set default_vga, even
>> > if it had already been set earlier. The new code in pci_fixup_video
>> > runs only if vga_default_device() is NULL. Removing the check fixes
>> > the regression.
>> >
>> >
>> > The following calls to vga_set_default_device are made during boot:
>> >
>> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
>> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
>> > in pci_fixup_video, this one is the one near "Boot video device")
>> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
>> > firmware framebuffer belong to us?" loop, only if I remove the check)
>> >
>> > vga_arbiter_add_pci_device chooses intel simply because it is the
>> > first device. Next pci_fixup_video(intel) sees that it is the default
>> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
>> > vga_set_default_device again. And finally (if the check is removed)
>> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
>> > itself as the default device which allows the system to boot again.
>> >
>> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
>> > any effect?
>> Yes it does. Removing the line changes a long standing
>> i915 0000:00:02.0: Invalid ROM contents
>> into a
>> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
>> 0x20000000] (bogus alignment).
>>
>> The first is logged at KERN_ERR and the second one only at KERN_INFO.
>> We are making progress.
>
> How does your system behave if you change vga_arbiter_add_pci_device()
> not to set vga_set_default_device() with the first device registered?
>
> That is remove the
> #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
> code block in vga_arbiter_add_pci_device().
The system does not boot.  The Intel device is still set as the
default device in pci_fixup_video (near "Boot video device") and
prevents the nvidia device (which is initialized later) from becoming
the default one.


> How did your system behave in the past if you did not enable efifb?
I don't think that I ever did not enable efifb. It seems to have been
around for quite a while?

Andreas

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-10  9:56                 ` Andreas Noever
@ 2014-08-10 16:34                     ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-10 16:34 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> On Sun, Aug 10, 2014 at 11:26 AM, Bruno Prémont wrote:
> > On Sun, 10 August 2014 Andreas Noever wrote:
> >
> >> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noeverwrote:
> >> > I just tried to run the latest kernel.  It failed to boot and git
> >> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
> >> > graphics).
> >> >
> >> > The (now removed) code in efifb_setup did always set default_vga, even
> >> > if it had already been set earlier. The new code in pci_fixup_video
> >> > runs only if vga_default_device() is NULL. Removing the check fixes
> >> > the regression.
> >> >
> >> >
> >> > The following calls to vga_set_default_device are made during boot:
> >> >
> >> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
> >> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
> >> > in pci_fixup_video, this one is the one near "Boot video device")
> >> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
> >> > firmware framebuffer belong to us?" loop, only if I remove the check)
> >> >
> >> > vga_arbiter_add_pci_device chooses intel simply because it is the
> >> > first device. Next pci_fixup_video(intel) sees that it is the default
> >> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
> >> > vga_set_default_device again. And finally (if the check is removed)
> >> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> >> > itself as the default device which allows the system to boot again.
> >> >
> >> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> >> > any effect?
> >> Yes it does. Removing the line changes a long standing
> >> i915 0000:00:02.0: Invalid ROM contents
> >> into a
> >> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
> >> 0x20000000] (bogus alignment).
> >>
> >> The first is logged at KERN_ERR and the second one only at KERN_INFO.
> >> We are making progress.
> >
> > How does your system behave if you change vga_arbiter_add_pci_device()
> > not to set vga_set_default_device() with the first device registered?
> >
> > That is remove the
> > #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
> > code block in vga_arbiter_add_pci_device().
> The system does not boot.  The Intel device is still set as the
> default device in pci_fixup_video (near "Boot video device") and
> prevents the nvidia device (which is initialized later) from becoming
> the default one.
>
> > How did your system behave in the past if you did not enable efifb?
> I don't think that I ever did not enable efifb. It seems to have been
> around for quite a while?

The question here is if you system just refuses to boot as well.

The aim of my patch is to make system work (properly) when efifb is not used
(why use efifb if built-in drm drivers handle the GPU(s)?)

If you decided to replace efifb with platform-framebuffer+simplefb/simpledrm
you would probably see the same issue as that would be no efifb as well.

The presence of efifb should not be mandatory for successfully booting
and running Xorg.

> Andreas

How does you system behave with below patch on top of Linus tree?

Bruno



---
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..15d0068 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -367,7 +367,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..ac44d87 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -112,10 +112,8 @@ both:
 	return 1;
 }
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 /* this is only used a cookie - it should not be dereferenced */
 static struct pci_dev *vga_default;
-#endif
 
 static void vga_arb_device_card_gone(struct pci_dev *pdev);
 
@@ -131,7 +129,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
 }
 
 /* Returns the default VGA device (vgacon's babe) */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 struct pci_dev *vga_default_device(void)
 {
 	return vga_default;
@@ -147,7 +144,6 @@ void vga_set_default_device(struct pci_dev *pdev)
 	pci_dev_put(vga_default);
 	vga_default = pci_dev_get(pdev);
 }
-#endif
 
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
@@ -580,10 +576,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 		bus = bus->parent;
 	}
 
+#if 0
 	/* Deal with VGA default device. Use first enabled one
 	 * by default if arch doesn't have it's own hook
 	 */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
 	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
 		vga_set_default_device(pdev);
@@ -621,10 +617,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
 		goto bail;
 	}
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == pdev)
 		vga_set_default_device(NULL);
-#endif
 
 	if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
 		vga_decode_count--;
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..c37bd4d 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
  *     vga_get()...
  */
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 #ifdef CONFIG_VGA_ARB
 extern struct pci_dev *vga_default_device(void);
 extern void vga_set_default_device(struct pci_dev *pdev);
@@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
 static inline struct pci_dev *vga_default_device(void) { return NULL; };
 static inline void vga_set_default_device(struct pci_dev *pdev) { };
 #endif
-#endif
 
 /**
  *     vga_conflicts

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-08-10 16:34                     ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-10 16:34 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, Linux PCI, DRI mailing list, Matthew Garrett

On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> On Sun, Aug 10, 2014 at 11:26 AM, Bruno Prémont wrote:
> > On Sun, 10 August 2014 Andreas Noever wrote:
> >
> >> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noeverwrote:
> >> > I just tried to run the latest kernel.  It failed to boot and git
> >> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
> >> > graphics).
> >> >
> >> > The (now removed) code in efifb_setup did always set default_vga, even
> >> > if it had already been set earlier. The new code in pci_fixup_video
> >> > runs only if vga_default_device() is NULL. Removing the check fixes
> >> > the regression.
> >> >
> >> >
> >> > The following calls to vga_set_default_device are made during boot:
> >> >
> >> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
> >> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
> >> > in pci_fixup_video, this one is the one near "Boot video device")
> >> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
> >> > firmware framebuffer belong to us?" loop, only if I remove the check)
> >> >
> >> > vga_arbiter_add_pci_device chooses intel simply because it is the
> >> > first device. Next pci_fixup_video(intel) sees that it is the default
> >> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
> >> > vga_set_default_device again. And finally (if the check is removed)
> >> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> >> > itself as the default device which allows the system to boot again.
> >> >
> >> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> >> > any effect?
> >> Yes it does. Removing the line changes a long standing
> >> i915 0000:00:02.0: Invalid ROM contents
> >> into a
> >> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
> >> 0x20000000] (bogus alignment).
> >>
> >> The first is logged at KERN_ERR and the second one only at KERN_INFO.
> >> We are making progress.
> >
> > How does your system behave if you change vga_arbiter_add_pci_device()
> > not to set vga_set_default_device() with the first device registered?
> >
> > That is remove the
> > #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
> > code block in vga_arbiter_add_pci_device().
> The system does not boot.  The Intel device is still set as the
> default device in pci_fixup_video (near "Boot video device") and
> prevents the nvidia device (which is initialized later) from becoming
> the default one.
>
> > How did your system behave in the past if you did not enable efifb?
> I don't think that I ever did not enable efifb. It seems to have been
> around for quite a while?

The question here is if you system just refuses to boot as well.

The aim of my patch is to make system work (properly) when efifb is not used
(why use efifb if built-in drm drivers handle the GPU(s)?)

If you decided to replace efifb with platform-framebuffer+simplefb/simpledrm
you would probably see the same issue as that would be no efifb as well.

The presence of efifb should not be mandatory for successfully booting
and running Xorg.

> Andreas

How does you system behave with below patch on top of Linus tree?

Bruno



---
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..15d0068 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -367,7 +367,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..ac44d87 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -112,10 +112,8 @@ both:
 	return 1;
 }
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 /* this is only used a cookie - it should not be dereferenced */
 static struct pci_dev *vga_default;
-#endif
 
 static void vga_arb_device_card_gone(struct pci_dev *pdev);
 
@@ -131,7 +129,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
 }
 
 /* Returns the default VGA device (vgacon's babe) */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 struct pci_dev *vga_default_device(void)
 {
 	return vga_default;
@@ -147,7 +144,6 @@ void vga_set_default_device(struct pci_dev *pdev)
 	pci_dev_put(vga_default);
 	vga_default = pci_dev_get(pdev);
 }
-#endif
 
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
@@ -580,10 +576,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 		bus = bus->parent;
 	}
 
+#if 0
 	/* Deal with VGA default device. Use first enabled one
 	 * by default if arch doesn't have it's own hook
 	 */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
 	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
 		vga_set_default_device(pdev);
@@ -621,10 +617,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
 		goto bail;
 	}
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == pdev)
 		vga_set_default_device(NULL);
-#endif
 
 	if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
 		vga_decode_count--;
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..c37bd4d 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
  *     vga_get()...
  */
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 #ifdef CONFIG_VGA_ARB
 extern struct pci_dev *vga_default_device(void);
 extern void vga_set_default_device(struct pci_dev *pdev);
@@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
 static inline struct pci_dev *vga_default_device(void) { return NULL; };
 static inline void vga_set_default_device(struct pci_dev *pdev) { };
 #endif
-#endif
 
 /**
  *     vga_conflicts
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-10 16:34                     ` Bruno Prémont
  (?)
@ 2014-08-14  0:40                     ` Andreas Noever
  2014-08-16 17:21                         ` Bruno Prémont
  -1 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-14  0:40 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett

On Sun, Aug 10, 2014 at 6:34 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Sun, 10 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
>> On Sun, Aug 10, 2014 at 11:26 AM, Bruno Prémont wrote:
>> > On Sun, 10 August 2014 Andreas Noever wrote:
>> >
>> >> On Sun, Aug 10, 2014 at 2:21 AM, Andreas Noeverwrote:
>> >> > I just tried to run the latest kernel.  It failed to boot and git
>> >> > bisect points to this commit (MacBookPro10,1 with Nvidia&Intel
>> >> > graphics).
>> >> >
>> >> > The (now removed) code in efifb_setup did always set default_vga, even
>> >> > if it had already been set earlier. The new code in pci_fixup_video
>> >> > runs only if vga_default_device() is NULL. Removing the check fixes
>> >> > the regression.
>> >> >
>> >> >
>> >> > The following calls to vga_set_default_device are made during boot:
>> >> >
>> >> > vga_arbiter_add_pci_device -> vga_set_default_device(intel)
>> >> > pci_fixup_video -> vga_set_default_device(intel) (there are two calls
>> >> > in pci_fixup_video, this one is the one near "Boot video device")
>> >> > pci_fixup_video -> vga_set_default_device(nvidia) (from the "Does
>> >> > firmware framebuffer belong to us?" loop, only if I remove the check)
>> >> >
>> >> > vga_arbiter_add_pci_device chooses intel simply because it is the
>> >> > first device. Next pci_fixup_video(intel) sees that it is the default
>> >> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
>> >> > vga_set_default_device again. And finally (if the check is removed)
>> >> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
>> >> > itself as the default device which allows the system to boot again.
>> >> >
>> >> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
>> >> > any effect?
>> >> Yes it does. Removing the line changes a long standing
>> >> i915 0000:00:02.0: Invalid ROM contents
>> >> into a
>> >> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
>> >> 0x20000000] (bogus alignment).
>> >>
>> >> The first is logged at KERN_ERR and the second one only at KERN_INFO.
>> >> We are making progress.
>> >
>> > How does your system behave if you change vga_arbiter_add_pci_device()
>> > not to set vga_set_default_device() with the first device registered?
>> >
>> > That is remove the
>> > #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>> > code block in vga_arbiter_add_pci_device().
>> The system does not boot.  The Intel device is still set as the
>> default device in pci_fixup_video (near "Boot video device") and
>> prevents the nvidia device (which is initialized later) from becoming
>> the default one.
>>
>> > How did your system behave in the past if you did not enable efifb?
>> I don't think that I ever did not enable efifb. It seems to have been
>> around for quite a while?
>
> The question here is if you system just refuses to boot as well.

I have just tested 3.16 without FB_EFI and it refuses to boot as well.

> The aim of my patch is to make system work (properly) when efifb is not used
> (why use efifb if built-in drm drivers handle the GPU(s)?)
>
> If you decided to replace efifb with platform-framebuffer+simplefb/simpledrm
> you would probably see the same issue as that would be no efifb as well.
>
> The presence of efifb should not be mandatory for successfully booting
> and running Xorg.
>
>> Andreas
>
> How does you system behave with below patch on top of Linus tree?

This patch fixes the problem (with and without FB_EFI).

Andreas


> Bruno
>
>
>
> ---
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index c61ea57..15d0068 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -367,7 +367,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
>                 }
>                 bus = bus->parent;
>         }
> -       if (!vga_default_device() || pdev == vga_default_device()) {
> +       if (pdev == vga_default_device()) {
>                 pci_read_config_word(pdev, PCI_COMMAND, &config);
>                 if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
>                         pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index d2077f0..ac44d87 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -112,10 +112,8 @@ both:
>         return 1;
>  }
>
> -#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>  /* this is only used a cookie - it should not be dereferenced */
>  static struct pci_dev *vga_default;
> -#endif
>
>  static void vga_arb_device_card_gone(struct pci_dev *pdev);
>
> @@ -131,7 +129,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
>  }
>
>  /* Returns the default VGA device (vgacon's babe) */
> -#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>  struct pci_dev *vga_default_device(void)
>  {
>         return vga_default;
> @@ -147,7 +144,6 @@ void vga_set_default_device(struct pci_dev *pdev)
>         pci_dev_put(vga_default);
>         vga_default = pci_dev_get(pdev);
>  }
> -#endif
>
>  static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
>  {
> @@ -580,10 +576,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
>                 bus = bus->parent;
>         }
>
> +#if 0
>         /* Deal with VGA default device. Use first enabled one
>          * by default if arch doesn't have it's own hook
>          */
> -#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>         if (vga_default == NULL &&
>             ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
>                 vga_set_default_device(pdev);
> @@ -621,10 +617,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
>                 goto bail;
>         }
>
> -#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>         if (vga_default == pdev)
>                 vga_set_default_device(NULL);
> -#endif
>
>         if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
>                 vga_decode_count--;
> diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
> index 2c02f3a..c37bd4d 100644
> --- a/include/linux/vgaarb.h
> +++ b/include/linux/vgaarb.h
> @@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
>   *     vga_get()...
>   */
>
> -#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>  #ifdef CONFIG_VGA_ARB
>  extern struct pci_dev *vga_default_device(void);
>  extern void vga_set_default_device(struct pci_dev *pdev);
> @@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
>  static inline struct pci_dev *vga_default_device(void) { return NULL; };
>  static inline void vga_set_default_device(struct pci_dev *pdev) { };
>  #endif
> -#endif
>
>  /**
>   *     vga_conflicts

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-14  0:40                     ` Andreas Noever
@ 2014-08-16 17:21                         ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:21 UTC (permalink / raw)
  To: Andreas Noever, Bjorn Helgaas
  Cc: DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett,
	Greg Kroah-Hartman

This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
vga_default_device() initialization to pci_vga_fixup()):
- cleanup remaining but always-true #ifndefs
- fix boot regression on dual-GPU Macs

Andreas, can you please test this series? It is a modification from
previous testing patch that should still work fine for you.
That testing patch would have been failing X startup on old BIOS systems
booted with vga=normal (or otherwise in VGA text mode).


Greg, in case you have scheduled above-mentioned commit for your next
stable iteration, please hold it back in the queue until this follow-up
has landed and can be included within the same stable update as alone
that patch regresses for Macs with dual-GPU and using efifb.

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-08-16 17:21                         ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:21 UTC (permalink / raw)
  To: Andreas Noever, Bjorn Helgaas
  Cc: Linux PCI, Greg Kroah-Hartman, DRI mailing list, Matthew Garrett

This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
vga_default_device() initialization to pci_vga_fixup()):
- cleanup remaining but always-true #ifndefs
- fix boot regression on dual-GPU Macs

Andreas, can you please test this series? It is a modification from
previous testing patch that should still work fine for you.
That testing patch would have been failing X startup on old BIOS systems
booted with vga=normal (or otherwise in VGA text mode).


Greg, in case you have scheduled above-mentioned commit for your next
stable iteration, please hold it back in the queue until this follow-up
has landed and can be included within the same stable update as alone
that patch regresses for Macs with dual-GPU and using efifb.

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 1/2] vgaarb: Drop obsolete #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
  2014-08-16 17:21                         ` Bruno Prémont
@ 2014-08-16 17:25                           ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:25 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

Remove the left-over #ifndef check that will allways match since
the corresponding arch-specific define is gone with above patch.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
May be applied to stable as cleanup for upstream commit
20cde694027e7477cc532833e38ab9fcaa83fb64 which is marked for
stable.

 drivers/gpu/vga/vgaarb.c | 8 --------
 include/linux/vgaarb.h   | 2 --
 2 files changed, 10 deletions(-)

diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..257674d 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -112,10 +112,8 @@ both:
 	return 1;
 }
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 /* this is only used a cookie - it should not be dereferenced */
 static struct pci_dev *vga_default;
-#endif
 
 static void vga_arb_device_card_gone(struct pci_dev *pdev);
 
@@ -131,7 +129,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
 }
 
 /* Returns the default VGA device (vgacon's babe) */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 struct pci_dev *vga_default_device(void)
 {
 	return vga_default;
@@ -147,7 +144,6 @@ void vga_set_default_device(struct pci_dev *pdev)
 	pci_dev_put(vga_default);
 	vga_default = pci_dev_get(pdev);
 }
-#endif
 
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
@@ -583,11 +579,9 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	/* Deal with VGA default device. Use first enabled one
 	 * by default if arch doesn't have it's own hook
 	 */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
 	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
 		vga_set_default_device(pdev);
-#endif
 
 	vga_arbiter_check_bridge_sharing(vgadev);
 
@@ -621,10 +615,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
 		goto bail;
 	}
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == pdev)
 		vga_set_default_device(NULL);
-#endif
 
 	if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
 		vga_decode_count--;
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..c37bd4d 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
  *     vga_get()...
  */
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 #ifdef CONFIG_VGA_ARB
 extern struct pci_dev *vga_default_device(void);
 extern void vga_set_default_device(struct pci_dev *pdev);
@@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
 static inline struct pci_dev *vga_default_device(void) { return NULL; };
 static inline void vga_set_default_device(struct pci_dev *pdev) { };
 #endif
-#endif
 
 /**
  *     vga_conflicts
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 1/2] vgaarb: Drop obsolete #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
@ 2014-08-16 17:25                           ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:25 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Matthew Garrett, Linux PCI, DRI mailing list, Greg Kroah-Hartman,
	Bjorn Helgaas

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

Remove the left-over #ifndef check that will allways match since
the corresponding arch-specific define is gone with above patch.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
May be applied to stable as cleanup for upstream commit
20cde694027e7477cc532833e38ab9fcaa83fb64 which is marked for
stable.

 drivers/gpu/vga/vgaarb.c | 8 --------
 include/linux/vgaarb.h   | 2 --
 2 files changed, 10 deletions(-)

diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..257674d 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -112,10 +112,8 @@ both:
 	return 1;
 }
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 /* this is only used a cookie - it should not be dereferenced */
 static struct pci_dev *vga_default;
-#endif
 
 static void vga_arb_device_card_gone(struct pci_dev *pdev);
 
@@ -131,7 +129,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
 }
 
 /* Returns the default VGA device (vgacon's babe) */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 struct pci_dev *vga_default_device(void)
 {
 	return vga_default;
@@ -147,7 +144,6 @@ void vga_set_default_device(struct pci_dev *pdev)
 	pci_dev_put(vga_default);
 	vga_default = pci_dev_get(pdev);
 }
-#endif
 
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
@@ -583,11 +579,9 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	/* Deal with VGA default device. Use first enabled one
 	 * by default if arch doesn't have it's own hook
 	 */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
 	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
 		vga_set_default_device(pdev);
-#endif
 
 	vga_arbiter_check_bridge_sharing(vgadev);
 
@@ -621,10 +615,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
 		goto bail;
 	}
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == pdev)
 		vga_set_default_device(NULL);
-#endif
 
 	if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
 		vga_decode_count--;
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..c37bd4d 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
  *     vga_get()...
  */
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 #ifdef CONFIG_VGA_ARB
 extern struct pci_dev *vga_default_device(void);
 extern void vga_set_default_device(struct pci_dev *pdev);
@@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
 static inline struct pci_dev *vga_default_device(void) { return NULL; };
 static inline void vga_set_default_device(struct pci_dev *pdev) { };
 #endif
-#endif
 
 /**
  *     vga_conflicts
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2] x86, ia64: Don't default to first video device
  2014-08-16 17:21                         ` Bruno Prémont
@ 2014-08-16 17:30                           ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:30 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

For dual-GPU Apple computers above above change represents a regression
as code in efifb did forcefully override vga_default_device while the
merge did not (changed ordering of actions).

This stops setting default_vga_device when applying
IORESOURCE_ROM_SHADOW (only doing so for the detected boot GPU) and
updates logging of boot video device selection, in vgaarb which covers
VGA text-mode booting and first half of pci_fixup_video which covers
framebuffer mode (EFI, VESA).

By setting IORESOURCE_ROM_SHADOW only on effective boot GPU we also
corrects a longstanding complaint from intel driver as reported by
Andreas:
  > Does setting the ROM_SHADOW flag on (possibly) the wrong device
  > have any effect?
  Yes it does. Removing the line changes a long standing
    i915 0000:00:02.0: Invalid ROM contents
  into a
    i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
    0x20000000] (bogus alignment).
  The first is logged at KERN_ERR while the second is at KERN_INFO.

Reported-By: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
Must be applied to stable when upstream commit
20cde694027e7477cc532833e38ab9fcaa83fb64, which is marked for
stable, gets applied.

Can be applied without patch 1/2 from this series though dropped
#ifndefs will cause this patch not to apply cleanly.


 arch/ia64/pci/fixup.c    | 9 +++++----
 arch/x86/pci/fixup.c     | 9 +++++----
 drivers/gpu/vga/vgaarb.c | 4 +++-
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index ec73b2c..05198f8 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -54,8 +54,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 				continue;
 
 			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
+			    (screen_info.lfb_base + screen_info.lfb_size) < end) {
+				dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
 				vga_set_default_device(pdev);
+			}
 		}
 	}
 
@@ -79,12 +81,11 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..5b392d2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -342,8 +342,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 				continue;
 
 			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
+			    (screen_info.lfb_base + screen_info.lfb_size) < end) {
+				dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
 				vga_set_default_device(pdev);
+			}
 		}
 	}
 
@@ -367,12 +369,11 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index 257674d..c6eeed5 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -580,8 +580,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	 * by default if arch doesn't have it's own hook
 	 */
 	if (vga_default == NULL &&
-	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
+	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
+		pr_info("vgaarb: Boot video device: PCI:%s\n", pci_name(pdev));
 		vga_set_default_device(pdev);
+	}
 
 	vga_arbiter_check_bridge_sharing(vgadev);
 
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2] x86, ia64: Don't default to first video device
@ 2014-08-16 17:30                           ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-16 17:30 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Matthew Garrett, Linux PCI, DRI mailing list, Greg Kroah-Hartman,
	Bjorn Helgaas

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

For dual-GPU Apple computers above above change represents a regression
as code in efifb did forcefully override vga_default_device while the
merge did not (changed ordering of actions).

This stops setting default_vga_device when applying
IORESOURCE_ROM_SHADOW (only doing so for the detected boot GPU) and
updates logging of boot video device selection, in vgaarb which covers
VGA text-mode booting and first half of pci_fixup_video which covers
framebuffer mode (EFI, VESA).

By setting IORESOURCE_ROM_SHADOW only on effective boot GPU we also
corrects a longstanding complaint from intel driver as reported by
Andreas:
  > Does setting the ROM_SHADOW flag on (possibly) the wrong device
  > have any effect?
  Yes it does. Removing the line changes a long standing
    i915 0000:00:02.0: Invalid ROM contents
  into a
    i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags
    0x20000000] (bogus alignment).
  The first is logged at KERN_ERR while the second is at KERN_INFO.

Reported-By: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
Must be applied to stable when upstream commit
20cde694027e7477cc532833e38ab9fcaa83fb64, which is marked for
stable, gets applied.

Can be applied without patch 1/2 from this series though dropped
#ifndefs will cause this patch not to apply cleanly.


 arch/ia64/pci/fixup.c    | 9 +++++----
 arch/x86/pci/fixup.c     | 9 +++++----
 drivers/gpu/vga/vgaarb.c | 4 +++-
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index ec73b2c..05198f8 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -54,8 +54,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 				continue;
 
 			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
+			    (screen_info.lfb_base + screen_info.lfb_size) < end) {
+				dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
 				vga_set_default_device(pdev);
+			}
 		}
 	}
 
@@ -79,12 +81,11 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..5b392d2 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -342,8 +342,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 				continue;
 
 			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
+			    (screen_info.lfb_base + screen_info.lfb_size) < end) {
+				dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
 				vga_set_default_device(pdev);
+			}
 		}
 	}
 
@@ -367,12 +369,11 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		}
 		bus = bus->parent;
 	}
-	if (!vga_default_device() || pdev == vga_default_device()) {
+	if (pdev == vga_default_device()) {
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index 257674d..c6eeed5 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -580,8 +580,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	 * by default if arch doesn't have it's own hook
 	 */
 	if (vga_default == NULL &&
-	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
+	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
+		pr_info("vgaarb: Boot video device: PCI:%s\n", pci_name(pdev));
 		vga_set_default_device(pdev);
+	}
 
 	vga_arbiter_check_bridge_sharing(vgadev);
 
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-16 17:21                         ` Bruno Prémont
                                           ` (2 preceding siblings ...)
  (?)
@ 2014-08-19 15:45                         ` Andreas Noever
  2014-08-20  5:55                           ` Bruno Prémont
  -1 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-19 15:45 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
> vga_default_device() initialization to pci_vga_fixup()):
> - cleanup remaining but always-true #ifndefs
> - fix boot regression on dual-GPU Macs
>
> Andreas, can you please test this series? It is a modification from
> previous testing patch that should still work fine for you.
> That testing patch would have been failing X startup on old BIOS systems
> booted with vga=normal (or otherwise in VGA text mode).
>
>
> Greg, in case you have scheduled above-mentioned commit for your next
> stable iteration, please hold it back in the queue until this follow-up
> has landed and can be included within the same stable update as alone
> that patch regresses for Macs with dual-GPU and using efifb.
>
> Bruno

Fails again (with and without efifb).

The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
It sets the boot video device to intel. Removing it makes the system
bootable again.

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-19 15:45                         ` [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Andreas Noever
@ 2014-08-20  5:55                           ` Bruno Prémont
  2014-08-20  7:11                             ` Bruno Prémont
  0 siblings, 1 reply; 62+ messages in thread
From: Bruno Prémont @ 2014-08-20  5:55 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

On Tue, 19 Aug 2014 17:45:00 +0200 Andreas Noever wrote:
> On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont wrote:
> > This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
> > vga_default_device() initialization to pci_vga_fixup()):
> > - cleanup remaining but always-true #ifndefs
> > - fix boot regression on dual-GPU Macs
> >
> > Andreas, can you please test this series? It is a modification from
> > previous testing patch that should still work fine for you.
> > That testing patch would have been failing X startup on old BIOS systems
> > booted with vga=normal (or otherwise in VGA text mode).
> >
> >
> > Greg, in case you have scheduled above-mentioned commit for your next
> > stable iteration, please hold it back in the queue until this follow-up
> > has landed and can be included within the same stable update as alone
> > that patch regresses for Macs with dual-GPU and using efifb.
> >
> > Bruno
> 
> Fails again (with and without efifb).
> 
> The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
> It sets the boot video device to intel. Removing it makes the system
> bootable again.

Could you provide your whole kernel log? I would like to understand
how your vga devices are setup and why it starts the wrong way.

If you can grab kernel log from both working and failing setups it
would be even better. The failing one is interesting for where exactly it
starts failing at boot.


Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-20  5:55                           ` Bruno Prémont
@ 2014-08-20  7:11                             ` Bruno Prémont
  2014-08-21 15:55                               ` Andreas Noever
  0 siblings, 1 reply; 62+ messages in thread
From: Bruno Prémont @ 2014-08-20  7:11 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

On Wed, 20 Aug 2014 07:55:08 +0200 Bruno Prémont wrote:
> On Tue, 19 Aug 2014 17:45:00 +0200 Andreas Noever wrote:
> > On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont wrote:
> > > This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
> > > vga_default_device() initialization to pci_vga_fixup()):
> > > - cleanup remaining but always-true #ifndefs
> > > - fix boot regression on dual-GPU Macs
> > >
> > > Andreas, can you please test this series? It is a modification from
> > > previous testing patch that should still work fine for you.
> > > That testing patch would have been failing X startup on old BIOS systems
> > > booted with vga=normal (or otherwise in VGA text mode).
> > >
> > >
> > > Greg, in case you have scheduled above-mentioned commit for your next
> > > stable iteration, please hold it back in the queue until this follow-up
> > > has landed and can be included within the same stable update as alone
> > > that patch regresses for Macs with dual-GPU and using efifb.
> > >
> > > Bruno
> > 
> > Fails again (with and without efifb).
> > 
> > The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
> > It sets the boot video device to intel. Removing it makes the system
> > bootable again.
> 
> Could you provide your whole kernel log? I would like to understand
> how your vga devices are setup and why it starts the wrong way.
> 
> If you can grab kernel log from both working and failing setups it
> would be even better. The failing one is interesting for where exactly it
> starts failing at boot.

While collecting debug logs, please apply following patch to get
PCI command and bridge control registers as configured when vgaarb looks
at them.



diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index af02597..8c8e7af 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -554,6 +554,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	 * clear that below if the bridge isn't forwarding
 	 */
 	pci_read_config_word(pdev, PCI_COMMAND, &cmd);
+	pr_info("vgaarb: PCI:%s PCI_COMMAND=%04x\n", pci_name(pdev), (unsigned int)cmd);
 	if (cmd & PCI_COMMAND_IO)
 		vgadev->owns |= VGA_RSRC_LEGACY_IO;
 	if (cmd & PCI_COMMAND_MEMORY)
@@ -567,6 +568,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 			u16 l;
 			pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
 					     &l);
+			pr_info("vgaarb: PCI:%s, bridge PCI:%s PCI_BRIDGE_CONTROL=%04x\n", pci_name(pdev), pci_name(bridge), (unsigned int)l);
 			if (!(l & PCI_BRIDGE_CTL_VGA)) {
 				vgadev->owns = 0;
 				break;

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-20  7:11                             ` Bruno Prémont
@ 2014-08-21 15:55                               ` Andreas Noever
  2014-08-21 21:34                                   ` Bruno Prémont
  0 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-21 15:55 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Matthew Garrett, Linux PCI, DRI mailing list, Greg Kroah-Hartman,
	Bjorn Helgaas

[-- Attachment #1: Type: text/plain, Size: 4166 bytes --]

dmesg with your patches and vga_set_default_device commented out
(after "vgaarb: Boot video device...") as otherwise the system won't
boot.

dmesg | grep vgaarb
[    1.340118] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
[    1.340119] vgaarb: Boot video device: PCI:0000:00:02.0
[    1.340120] vgaarb: device added:
PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    1.340130] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
[    1.340132] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0
PCI_BRIDGE_CONTROL=0000
[    1.340133] vgaarb: device added:
PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    1.340135] vgaarb: loaded
[    1.340136] vgaarb: bridge control possible 0000:01:00.0
[    1.340136] vgaarb: no bridge control possible 0000:00:02.0
[    3.798430] vgaarb: device changed decodes:
PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem


If the line is not commented out then vgaarb simply declares the first
(enabled) device to be the default one, which is incorrect. And the
overwrite logic in pci_fixup_video is not triggered, since a default
device has already been set.



On Wed, Aug 20, 2014 at 9:11 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Wed, 20 Aug 2014 07:55:08 +0200 Bruno Prémont wrote:
>> On Tue, 19 Aug 2014 17:45:00 +0200 Andreas Noever wrote:
>> > On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont wrote:
>> > > This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
>> > > vga_default_device() initialization to pci_vga_fixup()):
>> > > - cleanup remaining but always-true #ifndefs
>> > > - fix boot regression on dual-GPU Macs
>> > >
>> > > Andreas, can you please test this series? It is a modification from
>> > > previous testing patch that should still work fine for you.
>> > > That testing patch would have been failing X startup on old BIOS systems
>> > > booted with vga=normal (or otherwise in VGA text mode).
>> > >
>> > >
>> > > Greg, in case you have scheduled above-mentioned commit for your next
>> > > stable iteration, please hold it back in the queue until this follow-up
>> > > has landed and can be included within the same stable update as alone
>> > > that patch regresses for Macs with dual-GPU and using efifb.
>> > >
>> > > Bruno
>> >
>> > Fails again (with and without efifb).
>> >
>> > The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
>> > It sets the boot video device to intel. Removing it makes the system
>> > bootable again.
>>
>> Could you provide your whole kernel log? I would like to understand
>> how your vga devices are setup and why it starts the wrong way.
>>
>> If you can grab kernel log from both working and failing setups it
>> would be even better. The failing one is interesting for where exactly it
>> starts failing at boot.
>
> While collecting debug logs, please apply following patch to get
> PCI command and bridge control registers as configured when vgaarb looks
> at them.
>
>
>
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index af02597..8c8e7af 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -554,6 +554,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
>          * clear that below if the bridge isn't forwarding
>          */
>         pci_read_config_word(pdev, PCI_COMMAND, &cmd);
> +       pr_info("vgaarb: PCI:%s PCI_COMMAND=%04x\n", pci_name(pdev), (unsigned int)cmd);
>         if (cmd & PCI_COMMAND_IO)
>                 vgadev->owns |= VGA_RSRC_LEGACY_IO;
>         if (cmd & PCI_COMMAND_MEMORY)
> @@ -567,6 +568,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
>                         u16 l;
>                         pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
>                                              &l);
> +                       pr_info("vgaarb: PCI:%s, bridge PCI:%s PCI_BRIDGE_CONTROL=%04x\n", pci_name(pdev), pci_name(bridge), (unsigned int)l);
>                         if (!(l & PCI_BRIDGE_CTL_VGA)) {
>                                 vgadev->owns = 0;
>                                 break;

[-- Attachment #2: dmesg --]
[-- Type: application/octet-stream, Size: 110603 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.17.0-rc1-hdev-00002-g0d1f272-dirty (anoever@linuxbook) (gcc version 4.9.1 (GCC) ) #257 SMP PREEMPT Thu Aug 21 17:37:54 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000bffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x000000008ad13fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad14000-0x000000008ad52fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000008ad53000-0x000000008ad68fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad69000-0x000000008ad8efff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000008ad8f000-0x000000008ae39fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ae3a000-0x000000008ae8efff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008ae8f000-0x000000008aecdfff] usable
[    0.000000] BIOS-e820: [mem 0x000000008aece000-0x000000008aefefff] type 20
[    0.000000] BIOS-e820: [mem 0x000000008aeff000-0x000000008af91fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008af92000-0x000000008affefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008afff000-0x000000008affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000008b000000-0x000000008f9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe70000-0x00000000ffe9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000046f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v1.10 by Apple
[    0.000000] efi:  ACPI=0x8ad8e000  ACPI 2.0=0x8ad8e014  SMBIOS=0x8ad1b000 
[    0.000000] efi: mem00: type=7, attr=0x80000000000000f, range=[0x0000000000000000-0x000000000008e000) (0MB)
[    0.000000] efi: mem01: type=0, attr=0x80000000000000f, range=[0x000000000008e000-0x0000000000090000) (0MB)
[    0.000000] efi: mem02: type=7, attr=0x80000000000000f, range=[0x0000000000090000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem03: type=2, attr=0xf, range=[0x0000000000100000-0x0000000000efb000) (13MB)
[    0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000efb000-0x0000000020000000) (497MB)
[    0.000000] efi: mem05: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020200000) (2MB)
[    0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000020200000-0x0000000036c96000) (362MB)
[    0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000036c96000-0x0000000037643000) (9MB)
[    0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000037643000-0x0000000040004000) (137MB)
[    0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000040004000-0x0000000040005000) (0MB)
[    0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000040005000-0x000000006456f000) (581MB)
[    0.000000] efi: mem11: type=2, attr=0xf, range=[0x000000006456f000-0x0000000085c2c000) (534MB)
[    0.000000] efi: mem12: type=1, attr=0xf, range=[0x0000000085c2c000-0x0000000085c4a000) (0MB)
[    0.000000] efi: mem13: type=7, attr=0xf, range=[0x0000000085c4a000-0x0000000085c68000) (0MB)
[    0.000000] efi: mem14: type=4, attr=0xf, range=[0x0000000085c68000-0x000000008937b000) (55MB)
[    0.000000] efi: mem15: type=7, attr=0xf, range=[0x000000008937b000-0x0000000089386000) (0MB)
[    0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000089386000-0x000000008946b000) (0MB)
[    0.000000] efi: mem17: type=3, attr=0xf, range=[0x000000008946b000-0x0000000089484000) (0MB)
[    0.000000] efi: mem18: type=4, attr=0xf, range=[0x0000000089484000-0x0000000089547000) (0MB)
[    0.000000] efi: mem19: type=2, attr=0xf, range=[0x0000000089547000-0x0000000089548000) (0MB)
[    0.000000] efi: mem20: type=4, attr=0xf, range=[0x0000000089548000-0x0000000089562000) (0MB)
[    0.000000] efi: mem21: type=3, attr=0xf, range=[0x0000000089562000-0x000000008956b000) (0MB)
[    0.000000] efi: mem22: type=4, attr=0xf, range=[0x000000008956b000-0x0000000089581000) (0MB)
[    0.000000] efi: mem23: type=2, attr=0xf, range=[0x0000000089581000-0x0000000089582000) (0MB)
[    0.000000] efi: mem24: type=4, attr=0xf, range=[0x0000000089582000-0x0000000089588000) (0MB)
[    0.000000] efi: mem25: type=3, attr=0xf, range=[0x0000000089588000-0x000000008958a000) (0MB)
[    0.000000] efi: mem26: type=4, attr=0xf, range=[0x000000008958a000-0x0000000089591000) (0MB)
[    0.000000] efi: mem27: type=3, attr=0xf, range=[0x0000000089591000-0x0000000089599000) (0MB)
[    0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000089599000-0x000000008959b000) (0MB)
[    0.000000] efi: mem29: type=2, attr=0xf, range=[0x000000008959b000-0x000000008959c000) (0MB)
[    0.000000] efi: mem30: type=4, attr=0xf, range=[0x000000008959c000-0x000000008959d000) (0MB)
[    0.000000] efi: mem31: type=3, attr=0xf, range=[0x000000008959d000-0x000000008959e000) (0MB)
[    0.000000] efi: mem32: type=4, attr=0xf, range=[0x000000008959e000-0x00000000895a3000) (0MB)
[    0.000000] efi: mem33: type=3, attr=0xf, range=[0x00000000895a3000-0x00000000895a8000) (0MB)
[    0.000000] efi: mem34: type=4, attr=0xf, range=[0x00000000895a8000-0x00000000895bf000) (0MB)
[    0.000000] efi: mem35: type=3, attr=0xf, range=[0x00000000895bf000-0x00000000895c3000) (0MB)
[    0.000000] efi: mem36: type=4, attr=0xf, range=[0x00000000895c3000-0x00000000895c7000) (0MB)
[    0.000000] efi: mem37: type=2, attr=0xf, range=[0x00000000895c7000-0x00000000895c8000) (0MB)
[    0.000000] efi: mem38: type=4, attr=0xf, range=[0x00000000895c8000-0x00000000895c9000) (0MB)
[    0.000000] efi: mem39: type=3, attr=0xf, range=[0x00000000895c9000-0x00000000895ca000) (0MB)
[    0.000000] efi: mem40: type=4, attr=0xf, range=[0x00000000895ca000-0x00000000895cb000) (0MB)
[    0.000000] efi: mem41: type=3, attr=0xf, range=[0x00000000895cb000-0x00000000895d6000) (0MB)
[    0.000000] efi: mem42: type=4, attr=0xf, range=[0x00000000895d6000-0x00000000895dc000) (0MB)
[    0.000000] efi: mem43: type=3, attr=0xf, range=[0x00000000895dc000-0x00000000895de000) (0MB)
[    0.000000] efi: mem44: type=4, attr=0xf, range=[0x00000000895de000-0x00000000895f8000) (0MB)
[    0.000000] efi: mem45: type=3, attr=0xf, range=[0x00000000895f8000-0x0000000089634000) (0MB)
[    0.000000] efi: mem46: type=4, attr=0xf, range=[0x0000000089634000-0x000000008964a000) (0MB)
[    0.000000] efi: mem47: type=3, attr=0xf, range=[0x000000008964a000-0x000000008964d000) (0MB)
[    0.000000] efi: mem48: type=4, attr=0xf, range=[0x000000008964d000-0x000000008964f000) (0MB)
[    0.000000] efi: mem49: type=2, attr=0xf, range=[0x000000008964f000-0x0000000089650000) (0MB)
[    0.000000] efi: mem50: type=4, attr=0xf, range=[0x0000000089650000-0x0000000089685000) (0MB)
[    0.000000] efi: mem51: type=3, attr=0xf, range=[0x0000000089685000-0x0000000089693000) (0MB)
[    0.000000] efi: mem52: type=4, attr=0xf, range=[0x0000000089693000-0x0000000089697000) (0MB)
[    0.000000] efi: mem53: type=3, attr=0xf, range=[0x0000000089697000-0x00000000896ab000) (0MB)
[    0.000000] efi: mem54: type=4, attr=0xf, range=[0x00000000896ab000-0x00000000896b0000) (0MB)
[    0.000000] efi: mem55: type=3, attr=0xf, range=[0x00000000896b0000-0x00000000896b1000) (0MB)
[    0.000000] efi: mem56: type=4, attr=0xf, range=[0x00000000896b1000-0x00000000896b4000) (0MB)
[    0.000000] efi: mem57: type=2, attr=0xf, range=[0x00000000896b4000-0x00000000896b5000) (0MB)
[    0.000000] efi: mem58: type=4, attr=0xf, range=[0x00000000896b5000-0x00000000896b9000) (0MB)
[    0.000000] efi: mem59: type=3, attr=0xf, range=[0x00000000896b9000-0x00000000896bb000) (0MB)
[    0.000000] efi: mem60: type=4, attr=0xf, range=[0x00000000896bb000-0x00000000896bf000) (0MB)
[    0.000000] efi: mem61: type=3, attr=0xf, range=[0x00000000896bf000-0x00000000896d9000) (0MB)
[    0.000000] efi: mem62: type=4, attr=0xf, range=[0x00000000896d9000-0x00000000896dc000) (0MB)
[    0.000000] efi: mem63: type=2, attr=0xf, range=[0x00000000896dc000-0x00000000896dd000) (0MB)
[    0.000000] efi: mem64: type=3, attr=0xf, range=[0x00000000896dd000-0x00000000896de000) (0MB)
[    0.000000] efi: mem65: type=4, attr=0xf, range=[0x00000000896de000-0x00000000896e0000) (0MB)
[    0.000000] efi: mem66: type=3, attr=0xf, range=[0x00000000896e0000-0x00000000896e1000) (0MB)
[    0.000000] efi: mem67: type=4, attr=0xf, range=[0x00000000896e1000-0x00000000896e2000) (0MB)
[    0.000000] efi: mem68: type=3, attr=0xf, range=[0x00000000896e2000-0x00000000896e3000) (0MB)
[    0.000000] efi: mem69: type=4, attr=0xf, range=[0x00000000896e3000-0x00000000896e5000) (0MB)
[    0.000000] efi: mem70: type=3, attr=0xf, range=[0x00000000896e5000-0x00000000896ea000) (0MB)
[    0.000000] efi: mem71: type=4, attr=0xf, range=[0x00000000896ea000-0x00000000896eb000) (0MB)
[    0.000000] efi: mem72: type=2, attr=0xf, range=[0x00000000896eb000-0x00000000896ec000) (0MB)
[    0.000000] efi: mem73: type=4, attr=0xf, range=[0x00000000896ec000-0x00000000896ed000) (0MB)
[    0.000000] efi: mem74: type=3, attr=0xf, range=[0x00000000896ed000-0x00000000896ee000) (0MB)
[    0.000000] efi: mem75: type=4, attr=0xf, range=[0x00000000896ee000-0x00000000896ef000) (0MB)
[    0.000000] efi: mem76: type=3, attr=0xf, range=[0x00000000896ef000-0x00000000896f0000) (0MB)
[    0.000000] efi: mem77: type=4, attr=0xf, range=[0x00000000896f0000-0x00000000896f2000) (0MB)
[    0.000000] efi: mem78: type=3, attr=0xf, range=[0x00000000896f2000-0x00000000896f4000) (0MB)
[    0.000000] efi: mem79: type=2, attr=0xf, range=[0x00000000896f4000-0x00000000896f5000) (0MB)
[    0.000000] efi: mem80: type=4, attr=0xf, range=[0x00000000896f5000-0x00000000896f8000) (0MB)
[    0.000000] efi: mem81: type=3, attr=0xf, range=[0x00000000896f8000-0x00000000896fc000) (0MB)
[    0.000000] efi: mem82: type=4, attr=0xf, range=[0x00000000896fc000-0x00000000896fd000) (0MB)
[    0.000000] efi: mem83: type=3, attr=0xf, range=[0x00000000896fd000-0x00000000896fe000) (0MB)
[    0.000000] efi: mem84: type=4, attr=0xf, range=[0x00000000896fe000-0x00000000896ff000) (0MB)
[    0.000000] efi: mem85: type=2, attr=0xf, range=[0x00000000896ff000-0x0000000089700000) (0MB)
[    0.000000] efi: mem86: type=4, attr=0xf, range=[0x0000000089700000-0x0000000089701000) (0MB)
[    0.000000] efi: mem87: type=3, attr=0xf, range=[0x0000000089701000-0x0000000089708000) (0MB)
[    0.000000] efi: mem88: type=4, attr=0xf, range=[0x0000000089708000-0x0000000089709000) (0MB)
[    0.000000] efi: mem89: type=3, attr=0xf, range=[0x0000000089709000-0x000000008970a000) (0MB)
[    0.000000] efi: mem90: type=4, attr=0xf, range=[0x000000008970a000-0x000000008970b000) (0MB)
[    0.000000] efi: mem91: type=3, attr=0xf, range=[0x000000008970b000-0x000000008970c000) (0MB)
[    0.000000] efi: mem92: type=4, attr=0xf, range=[0x000000008970c000-0x000000008970f000) (0MB)
[    0.000000] efi: mem93: type=3, attr=0xf, range=[0x000000008970f000-0x000000008971f000) (0MB)
[    0.000000] efi: mem94: type=4, attr=0xf, range=[0x000000008971f000-0x0000000089723000) (0MB)
[    0.000000] efi: mem95: type=2, attr=0xf, range=[0x0000000089723000-0x0000000089724000) (0MB)
[    0.000000] efi: mem96: type=4, attr=0xf, range=[0x0000000089724000-0x000000008972b000) (0MB)
[    0.000000] efi: mem97: type=3, attr=0xf, range=[0x000000008972b000-0x0000000089730000) (0MB)
[    0.000000] efi: mem98: type=4, attr=0xf, range=[0x0000000089730000-0x0000000089739000) (0MB)
[    0.000000] efi: mem99: type=3, attr=0xf, range=[0x0000000089739000-0x0000000089752000) (0MB)
[    0.000000] efi: mem100: type=4, attr=0xf, range=[0x0000000089752000-0x0000000089754000) (0MB)
[    0.000000] efi: mem101: type=3, attr=0xf, range=[0x0000000089754000-0x0000000089762000) (0MB)
[    0.000000] efi: mem102: type=4, attr=0xf, range=[0x0000000089762000-0x0000000089763000) (0MB)
[    0.000000] efi: mem103: type=3, attr=0xf, range=[0x0000000089763000-0x0000000089766000) (0MB)
[    0.000000] efi: mem104: type=4, attr=0xf, range=[0x0000000089766000-0x0000000089769000) (0MB)
[    0.000000] efi: mem105: type=3, attr=0xf, range=[0x0000000089769000-0x0000000089778000) (0MB)
[    0.000000] efi: mem106: type=4, attr=0xf, range=[0x0000000089778000-0x0000000089779000) (0MB)
[    0.000000] efi: mem107: type=3, attr=0xf, range=[0x0000000089779000-0x000000008977d000) (0MB)
[    0.000000] efi: mem108: type=2, attr=0xf, range=[0x000000008977d000-0x000000008977e000) (0MB)
[    0.000000] efi: mem109: type=4, attr=0xf, range=[0x000000008977e000-0x0000000089783000) (0MB)
[    0.000000] efi: mem110: type=3, attr=0xf, range=[0x0000000089783000-0x0000000089787000) (0MB)
[    0.000000] efi: mem111: type=4, attr=0xf, range=[0x0000000089787000-0x000000008978c000) (0MB)
[    0.000000] efi: mem112: type=2, attr=0xf, range=[0x000000008978c000-0x000000008978d000) (0MB)
[    0.000000] efi: mem113: type=4, attr=0xf, range=[0x000000008978d000-0x000000008978f000) (0MB)
[    0.000000] efi: mem114: type=3, attr=0xf, range=[0x000000008978f000-0x0000000089790000) (0MB)
[    0.000000] efi: mem115: type=4, attr=0xf, range=[0x0000000089790000-0x0000000089791000) (0MB)
[    0.000000] efi: mem116: type=3, attr=0xf, range=[0x0000000089791000-0x0000000089793000) (0MB)
[    0.000000] efi: mem117: type=4, attr=0xf, range=[0x0000000089793000-0x0000000089795000) (0MB)
[    0.000000] efi: mem118: type=3, attr=0xf, range=[0x0000000089795000-0x0000000089797000) (0MB)
[    0.000000] efi: mem119: type=2, attr=0xf, range=[0x0000000089797000-0x0000000089798000) (0MB)
[    0.000000] efi: mem120: type=4, attr=0xf, range=[0x0000000089798000-0x000000008979b000) (0MB)
[    0.000000] efi: mem121: type=3, attr=0xf, range=[0x000000008979b000-0x00000000897cb000) (0MB)
[    0.000000] efi: mem122: type=4, attr=0xf, range=[0x00000000897cb000-0x00000000897ce000) (0MB)
[    0.000000] efi: mem123: type=3, attr=0xf, range=[0x00000000897ce000-0x00000000897d3000) (0MB)
[    0.000000] efi: mem124: type=4, attr=0xf, range=[0x00000000897d3000-0x00000000897d7000) (0MB)
[    0.000000] efi: mem125: type=3, attr=0xf, range=[0x00000000897d7000-0x00000000897e5000) (0MB)
[    0.000000] efi: mem126: type=4, attr=0xf, range=[0x00000000897e5000-0x00000000897e8000) (0MB)
[    0.000000] efi: mem127: type=3, attr=0xf, range=[0x00000000897e8000-0x00000000897eb000) (0MB)
[    0.000000] efi: mem128: type=4, attr=0xf, range=[0x00000000897eb000-0x00000000897ef000) (0MB)
[    0.000000] efi: mem129: type=2, attr=0xf, range=[0x00000000897ef000-0x00000000897f0000) (0MB)
[    0.000000] efi: mem130: type=4, attr=0xf, range=[0x00000000897f0000-0x00000000897f3000) (0MB)
[    0.000000] efi: mem131: type=3, attr=0xf, range=[0x00000000897f3000-0x00000000897fa000) (0MB)
[    0.000000] efi: mem132: type=4, attr=0xf, range=[0x00000000897fa000-0x00000000897fd000) (0MB)
[    0.000000] efi: mem133: type=3, attr=0xf, range=[0x00000000897fd000-0x00000000897fe000) (0MB)
[    0.000000] efi: mem134: type=4, attr=0xf, range=[0x00000000897fe000-0x0000000089800000) (0MB)
[    0.000000] efi: mem135: type=2, attr=0xf, range=[0x0000000089800000-0x0000000089801000) (0MB)
[    0.000000] efi: mem136: type=4, attr=0xf, range=[0x0000000089801000-0x0000000089802000) (0MB)
[    0.000000] efi: mem137: type=3, attr=0xf, range=[0x0000000089802000-0x0000000089804000) (0MB)
[    0.000000] efi: mem138: type=4, attr=0xf, range=[0x0000000089804000-0x0000000089807000) (0MB)
[    0.000000] efi: mem139: type=2, attr=0xf, range=[0x0000000089807000-0x0000000089808000) (0MB)
[    0.000000] efi: mem140: type=3, attr=0xf, range=[0x0000000089808000-0x0000000089809000) (0MB)
[    0.000000] efi: mem141: type=4, attr=0xf, range=[0x0000000089809000-0x000000008980d000) (0MB)
[    0.000000] efi: mem142: type=3, attr=0xf, range=[0x000000008980d000-0x0000000089810000) (0MB)
[    0.000000] efi: mem143: type=4, attr=0xf, range=[0x0000000089810000-0x0000000089811000) (0MB)
[    0.000000] efi: mem144: type=3, attr=0xf, range=[0x0000000089811000-0x000000008981c000) (0MB)
[    0.000000] efi: mem145: type=4, attr=0xf, range=[0x000000008981c000-0x000000008981e000) (0MB)
[    0.000000] efi: mem146: type=3, attr=0xf, range=[0x000000008981e000-0x0000000089820000) (0MB)
[    0.000000] efi: mem147: type=4, attr=0xf, range=[0x0000000089820000-0x0000000089823000) (0MB)
[    0.000000] efi: mem148: type=2, attr=0xf, range=[0x0000000089823000-0x0000000089824000) (0MB)
[    0.000000] efi: mem149: type=4, attr=0xf, range=[0x0000000089824000-0x0000000089825000) (0MB)
[    0.000000] efi: mem150: type=3, attr=0xf, range=[0x0000000089825000-0x0000000089826000) (0MB)
[    0.000000] efi: mem151: type=4, attr=0xf, range=[0x0000000089826000-0x000000008982a000) (0MB)
[    0.000000] efi: mem152: type=3, attr=0xf, range=[0x000000008982a000-0x000000008982b000) (0MB)
[    0.000000] efi: mem153: type=4, attr=0xf, range=[0x000000008982b000-0x0000000089832000) (0MB)
[    0.000000] efi: mem154: type=3, attr=0xf, range=[0x0000000089832000-0x0000000089834000) (0MB)
[    0.000000] efi: mem155: type=4, attr=0xf, range=[0x0000000089834000-0x000000008983b000) (0MB)
[    0.000000] efi: mem156: type=3, attr=0xf, range=[0x000000008983b000-0x000000008983c000) (0MB)
[    0.000000] efi: mem157: type=2, attr=0xf, range=[0x000000008983c000-0x000000008983d000) (0MB)
[    0.000000] efi: mem158: type=4, attr=0xf, range=[0x000000008983d000-0x000000008983e000) (0MB)
[    0.000000] efi: mem159: type=3, attr=0xf, range=[0x000000008983e000-0x000000008983f000) (0MB)
[    0.000000] efi: mem160: type=4, attr=0xf, range=[0x000000008983f000-0x000000008985c000) (0MB)
[    0.000000] efi: mem161: type=3, attr=0xf, range=[0x000000008985c000-0x0000000089861000) (0MB)
[    0.000000] efi: mem162: type=4, attr=0xf, range=[0x0000000089861000-0x00000000898c6000) (0MB)
[    0.000000] efi: mem163: type=2, attr=0xf, range=[0x00000000898c6000-0x00000000898c7000) (0MB)
[    0.000000] efi: mem164: type=4, attr=0xf, range=[0x00000000898c7000-0x00000000898c8000) (0MB)
[    0.000000] efi: mem165: type=3, attr=0xf, range=[0x00000000898c8000-0x00000000898db000) (0MB)
[    0.000000] efi: mem166: type=4, attr=0xf, range=[0x00000000898db000-0x0000000089921000) (0MB)
[    0.000000] efi: mem167: type=3, attr=0xf, range=[0x0000000089921000-0x0000000089938000) (0MB)
[    0.000000] efi: mem168: type=4, attr=0xf, range=[0x0000000089938000-0x0000000089953000) (0MB)
[    0.000000] efi: mem169: type=3, attr=0xf, range=[0x0000000089953000-0x0000000089958000) (0MB)
[    0.000000] efi: mem170: type=4, attr=0xf, range=[0x0000000089958000-0x0000000089959000) (0MB)
[    0.000000] efi: mem171: type=2, attr=0xf, range=[0x0000000089959000-0x000000008995a000) (0MB)
[    0.000000] efi: mem172: type=4, attr=0xf, range=[0x000000008995a000-0x0000000089960000) (0MB)
[    0.000000] efi: mem173: type=3, attr=0xf, range=[0x0000000089960000-0x0000000089961000) (0MB)
[    0.000000] efi: mem174: type=4, attr=0xf, range=[0x0000000089961000-0x0000000089963000) (0MB)
[    0.000000] efi: mem175: type=3, attr=0xf, range=[0x0000000089963000-0x0000000089964000) (0MB)
[    0.000000] efi: mem176: type=4, attr=0xf, range=[0x0000000089964000-0x0000000089965000) (0MB)
[    0.000000] efi: mem177: type=3, attr=0xf, range=[0x0000000089965000-0x0000000089968000) (0MB)
[    0.000000] efi: mem178: type=4, attr=0xf, range=[0x0000000089968000-0x000000008997e000) (0MB)
[    0.000000] efi: mem179: type=3, attr=0xf, range=[0x000000008997e000-0x00000000899a1000) (0MB)
[    0.000000] efi: mem180: type=4, attr=0xf, range=[0x00000000899a1000-0x00000000899a2000) (0MB)
[    0.000000] efi: mem181: type=2, attr=0xf, range=[0x00000000899a2000-0x00000000899a3000) (0MB)
[    0.000000] efi: mem182: type=4, attr=0xf, range=[0x00000000899a3000-0x00000000899a4000) (0MB)
[    0.000000] efi: mem183: type=3, attr=0xf, range=[0x00000000899a4000-0x00000000899a6000) (0MB)
[    0.000000] efi: mem184: type=4, attr=0xf, range=[0x00000000899a6000-0x00000000899a7000) (0MB)
[    0.000000] efi: mem185: type=3, attr=0xf, range=[0x00000000899a7000-0x00000000899aa000) (0MB)
[    0.000000] efi: mem186: type=2, attr=0xf, range=[0x00000000899aa000-0x00000000899ab000) (0MB)
[    0.000000] efi: mem187: type=4, attr=0xf, range=[0x00000000899ab000-0x0000000089dcc000) (4MB)
[    0.000000] efi: mem188: type=3, attr=0xf, range=[0x0000000089dcc000-0x0000000089dd6000) (0MB)
[    0.000000] efi: mem189: type=4, attr=0xf, range=[0x0000000089dd6000-0x0000000089e60000) (0MB)
[    0.000000] efi: mem190: type=3, attr=0xf, range=[0x0000000089e60000-0x0000000089e63000) (0MB)
[    0.000000] efi: mem191: type=4, attr=0xf, range=[0x0000000089e63000-0x0000000089e65000) (0MB)
[    0.000000] efi: mem192: type=2, attr=0xf, range=[0x0000000089e65000-0x0000000089e66000) (0MB)
[    0.000000] efi: mem193: type=4, attr=0xf, range=[0x0000000089e66000-0x0000000089e67000) (0MB)
[    0.000000] efi: mem194: type=3, attr=0xf, range=[0x0000000089e67000-0x0000000089e6c000) (0MB)
[    0.000000] efi: mem195: type=4, attr=0xf, range=[0x0000000089e6c000-0x0000000089e6d000) (0MB)
[    0.000000] efi: mem196: type=3, attr=0xf, range=[0x0000000089e6d000-0x0000000089e70000) (0MB)
[    0.000000] efi: mem197: type=4, attr=0xf, range=[0x0000000089e70000-0x0000000089e72000) (0MB)
[    0.000000] efi: mem198: type=3, attr=0xf, range=[0x0000000089e72000-0x0000000089e73000) (0MB)
[    0.000000] efi: mem199: type=4, attr=0xf, range=[0x0000000089e73000-0x0000000089e75000) (0MB)
[    0.000000] efi: mem200: type=3, attr=0xf, range=[0x0000000089e75000-0x0000000089e76000) (0MB)
[    0.000000] efi: mem201: type=4, attr=0xf, range=[0x0000000089e76000-0x000000008a355000) (4MB)
[    0.000000] efi: mem202: type=2, attr=0xf, range=[0x000000008a355000-0x000000008a356000) (0MB)
[    0.000000] efi: mem203: type=4, attr=0xf, range=[0x000000008a356000-0x000000008a440000) (0MB)
[    0.000000] efi: mem204: type=2, attr=0xf, range=[0x000000008a440000-0x000000008a441000) (0MB)
[    0.000000] efi: mem205: type=4, attr=0xf, range=[0x000000008a441000-0x000000008acfa000) (8MB)
[    0.000000] efi: mem206: type=2, attr=0xf, range=[0x000000008acfa000-0x000000008acfb000) (0MB)
[    0.000000] efi: mem207: type=4, attr=0xf, range=[0x000000008acfb000-0x000000008ad03000) (0MB)
[    0.000000] efi: mem208: type=7, attr=0xf, range=[0x000000008ad03000-0x000000008ad14000) (0MB)
[    0.000000] efi: mem209: type=10, attr=0xf, range=[0x000000008ad14000-0x000000008ad53000) (0MB)
[    0.000000] efi: mem210: type=7, attr=0xf, range=[0x000000008ad53000-0x000000008ad69000) (0MB)
[    0.000000] efi: mem211: type=9, attr=0xf, range=[0x000000008ad69000-0x000000008ad8f000) (0MB)
[    0.000000] efi: mem212: type=7, attr=0xf, range=[0x000000008ad8f000-0x000000008ae3a000) (0MB)
[    0.000000] efi: mem213: type=6, attr=0x800000000000000f, range=[0x000000008ae3a000-0x000000008ae8f000) (0MB)
[    0.000000] efi: mem214: type=7, attr=0xf, range=[0x000000008ae8f000-0x000000008aece000) (0MB)
[    0.000000] efi: mem215: type=5, attr=0x800000000000000f, range=[0x000000008aece000-0x000000008aeff000) (0MB)
[    0.000000] efi: mem216: type=7, attr=0xf, range=[0x000000008aeff000-0x000000008af86000) (0MB)
[    0.000000] efi: mem217: type=2, attr=0xf, range=[0x000000008af86000-0x000000008af92000) (0MB)
[    0.000000] efi: mem218: type=0, attr=0xf, range=[0x000000008af92000-0x000000008afff000) (0MB)
[    0.000000] efi: mem219: type=2, attr=0xf, range=[0x000000008afff000-0x000000008b000000) (0MB)
[    0.000000] efi: mem220: type=7, attr=0xf, range=[0x0000000100000000-0x000000046f600000) (14070MB)
[    0.000000] efi: mem221: type=0, attr=0x8000000000000000, range=[0x00000000000a0000-0x00000000000c0000) (0MB)
[    0.000000] efi: mem222: type=0, attr=0x8000000000000000, range=[0x000000008b000000-0x000000008fa00000) (74MB)
[    0.000000] efi: mem223: type=11, attr=0x8000000000000000, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB)
[    0.000000] efi: mem224: type=11, attr=0x8000000000000000, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem225: type=11, attr=0x8000000000000000, range=[0x00000000ffe70000-0x00000000ffea0000) (0MB)
[    0.000000] SMBIOS 2.4 present.
[    0.000000] DMI: Apple Inc. MacBookPro10,1/Mac-C3EC7CD22292981F, BIOS MBP101.88Z.00EE.B03.1212211437 12/21/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x46f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: write-back
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-DFFFF write-protect
[    0.000000]   E0000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0C0000000 mask FC0000000 uncachable
[    0.000000]   1 base 0A0000000 mask FE0000000 uncachable
[    0.000000]   2 base 090000000 mask FF0000000 uncachable
[    0.000000]   3 base 08C000000 mask FFC000000 uncachable
[    0.000000]   4 base 08B000000 mask FFF000000 uncachable
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0x8b000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01ae8000, 0x01ae8fff] PGTABLE
[    0.000000] BRK [0x01ae9000, 0x01ae9fff] PGTABLE
[    0.000000] BRK [0x01aea000, 0x01aeafff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46f400000-0x46f5fffff]
[    0.000000]  [mem 0x46f400000-0x46f5fffff] page 2M
[    0.000000] BRK [0x01aeb000, 0x01aebfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46c000000-0x46f3fffff]
[    0.000000]  [mem 0x46c000000-0x46f3fffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x400000000-0x46bffffff]
[    0.000000]  [mem 0x400000000-0x46bffffff] page 2M
[    0.000000] BRK [0x01aec000, 0x01aecfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x1fffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x20200000-0x40003fff]
[    0.000000]  [mem 0x20200000-0x3fffffff] page 2M
[    0.000000]  [mem 0x40000000-0x40003fff] page 4k
[    0.000000] BRK [0x01aed000, 0x01aedfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x40005000-0x8ad13fff]
[    0.000000]  [mem 0x40005000-0x401fffff] page 4k
[    0.000000]  [mem 0x40200000-0x8abfffff] page 2M
[    0.000000]  [mem 0x8ac00000-0x8ad13fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]  [mem 0x8ad53000-0x8ad68fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]  [mem 0x8ad8f000-0x8ae39fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]  [mem 0x8ae8f000-0x8aecdfff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8aeff000-0x8af91fff]
[    0.000000]  [mem 0x8aeff000-0x8af91fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8afff000-0x8affffff]
[    0.000000]  [mem 0x8afff000-0x8affffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x3ffffffff]
[    0.000000]  [mem 0x100000000-0x3ffffffff] page 2M
[    0.000000] RAMDISK: [mem 0x36c96000-0x37642fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000008AD8E014 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x000000008AD8E1C0 0000B4 (v01 APPLE  Apple00  00000000      01000013)
[    0.000000] ACPI: FACP 0x000000008AD8C000 0000F4 (v04 APPLE  Apple00  00000000 Loki 0000005F)
[    0.000000] ACPI: DSDT 0x000000008AD82000 004D5C (v01 APPLE  MacBookP 00100001 INTL 20100915)
[    0.000000] ACPI: FACS 0x000000008AD1E000 000040
[    0.000000] ACPI: HPET 0x000000008AD8B000 000038 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: APIC 0x000000008AD8A000 0000BC (v02 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SBST 0x000000008AD88000 000030 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: ECDT 0x000000008AD87000 000053 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SSDT 0x000000008AD7F000 00053A (v01 APPLE  SataAhci 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD7E000 000024 (v01 APPLE  SmcDppt  00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD79000 000D3E (v01 APPLE  UsbPpt   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD77000 000159 (v02 APPLE  IGHda    00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD75000 000032 (v01 APPLE  SsdtS3   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD73000 0015EB (v02 APPLE  SsdtIGPU 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6E000 0019AA (v01 APPLE  TbtPEG11 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6D000 00071D (v01 PmRef  Cpu0Ist  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6C000 000B3D (v01 PmRef  CpuPm    00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6B000 000315 (v01 PmRef  Cpu0Tst  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6A000 00037A (v01 PmRef  ApTst    00003000 INTL 20100915)
[    0.000000] ACPI: DMAR 0x000000008AD69000 000088 (v01 APPLE  IVB      00000001 AAPL 00000001)
[    0.000000] ACPI: MCFG 0x000000008AD89000 00003C (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000046f5fffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x46f5fffff]
[    0.000000]   NODE_DATA [mem 0x46f5ec000-0x46f5effff]
[    0.000000]  [ffffea0000000000-ffffea0011bfffff] PMD -> [ffff88045ec00000-ffff88046ebfffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x46f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0008dfff]
[    0.000000]   node   0: [mem 0x00090000-0x0009ffff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x40003fff]
[    0.000000]   node   0: [mem 0x40005000-0x8ad13fff]
[    0.000000]   node   0: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]   node   0: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]   node   0: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]   node   0: [mem 0x8aeff000-0x8af91fff]
[    0.000000]   node   0: [mem 0x8afff000-0x8affffff]
[    0.000000]   node   0: [mem 0x100000000-0x46f5fffff]
[    0.000000] On node 0 totalpages: 4170308
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 25 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8819 pages used for memmap
[    0.000000]   DMA32 zone: 564391 pages, LIFO batch:31
[    0.000000]   Normal zone: 56280 pages used for memmap
[    0.000000]   Normal zone: 3601920 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics stolen memory at 0x8ba00000-0x8f9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad14000-0x8ad52fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad69000-0x8ad8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ae3a000-0x8ae8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8aece000-0x8aefefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8af92000-0x8affefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8b000000-0x8f9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8fa00000-0xe00f7fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f8000-0xe00f8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f9000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xffe6ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffe70000-0xffe9ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffea0000-0xffffffff]
[    0.000000] e820: [mem 0x8fa00000-0xe00f7fff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88046f200000 s82432 r8192 d24064 u262144
[    0.000000] pcpu-alloc: s82432 r8192 d24064 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4105120
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] Memory: 16248216K/16681232K available (4728K kernel code, 843K rwdata, 1536K rodata, 976K init, 1128K bss, 433016K reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	Dump stacks of tasks blocking RCU-preempt GP.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS:8448 nr_irqs:488 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 67108864 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2693.799 MHz processor
[    0.000029] Calibrating delay loop (skipped), value calculated using timer frequency.. 5389.08 BogoMIPS (lpj=8979330)
[    0.000031] pid_max: default: 32768 minimum: 301
[    0.000037] ACPI: Core revision 20140724
[    0.006749] ACPI: All ACPI Tables successfully acquired
[    0.014625] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.018215] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.019824] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.019841] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.020042] Initializing cgroup subsys memory
[    0.020046] Initializing cgroup subsys devices
[    0.020048] Initializing cgroup subsys freezer
[    0.020050] Initializing cgroup subsys net_cls
[    0.020051] Initializing cgroup subsys blkio
[    0.020068] CPU: Physical Processor ID: 0
[    0.020069] CPU: Processor Core ID: 0
[    0.020419] mce: CPU supports 9 MCE banks
[    0.020431] CPU0: Thermal monitoring enabled (TM1)
[    0.020438] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.020532] Freeing SMP alternatives memory: 16K (ffffffff819c8000 - ffffffff819cc000)
[    0.022436] ftrace: allocating 18428 entries in 72 pages
[    0.030665] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.063657] smpboot: CPU0: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz (fam: 06, model: 3a, stepping: 09)
[    0.063665] TSC deadline timer enabled
[    0.063682] Performance Events: PEBS fmt1+, 16-deep LBR, IvyBridge events, full-width counters, Intel PMU driver.
[    0.063699] ... version:                3
[    0.063700] ... bit width:              48
[    0.063701] ... generic registers:      4
[    0.063702] ... value mask:             0000ffffffffffff
[    0.063702] ... max period:             0000ffffffffffff
[    0.063703] ... fixed-purpose events:   3
[    0.063704] ... event mask:             000000070000000f
[    0.087088] x86: Booting SMP configuration:
[    0.087089] .... node  #0, CPUs:      #1
[    0.100585] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.107260]  #2 #3 #4 #5 #6 #7
[    0.218815] x86: Booted up 1 node, 8 CPUs
[    0.218818] smpboot: Total of 8 processors activated (43118.65 BogoMIPS)
[    0.224529] devtmpfs: initialized
[    0.227424] PM: Registering ACPI NVS region [mem 0x8ad14000-0x8ad52fff] (258048 bytes)
[    0.228152] RTC time: 15:38:51, date: 08/21/14
[    0.228223] NET: Registered protocol family 16
[    0.228319] cpuidle: using governor ladder
[    0.228321] cpuidle: using governor menu
[    0.228345] ACPI: bus type PCI registered
[    0.228346] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.228394] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.228396] PCI: not using MMCONFIG
[    0.228397] PCI: Using configuration type 1 for base access
[    0.241296] ACPI: Added _OSI(Module Device)
[    0.241297] ACPI: Added _OSI(Processor Device)
[    0.241298] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.241299] ACPI: Added _OSI(Processor Aggregator Device)
[    0.242398] ACPI : EC: EC description table is found, configuring boot EC
[    0.246040] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.246456] ACPI: Dynamic OEM Table Load:
[    0.246465] ACPI: SSDT 0xFFFF880458BA8000 0008AD (v01 PmRef  Cpu0Cst  00003001 INTL 20100915)
[    0.254548] ACPI: Dynamic OEM Table Load:
[    0.254554] ACPI: SSDT 0xFFFF880458B3B000 0003A4 (v01 PmRef  ApIst    00003000 INTL 20100915)
[    0.267775] ACPI: Dynamic OEM Table Load:
[    0.267780] ACPI: SSDT 0xFFFF880458B5D600 000119 (v01 PmRef  ApCst    00003000 INTL 20100915)
[    0.281905] ACPI: Interpreter enabled
[    0.281911] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140724/hwxface-580)
[    0.281914] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140724/hwxface-580)
[    0.281924] ACPI: (supports S0 S3 S4 S5)
[    0.281925] ACPI: Using IOAPIC for interrupt routing
[    0.281939] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.282253] PCI: MMCONFIG at [mem 0xe0000000-0xe9bfffff] reserved in ACPI motherboard resources
[    0.282363] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.288597] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.288602] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.288693] acpi PNP0A08:00: _OSC: platform does not support [PME]
[    0.288767] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug AER PCIeCapability]
[    0.288919] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-9b] only partially covers this bridge
[    0.289021] PCI host bridge to bus 0000:00
[    0.289023] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.289025] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.289026] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.289027] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.289028] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
[    0.289030] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
[    0.289031] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
[    0.289032] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
[    0.289033] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    0.289035] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    0.289036] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    0.289037] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    0.289038] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    0.289039] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    0.289041] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
[    0.289042] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
[    0.289043] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
[    0.289044] pci_bus 0000:00: root bus resource [mem 0x8fa00000-0xfeafffff]
[    0.289046] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    0.289047] pci_bus 0000:00: scanning bus
[    0.289053] pci 0000:00:00.0: [8086:0154] type 00 class 0x060000
[    0.289061] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0x10
[    0.289126] pci 0000:00:01.0: [8086:0151] type 01 class 0x060400
[    0.289141] pci 0000:00:01.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.289159] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.289162] pci 0000:00:01.0: PME# disabled
[    0.289183] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.289212] pci 0000:00:01.1: [8086:0155] type 01 class 0x060400
[    0.289225] pci 0000:00:01.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.289241] pci 0000:00:01.1: PME# supported from D0 D3hot D3cold
[    0.289243] pci 0000:00:01.1: PME# disabled
[    0.289263] pci 0000:00:01.1: System wakeup disabled by ACPI
[    0.289300] pci 0000:00:01.2: [8086:0159] type 01 class 0x060400
[    0.289328] pci 0000:00:01.2: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.289380] pci 0000:00:01.2: PME# supported from D0 D3hot D3cold
[    0.289383] pci 0000:00:01.2: PME# disabled
[    0.289410] pci 0000:00:01.2: System wakeup disabled by ACPI
[    0.289446] pci 0000:00:02.0: [8086:0166] type 00 class 0x030000
[    0.289455] pci 0000:00:02.0: reg 0x10: [mem 0xc1400000-0xc17fffff 64bit]
[    0.289460] pci 0000:00:02.0: reg 0x18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    0.289464] pci 0000:00:02.0: reg 0x20: [io  0x3000-0x303f]
[    0.289543] pci 0000:00:14.0: [8086:1e31] type 00 class 0x0c0330
[    0.289562] pci 0000:00:14.0: reg 0x10: [mem 0xc1c00000-0xc1c0ffff 64bit]
[    0.289621] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.289625] pci 0000:00:14.0: PME# disabled
[    0.289648] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.289686] pci 0000:00:16.0: [8086:1e3a] type 00 class 0x078000
[    0.289708] pci 0000:00:16.0: reg 0x10: [mem 0xc1c17100-0xc1c1710f 64bit]
[    0.289783] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.289787] pci 0000:00:16.0: PME# disabled
[    0.289855] pci 0000:00:1a.0: [8086:1e2d] type 00 class 0x0c0320
[    0.289876] pci 0000:00:1a.0: reg 0x10: [mem 0xc1c16c00-0xc1c16fff]
[    0.289962] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.289967] pci 0000:00:1a.0: PME# disabled
[    0.289992] pci 0000:00:1a.0: System wakeup disabled by ACPI
[    0.290027] pci 0000:00:1b.0: [8086:1e20] type 00 class 0x040300
[    0.290041] pci 0000:00:1b.0: reg 0x10: [mem 0xc1c10000-0xc1c13fff 64bit]
[    0.290105] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.290108] pci 0000:00:1b.0: PME# disabled
[    0.290134] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.290171] pci 0000:00:1c.0: [8086:1e10] type 01 class 0x060400
[    0.290235] pci 0000:00:1c.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.290310] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.290314] pci 0000:00:1c.0: PME# disabled
[    0.290349] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.290389] pci 0000:00:1c.1: [8086:1e12] type 01 class 0x060400
[    0.290452] pci 0000:00:1c.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.290526] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.290530] pci 0000:00:1c.1: PME# disabled
[    0.290567] pci 0000:00:1c.1: System wakeup disabled by ACPI
[    0.290610] pci 0000:00:1d.0: [8086:1e26] type 00 class 0x0c0320
[    0.290630] pci 0000:00:1d.0: reg 0x10: [mem 0xc1c16800-0xc1c16bff]
[    0.290717] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.290721] pci 0000:00:1d.0: PME# disabled
[    0.290746] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.290780] pci 0000:00:1f.0: [8086:1e57] type 00 class 0x060100
[    0.290931] pci 0000:00:1f.2: [8086:1e03] type 00 class 0x010601
[    0.290949] pci 0000:00:1f.2: reg 0x10: [io  0x3098-0x309f]
[    0.290956] pci 0000:00:1f.2: reg 0x14: [io  0x30bc-0x30bf]
[    0.290963] pci 0000:00:1f.2: reg 0x18: [io  0x3090-0x3097]
[    0.290970] pci 0000:00:1f.2: reg 0x1c: [io  0x30b8-0x30bb]
[    0.290978] pci 0000:00:1f.2: reg 0x20: [io  0x3060-0x307f]
[    0.290986] pci 0000:00:1f.2: reg 0x24: [mem 0xc1c16000-0xc1c167ff]
[    0.291029] pci 0000:00:1f.2: PME# supported from D3hot
[    0.291033] pci 0000:00:1f.2: PME# disabled
[    0.291091] pci 0000:00:1f.3: [8086:1e22] type 00 class 0x0c0500
[    0.291104] pci 0000:00:1f.3: reg 0x10: [mem 0xc1c17000-0xc1c170ff 64bit]
[    0.291119] pci 0000:00:1f.3: reg 0x20: [io  0xefa0-0xefbf]
[    0.291175] pci_bus 0000:00: fixups for bus
[    0.291178] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 0
[    0.291220] pci_bus 0000:01: scanning bus
[    0.291232] pci 0000:01:00.0: [10de:0fd5] type 00 class 0x030000
[    0.291243] pci 0000:01:00.0: reg 0x10: [mem 0xc0000000-0xc0ffffff]
[    0.291254] pci 0000:01:00.0: reg 0x14: [mem 0x90000000-0x9fffffff 64bit pref]
[    0.291263] pci 0000:01:00.0: reg 0x1c: [mem 0xa0000000-0xa1ffffff 64bit pref]
[    0.291270] pci 0000:01:00.0: reg 0x24: [io  0x2000-0x207f]
[    0.291278] pci 0000:01:00.0: reg 0x30: [mem 0xc1000000-0xc107ffff pref]
[    0.291334] pci 0000:01:00.0: System wakeup disabled by ACPI
[    0.291376] pci 0000:01:00.1: [10de:0e1b] type 00 class 0x040300
[    0.291385] pci 0000:01:00.1: reg 0x10: [mem 0xc1080000-0xc1083fff]
[    1.297946] pci 0000:00:01.0: ASPM: Could not configure common clock
[    1.297974] pci_bus 0000:01: fixups for bus
[    1.297977] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.297982] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.297995] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.297998] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.297999] pci_bus 0000:01: bus scan returning with max=01
[    1.298001] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 0
[    1.298038] pci_bus 0000:05: scanning bus
[    1.298050] pci 0000:05:00.0: [8086:1547] type 01 class 0x060400
[    1.298077] pci 0000:05:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.298115] pci 0000:05:00.0: supports D1 D2
[    1.298116] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.298119] pci 0000:05:00.0: PME# disabled
[    1.304623] pci_bus 0000:05: fixups for bus
[    1.304627] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.304631] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.304635] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.304641] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.304645] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 0
[    1.304702] pci_bus 0000:06: dev 03, created physical slot 2
[    1.304708] pci_bus 0000:06: dev 04, created physical slot 3
[    1.304714] pci_bus 0000:06: dev 05, created physical slot 4
[    1.304722] pci_bus 0000:06: dev 06, created physical slot 5
[    1.304755] pci_bus 0000:06: scanning bus
[    1.304768] pci 0000:06:00.0: [8086:1547] type 01 class 0x060400
[    1.304797] pci 0000:06:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.304837] pci 0000:06:00.0: supports D1 D2
[    1.304838] pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.304841] pci 0000:06:00.0: PME# disabled
[    1.304895] pci 0000:06:03.0: [8086:1547] type 01 class 0x060400
[    1.304924] pci 0000:06:03.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.304964] pci 0000:06:03.0: supports D1 D2
[    1.304966] pci 0000:06:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.304968] pci 0000:06:03.0: PME# disabled
[    1.305020] pci 0000:06:04.0: [8086:1547] type 01 class 0x060400
[    1.305048] pci 0000:06:04.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.305088] pci 0000:06:04.0: supports D1 D2
[    1.305090] pci 0000:06:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.305092] pci 0000:06:04.0: PME# disabled
[    1.305145] pci 0000:06:05.0: [8086:1547] type 01 class 0x060400
[    1.305169] pci 0000:06:05.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.305209] pci 0000:06:05.0: supports D1 D2
[    1.305211] pci 0000:06:05.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.305213] pci 0000:06:05.0: PME# disabled
[    1.305266] pci 0000:06:06.0: [8086:1547] type 01 class 0x060400
[    1.305290] pci 0000:06:06.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.305330] pci 0000:06:06.0: supports D1 D2
[    1.305331] pci 0000:06:06.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.305334] pci 0000:06:06.0: PME# disabled
[    1.305396] pci_bus 0000:06: fixups for bus
[    1.305398] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.305402] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.305405] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.305409] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.305411] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 0
[    1.305458] pci_bus 0000:07: dev 00, created physical slot 1
[    1.305463] acpiphp: Slot [1] registered
[    1.305465] pci_bus 0000:07: scanning bus
[    1.305483] pci 0000:07:00.0: [8086:1547] type 00 class 0x088000
[    1.305497] pci 0000:07:00.0: reg 0x10: [mem 0xc1f00000-0xc1f3ffff]
[    1.305506] pci 0000:07:00.0: reg 0x14: [mem 0xc1f40000-0xc1f40fff]
[    1.305613] pci 0000:07:00.0: supports D1 D2
[    1.305614] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.305617] pci 0000:07:00.0: PME# disabled
[    1.311298] pci_bus 0000:07: fixups for bus
[    1.311301] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.311311] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.311318] pci_bus 0000:07: bus scan returning with max=07
[    1.311332] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 0
[    1.311422] pci_bus 0000:08: scanning bus
[    1.311447] pci 0000:08:00.0: [8086:1549] type 01 class 0x060400
[    1.311514] pci 0000:08:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.311611] pci 0000:08:00.0: supports D1 D2
[    1.311612] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311617] pci 0000:08:00.0: PME# disabled
[    1.317967] pci_bus 0000:08: fixups for bus
[    1.317971] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.317978] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.317983] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.318001] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.318004] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 0
[    1.318072] pci_bus 0000:09: scanning bus
[    1.318097] pci 0000:09:00.0: [8086:1549] type 01 class 0x060400
[    1.318168] pci 0000:09:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.318267] pci 0000:09:00.0: supports D1 D2
[    1.318269] pci 0000:09:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.318274] pci 0000:09:00.0: PME# disabled
[    1.318387] pci_bus 0000:09: fixups for bus
[    1.318388] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.318401] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.318410] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.318413] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 0
[    1.318480] pci_bus 0000:0a: scanning bus
[    1.318536] pci 0000:0a:00.0: [14e4:1682] type 00 class 0x020000
[    1.318582] pci 0000:0a:00.0: reg 0x10: [mem 0xce100000-0xce10ffff 64bit pref]
[    1.318611] pci 0000:0a:00.0: reg 0x18: [mem 0xce110000-0xce11ffff 64bit pref]
[    1.318659] pci 0000:0a:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
[    1.318872] pci 0000:0a:00.0: PME# supported from D0 D3hot D3cold
[    1.318879] pci 0000:0a:00.0: PME# disabled
[    1.324652] pci_bus 0000:0a: fixups for bus
[    1.324656] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.324679] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.324689] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.324690] pci_bus 0000:0a: bus scan returning with max=0a
[    1.324695] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 1
[    1.324702] pci_bus 0000:09: bus scan returning with max=0a
[    1.324707] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 1
[    1.324714] pci_bus 0000:08: bus scan returning with max=0a
[    1.324717] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 0
[    1.324807] pci_bus 0000:39: scanning bus
[    1.324809] pci_bus 0000:39: fixups for bus
[    1.324810] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.324815] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.324817] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.324822] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.324823] pci_bus 0000:39: bus scan returning with max=39
[    1.324826] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 0
[    1.324864] pci_bus 0000:6a: scanning bus
[    1.324865] pci_bus 0000:6a: fixups for bus
[    1.324867] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.324872] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.324876] pci_bus 0000:6a: bus scan returning with max=6a
[    1.324879] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 0
[    1.324919] pci_bus 0000:6b: scanning bus
[    1.324921] pci_bus 0000:6b: fixups for bus
[    1.324922] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.324927] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.324931] pci_bus 0000:6b: bus scan returning with max=6b
[    1.324934] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 1
[    1.324938] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 1
[    1.324943] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 1
[    1.324947] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 1
[    1.324951] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 1
[    1.324954] pci_bus 0000:06: bus scan returning with max=6b
[    1.324957] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 1
[    1.324960] pci_bus 0000:05: bus scan returning with max=6b
[    1.324963] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 0
[    1.325014] pci_bus 0000:02: scanning bus
[    1.325016] pci_bus 0000:02: fixups for bus
[    1.325017] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.325023] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.325028] pci_bus 0000:02: bus scan returning with max=02
[    1.325036] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 0
[    1.325159] pci_bus 0000:03: scanning bus
[    1.325197] pci 0000:03:00.0: [14e4:16a3] type 00 class 0x020000
[    1.325236] pci 0000:03:00.0: reg 0x10: [mem 0xc1800000-0xc180ffff 64bit pref]
[    1.325260] pci 0000:03:00.0: reg 0x18: [mem 0xc1810000-0xc181ffff 64bit pref]
[    1.325301] pci 0000:03:00.0: reg 0x30: [mem 0xfffff800-0xffffffff pref]
[    1.325449] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    1.325456] pci 0000:03:00.0: PME# disabled
[    1.325590] pci 0000:03:00.1: [14e4:16bc] type 00 class 0x080501
[    1.325628] pci 0000:03:00.1: reg 0x10: [mem 0xc1820000-0xc182ffff 64bit pref]
[    1.325824] pci 0000:03:00.1: PME# supported from D0 D3hot D3cold
[    1.325829] pci 0000:03:00.1: PME# disabled
[    1.325863] pci 0000:03:00.1: System wakeup disabled by ACPI
[    1.331411] pci_bus 0000:03: fixups for bus
[    1.331412] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.331418] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.331427] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.331428] pci_bus 0000:03: bus scan returning with max=03
[    1.331433] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 0
[    1.331539] pci_bus 0000:04: scanning bus
[    1.331570] pci 0000:04:00.0: [14e4:4331] type 00 class 0x028000
[    1.331600] pci 0000:04:00.0: reg 0x10: [mem 0xc1900000-0xc1903fff 64bit]
[    1.331760] pci 0000:04:00.0: supports D1 D2
[    1.331761] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    1.331766] pci 0000:04:00.0: PME# disabled
[    1.331802] pci 0000:04:00.0: System wakeup disabled by ACPI
[    1.338035] pci_bus 0000:04: fixups for bus
[    1.338037] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.338044] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.338052] pci_bus 0000:04: bus scan returning with max=04
[    1.338056] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 1
[    1.338059] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 1
[    1.338062] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 1
[    1.338068] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 1
[    1.338076] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 1
[    1.338083] pci_bus 0000:00: bus scan returning with max=6b
[    1.338485] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.338532] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.338576] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.338620] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.338663] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.338703] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.338747] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.338790] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.339984] ACPI: Enabled 3 GPEs in block 00 to 3F
[    1.340060] ACPI : EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    1.340118] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=3D0007
[    1.340119] vgaarb: Boot video device: PCI:0000:00:02.0
[    1.340120] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    1.340130] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=3D0006
[    1.340132] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0 PCI_BRIDGE_CONTROL=3D0000
[    1.340133] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    1.340135] vgaarb: loaded
[    1.340136] vgaarb: bridge control possible 0000:01:00.0
[    1.340136] vgaarb: no bridge control possible 0000:00:02.0
[    1.340192] PCI: Using ACPI for IRQ routing
[    1.345209] PCI: pci_cache_line_size set to 64 bytes
[    1.345226] pci 0000:01:00.0: BAR 0: reserving [mem 0xc0000000-0xc0ffffff flags 0x40200] (d=0, p=0)
[    1.345228] pci 0000:01:00.0: BAR 1: reserving [mem 0x90000000-0x9fffffff flags 0x14220c] (d=0, p=0)
[    1.345229] pci 0000:01:00.0: BAR 3: reserving [mem 0xa0000000-0xa1ffffff flags 0x14220c] (d=0, p=0)
[    1.345235] pci 0000:07:00.0: BAR 0: reserving [mem 0xc1f00000-0xc1f3ffff flags 0x40200] (d=0, p=0)
[    1.345237] pci 0000:07:00.0: BAR 1: reserving [mem 0xc1f40000-0xc1f40fff flags 0x40200] (d=0, p=0)
[    1.345255] pci 0000:00:02.0: BAR 0: reserving [mem 0xc1400000-0xc17fffff flags 0x140204] (d=0, p=0)
[    1.345257] pci 0000:00:02.0: BAR 2: reserving [mem 0xb0000000-0xbfffffff flags 0x14220c] (d=0, p=0)
[    1.345259] pci 0000:00:02.0: BAR 4: reserving [io  0x3000-0x303f flags 0x40101] (d=0, p=0)
[    1.345265] pci 0000:00:16.0: BAR 0: reserving [mem 0xc1c17100-0xc1c1710f flags 0x140204] (d=0, p=0)
[    1.345269] pci 0000:00:1a.0: BAR 0: reserving [mem 0xc1c16c00-0xc1c16fff flags 0x40200] (d=0, p=0)
[    1.345341] pci 0000:00:1d.0: BAR 0: reserving [mem 0xc1c16800-0xc1c16bff flags 0x40200] (d=0, p=0)
[    1.345346] pci 0000:00:1f.2: BAR 0: reserving [io  0x3098-0x309f flags 0x40101] (d=0, p=0)
[    1.345347] pci 0000:00:1f.2: BAR 1: reserving [io  0x30bc-0x30bf flags 0x40101] (d=0, p=0)
[    1.345349] pci 0000:00:1f.2: BAR 2: reserving [io  0x3090-0x3097 flags 0x40101] (d=0, p=0)
[    1.345350] pci 0000:00:1f.2: BAR 3: reserving [io  0x30b8-0x30bb flags 0x40101] (d=0, p=0)
[    1.345352] pci 0000:00:1f.2: BAR 4: reserving [io  0x3060-0x307f flags 0x40101] (d=0, p=0)
[    1.345353] pci 0000:00:1f.2: BAR 5: reserving [mem 0xc1c16000-0xc1c167ff flags 0x40200] (d=0, p=0)
[    1.345369] pci 0000:01:00.0: BAR 5: reserving [io  0x2000-0x207f flags 0x40101] (d=1, p=1)
[    1.345372] pci 0000:01:00.1: BAR 0: reserving [mem 0xc1080000-0xc1083fff flags 0x40200] (d=1, p=1)
[    1.346616] pci 0000:0a:00.0: BAR 0: reserving [mem 0xce100000-0xce10ffff flags 0x14220c] (d=1, p=1)
[    1.346617] pci 0000:0a:00.0: BAR 2: reserving [mem 0xce110000-0xce11ffff flags 0x14220c] (d=1, p=1)
[    1.346628] pci 0000:00:14.0: BAR 0: reserving [mem 0xc1c00000-0xc1c0ffff flags 0x140204] (d=1, p=1)
[    1.346633] pci 0000:00:1b.0: BAR 0: reserving [mem 0xc1c10000-0xc1c13fff flags 0x140204] (d=1, p=1)
[    1.346678] pci 0000:03:00.0: BAR 0: reserving [mem 0xc1800000-0xc180ffff flags 0x14220c] (d=1, p=1)
[    1.346679] pci 0000:03:00.0: BAR 2: reserving [mem 0xc1810000-0xc181ffff flags 0x14220c] (d=1, p=1)
[    1.346683] pci 0000:03:00.1: BAR 0: reserving [mem 0xc1820000-0xc182ffff flags 0x14220c] (d=1, p=1)
[    1.346708] pci 0000:04:00.0: BAR 0: reserving [mem 0xc1900000-0xc1903fff flags 0x140204] (d=1, p=1)
[    1.346714] pci 0000:00:1f.3: BAR 0: reserving [mem 0xc1c17000-0xc1c170ff flags 0x140204] (d=1, p=1)
[    1.346716] pci 0000:00:1f.3: BAR 4: reserving [io  0xefa0-0xefbf flags 0x40101] (d=1, p=1)
[    1.346719] e820: reserve RAM buffer [mem 0x0008e000-0x0008ffff]
[    1.346720] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    1.346721] e820: reserve RAM buffer [mem 0x8ad14000-0x8bffffff]
[    1.346723] e820: reserve RAM buffer [mem 0x8ad69000-0x8bffffff]
[    1.346725] e820: reserve RAM buffer [mem 0x8ae3a000-0x8bffffff]
[    1.346726] e820: reserve RAM buffer [mem 0x8aece000-0x8bffffff]
[    1.346727] e820: reserve RAM buffer [mem 0x8af92000-0x8bffffff]
[    1.346728] e820: reserve RAM buffer [mem 0x8b000000-0x8bffffff]
[    1.346730] e820: reserve RAM buffer [mem 0x46f600000-0x46fffffff]
[    1.346842] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    1.346846] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    1.348877] Switched to clocksource hpet
[    1.352389] pnp: PnP ACPI init
[    1.352571] system 00:00: [mem 0xfed00000-0xfed003ff] has been reserved
[    1.352574] system 00:00: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    1.352609] system 00:01: [io  0x1000-0x100f] has been reserved
[    1.352612] system 00:01: [io  0x0400-0x047f] could not be reserved
[    1.352613] system 00:01: [io  0x0500-0x057f] has been reserved
[    1.352615] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.352633] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    1.352679] pnp 00:03: Plug and Play ACPI device, IDs APP000b (active)
[    1.352791] system 00:04: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    1.352792] system 00:04: [mem 0xfed10000-0xfed17fff] has been reserved
[    1.352794] system 00:04: [mem 0xfed18000-0xfed18fff] has been reserved
[    1.352795] system 00:04: [mem 0xfed19000-0xfed19fff] has been reserved
[    1.352797] system 00:04: [mem 0xe0000000-0xefffffff] could not be reserved
[    1.352799] system 00:04: [mem 0xfed20000-0xfed3ffff] has been reserved
[    1.352800] system 00:04: [mem 0xfed90000-0xfed93fff] has been reserved
[    1.352801] system 00:04: [mem 0xfed45000-0xfed8ffff] has been reserved
[    1.352803] system 00:04: [mem 0xff000000-0xffffffff] could not be reserved
[    1.352804] system 00:04: [mem 0xfee00000-0xfeefffff] has been reserved
[    1.352806] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.355137] system 00:05: [mem 0x20000000-0x201fffff] has been reserved
[    1.355139] system 00:05: [mem 0x40000000-0x401fffff] could not be reserved
[    1.355140] system 00:05: Plug and Play ACPI device, IDs PNP0c01 (active)
[    1.355147] pnp: PnP ACPI: found 6 devices
[    1.361573] pci 0000:0a:00.0: can't claim BAR 6 [mem 0xffff0000-0xffffffff pref]: no compatible bridge window
[    1.361576] pci 0000:03:00.0: can't claim BAR 6 [mem 0xfffff800-0xffffffff pref]: no compatible bridge window
[    1.361601] pci 0000:09:00.0: bridge window [io  0x1000-0x0fff] to [bus 0a] add_size 1000
[    1.361615] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.361616] pci 0000:08:00.0: bridge window [io  0x1000-0x0fff] to [bus 09-0a] add_size 1000
[    1.361631] pci 0000:06:05.0: bridge window [io  0x1000-0x0fff] to [bus 6a] add_size 1000
[    1.361633] pci 0000:06:05.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6a] add_size 200000
[    1.361639] pci 0000:06:06.0: bridge window [io  0x1000-0x0fff] to [bus 6b] add_size 1000
[    1.361641] pci 0000:06:06.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6b] add_size 200000
[    1.361681] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.361683] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.361686] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.361688] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.361692] pci 0000:06:05.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.361694] pci 0000:06:06.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.361695] pci 0000:06:05.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.361696] pci 0000:06:06.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.361700] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.361702] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.361704] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.361706] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.361707] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.361709] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.361710] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.361711] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.361714] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.361715] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.361717] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.361718] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.361720] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.361722] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.361723] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.361724] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.361726] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.361729] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.361735] pci 0000:08:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.361737] pci 0000:08:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.361739] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.361740] pci 0000:09:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.361743] pci 0000:0a:00.0: BAR 6: assigned [mem 0xc2000000-0xc200ffff pref]
[    1.361744] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.361747] pci 0000:09:00.0:   bridge window [io  0x4000-0x4fff]
[    1.361755] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.361760] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.361769] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.361772] pci 0000:08:00.0:   bridge window [io  0x4000-0x4fff]
[    1.361779] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.361784] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.361793] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.361795] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.361798] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.361801] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.361805] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.361807] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.361811] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.361813] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.361818] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.361821] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.361826] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.361830] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.361836] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.361837] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.361841] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.361843] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.361847] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.361849] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.361851] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.361853] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.361856] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.361860] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.361868] pci 0000:03:00.0: BAR 6: assigned [mem 0xc1a00000-0xc1a007ff pref]
[    1.361869] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.361879] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.361884] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.361892] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.361899] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.361911] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    1.361912] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    1.361913] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    1.361915] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
[    1.361916] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
[    1.361917] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
[    1.361919] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
[    1.361920] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
[    1.361921] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
[    1.361922] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
[    1.361924] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
[    1.361925] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
[    1.361926] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
[    1.361928] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
[    1.361929] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
[    1.361930] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
[    1.361931] pci_bus 0000:00: resource 20 [mem 0x8fa00000-0xfeafffff]
[    1.361933] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
[    1.361934] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    1.361936] pci_bus 0000:01: resource 1 [mem 0xc0000000-0xc10fffff]
[    1.361937] pci_bus 0000:01: resource 2 [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.361939] pci_bus 0000:05: resource 0 [io  0x4000-0x6fff]
[    1.361940] pci_bus 0000:05: resource 1 [mem 0xc1d00000-0xce0fffff]
[    1.361941] pci_bus 0000:05: resource 2 [mem 0xce100000-0xda1fffff 64bit pref]
[    1.361943] pci_bus 0000:06: resource 0 [io  0x4000-0x5fff]
[    1.361944] pci_bus 0000:06: resource 1 [mem 0xc1d00000-0xca0fffff]
[    1.361945] pci_bus 0000:06: resource 2 [mem 0xce100000-0xd61fffff 64bit pref]
[    1.361946] pci_bus 0000:07: resource 1 [mem 0xc1f00000-0xc1ffffff]
[    1.361948] pci_bus 0000:08: resource 0 [io  0x4000-0x4fff]
[    1.361949] pci_bus 0000:08: resource 1 [mem 0xc2000000-0xc60fffff]
[    1.361950] pci_bus 0000:08: resource 2 [mem 0xce100000-0xd21fffff 64bit pref]
[    1.361952] pci_bus 0000:09: resource 0 [io  0x4000-0x4fff]
[    1.361953] pci_bus 0000:09: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.361954] pci_bus 0000:09: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.361956] pci_bus 0000:0a: resource 0 [io  0x4000-0x4fff]
[    1.361957] pci_bus 0000:0a: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.361958] pci_bus 0000:0a: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.361960] pci_bus 0000:39: resource 0 [io  0x5000-0x5fff]
[    1.361961] pci_bus 0000:39: resource 1 [mem 0xc6100000-0xca0fffff]
[    1.361962] pci_bus 0000:39: resource 2 [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.361964] pci_bus 0000:6a: resource 1 [mem 0xc1e00000-0xc1efffff]
[    1.361965] pci_bus 0000:6b: resource 1 [mem 0xc1d00000-0xc1dfffff]
[    1.361966] pci_bus 0000:02: resource 1 [mem 0xc1b00000-0xc1bfffff]
[    1.361968] pci_bus 0000:03: resource 1 [mem 0xc1a00000-0xc1afffff]
[    1.361969] pci_bus 0000:03: resource 2 [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.361971] pci_bus 0000:04: resource 1 [mem 0xc1900000-0xc19fffff]
[    1.361992] NET: Registered protocol family 2
[    1.362147] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    1.362356] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    1.362455] TCP: Hash tables configured (established 131072 bind 65536)
[    1.362467] TCP: reno registered
[    1.362482] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    1.362528] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    1.362595] NET: Registered protocol family 1
[    1.362613] pci 0000:00:02.0: calling pci_fixup_video+0x0/0x160
[    1.362619] pci 0000:00:14.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.362627] pci 0000:00:14.0: enabling device (0000 -> 0002)
[    1.362679] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.362681] pci 0000:00:14.0: PCI INT A: no GSI
[    1.362761] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.362771] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.362891] pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.363006] pci 0000:01:00.0: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.363024] pci 0000:01:00.0: calling pci_fixup_video+0x0/0x160
[    1.363025] pci 0000:01:00.0: Boot video device
[    1.363029] pci 0000:01:00.1: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.363039] PCI: CLS mismatch (256 != 128), using 64 bytes
[    1.363081] Unpacking initramfs...
[    1.515718] Freeing initrd memory: 9908K (ffff880036c96000 - ffff880037643000)
[    1.515727] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.515729] software IO TLB [mem 0x81c68000-0x85c68000] (64MB) mapped at [ffff880081c68000-ffff880085c67fff]
[    1.516065] RAPL PMU detected, hw unit 2^-16 Joules, API unit is 2^-32 Joules, 3 fixed counters 163840 ms ovfl timer
[    1.516108] Scanning for low memory corruption every 60 seconds
[    1.516366] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    1.516395] audit: initializing netlink subsys (disabled)
[    1.516407] audit: type=2000 audit(1408635531.516:1): initialized
[    1.516682] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.517740] zpool: loaded
[    1.517742] zbud: loaded
[    1.517900] VFS: Disk quotas dquot_6.5.2
[    1.517927] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.518026] msgmni has been set to 31915
[    1.518072] Key type big_key registered
[    1.518324] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.518375] io scheduler noop registered
[    1.518377] io scheduler deadline registered
[    1.518400] io scheduler cfq registered (default)
[    1.518525] pcieport 0000:00:01.0: irq 24 for MSI/MSI-X
[    1.518608] pcieport 0000:00:01.1: irq 25 for MSI/MSI-X
[    1.518641] pcieport 0000:00:01.2: enabling device (0000 -> 0002)
[    1.518690] pcieport 0000:00:01.2: enabling bus mastering
[    1.518703] pcieport 0000:00:01.2: irq 26 for MSI/MSI-X
[    1.519046] pcieport 0000:05:00.0: irq 27 for MSI/MSI-X
[    1.519139] pcieport 0000:06:00.0: irq 28 for MSI/MSI-X
[    1.519233] pcieport 0000:06:03.0: irq 29 for MSI/MSI-X
[    1.519335] pcieport 0000:06:04.0: irq 30 for MSI/MSI-X
[    1.519404] pcieport 0000:06:05.0: enabling device (0000 -> 0002)
[    1.519433] pcieport 0000:06:05.0: enabling bus mastering
[    1.519443] pcieport 0000:06:05.0: irq 31 for MSI/MSI-X
[    1.519512] pcieport 0000:06:06.0: enabling device (0000 -> 0002)
[    1.519541] pcieport 0000:06:06.0: enabling bus mastering
[    1.519551] pcieport 0000:06:06.0: irq 32 for MSI/MSI-X
[    1.519676] pcieport 0000:08:00.0: irq 33 for MSI/MSI-X
[    1.519857] pcieport 0000:09:00.0: irq 34 for MSI/MSI-X
[    1.520001] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.520089] pciehp 0000:06:03.0:pcie24: Slot #3 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.520117] pci_bus 0000:08: dev 00, created physical slot 3-1
[    1.918715] pciehp 0000:06:03.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    1.918726] pciehp 0000:06:03.0:pcie24: service driver pciehp loaded
[    1.918754] pciehp 0000:06:04.0:pcie24: Slot #4 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.918784] pci_bus 0000:39: dev 00, created physical slot 4-1
[    2.318584] pciehp 0000:06:04.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.318592] pciehp 0000:06:04.0:pcie24: service driver pciehp loaded
[    2.318606] pciehp 0000:06:05.0:pcie24: Slot #5 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.318640] pci_bus 0000:6a: dev 00, created physical slot 5-1
[    2.518522] tsc: Refined TSC clocksource calibration: 2693.880 MHz
[    2.718458] pciehp 0000:06:05.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.718466] pciehp 0000:06:05.0:pcie24: service driver pciehp loaded
[    2.718491] pciehp 0000:06:06.0:pcie24: Slot #6 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.718514] pci_bus 0000:6b: dev 00, created physical slot 6
[    3.118331] pciehp 0000:06:06.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.118339] pciehp 0000:06:06.0:pcie24: service driver pciehp loaded
[    3.118367] pciehp 0000:09:00.0:pcie24: Slot #9 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    3.118390] pci_bus 0000:0a: dev 00, created physical slot 9
[    3.518211] pciehp 0000:09:00.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.518237] pciehp 0000:09:00.0:pcie24: service driver pciehp loaded
[    3.518248] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    3.518269] Switched to clocksource tsc
[    3.519004] efifb: probing for efifb
[    3.519031] efifb: framebuffer at 0x90020000, mapped to 0xffffc9000b800000, using 28800k, total 28800k
[    3.519032] efifb: mode is 2880x1800x32, linelength=16384, pages=1
[    3.519033] efifb: scrolling: redraw
[    3.519034] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    3.533796] Console: switching to colour frame buffer device 360x112
[    3.548389] fb0: EFI VGA frame buffer device
[    3.548397] intel_idle: MWAIT substates: 0x21120
[    3.548398] intel_idle: v0.4 model 0x3A
[    3.548399] intel_idle: lapic_timer_reliable_states 0xffffffff
[    3.548653] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.548689] ACPI: AC Adapter [ADP1] (on-line)
[    3.548757] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    3.548766] ACPI: Lid Switch [LID0]
[    3.548794] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    3.548797] ACPI: Power Button [PWRB]
[    3.548822] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    3.548824] ACPI: Sleep Button [SLPB]
[    3.548850] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    3.548851] ACPI: Power Button [PWRF]
[    3.550624] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    3.550934] hpet: probe of PNP0103:00 failed with error -22
[    3.550942] Linux agpgart interface v0.103
[    3.551011] rtc_cmos 00:02: RTC can wake from S4
[    3.551135] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.551166] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    3.551174] Intel P-state driver initializing.
[    3.551184] Intel pstate controlling: cpu 0
[    3.551199] Intel pstate controlling: cpu 1
[    3.551211] Intel pstate controlling: cpu 2
[    3.551221] Intel pstate controlling: cpu 3
[    3.551236] Intel pstate controlling: cpu 4
[    3.551246] Intel pstate controlling: cpu 5
[    3.551256] Intel pstate controlling: cpu 6
[    3.551266] Intel pstate controlling: cpu 7
[    3.551302] EFI Variables Facility v0.08 2004-May-17
[    3.652391] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.652394] ACPI: Battery Slot [BAT0] (battery present)
[    3.723055] pstore: Registered efi as persistent store backend
[    3.723065] drop_monitor: Initializing network drop monitor service
[    3.723107] TCP: cubic registered
[    3.723185] NET: Registered protocol family 10
[    3.723326] NET: Registered protocol family 17
[    3.723333] Key type dns_resolver registered
[    3.723692] registered taskstats version 1
[    3.724442]   Magic number: 10:761:639
[    3.724555] rtc_cmos 00:02: setting system clock to 2014-08-21 15:38:54 UTC (1408635534)
[    3.724608] PM: Checking hibernation image partition /dev/sda5
[    3.724611] PM: Hibernation image not present or could not be loaded.
[    3.725097] Freeing unused kernel memory: 976K (ffffffff818d4000 - ffffffff819c8000)
[    3.725098] Write protecting the kernel read-only data: 8192k
[    3.727290] Freeing unused kernel memory: 1404K (ffff8800014a1000 - ffff880001600000)
[    3.728079] Freeing unused kernel memory: 512K (ffff880001780000 - ffff880001800000)
[    3.732252] random: systemd-tmpfile urandom read with 11 bits of entropy available
[    3.733028] systemd-udevd[87]: starting version 215
[    3.734565] [drm] Initialized drm 1.1.0 20060810
[    3.738725] [drm] Memory usable by graphics device = 2048M
[    3.738730] [drm] Replacing VGA console driver
[    3.738736] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.798257] i915 0000:00:02.0: irq 35 for MSI/MSI-X
[    3.798276] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.798278] [drm] Driver supports precise vblank timestamp query.
[    3.798286] i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment)
[    3.798287] [drm] failed to find VBIOS tables
[    3.798430] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    3.821429] [drm] failed to retrieve link info, disabling eDP
[    3.894741] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2
[    3.908090] i915 0000:00:02.0: No connectors reported connected with modes
[    3.908093] [drm] Cannot find any crtc or sizes - going 1024x768
[    3.908475] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.908531] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
[    3.908533] i915 0000:00:02.0: registered panic notifier
[    3.941571] [Firmware Bug]: ACPI(GFX0) defines _DOD but not _DOS
[    3.941588] ACPI: Video Device [GFX0] (multi-head: yes  rom: yes  post: no)
[    3.942770] acpi device:02: registered as cooling_device8
[    3.942836] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/LNXVIDEO:00/input/input4
[    3.968558] ACPI: Video Device [IGPU] (multi-head: yes  rom: no  post: no)
[    3.968760] acpi device:20: registered as cooling_device9
[    3.968816] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input5
[    3.968837] [drm] Initialized i915 1.6.0 20140725 for 0000:00:02.0 on minor 0
[    3.969684] wmi: Mapper loaded
[    3.974672] ACPI Warning: \_SB_.PCI0.IGPU._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    3.974685] ACPI: \_SB_.PCI0.IGPU: failed to evaluate _DSM
[    3.974699] ACPI Warning: \_SB_.PCI0.P0P2.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    3.974717] ACPI: \_SB_.PCI0.P0P2.GFX0: failed to evaluate _DSM
[    3.974732] checking generic (90020000 1c20000) vs hw (90000000 10000000)
[    3.974733] fb: switching to nouveaufb from EFI VGA
[    3.974750] Console: switching to colour dummy device 80x25
[    3.974881] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
[    3.975073] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e7150a2
[    3.975075] nouveau  [  DEVICE][0000:01:00.0] Chipset: GK107 (NVE7)
[    3.975076] nouveau  [  DEVICE][0000:01:00.0] Family : NVE0
[    3.975097] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
[    4.061794] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
[    4.061795] nouveau  [   VBIOS][0000:01:00.0] using image from PRAMIN
[    4.061889] nouveau  [   VBIOS][0000:01:00.0] BIT signature found
[    4.061891] nouveau  [   VBIOS][0000:01:00.0] version 80.07.26.04.01
[    4.062569] nouveau 0000:01:00.0: irq 36 for MSI/MSI-X
[    4.062576] nouveau  [     PMC][0000:01:00.0] MSI interrupts enabled
[    4.062618] nouveau  [     PFB][0000:01:00.0] RAM type: GDDR5
[    4.062620] nouveau  [     PFB][0000:01:00.0] RAM size: 1024 MiB
[    4.062621] nouveau  [     PFB][0000:01:00.0]    ZCOMP: 0 tags
[    4.097393] nouveau  [  PTHERM][0000:01:00.0] FAN control: none / external
[    4.097409] nouveau  [  PTHERM][0000:01:00.0] fan management: automatic
[    4.097419] nouveau  [  PTHERM][0000:01:00.0] internal sensor: yes
[    4.097454] nouveau  [     CLK][0000:01:00.0] 07: core 270-405 MHz memory 838 MHz 
[    4.097532] nouveau  [     CLK][0000:01:00.0] 0a: core 270-900 MHz memory 1560 MHz 
[    4.097589] nouveau  [     CLK][0000:01:00.0] 0e: core 270-900 MHz memory 4000 MHz 
[    4.097625] nouveau  [     CLK][0000:01:00.0] 0f: core 270-900 MHz memory 5016 MHz 
[    4.097768] nouveau  [     CLK][0000:01:00.0] --: core 405 MHz memory 680 MHz 
[    4.121605] [TTM] Zone  kernel: Available graphics memory: 8171710 kiB
[    4.121606] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    4.121607] [TTM] Initializing pool allocator
[    4.121610] [TTM] Initializing DMA pool allocator
[    4.121616] nouveau  [     DRM] VRAM: 1024 MiB
[    4.121617] nouveau  [     DRM] GART: 1048576 MiB
[    4.121618] nouveau  [     DRM] TMDS table version 2.0
[    4.121619] nouveau  [     DRM] DCB version 4.0
[    4.121621] nouveau  [     DRM] DCB outp 00: 048101b6 0f230010
[    4.121622] nouveau  [     DRM] DCB outp 01: 018212d6 0f220020
[    4.121622] nouveau  [     DRM] DCB outp 02: 01021212 00020020
[    4.121623] nouveau  [     DRM] DCB outp 03: 088324c6 0f220010
[    4.121624] nouveau  [     DRM] DCB outp 04: 08032402 00020010
[    4.121625] nouveau  [     DRM] DCB outp 05: 02843862 00020010
[    4.121626] nouveau  [     DRM] DCB conn 00: 00020047
[    4.121627] nouveau  [     DRM] DCB conn 01: 02208146
[    4.121628] nouveau  [     DRM] DCB conn 02: 01104246
[    4.121629] nouveau  [     DRM] DCB conn 03: 00410361
[    4.129913] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.129914] [drm] Driver supports precise vblank timestamp query.
[    4.134671] nouveau  [     DRM] MM: using COPY for buffer copies
[    4.322867] nouveau  [     DRM] allocated 2880x1800 fb: 0x80000, bo ffff880037135000
[    4.322939] fbcon: nouveaufb (fb0) is primary device
[    4.974143] Console: switching to colour frame buffer device 240x75
[    4.976890] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    4.976892] [drm] Initialized nouveau 1.2.0 20120801 for 0000:01:00.0 on minor 1
[    5.017387] sdhci: Secure Digital Host Controller Interface driver
[    5.017389] sdhci: Copyright(c) Pierre Ossman
[    5.018000] sdhci-pci 0000:03:00.1: SDHCI controller found [14e4:16bc] (rev 10)
[    5.018057] sdhci-pci 0000:03:00.1: enabling device (0000 -> 0002)
[    5.018063] ACPI: bus type USB registered
[    5.018089] usbcore: registered new interface driver usbfs
[    5.018099] usbcore: registered new interface driver hub
[    5.018114] SCSI subsystem initialized
[    5.018145] usbcore: registered new device driver usb
[    5.018217] sdhci-pci 0000:03:00.1: enabling bus mastering
[    5.018225] sdhci-pci 0000:03:00.1: No vmmc regulator found
[    5.018227] sdhci-pci 0000:03:00.1: No vqmmc regulator found
[    5.018337] mmc0: SDHCI controller on PCI [0000:03:00.1] using ADMA
[    5.018579] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.018722] ehci-pci: EHCI PCI platform driver
[    5.018836] ehci-pci 0000:00:1a.0: enabling bus mastering
[    5.018850] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    5.018856] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    5.018872] ehci-pci 0000:00:1a.0: debug port 2
[    5.019677] libata version 3.00 loaded.
[    5.022773] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    5.022787] ehci-pci 0000:00:1a.0: irq 23, io mem 0xc1c16c00
[    5.031063] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    5.031192] hub 1-0:1.0: USB hub found
[    5.031197] hub 1-0:1.0: 2 ports detected
[    5.031344] ehci-pci 0000:00:1d.0: enabling bus mastering
[    5.031352] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    5.031355] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    5.031368] ehci-pci 0000:00:1d.0: debug port 2
[    5.035252] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    5.035261] ehci-pci 0000:00:1d.0: irq 22, io mem 0xc1c16800
[    5.044416] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    5.044542] hub 2-0:1.0: USB hub found
[    5.044546] hub 2-0:1.0: 2 ports detected
[    5.044689] xhci_hcd 0000:00:14.0: can't derive routing for PCI INT A
[    5.044691] xhci_hcd 0000:00:14.0: PCI INT A: no GSI
[    5.044708] xhci_hcd 0000:00:14.0: enabling bus mastering
[    5.044713] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    5.044720] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[    5.044813] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    5.044833] xhci_hcd 0000:00:14.0: irq 37 for MSI/MSI-X
[    5.044977] hub 3-0:1.0: USB hub found
[    5.044988] hub 3-0:1.0: 4 ports detected
[    5.045111] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    5.045113] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
[    5.045231] hub 4-0:1.0: USB hub found
[    5.045241] hub 4-0:1.0: 4 ports detected
[    5.045340] ahci 0000:00:1f.2: version 3.0
[    5.045417] ahci 0000:00:1f.2: irq 38 for MSI/MSI-X
[    5.045453] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1 impl SATA mode
[    5.045455] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems apst 
[    5.045958] scsi host0: ahci
[    5.046119] scsi host1: ahci
[    5.046253] scsi host2: ahci
[    5.046346] scsi host3: ahci
[    5.046425] scsi host4: ahci
[    5.046500] scsi host5: ahci
[    5.046531] ata1: SATA max UDMA/133 abar m2048@0xc1c16000 port 0xc1c16100 irq 38
[    5.046532] ata2: DUMMY
[    5.046533] ata3: DUMMY
[    5.046533] ata4: DUMMY
[    5.046534] ata5: DUMMY
[    5.046534] ata6: DUMMY
[    5.337771] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    5.364369] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    5.364804] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    5.364926] ata1.00: ATA-8: APPLE SSD SD512E, 1027AP, max UDMA/133
[    5.364931] ata1.00: 977105060 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    5.365427] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    5.365550] ata1.00: configured for UDMA/133
[    5.365846] scsi 0:0:0:0: Direct-Access     ATA      APPLE SSD SD512E AP   PQ: 0 ANSI: 5
[    5.368558] sd 0:0:0:0: [sda] 977105060 512-byte logical blocks: (500 GB/465 GiB)
[    5.368563] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    5.368632] sd 0:0:0:0: [sda] Write Protect is off
[    5.368634] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    5.368644] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.371972]  sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
[    5.372828] sd 0:0:0:0: [sda] Attached SCSI disk
[    5.402467] PM: Starting manual resume from disk
[    5.402471] PM: Hibernation image partition 8:5 present
[    5.402472] PM: Looking for hibernation image.
[    5.402697] PM: Image not found (code -22)
[    5.402699] PM: Hibernation image not present or could not be loaded.
[    5.444152] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[    5.462080] hub 1-1:1.0: USB hub found
[    5.462264] hub 1-1:1.0: 6 ports detected
[    5.567654] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    5.691730] hub 2-1:1.0: USB hub found
[    5.691913] hub 2-1:1.0: 8 ports detected
[    5.771070] usb 1-1.1: new high-speed USB device number 3 using ehci-pci
[    6.017775] usb 2-1.8: new high-speed USB device number 3 using ehci-pci
[    6.101862] hub 2-1.8:1.0: USB hub found
[    6.102075] hub 2-1.8:1.0: 2 ports detected
[    6.275095] systemd[1]: Cannot add dependency job for unit hddtemp.service, ignoring: Unit hddtemp.service failed to load: No such file or directory.
[    6.305694] EXT4-fs (sda7): re-mounted. Opts: data=ordered,discard
[    6.339468] systemd-udevd[198]: starting version 215
[    6.380783] usb 2-1.8.1: new full-speed USB device number 4 using ehci-pci
[    6.480257] hub 2-1.8.1:1.0: USB hub found
[    6.480505] hub 2-1.8.1:1.0: 3 ports detected
[    6.560721] usb 2-1.8.2: new full-speed USB device number 5 using ehci-pci
[    6.561969] apple_gmux: Found gmux version 3.2.19 [indexed]
[    6.581665] thunderbolt 0000:07:00.0: irq 39 for MSI/MSI-X
[    6.581711] thunderbolt 0000:07:00.0: NHI initialized, starting thunderbolt
[    6.581720] thunderbolt 0000:07:00.0: allocating TX ring 0 of size 10
[    6.581724] thunderbolt 0000:07:00.0: allocating RX ring 0 of size 10
[    6.581728] thunderbolt 0000:07:00.0: control channel created
[    6.581729] thunderbolt 0000:07:00.0: control channel starting...
[    6.581730] thunderbolt 0000:07:00.0: starting TX ring 0
[    6.581735] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[    6.581736] thunderbolt 0000:07:00.0: starting RX ring 0
[    6.581740] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001)
[    6.581860] thunderbolt 0000:07:00.0: initializing Switch at 0x0 (depth: 0, up port: 5)
[    6.581862] thunderbolt 0000:07:00.0: old switch config:
[    6.581864] thunderbolt 0000:07:00.0:  Switch: 8086:1547 (Revision: 3, TB Version: 1)
[    6.581867] thunderbolt 0000:07:00.0:   Max Port Number: 12
[    6.581868] thunderbolt 0000:07:00.0:   Config:
[    6.581871] thunderbolt 0000:07:00.0:    Upstream Port Number: 5 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 255ms
[    6.581873] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.585660] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20140724/utaddress-258)
[    6.585668] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.585672] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.585676] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.585678] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.585682] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.585684] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.585687] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.585689] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    6.589318] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[    6.591373] input: PC Speaker as /devices/platform/pcspkr/input/input6
[    6.593164] i801_smbus 0000:00:1f.3: enabling device (0000 -> 0003)
[    6.593258] ACPI Warning: SystemIO range 0x000000000000efa0-0x000000000000efbf conflicts with OpRegion 0x000000000000efa0-0x000000000000efaf (\_SB_.PCI0.SBUS.SMBI) (20140724/utaddress-258)
[    6.593263] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.597315] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[    6.599909] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[    6.599924] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[    6.599938] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[    6.599953] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[    6.599975] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[    6.599989] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[    6.600000] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[    6.600077] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    6.604468] iTCO_vendor_support: vendor-support=0
[    6.605686] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    6.605735] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[    6.614557] thunderbolt 0000:07:00.0: 0: uid: 0x1000000000000
[    6.614660] thunderbolt 0000:07:00.0:  Port 0: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.614662] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.614663] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.614664] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.615157] thunderbolt 0000:07:00.0:  Port 1: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.615159] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.615160] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.615162] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.615652] thunderbolt 0000:07:00.0:  Port 2: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.615653] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.615654] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.615656] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.616152] thunderbolt 0000:07:00.0:  Port 3: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.616153] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.616154] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.616155] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.616665] thunderbolt 0000:07:00.0:  Port 4: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.616668] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.616670] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.616672] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.616753] thunderbolt 0000:07:00.0:  Port 5: 8086:1547 (Revision: 3, TB Version: 1, Type: NHI (0x2))
[    6.616755] thunderbolt 0000:07:00.0:   Max hop id (in/out): 11/11
[    6.616757] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.616759] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.616853] thunderbolt 0000:07:00.0:  Port 6: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.616855] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.616856] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.616857] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.616957] thunderbolt 0000:07:00.0:  Port 7: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.616958] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.616959] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.616960] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.617053] thunderbolt 0000:07:00.0:  Port 8: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.617055] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.617056] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.617057] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.617178] thunderbolt 0000:07:00.0:  Port 9: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.617180] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.617181] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.617182] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.617259] thunderbolt 0000:07:00.0:  Port 10: ffff:ffff (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0102))
[    6.617261] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.617263] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.617264] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.617352] thunderbolt 0000:07:00.0:  Port 11: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.617354] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.617356] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.617357] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.617461] thunderbolt 0000:07:00.0:  Port 12: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.617464] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.617465] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.617467] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.617852] thunderbolt 0000:07:00.0: 0:1: is unplugged (state: 7)
[    6.617949] thunderbolt 0000:07:00.0: 0:3: is connected, link is up (state: 2)
[    6.618150] thunderbolt 0000:07:00.0: initializing Switch at 0x3 (depth: 1, up port: 1)
[    6.618152] thunderbolt 0000:07:00.0: old switch config:
[    6.618153] thunderbolt 0000:07:00.0:  Switch: 8086:1549 (Revision: 0, TB Version: 1)
[    6.618154] thunderbolt 0000:07:00.0:   Max Port Number: 2
[    6.618155] thunderbolt 0000:07:00.0:   Config:
[    6.618157] thunderbolt 0000:07:00.0:    Upstream Port Number: 1 Depth: 1 Route String: 0x3 Enabled: 1, PlugEventsDelay: 255ms
[    6.618158] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.618638] Adding 8388604k swap on /dev/sda6.  Priority:-1 extents:1 across:8388604k SSFS
[    6.623103] AVX version of gcm_enc/dec engaged.
[    6.623105] AES CTR mode by8 optimization enabled
[    6.631955] thunderbolt 0000:07:00.0: 3: reading drom (length: 0x7b)
[    6.640544] random: nonblocking pool is initialized
[    6.650656] vga_switcheroo: enabled
[    6.656070] applesmc: key=493 fan=2 temp=44 index=43 acc=0 lux=2 kbd=1
[    6.672850] input: bcm5974 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.2/input/input7
[    6.672927] usbcore: registered new interface driver bcm5974
[    6.675765] hidraw: raw HID events driver (C) Jiri Kosina
[    6.682700] usbcore: registered new interface driver usbhid
[    6.682702] usbhid: USB HID core driver
[    6.686821] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.0/0003:05AC:0262.0001/input/input8
[    6.686880] apple 0003:05AC:0262.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input0
[    6.686921] mousedev: PS/2 mouse device common for all mice
[    6.690447] systemd-journald[178]: Received request to flush runtime journal from PID 1
[    6.747461] usb 2-1.8.1.1: new full-speed USB device number 6 using ehci-pci
[    6.793107] apple 0003:05AC:0262.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input1
[    6.820038] thunderbolt 0000:07:00.0: resetting error on 0:c.
[    6.820142] thunderbolt 0000:07:00.0: resetting error on 0:3.
[    6.900599] usb 2-1.8.1.2: new full-speed USB device number 7 using ehci-pci
[    6.963382] thunderbolt 0000:07:00.0: 3: uid: 0x1000200641bb0
[    6.963480] thunderbolt 0000:07:00.0:  Port 0: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.963482] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.963483] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.963485] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.963980] thunderbolt 0000:07:00.0:  Port 1: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.963982] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.963984] thunderbolt 0000:07:00.0:   Max counters: 4
[    6.963985] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.964077] thunderbolt 0000:07:00.0:  Port 2: 8086:1549 (Revision: 0, TB Version: 1, Type: PCIe (0x100102))
[    6.964079] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.964080] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.964082] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.964702] thunderbolt 0000:07:00.0: 3:2: PCIe port already activated, aborting
[    6.964709] thunderbolt 0000:07:00.0: 0:c: hotplug: scanning
[    6.964710] thunderbolt 0000:07:00.0: 0:c: hotplug: no switch found
[    6.964712] thunderbolt 0000:07:00.0: 0:3: got plug event for connected port, ignoring
[    7.060549] usb 2-1.8.1.3: new full-speed USB device number 8 using ehci-pci
[    7.150991] input: HID 05ac:820a as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.1/2-1.8.1.1:1.0/0003:05AC:820A.0003/input/input9
[    7.151067] hid-generic 0003:05AC:820A.0003: input,hidraw2: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:1d.0-1.8.1.1/input0
[    7.151151] input: HID 05ac:820b as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.2/2-1.8.1.2:1.0/0003:05AC:820B.0004/input/input10
[    7.151234] hid-generic 0003:05AC:820B.0004: input,hidraw3: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:1d.0-1.8.1.2/input0
[    7.159056] Bluetooth: Core ver 2.19
[    7.159071] NET: Registered protocol family 31
[    7.159073] Bluetooth: HCI device and connection manager initialized
[    7.159078] Bluetooth: HCI socket layer initialized
[    7.159080] Bluetooth: L2CAP socket layer initialized
[    7.159088] Bluetooth: SCO socket layer initialized
[    7.164359] usbcore: registered new interface driver btusb
[    7.214618] usb 2-1.8.1.1: USB disconnect, device number 6
[    7.447441] usb 2-1.8.1.2: USB disconnect, device number 7
[    9.430869] fuse init (API version 7.23)
[   13.781894] traps: gnome-shell[1182] trap int3 ip:7f8e2a4a1993 sp:7fffc6f5d860 error:0

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-21 15:55                               ` Andreas Noever
@ 2014-08-21 21:34                                   ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-21 21:34 UTC (permalink / raw)
  To: Andreas Noever, Bjorn Helgaas
  Cc: DRI mailing list, Linux PCI, Dave Airlie, Matthew Garrett,
	Greg Kroah-Hartman

On Thu, 21 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> dmesg with your patches and vga_set_default_device commented out
> (after "vgaarb: Boot video device...") as otherwise the system won't
> boot.

Do you know more precisely where your system hangs when it does not boot?
That's the part I can't find in this thread.
Is it dead-locking/freezing or just booting without displaying anything
(though network coming up if connected, keyboard working (e.g. caps key).

Try blacklisting both i915 and nouveau modules (and each one individually)
an see how far your system gets. Also make sure your network comes up
automatically, so that even if display remains black you can check via
network if your system is alive and what it complains about.

> dmesg | grep vgaarb
> [    1.340118] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
> [    1.340119] vgaarb: Boot video device: PCI:0000:00:02.0
> [    1.340120] vgaarb: device added:
> PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
> [    1.340130] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
> [    1.340132] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0
> PCI_BRIDGE_CONTROL=0000
> [    1.340133] vgaarb: device added:
> PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
> [    1.340135] vgaarb: loaded
> [    1.340136] vgaarb: bridge control possible 0000:01:00.0
> [    1.340136] vgaarb: no bridge control possible 0000:00:02.0
> [    3.798430] vgaarb: device changed decodes:
> PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
> 
> 
> If the line is not commented out then vgaarb simply declares the first
> (enabled) device to be the default one, which is incorrect. And the
> overwrite logic in pci_fixup_video is not triggered, since a default
> device has already been set.

The initial selection I am doing does match the PCI_COMMAND flags
as set for the devices (or masked by parent bridge), but probably none
of them has active legacy VGA I/O ports.
So the question would rather be how to determine which I/O port is active
for the Intel graphics and adjust vgaarb's "decodes"/owns interpretation
on that basis (there is no I/O active for the nvidia one).
I'm thinking about selecting only device that decodes the legacy VGA I/O
range and not those with any some other I/O range.

The short-term fix probably is to just unconditionally perform the
screen_info check in pci_fixup_video() while leaving vgaarb's initial
card selection alone for legacy hardware. Thus replicating efifb's
original behavior (and also get back incorrect ROM_SHADOW flagging).
Corresponding patch below (on top of both patches in this series, but
should apply without them as well). As mentioned in the patch this
papers over the real issue.


A second step would then be to tune vgaarb's initial selection.
Bjorn, is it possible to verify which I/O ports are decoded by a PCI
device at the time of adding it to vgaarb? If so, how? I would like to
check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
a device as default if that I/O range is decoded by the device.

Bruno



> On Wed, Aug 20, 2014 at 9:11 AM, Bruno Prémont wrote:
> > On Wed, 20 Aug 2014 07:55:08 +0200 Bruno Prémont wrote:
> >> On Tue, 19 Aug 2014 17:45:00 +0200 Andreas Noever wrote:
> >> > On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont wrote:
> >> > > This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
> >> > > vga_default_device() initialization to pci_vga_fixup()):
> >> > > - cleanup remaining but always-true #ifndefs
> >> > > - fix boot regression on dual-GPU Macs
> >> > >
> >> > > Andreas, can you please test this series? It is a modification from
> >> > > previous testing patch that should still work fine for you.
> >> > > That testing patch would have been failing X startup on old BIOS systems
> >> > > booted with vga=normal (or otherwise in VGA text mode).
> >> > >
> >> > >
> >> > > Greg, in case you have scheduled above-mentioned commit for your next
> >> > > stable iteration, please hold it back in the queue until this follow-up
> >> > > has landed and can be included within the same stable update as alone
> >> > > that patch regresses for Macs with dual-GPU and using efifb.
> >> > >
> >> > > Bruno
> >> >
> >> > Fails again (with and without efifb).
> >> >
> >> > The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
> >> > It sets the boot video device to intel. Removing it makes the system
> >> > bootable again.
> >>
> >> Could you provide your whole kernel log? I would like to understand
> >> how your vga devices are setup and why it starts the wrong way.
> >>
> >> If you can grab kernel log from both working and failing setups it
> >> would be even better. The failing one is interesting for where exactly it
> >> starts failing at boot.
> >
> > While collecting debug logs, please apply following patch to get
> > PCI command and bridge control registers as configured when vgaarb looks
> > at them.

From: Bruno Prémont <bonbons@linux-vserver.org>
Subject: [PATCH] x86: Force selection of vga_default_device on screen_info

Apple dual-GPU systems get the wrong GPU choosen by vgaarb because the
built-in Intel GPU has I/O ports active and no bridge in front that
would block legacy VGA I/O ports. (though no legacy VGA is setup)

The wrong initial selection prevents system from booting properly.

The proper solution would be to improve vgaarb's initial device
selection. Until that has been done return to behavior that efifb
implemented before the move to pci_fixup_video.

The draw-back of this old operation mode is that a wrong device
gets the IORESOURCE_ROM_SHADOW flag set.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
 arch/x86/pci/fixup.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 5b392d2..fc509d5 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -326,7 +326,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
-	if (!vga_default_device()) {
+	if (!vga_default_device() || 1) {
+		/* The `|| 1` condition papers over vgaarb initial GPU selection limitation
+		 * on Apple dual-GPU systems using EFI.
+		 */
 		resource_size_t start, end;
 		int i;
 
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-08-21 21:34                                   ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-21 21:34 UTC (permalink / raw)
  To: Andreas Noever, Bjorn Helgaas
  Cc: Linux PCI, Greg Kroah-Hartman, DRI mailing list, Matthew Garrett

On Thu, 21 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> dmesg with your patches and vga_set_default_device commented out
> (after "vgaarb: Boot video device...") as otherwise the system won't
> boot.

Do you know more precisely where your system hangs when it does not boot?
That's the part I can't find in this thread.
Is it dead-locking/freezing or just booting without displaying anything
(though network coming up if connected, keyboard working (e.g. caps key).

Try blacklisting both i915 and nouveau modules (and each one individually)
an see how far your system gets. Also make sure your network comes up
automatically, so that even if display remains black you can check via
network if your system is alive and what it complains about.

> dmesg | grep vgaarb
> [    1.340118] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
> [    1.340119] vgaarb: Boot video device: PCI:0000:00:02.0
> [    1.340120] vgaarb: device added:
> PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
> [    1.340130] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
> [    1.340132] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0
> PCI_BRIDGE_CONTROL=0000
> [    1.340133] vgaarb: device added:
> PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
> [    1.340135] vgaarb: loaded
> [    1.340136] vgaarb: bridge control possible 0000:01:00.0
> [    1.340136] vgaarb: no bridge control possible 0000:00:02.0
> [    3.798430] vgaarb: device changed decodes:
> PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
> 
> 
> If the line is not commented out then vgaarb simply declares the first
> (enabled) device to be the default one, which is incorrect. And the
> overwrite logic in pci_fixup_video is not triggered, since a default
> device has already been set.

The initial selection I am doing does match the PCI_COMMAND flags
as set for the devices (or masked by parent bridge), but probably none
of them has active legacy VGA I/O ports.
So the question would rather be how to determine which I/O port is active
for the Intel graphics and adjust vgaarb's "decodes"/owns interpretation
on that basis (there is no I/O active for the nvidia one).
I'm thinking about selecting only device that decodes the legacy VGA I/O
range and not those with any some other I/O range.

The short-term fix probably is to just unconditionally perform the
screen_info check in pci_fixup_video() while leaving vgaarb's initial
card selection alone for legacy hardware. Thus replicating efifb's
original behavior (and also get back incorrect ROM_SHADOW flagging).
Corresponding patch below (on top of both patches in this series, but
should apply without them as well). As mentioned in the patch this
papers over the real issue.


A second step would then be to tune vgaarb's initial selection.
Bjorn, is it possible to verify which I/O ports are decoded by a PCI
device at the time of adding it to vgaarb? If so, how? I would like to
check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
a device as default if that I/O range is decoded by the device.

Bruno



> On Wed, Aug 20, 2014 at 9:11 AM, Bruno Prémont wrote:
> > On Wed, 20 Aug 2014 07:55:08 +0200 Bruno Prémont wrote:
> >> On Tue, 19 Aug 2014 17:45:00 +0200 Andreas Noever wrote:
> >> > On Sat, Aug 16, 2014 at 7:21 PM, Bruno Prémont wrote:
> >> > > This series improves on commit 20cde694027e (x86, ia64: Move EFI_FB
> >> > > vga_default_device() initialization to pci_vga_fixup()):
> >> > > - cleanup remaining but always-true #ifndefs
> >> > > - fix boot regression on dual-GPU Macs
> >> > >
> >> > > Andreas, can you please test this series? It is a modification from
> >> > > previous testing patch that should still work fine for you.
> >> > > That testing patch would have been failing X startup on old BIOS systems
> >> > > booted with vga=normal (or otherwise in VGA text mode).
> >> > >
> >> > >
> >> > > Greg, in case you have scheduled above-mentioned commit for your next
> >> > > stable iteration, please hold it back in the queue until this follow-up
> >> > > has landed and can be included within the same stable update as alone
> >> > > that patch regresses for Macs with dual-GPU and using efifb.
> >> > >
> >> > > Bruno
> >> >
> >> > Fails again (with and without efifb).
> >> >
> >> > The vga_set_default_device in vga_arbiter_add_pci_device is at fault.
> >> > It sets the boot video device to intel. Removing it makes the system
> >> > bootable again.
> >>
> >> Could you provide your whole kernel log? I would like to understand
> >> how your vga devices are setup and why it starts the wrong way.
> >>
> >> If you can grab kernel log from both working and failing setups it
> >> would be even better. The failing one is interesting for where exactly it
> >> starts failing at boot.
> >
> > While collecting debug logs, please apply following patch to get
> > PCI command and bridge control registers as configured when vgaarb looks
> > at them.

From: Bruno Prémont <bonbons@linux-vserver.org>
Subject: [PATCH] x86: Force selection of vga_default_device on screen_info

Apple dual-GPU systems get the wrong GPU choosen by vgaarb because the
built-in Intel GPU has I/O ports active and no bridge in front that
would block legacy VGA I/O ports. (though no legacy VGA is setup)

The wrong initial selection prevents system from booting properly.

The proper solution would be to improve vgaarb's initial device
selection. Until that has been done return to behavior that efifb
implemented before the move to pci_fixup_video.

The draw-back of this old operation mode is that a wrong device
gets the IORESOURCE_ROM_SHADOW flag set.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
---
 arch/x86/pci/fixup.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 5b392d2..fc509d5 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -326,7 +326,10 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
-	if (!vga_default_device()) {
+	if (!vga_default_device() || 1) {
+		/* The `|| 1` condition papers over vgaarb initial GPU selection limitation
+		 * on Apple dual-GPU systems using EFI.
+		 */
 		resource_size_t start, end;
 		int i;
 
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-21 21:34                                   ` Bruno Prémont
  (?)
@ 2014-08-22  4:39                                   ` Bjorn Helgaas
  2014-08-22  6:23                                     ` Bruno Prémont
  -1 siblings, 1 reply; 62+ messages in thread
From: Bjorn Helgaas @ 2014-08-22  4:39 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Andreas Noever, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

On Thu, Aug 21, 2014 at 4:34 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:

> A second step would then be to tune vgaarb's initial selection.
> Bjorn, is it possible to verify which I/O ports are decoded by a PCI
> device at the time of adding it to vgaarb? If so, how? I would like to
> check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
> a device as default if that I/O range is decoded by the device.

I don't know of a way.  I'm pretty sure VGA devices are allowed to
respond to those legacy addresses even if there's no BAR for them, but
I haven't found a spec reference for this.  There is the VGA Enable
bit in bridges, of course (PCI Bridge spec, sec 12.1.1.  If the VGA
device is behind a bridge that doesn't have the VGA Enable bit set, it
probably isn't the default device.

Bjorn

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-22  4:39                                   ` Bjorn Helgaas
@ 2014-08-22  6:23                                     ` Bruno Prémont
  2014-08-22 20:30                                       ` Andreas Noever
  2014-08-25 12:16                                         ` Daniel Vetter
  0 siblings, 2 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-22  6:23 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Andreas Noever, DRI mailing list, Linux PCI, Dave Airlie,
	Matthew Garrett, Greg Kroah-Hartman

On Thu, 21 Aug 2014 23:39:31 -0500 Bjorn Helgaas wrote:
> On Thu, Aug 21, 2014 at 4:34 PM, Bruno Prémont wrote:
> 
> > A second step would then be to tune vgaarb's initial selection.
> > Bjorn, is it possible to verify which I/O ports are decoded by a PCI
> > device at the time of adding it to vgaarb? If so, how? I would like to
> > check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
> > a device as default if that I/O range is decoded by the device.
> 
> I don't know of a way.  I'm pretty sure VGA devices are allowed to
> respond to those legacy addresses even if there's no BAR for them, but
> I haven't found a spec reference for this.  There is the VGA Enable
> bit in bridges, of course (PCI Bridge spec, sec 12.1.1.  If the VGA
> device is behind a bridge that doesn't have the VGA Enable bit set, it
> probably isn't the default device.

Those VGA devices behind bridges are the easy ones that vgaarb selects
properly.
It's the ones not behind a bridge (integrated graphics) like the intel
one that cause problems.

For Andreas's system the discrete nvidia GPU has no I/O enabled
according to PCI_COMMAND flags while the integrated intel one does have
them (that's why the Intel GPU is chosen).

Unfortunately I don't know what makes his system choke at boot time as
he did not provide logs for the failing case.


If there is no better way to detect the proper legacy VGA device the
only remaining option would be to perform the screen_info testing in 
vga_arb_device_init() enclosed in arch #ifdef...

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-22  6:23                                     ` Bruno Prémont
@ 2014-08-22 20:30                                       ` Andreas Noever
  2014-08-23 11:06                                         ` Bruno Prémont
  2014-08-25 12:16                                         ` Daniel Vetter
  1 sibling, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-22 20:30 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Matthew Garrett, Linux PCI, DRI mailing list, Greg Kroah-Hartman,
	Bjorn Helgaas

[-- Attachment #1: Type: text/plain, Size: 2242 bytes --]

On Fri, Aug 22, 2014 at 8:23 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Thu, 21 Aug 2014 23:39:31 -0500 Bjorn Helgaas wrote:
>> On Thu, Aug 21, 2014 at 4:34 PM, Bruno Prémont wrote:
>>
>> > A second step would then be to tune vgaarb's initial selection.
>> > Bjorn, is it possible to verify which I/O ports are decoded by a PCI
>> > device at the time of adding it to vgaarb? If so, how? I would like to
>> > check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
>> > a device as default if that I/O range is decoded by the device.
>>
>> I don't know of a way.  I'm pretty sure VGA devices are allowed to
>> respond to those legacy addresses even if there's no BAR for them, but
>> I haven't found a spec reference for this.  There is the VGA Enable
>> bit in bridges, of course (PCI Bridge spec, sec 12.1.1.  If the VGA
>> device is behind a bridge that doesn't have the VGA Enable bit set, it
>> probably isn't the default device.
>
> Those VGA devices behind bridges are the easy ones that vgaarb selects
> properly.
> It's the ones not behind a bridge (integrated graphics) like the intel
> one that cause problems.
>
> For Andreas's system the discrete nvidia GPU has no I/O enabled
> according to PCI_COMMAND flags while the integrated intel one does have
> them (that's why the Intel GPU is chosen).
>
> Unfortunately I don't know what makes his system choke at boot time as
> he did not provide logs for the failing case.
Attached dmesg for the failing case (obtained via ssh).

Without blacklisting a small horizontal bar of vertical green bars
appears (no x, no console).
If nouveau is blacklisted then I get a console, but X will not start
(No devices found).
If i915 is blacklisted then I do not get a console. The screen just
freezes after a few boot messages.

What is vga_default_device() used for? Is it supposed to hold the
device that is controlling the (boot) screen? Why can't we just read
the configuration from vga_switcheroo/gmux?

>
> If there is no better way to detect the proper legacy VGA device the
> only remaining option would be to perform the screen_info testing in
> vga_arb_device_init() enclosed in arch #ifdef...
>
> Bruno

[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 112139 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.17.0-rc1-hdev-00002-g0d1f272-dirty (anoever@linuxbook) (gcc version 4.9.1 (GCC) ) #258 SMP PREEMPT Fri Aug 22 21:20:37 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000bffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x000000008ad13fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad14000-0x000000008ad52fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000008ad53000-0x000000008ad68fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad69000-0x000000008ad8efff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000008ad8f000-0x000000008ae39fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ae3a000-0x000000008ae8efff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008ae8f000-0x000000008aecdfff] usable
[    0.000000] BIOS-e820: [mem 0x000000008aece000-0x000000008aefefff] type 20
[    0.000000] BIOS-e820: [mem 0x000000008aeff000-0x000000008af91fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008af92000-0x000000008affefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008afff000-0x000000008affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000008b000000-0x000000008f9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe70000-0x00000000ffe9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000046f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v1.10 by Apple
[    0.000000] efi:  ACPI=0x8ad8e000  ACPI 2.0=0x8ad8e014  SMBIOS=0x8ad1b000 
[    0.000000] efi: mem00: type=7, attr=0x80000000000000f, range=[0x0000000000000000-0x000000000008e000) (0MB)
[    0.000000] efi: mem01: type=0, attr=0x80000000000000f, range=[0x000000000008e000-0x0000000000090000) (0MB)
[    0.000000] efi: mem02: type=7, attr=0x80000000000000f, range=[0x0000000000090000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem03: type=2, attr=0xf, range=[0x0000000000100000-0x0000000000efb000) (13MB)
[    0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000efb000-0x0000000020000000) (497MB)
[    0.000000] efi: mem05: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020200000) (2MB)
[    0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000020200000-0x0000000036c96000) (362MB)
[    0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000036c96000-0x0000000037643000) (9MB)
[    0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000037643000-0x0000000040004000) (137MB)
[    0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000040004000-0x0000000040005000) (0MB)
[    0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000040005000-0x000000006456f000) (581MB)
[    0.000000] efi: mem11: type=2, attr=0xf, range=[0x000000006456f000-0x0000000085c2c000) (534MB)
[    0.000000] efi: mem12: type=1, attr=0xf, range=[0x0000000085c2c000-0x0000000085c4a000) (0MB)
[    0.000000] efi: mem13: type=7, attr=0xf, range=[0x0000000085c4a000-0x0000000085c68000) (0MB)
[    0.000000] efi: mem14: type=4, attr=0xf, range=[0x0000000085c68000-0x0000000087d24000) (32MB)
[    0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000087d24000-0x0000000087d2f000) (0MB)
[    0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000087d2f000-0x000000008946b000) (23MB)
[    0.000000] efi: mem17: type=3, attr=0xf, range=[0x000000008946b000-0x0000000089484000) (0MB)
[    0.000000] efi: mem18: type=4, attr=0xf, range=[0x0000000089484000-0x0000000089547000) (0MB)
[    0.000000] efi: mem19: type=2, attr=0xf, range=[0x0000000089547000-0x0000000089548000) (0MB)
[    0.000000] efi: mem20: type=4, attr=0xf, range=[0x0000000089548000-0x0000000089562000) (0MB)
[    0.000000] efi: mem21: type=3, attr=0xf, range=[0x0000000089562000-0x000000008956b000) (0MB)
[    0.000000] efi: mem22: type=4, attr=0xf, range=[0x000000008956b000-0x0000000089581000) (0MB)
[    0.000000] efi: mem23: type=2, attr=0xf, range=[0x0000000089581000-0x0000000089582000) (0MB)
[    0.000000] efi: mem24: type=4, attr=0xf, range=[0x0000000089582000-0x0000000089588000) (0MB)
[    0.000000] efi: mem25: type=3, attr=0xf, range=[0x0000000089588000-0x000000008958a000) (0MB)
[    0.000000] efi: mem26: type=4, attr=0xf, range=[0x000000008958a000-0x0000000089591000) (0MB)
[    0.000000] efi: mem27: type=3, attr=0xf, range=[0x0000000089591000-0x0000000089599000) (0MB)
[    0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000089599000-0x000000008959b000) (0MB)
[    0.000000] efi: mem29: type=2, attr=0xf, range=[0x000000008959b000-0x000000008959c000) (0MB)
[    0.000000] efi: mem30: type=4, attr=0xf, range=[0x000000008959c000-0x000000008959d000) (0MB)
[    0.000000] efi: mem31: type=3, attr=0xf, range=[0x000000008959d000-0x000000008959e000) (0MB)
[    0.000000] efi: mem32: type=4, attr=0xf, range=[0x000000008959e000-0x00000000895a3000) (0MB)
[    0.000000] efi: mem33: type=3, attr=0xf, range=[0x00000000895a3000-0x00000000895a8000) (0MB)
[    0.000000] efi: mem34: type=4, attr=0xf, range=[0x00000000895a8000-0x00000000895bf000) (0MB)
[    0.000000] efi: mem35: type=3, attr=0xf, range=[0x00000000895bf000-0x00000000895c3000) (0MB)
[    0.000000] efi: mem36: type=4, attr=0xf, range=[0x00000000895c3000-0x00000000895c7000) (0MB)
[    0.000000] efi: mem37: type=2, attr=0xf, range=[0x00000000895c7000-0x00000000895c8000) (0MB)
[    0.000000] efi: mem38: type=4, attr=0xf, range=[0x00000000895c8000-0x00000000895c9000) (0MB)
[    0.000000] efi: mem39: type=3, attr=0xf, range=[0x00000000895c9000-0x00000000895ca000) (0MB)
[    0.000000] efi: mem40: type=4, attr=0xf, range=[0x00000000895ca000-0x00000000895cb000) (0MB)
[    0.000000] efi: mem41: type=3, attr=0xf, range=[0x00000000895cb000-0x00000000895d6000) (0MB)
[    0.000000] efi: mem42: type=4, attr=0xf, range=[0x00000000895d6000-0x00000000895dc000) (0MB)
[    0.000000] efi: mem43: type=3, attr=0xf, range=[0x00000000895dc000-0x00000000895de000) (0MB)
[    0.000000] efi: mem44: type=4, attr=0xf, range=[0x00000000895de000-0x00000000895f8000) (0MB)
[    0.000000] efi: mem45: type=3, attr=0xf, range=[0x00000000895f8000-0x0000000089634000) (0MB)
[    0.000000] efi: mem46: type=4, attr=0xf, range=[0x0000000089634000-0x000000008964a000) (0MB)
[    0.000000] efi: mem47: type=3, attr=0xf, range=[0x000000008964a000-0x000000008964d000) (0MB)
[    0.000000] efi: mem48: type=4, attr=0xf, range=[0x000000008964d000-0x000000008964f000) (0MB)
[    0.000000] efi: mem49: type=2, attr=0xf, range=[0x000000008964f000-0x0000000089650000) (0MB)
[    0.000000] efi: mem50: type=4, attr=0xf, range=[0x0000000089650000-0x0000000089685000) (0MB)
[    0.000000] efi: mem51: type=3, attr=0xf, range=[0x0000000089685000-0x0000000089693000) (0MB)
[    0.000000] efi: mem52: type=4, attr=0xf, range=[0x0000000089693000-0x0000000089697000) (0MB)
[    0.000000] efi: mem53: type=3, attr=0xf, range=[0x0000000089697000-0x00000000896ab000) (0MB)
[    0.000000] efi: mem54: type=4, attr=0xf, range=[0x00000000896ab000-0x00000000896b0000) (0MB)
[    0.000000] efi: mem55: type=3, attr=0xf, range=[0x00000000896b0000-0x00000000896b1000) (0MB)
[    0.000000] efi: mem56: type=4, attr=0xf, range=[0x00000000896b1000-0x00000000896b4000) (0MB)
[    0.000000] efi: mem57: type=2, attr=0xf, range=[0x00000000896b4000-0x00000000896b5000) (0MB)
[    0.000000] efi: mem58: type=4, attr=0xf, range=[0x00000000896b5000-0x00000000896b9000) (0MB)
[    0.000000] efi: mem59: type=3, attr=0xf, range=[0x00000000896b9000-0x00000000896bb000) (0MB)
[    0.000000] efi: mem60: type=4, attr=0xf, range=[0x00000000896bb000-0x00000000896bf000) (0MB)
[    0.000000] efi: mem61: type=3, attr=0xf, range=[0x00000000896bf000-0x00000000896d9000) (0MB)
[    0.000000] efi: mem62: type=4, attr=0xf, range=[0x00000000896d9000-0x00000000896dc000) (0MB)
[    0.000000] efi: mem63: type=2, attr=0xf, range=[0x00000000896dc000-0x00000000896dd000) (0MB)
[    0.000000] efi: mem64: type=3, attr=0xf, range=[0x00000000896dd000-0x00000000896de000) (0MB)
[    0.000000] efi: mem65: type=4, attr=0xf, range=[0x00000000896de000-0x00000000896e0000) (0MB)
[    0.000000] efi: mem66: type=3, attr=0xf, range=[0x00000000896e0000-0x00000000896e1000) (0MB)
[    0.000000] efi: mem67: type=4, attr=0xf, range=[0x00000000896e1000-0x00000000896e2000) (0MB)
[    0.000000] efi: mem68: type=3, attr=0xf, range=[0x00000000896e2000-0x00000000896e3000) (0MB)
[    0.000000] efi: mem69: type=4, attr=0xf, range=[0x00000000896e3000-0x00000000896e5000) (0MB)
[    0.000000] efi: mem70: type=3, attr=0xf, range=[0x00000000896e5000-0x00000000896ea000) (0MB)
[    0.000000] efi: mem71: type=4, attr=0xf, range=[0x00000000896ea000-0x00000000896eb000) (0MB)
[    0.000000] efi: mem72: type=2, attr=0xf, range=[0x00000000896eb000-0x00000000896ec000) (0MB)
[    0.000000] efi: mem73: type=4, attr=0xf, range=[0x00000000896ec000-0x00000000896ed000) (0MB)
[    0.000000] efi: mem74: type=3, attr=0xf, range=[0x00000000896ed000-0x00000000896ee000) (0MB)
[    0.000000] efi: mem75: type=4, attr=0xf, range=[0x00000000896ee000-0x00000000896ef000) (0MB)
[    0.000000] efi: mem76: type=3, attr=0xf, range=[0x00000000896ef000-0x00000000896f0000) (0MB)
[    0.000000] efi: mem77: type=4, attr=0xf, range=[0x00000000896f0000-0x00000000896f2000) (0MB)
[    0.000000] efi: mem78: type=3, attr=0xf, range=[0x00000000896f2000-0x00000000896f4000) (0MB)
[    0.000000] efi: mem79: type=2, attr=0xf, range=[0x00000000896f4000-0x00000000896f5000) (0MB)
[    0.000000] efi: mem80: type=4, attr=0xf, range=[0x00000000896f5000-0x00000000896f8000) (0MB)
[    0.000000] efi: mem81: type=3, attr=0xf, range=[0x00000000896f8000-0x00000000896fc000) (0MB)
[    0.000000] efi: mem82: type=4, attr=0xf, range=[0x00000000896fc000-0x00000000896fd000) (0MB)
[    0.000000] efi: mem83: type=3, attr=0xf, range=[0x00000000896fd000-0x00000000896fe000) (0MB)
[    0.000000] efi: mem84: type=4, attr=0xf, range=[0x00000000896fe000-0x00000000896ff000) (0MB)
[    0.000000] efi: mem85: type=2, attr=0xf, range=[0x00000000896ff000-0x0000000089700000) (0MB)
[    0.000000] efi: mem86: type=4, attr=0xf, range=[0x0000000089700000-0x0000000089701000) (0MB)
[    0.000000] efi: mem87: type=3, attr=0xf, range=[0x0000000089701000-0x0000000089708000) (0MB)
[    0.000000] efi: mem88: type=4, attr=0xf, range=[0x0000000089708000-0x0000000089709000) (0MB)
[    0.000000] efi: mem89: type=3, attr=0xf, range=[0x0000000089709000-0x000000008970a000) (0MB)
[    0.000000] efi: mem90: type=4, attr=0xf, range=[0x000000008970a000-0x000000008970b000) (0MB)
[    0.000000] efi: mem91: type=3, attr=0xf, range=[0x000000008970b000-0x000000008970c000) (0MB)
[    0.000000] efi: mem92: type=4, attr=0xf, range=[0x000000008970c000-0x000000008970f000) (0MB)
[    0.000000] efi: mem93: type=3, attr=0xf, range=[0x000000008970f000-0x000000008971f000) (0MB)
[    0.000000] efi: mem94: type=4, attr=0xf, range=[0x000000008971f000-0x0000000089723000) (0MB)
[    0.000000] efi: mem95: type=2, attr=0xf, range=[0x0000000089723000-0x0000000089724000) (0MB)
[    0.000000] efi: mem96: type=4, attr=0xf, range=[0x0000000089724000-0x000000008972b000) (0MB)
[    0.000000] efi: mem97: type=3, attr=0xf, range=[0x000000008972b000-0x0000000089730000) (0MB)
[    0.000000] efi: mem98: type=4, attr=0xf, range=[0x0000000089730000-0x0000000089739000) (0MB)
[    0.000000] efi: mem99: type=3, attr=0xf, range=[0x0000000089739000-0x0000000089752000) (0MB)
[    0.000000] efi: mem100: type=4, attr=0xf, range=[0x0000000089752000-0x0000000089754000) (0MB)
[    0.000000] efi: mem101: type=3, attr=0xf, range=[0x0000000089754000-0x0000000089762000) (0MB)
[    0.000000] efi: mem102: type=4, attr=0xf, range=[0x0000000089762000-0x0000000089763000) (0MB)
[    0.000000] efi: mem103: type=3, attr=0xf, range=[0x0000000089763000-0x0000000089766000) (0MB)
[    0.000000] efi: mem104: type=4, attr=0xf, range=[0x0000000089766000-0x0000000089769000) (0MB)
[    0.000000] efi: mem105: type=3, attr=0xf, range=[0x0000000089769000-0x0000000089778000) (0MB)
[    0.000000] efi: mem106: type=4, attr=0xf, range=[0x0000000089778000-0x0000000089779000) (0MB)
[    0.000000] efi: mem107: type=3, attr=0xf, range=[0x0000000089779000-0x000000008977d000) (0MB)
[    0.000000] efi: mem108: type=2, attr=0xf, range=[0x000000008977d000-0x000000008977e000) (0MB)
[    0.000000] efi: mem109: type=4, attr=0xf, range=[0x000000008977e000-0x0000000089783000) (0MB)
[    0.000000] efi: mem110: type=3, attr=0xf, range=[0x0000000089783000-0x0000000089787000) (0MB)
[    0.000000] efi: mem111: type=4, attr=0xf, range=[0x0000000089787000-0x000000008978c000) (0MB)
[    0.000000] efi: mem112: type=2, attr=0xf, range=[0x000000008978c000-0x000000008978d000) (0MB)
[    0.000000] efi: mem113: type=4, attr=0xf, range=[0x000000008978d000-0x000000008978f000) (0MB)
[    0.000000] efi: mem114: type=3, attr=0xf, range=[0x000000008978f000-0x0000000089790000) (0MB)
[    0.000000] efi: mem115: type=4, attr=0xf, range=[0x0000000089790000-0x0000000089791000) (0MB)
[    0.000000] efi: mem116: type=3, attr=0xf, range=[0x0000000089791000-0x0000000089793000) (0MB)
[    0.000000] efi: mem117: type=4, attr=0xf, range=[0x0000000089793000-0x0000000089795000) (0MB)
[    0.000000] efi: mem118: type=3, attr=0xf, range=[0x0000000089795000-0x0000000089797000) (0MB)
[    0.000000] efi: mem119: type=2, attr=0xf, range=[0x0000000089797000-0x0000000089798000) (0MB)
[    0.000000] efi: mem120: type=4, attr=0xf, range=[0x0000000089798000-0x000000008979b000) (0MB)
[    0.000000] efi: mem121: type=3, attr=0xf, range=[0x000000008979b000-0x00000000897cb000) (0MB)
[    0.000000] efi: mem122: type=4, attr=0xf, range=[0x00000000897cb000-0x00000000897ce000) (0MB)
[    0.000000] efi: mem123: type=3, attr=0xf, range=[0x00000000897ce000-0x00000000897d3000) (0MB)
[    0.000000] efi: mem124: type=4, attr=0xf, range=[0x00000000897d3000-0x00000000897d7000) (0MB)
[    0.000000] efi: mem125: type=3, attr=0xf, range=[0x00000000897d7000-0x00000000897e5000) (0MB)
[    0.000000] efi: mem126: type=4, attr=0xf, range=[0x00000000897e5000-0x00000000897e8000) (0MB)
[    0.000000] efi: mem127: type=3, attr=0xf, range=[0x00000000897e8000-0x00000000897eb000) (0MB)
[    0.000000] efi: mem128: type=4, attr=0xf, range=[0x00000000897eb000-0x00000000897ef000) (0MB)
[    0.000000] efi: mem129: type=2, attr=0xf, range=[0x00000000897ef000-0x00000000897f0000) (0MB)
[    0.000000] efi: mem130: type=4, attr=0xf, range=[0x00000000897f0000-0x00000000897f3000) (0MB)
[    0.000000] efi: mem131: type=3, attr=0xf, range=[0x00000000897f3000-0x00000000897fa000) (0MB)
[    0.000000] efi: mem132: type=4, attr=0xf, range=[0x00000000897fa000-0x00000000897fd000) (0MB)
[    0.000000] efi: mem133: type=3, attr=0xf, range=[0x00000000897fd000-0x00000000897fe000) (0MB)
[    0.000000] efi: mem134: type=4, attr=0xf, range=[0x00000000897fe000-0x0000000089800000) (0MB)
[    0.000000] efi: mem135: type=2, attr=0xf, range=[0x0000000089800000-0x0000000089801000) (0MB)
[    0.000000] efi: mem136: type=4, attr=0xf, range=[0x0000000089801000-0x0000000089802000) (0MB)
[    0.000000] efi: mem137: type=3, attr=0xf, range=[0x0000000089802000-0x0000000089804000) (0MB)
[    0.000000] efi: mem138: type=4, attr=0xf, range=[0x0000000089804000-0x0000000089807000) (0MB)
[    0.000000] efi: mem139: type=2, attr=0xf, range=[0x0000000089807000-0x0000000089808000) (0MB)
[    0.000000] efi: mem140: type=3, attr=0xf, range=[0x0000000089808000-0x0000000089809000) (0MB)
[    0.000000] efi: mem141: type=4, attr=0xf, range=[0x0000000089809000-0x000000008980d000) (0MB)
[    0.000000] efi: mem142: type=3, attr=0xf, range=[0x000000008980d000-0x0000000089810000) (0MB)
[    0.000000] efi: mem143: type=4, attr=0xf, range=[0x0000000089810000-0x0000000089811000) (0MB)
[    0.000000] efi: mem144: type=3, attr=0xf, range=[0x0000000089811000-0x000000008981c000) (0MB)
[    0.000000] efi: mem145: type=4, attr=0xf, range=[0x000000008981c000-0x000000008981e000) (0MB)
[    0.000000] efi: mem146: type=3, attr=0xf, range=[0x000000008981e000-0x0000000089820000) (0MB)
[    0.000000] efi: mem147: type=4, attr=0xf, range=[0x0000000089820000-0x0000000089823000) (0MB)
[    0.000000] efi: mem148: type=2, attr=0xf, range=[0x0000000089823000-0x0000000089824000) (0MB)
[    0.000000] efi: mem149: type=4, attr=0xf, range=[0x0000000089824000-0x0000000089825000) (0MB)
[    0.000000] efi: mem150: type=3, attr=0xf, range=[0x0000000089825000-0x0000000089826000) (0MB)
[    0.000000] efi: mem151: type=4, attr=0xf, range=[0x0000000089826000-0x000000008982a000) (0MB)
[    0.000000] efi: mem152: type=3, attr=0xf, range=[0x000000008982a000-0x000000008982b000) (0MB)
[    0.000000] efi: mem153: type=4, attr=0xf, range=[0x000000008982b000-0x0000000089832000) (0MB)
[    0.000000] efi: mem154: type=3, attr=0xf, range=[0x0000000089832000-0x0000000089834000) (0MB)
[    0.000000] efi: mem155: type=4, attr=0xf, range=[0x0000000089834000-0x000000008983b000) (0MB)
[    0.000000] efi: mem156: type=3, attr=0xf, range=[0x000000008983b000-0x000000008983c000) (0MB)
[    0.000000] efi: mem157: type=2, attr=0xf, range=[0x000000008983c000-0x000000008983d000) (0MB)
[    0.000000] efi: mem158: type=4, attr=0xf, range=[0x000000008983d000-0x000000008983e000) (0MB)
[    0.000000] efi: mem159: type=3, attr=0xf, range=[0x000000008983e000-0x000000008983f000) (0MB)
[    0.000000] efi: mem160: type=4, attr=0xf, range=[0x000000008983f000-0x000000008985c000) (0MB)
[    0.000000] efi: mem161: type=3, attr=0xf, range=[0x000000008985c000-0x0000000089861000) (0MB)
[    0.000000] efi: mem162: type=4, attr=0xf, range=[0x0000000089861000-0x00000000898c6000) (0MB)
[    0.000000] efi: mem163: type=2, attr=0xf, range=[0x00000000898c6000-0x00000000898c7000) (0MB)
[    0.000000] efi: mem164: type=4, attr=0xf, range=[0x00000000898c7000-0x00000000898c8000) (0MB)
[    0.000000] efi: mem165: type=3, attr=0xf, range=[0x00000000898c8000-0x00000000898db000) (0MB)
[    0.000000] efi: mem166: type=4, attr=0xf, range=[0x00000000898db000-0x0000000089921000) (0MB)
[    0.000000] efi: mem167: type=3, attr=0xf, range=[0x0000000089921000-0x0000000089938000) (0MB)
[    0.000000] efi: mem168: type=4, attr=0xf, range=[0x0000000089938000-0x0000000089953000) (0MB)
[    0.000000] efi: mem169: type=3, attr=0xf, range=[0x0000000089953000-0x0000000089958000) (0MB)
[    0.000000] efi: mem170: type=4, attr=0xf, range=[0x0000000089958000-0x0000000089959000) (0MB)
[    0.000000] efi: mem171: type=2, attr=0xf, range=[0x0000000089959000-0x000000008995a000) (0MB)
[    0.000000] efi: mem172: type=4, attr=0xf, range=[0x000000008995a000-0x0000000089960000) (0MB)
[    0.000000] efi: mem173: type=3, attr=0xf, range=[0x0000000089960000-0x0000000089961000) (0MB)
[    0.000000] efi: mem174: type=4, attr=0xf, range=[0x0000000089961000-0x0000000089963000) (0MB)
[    0.000000] efi: mem175: type=3, attr=0xf, range=[0x0000000089963000-0x0000000089964000) (0MB)
[    0.000000] efi: mem176: type=4, attr=0xf, range=[0x0000000089964000-0x0000000089965000) (0MB)
[    0.000000] efi: mem177: type=3, attr=0xf, range=[0x0000000089965000-0x0000000089968000) (0MB)
[    0.000000] efi: mem178: type=4, attr=0xf, range=[0x0000000089968000-0x000000008997e000) (0MB)
[    0.000000] efi: mem179: type=3, attr=0xf, range=[0x000000008997e000-0x00000000899a1000) (0MB)
[    0.000000] efi: mem180: type=4, attr=0xf, range=[0x00000000899a1000-0x00000000899a2000) (0MB)
[    0.000000] efi: mem181: type=2, attr=0xf, range=[0x00000000899a2000-0x00000000899a3000) (0MB)
[    0.000000] efi: mem182: type=4, attr=0xf, range=[0x00000000899a3000-0x00000000899a4000) (0MB)
[    0.000000] efi: mem183: type=3, attr=0xf, range=[0x00000000899a4000-0x00000000899a6000) (0MB)
[    0.000000] efi: mem184: type=4, attr=0xf, range=[0x00000000899a6000-0x00000000899a7000) (0MB)
[    0.000000] efi: mem185: type=3, attr=0xf, range=[0x00000000899a7000-0x00000000899aa000) (0MB)
[    0.000000] efi: mem186: type=2, attr=0xf, range=[0x00000000899aa000-0x00000000899ab000) (0MB)
[    0.000000] efi: mem187: type=4, attr=0xf, range=[0x00000000899ab000-0x0000000089dcc000) (4MB)
[    0.000000] efi: mem188: type=3, attr=0xf, range=[0x0000000089dcc000-0x0000000089dd6000) (0MB)
[    0.000000] efi: mem189: type=4, attr=0xf, range=[0x0000000089dd6000-0x0000000089e60000) (0MB)
[    0.000000] efi: mem190: type=3, attr=0xf, range=[0x0000000089e60000-0x0000000089e63000) (0MB)
[    0.000000] efi: mem191: type=4, attr=0xf, range=[0x0000000089e63000-0x0000000089e65000) (0MB)
[    0.000000] efi: mem192: type=2, attr=0xf, range=[0x0000000089e65000-0x0000000089e66000) (0MB)
[    0.000000] efi: mem193: type=4, attr=0xf, range=[0x0000000089e66000-0x0000000089e67000) (0MB)
[    0.000000] efi: mem194: type=3, attr=0xf, range=[0x0000000089e67000-0x0000000089e6c000) (0MB)
[    0.000000] efi: mem195: type=4, attr=0xf, range=[0x0000000089e6c000-0x0000000089e6d000) (0MB)
[    0.000000] efi: mem196: type=3, attr=0xf, range=[0x0000000089e6d000-0x0000000089e70000) (0MB)
[    0.000000] efi: mem197: type=4, attr=0xf, range=[0x0000000089e70000-0x0000000089e72000) (0MB)
[    0.000000] efi: mem198: type=3, attr=0xf, range=[0x0000000089e72000-0x0000000089e73000) (0MB)
[    0.000000] efi: mem199: type=4, attr=0xf, range=[0x0000000089e73000-0x0000000089e75000) (0MB)
[    0.000000] efi: mem200: type=3, attr=0xf, range=[0x0000000089e75000-0x0000000089e76000) (0MB)
[    0.000000] efi: mem201: type=4, attr=0xf, range=[0x0000000089e76000-0x000000008a355000) (4MB)
[    0.000000] efi: mem202: type=2, attr=0xf, range=[0x000000008a355000-0x000000008a356000) (0MB)
[    0.000000] efi: mem203: type=4, attr=0xf, range=[0x000000008a356000-0x000000008a440000) (0MB)
[    0.000000] efi: mem204: type=2, attr=0xf, range=[0x000000008a440000-0x000000008a441000) (0MB)
[    0.000000] efi: mem205: type=4, attr=0xf, range=[0x000000008a441000-0x000000008acfa000) (8MB)
[    0.000000] efi: mem206: type=2, attr=0xf, range=[0x000000008acfa000-0x000000008acfb000) (0MB)
[    0.000000] efi: mem207: type=4, attr=0xf, range=[0x000000008acfb000-0x000000008ad03000) (0MB)
[    0.000000] efi: mem208: type=7, attr=0xf, range=[0x000000008ad03000-0x000000008ad14000) (0MB)
[    0.000000] efi: mem209: type=10, attr=0xf, range=[0x000000008ad14000-0x000000008ad53000) (0MB)
[    0.000000] efi: mem210: type=7, attr=0xf, range=[0x000000008ad53000-0x000000008ad69000) (0MB)
[    0.000000] efi: mem211: type=9, attr=0xf, range=[0x000000008ad69000-0x000000008ad8f000) (0MB)
[    0.000000] efi: mem212: type=7, attr=0xf, range=[0x000000008ad8f000-0x000000008ae3a000) (0MB)
[    0.000000] efi: mem213: type=6, attr=0x800000000000000f, range=[0x000000008ae3a000-0x000000008ae8f000) (0MB)
[    0.000000] efi: mem214: type=7, attr=0xf, range=[0x000000008ae8f000-0x000000008aece000) (0MB)
[    0.000000] efi: mem215: type=5, attr=0x800000000000000f, range=[0x000000008aece000-0x000000008aeff000) (0MB)
[    0.000000] efi: mem216: type=7, attr=0xf, range=[0x000000008aeff000-0x000000008af86000) (0MB)
[    0.000000] efi: mem217: type=2, attr=0xf, range=[0x000000008af86000-0x000000008af92000) (0MB)
[    0.000000] efi: mem218: type=0, attr=0xf, range=[0x000000008af92000-0x000000008afff000) (0MB)
[    0.000000] efi: mem219: type=2, attr=0xf, range=[0x000000008afff000-0x000000008b000000) (0MB)
[    0.000000] efi: mem220: type=7, attr=0xf, range=[0x0000000100000000-0x000000046f600000) (14070MB)
[    0.000000] efi: mem221: type=0, attr=0x8000000000000000, range=[0x00000000000a0000-0x00000000000c0000) (0MB)
[    0.000000] efi: mem222: type=0, attr=0x8000000000000000, range=[0x000000008b000000-0x000000008fa00000) (74MB)
[    0.000000] efi: mem223: type=11, attr=0x8000000000000000, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB)
[    0.000000] efi: mem224: type=11, attr=0x8000000000000000, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem225: type=11, attr=0x8000000000000000, range=[0x00000000ffe70000-0x00000000ffea0000) (0MB)
[    0.000000] SMBIOS 2.4 present.
[    0.000000] DMI: Apple Inc. MacBookPro10,1/Mac-C3EC7CD22292981F, BIOS MBP101.88Z.00EE.B03.1212211437 12/21/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x46f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: write-back
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-DFFFF write-protect
[    0.000000]   E0000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0C0000000 mask FC0000000 uncachable
[    0.000000]   1 base 0A0000000 mask FE0000000 uncachable
[    0.000000]   2 base 090000000 mask FF0000000 uncachable
[    0.000000]   3 base 08C000000 mask FFC000000 uncachable
[    0.000000]   4 base 08B000000 mask FFF000000 uncachable
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0x8b000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01ae8000, 0x01ae8fff] PGTABLE
[    0.000000] BRK [0x01ae9000, 0x01ae9fff] PGTABLE
[    0.000000] BRK [0x01aea000, 0x01aeafff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46f400000-0x46f5fffff]
[    0.000000]  [mem 0x46f400000-0x46f5fffff] page 2M
[    0.000000] BRK [0x01aeb000, 0x01aebfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46c000000-0x46f3fffff]
[    0.000000]  [mem 0x46c000000-0x46f3fffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x400000000-0x46bffffff]
[    0.000000]  [mem 0x400000000-0x46bffffff] page 2M
[    0.000000] BRK [0x01aec000, 0x01aecfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x1fffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x20200000-0x40003fff]
[    0.000000]  [mem 0x20200000-0x3fffffff] page 2M
[    0.000000]  [mem 0x40000000-0x40003fff] page 4k
[    0.000000] BRK [0x01aed000, 0x01aedfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x40005000-0x8ad13fff]
[    0.000000]  [mem 0x40005000-0x401fffff] page 4k
[    0.000000]  [mem 0x40200000-0x8abfffff] page 2M
[    0.000000]  [mem 0x8ac00000-0x8ad13fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]  [mem 0x8ad53000-0x8ad68fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]  [mem 0x8ad8f000-0x8ae39fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]  [mem 0x8ae8f000-0x8aecdfff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8aeff000-0x8af91fff]
[    0.000000]  [mem 0x8aeff000-0x8af91fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8afff000-0x8affffff]
[    0.000000]  [mem 0x8afff000-0x8affffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x3ffffffff]
[    0.000000]  [mem 0x100000000-0x3ffffffff] page 2M
[    0.000000] RAMDISK: [mem 0x36c96000-0x37642fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000008AD8E014 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x000000008AD8E1C0 0000B4 (v01 APPLE  Apple00  00000000      01000013)
[    0.000000] ACPI: FACP 0x000000008AD8C000 0000F4 (v04 APPLE  Apple00  00000000 Loki 0000005F)
[    0.000000] ACPI: DSDT 0x000000008AD82000 004D5C (v01 APPLE  MacBookP 00100001 INTL 20100915)
[    0.000000] ACPI: FACS 0x000000008AD1E000 000040
[    0.000000] ACPI: HPET 0x000000008AD8B000 000038 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: APIC 0x000000008AD8A000 0000BC (v02 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SBST 0x000000008AD88000 000030 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: ECDT 0x000000008AD87000 000053 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SSDT 0x000000008AD7F000 00053A (v01 APPLE  SataAhci 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD7E000 000024 (v01 APPLE  SmcDppt  00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD79000 000D3E (v01 APPLE  UsbPpt   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD77000 000159 (v02 APPLE  IGHda    00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD75000 000032 (v01 APPLE  SsdtS3   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD73000 0015EB (v02 APPLE  SsdtIGPU 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6E000 0019AA (v01 APPLE  TbtPEG11 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6D000 00071D (v01 PmRef  Cpu0Ist  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6C000 000B3D (v01 PmRef  CpuPm    00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6B000 000315 (v01 PmRef  Cpu0Tst  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6A000 00037A (v01 PmRef  ApTst    00003000 INTL 20100915)
[    0.000000] ACPI: DMAR 0x000000008AD69000 000088 (v01 APPLE  IVB      00000001 AAPL 00000001)
[    0.000000] ACPI: MCFG 0x000000008AD89000 00003C (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000046f5fffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x46f5fffff]
[    0.000000]   NODE_DATA [mem 0x46f5ec000-0x46f5effff]
[    0.000000]  [ffffea0000000000-ffffea0011bfffff] PMD -> [ffff88045ec00000-ffff88046ebfffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x46f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0008dfff]
[    0.000000]   node   0: [mem 0x00090000-0x0009ffff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x40003fff]
[    0.000000]   node   0: [mem 0x40005000-0x8ad13fff]
[    0.000000]   node   0: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]   node   0: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]   node   0: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]   node   0: [mem 0x8aeff000-0x8af91fff]
[    0.000000]   node   0: [mem 0x8afff000-0x8affffff]
[    0.000000]   node   0: [mem 0x100000000-0x46f5fffff]
[    0.000000] On node 0 totalpages: 4170308
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 25 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8819 pages used for memmap
[    0.000000]   DMA32 zone: 564391 pages, LIFO batch:31
[    0.000000]   Normal zone: 56280 pages used for memmap
[    0.000000]   Normal zone: 3601920 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics stolen memory at 0x8ba00000-0x8f9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad14000-0x8ad52fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad69000-0x8ad8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ae3a000-0x8ae8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8aece000-0x8aefefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8af92000-0x8affefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8b000000-0x8f9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8fa00000-0xe00f7fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f8000-0xe00f8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f9000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xffe6ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffe70000-0xffe9ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffea0000-0xffffffff]
[    0.000000] e820: [mem 0x8fa00000-0xe00f7fff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88046f200000 s82432 r8192 d24064 u262144
[    0.000000] pcpu-alloc: s82432 r8192 d24064 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4105120
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] Memory: 16248216K/16681232K available (4728K kernel code, 843K rwdata, 1536K rodata, 976K init, 1128K bss, 433016K reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	Dump stacks of tasks blocking RCU-preempt GP.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS:8448 nr_irqs:488 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 67108864 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2693.813 MHz processor
[    0.000029] Calibrating delay loop (skipped), value calculated using timer frequency.. 5389.11 BogoMIPS (lpj=8979376)
[    0.000031] pid_max: default: 32768 minimum: 301
[    0.000036] ACPI: Core revision 20140724
[    0.006745] ACPI: All ACPI Tables successfully acquired
[    0.016383] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.019965] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.021585] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.021602] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.021801] Initializing cgroup subsys memory
[    0.021805] Initializing cgroup subsys devices
[    0.021807] Initializing cgroup subsys freezer
[    0.021809] Initializing cgroup subsys net_cls
[    0.021810] Initializing cgroup subsys blkio
[    0.021828] CPU: Physical Processor ID: 0
[    0.021828] CPU: Processor Core ID: 0
[    0.022160] mce: CPU supports 9 MCE banks
[    0.022171] CPU0: Thermal monitoring enabled (TM1)
[    0.022179] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.022271] Freeing SMP alternatives memory: 16K (ffffffff819c8000 - ffffffff819cc000)
[    0.024192] ftrace: allocating 18428 entries in 72 pages
[    0.032398] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.065391] smpboot: CPU0: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz (fam: 06, model: 3a, stepping: 09)
[    0.065399] TSC deadline timer enabled
[    0.065416] Performance Events: PEBS fmt1+, 16-deep LBR, IvyBridge events, full-width counters, Intel PMU driver.
[    0.065433] ... version:                3
[    0.065433] ... bit width:              48
[    0.065434] ... generic registers:      4
[    0.065435] ... value mask:             0000ffffffffffff
[    0.065436] ... max period:             0000ffffffffffff
[    0.065436] ... fixed-purpose events:   3
[    0.065437] ... event mask:             000000070000000f
[    0.088821] x86: Booting SMP configuration:
[    0.088823] .... node  #0, CPUs:      #1
[    0.102318] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.108993]  #2 #3 #4 #5 #6 #7
[    0.220540] x86: Booted up 1 node, 8 CPUs
[    0.220543] smpboot: Total of 8 processors activated (43118.88 BogoMIPS)
[    0.226245] devtmpfs: initialized
[    0.229140] PM: Registering ACPI NVS region [mem 0x8ad14000-0x8ad52fff] (258048 bytes)
[    0.229858] RTC time: 19:27:08, date: 08/22/14
[    0.229929] NET: Registered protocol family 16
[    0.230026] cpuidle: using governor ladder
[    0.230028] cpuidle: using governor menu
[    0.230051] ACPI: bus type PCI registered
[    0.230053] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.230100] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.230103] PCI: not using MMCONFIG
[    0.230104] PCI: Using configuration type 1 for base access
[    0.243016] ACPI: Added _OSI(Module Device)
[    0.243018] ACPI: Added _OSI(Processor Device)
[    0.243019] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.243020] ACPI: Added _OSI(Processor Aggregator Device)
[    0.244133] ACPI : EC: EC description table is found, configuring boot EC
[    0.247962] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.248379] ACPI: Dynamic OEM Table Load:
[    0.248387] ACPI: SSDT 0xFFFF880458BA8000 0008AD (v01 PmRef  Cpu0Cst  00003001 INTL 20100915)
[    0.259599] ACPI: Dynamic OEM Table Load:
[    0.259606] ACPI: SSDT 0xFFFF880458B3B000 0003A4 (v01 PmRef  ApIst    00003000 INTL 20100915)
[    0.272826] ACPI: Dynamic OEM Table Load:
[    0.272832] ACPI: SSDT 0xFFFF880458B5D600 000119 (v01 PmRef  ApCst    00003000 INTL 20100915)
[    0.286957] ACPI: Interpreter enabled
[    0.286962] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140724/hwxface-580)
[    0.286965] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140724/hwxface-580)
[    0.286976] ACPI: (supports S0 S3 S4 S5)
[    0.286977] ACPI: Using IOAPIC for interrupt routing
[    0.286990] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.287305] PCI: MMCONFIG at [mem 0xe0000000-0xe9bfffff] reserved in ACPI motherboard resources
[    0.287414] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.293567] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.293571] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.293662] acpi PNP0A08:00: _OSC: platform does not support [PME]
[    0.293737] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug AER PCIeCapability]
[    0.293888] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-9b] only partially covers this bridge
[    0.293990] PCI host bridge to bus 0000:00
[    0.293992] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.293994] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.293995] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.293996] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.293998] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
[    0.293999] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
[    0.294000] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
[    0.294001] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
[    0.294003] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    0.294004] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    0.294005] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    0.294006] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    0.294007] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    0.294009] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    0.294010] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
[    0.294011] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
[    0.294012] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
[    0.294014] pci_bus 0000:00: root bus resource [mem 0x8fa00000-0xfeafffff]
[    0.294015] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    0.294016] pci_bus 0000:00: scanning bus
[    0.294023] pci 0000:00:00.0: [8086:0154] type 00 class 0x060000
[    0.294031] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0x10
[    0.294095] pci 0000:00:01.0: [8086:0151] type 01 class 0x060400
[    0.294110] pci 0000:00:01.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.294128] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.294131] pci 0000:00:01.0: PME# disabled
[    0.294152] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.294181] pci 0000:00:01.1: [8086:0155] type 01 class 0x060400
[    0.294194] pci 0000:00:01.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.294211] pci 0000:00:01.1: PME# supported from D0 D3hot D3cold
[    0.294213] pci 0000:00:01.1: PME# disabled
[    0.294232] pci 0000:00:01.1: System wakeup disabled by ACPI
[    0.294270] pci 0000:00:01.2: [8086:0159] type 01 class 0x060400
[    0.294298] pci 0000:00:01.2: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.294351] pci 0000:00:01.2: PME# supported from D0 D3hot D3cold
[    0.294354] pci 0000:00:01.2: PME# disabled
[    0.294382] pci 0000:00:01.2: System wakeup disabled by ACPI
[    0.294417] pci 0000:00:02.0: [8086:0166] type 00 class 0x030000
[    0.294426] pci 0000:00:02.0: reg 0x10: [mem 0xc1400000-0xc17fffff 64bit]
[    0.294431] pci 0000:00:02.0: reg 0x18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    0.294435] pci 0000:00:02.0: reg 0x20: [io  0x3000-0x303f]
[    0.294516] pci 0000:00:14.0: [8086:1e31] type 00 class 0x0c0330
[    0.294536] pci 0000:00:14.0: reg 0x10: [mem 0xc1c00000-0xc1c0ffff 64bit]
[    0.294595] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.294599] pci 0000:00:14.0: PME# disabled
[    0.294622] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.294660] pci 0000:00:16.0: [8086:1e3a] type 00 class 0x078000
[    0.294682] pci 0000:00:16.0: reg 0x10: [mem 0xc1c17100-0xc1c1710f 64bit]
[    0.294756] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.294760] pci 0000:00:16.0: PME# disabled
[    0.294828] pci 0000:00:1a.0: [8086:1e2d] type 00 class 0x0c0320
[    0.294849] pci 0000:00:1a.0: reg 0x10: [mem 0xc1c16c00-0xc1c16fff]
[    0.294938] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.294942] pci 0000:00:1a.0: PME# disabled
[    0.294968] pci 0000:00:1a.0: System wakeup disabled by ACPI
[    0.295002] pci 0000:00:1b.0: [8086:1e20] type 00 class 0x040300
[    0.295017] pci 0000:00:1b.0: reg 0x10: [mem 0xc1c10000-0xc1c13fff 64bit]
[    0.295080] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.295083] pci 0000:00:1b.0: PME# disabled
[    0.295108] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.295147] pci 0000:00:1c.0: [8086:1e10] type 01 class 0x060400
[    0.295210] pci 0000:00:1c.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295285] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.295289] pci 0000:00:1c.0: PME# disabled
[    0.295323] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.295363] pci 0000:00:1c.1: [8086:1e12] type 01 class 0x060400
[    0.295425] pci 0000:00:1c.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295500] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.295503] pci 0000:00:1c.1: PME# disabled
[    0.295537] pci 0000:00:1c.1: System wakeup disabled by ACPI
[    0.295579] pci 0000:00:1d.0: [8086:1e26] type 00 class 0x0c0320
[    0.295599] pci 0000:00:1d.0: reg 0x10: [mem 0xc1c16800-0xc1c16bff]
[    0.295687] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.295691] pci 0000:00:1d.0: PME# disabled
[    0.295716] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.295753] pci 0000:00:1f.0: [8086:1e57] type 00 class 0x060100
[    0.295906] pci 0000:00:1f.2: [8086:1e03] type 00 class 0x010601
[    0.295922] pci 0000:00:1f.2: reg 0x10: [io  0x3098-0x309f]
[    0.295930] pci 0000:00:1f.2: reg 0x14: [io  0x30bc-0x30bf]
[    0.295937] pci 0000:00:1f.2: reg 0x18: [io  0x3090-0x3097]
[    0.295945] pci 0000:00:1f.2: reg 0x1c: [io  0x30b8-0x30bb]
[    0.295953] pci 0000:00:1f.2: reg 0x20: [io  0x3060-0x307f]
[    0.295961] pci 0000:00:1f.2: reg 0x24: [mem 0xc1c16000-0xc1c167ff]
[    0.296003] pci 0000:00:1f.2: PME# supported from D3hot
[    0.296007] pci 0000:00:1f.2: PME# disabled
[    0.296058] pci 0000:00:1f.3: [8086:1e22] type 00 class 0x0c0500
[    0.296071] pci 0000:00:1f.3: reg 0x10: [mem 0xc1c17000-0xc1c170ff 64bit]
[    0.296087] pci 0000:00:1f.3: reg 0x20: [io  0xefa0-0xefbf]
[    0.296146] pci_bus 0000:00: fixups for bus
[    0.296149] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 0
[    0.296192] pci_bus 0000:01: scanning bus
[    0.296204] pci 0000:01:00.0: [10de:0fd5] type 00 class 0x030000
[    0.296215] pci 0000:01:00.0: reg 0x10: [mem 0xc0000000-0xc0ffffff]
[    0.296226] pci 0000:01:00.0: reg 0x14: [mem 0x90000000-0x9fffffff 64bit pref]
[    0.296235] pci 0000:01:00.0: reg 0x1c: [mem 0xa0000000-0xa1ffffff 64bit pref]
[    0.296242] pci 0000:01:00.0: reg 0x24: [io  0x2000-0x207f]
[    0.296249] pci 0000:01:00.0: reg 0x30: [mem 0xc1000000-0xc107ffff pref]
[    0.296306] pci 0000:01:00.0: System wakeup disabled by ACPI
[    0.296348] pci 0000:01:00.1: [10de:0e1b] type 00 class 0x040300
[    0.296357] pci 0000:01:00.1: reg 0x10: [mem 0xc1080000-0xc1083fff]
[    1.303009] pci 0000:00:01.0: ASPM: Could not configure common clock
[    1.303036] pci_bus 0000:01: fixups for bus
[    1.303040] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.303044] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.303057] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.303060] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.303061] pci_bus 0000:01: bus scan returning with max=01
[    1.303064] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 0
[    1.303101] pci_bus 0000:05: scanning bus
[    1.303112] pci 0000:05:00.0: [8086:1547] type 01 class 0x060400
[    1.303139] pci 0000:05:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.303177] pci 0000:05:00.0: supports D1 D2
[    1.303179] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.303181] pci 0000:05:00.0: PME# disabled
[    1.309686] pci_bus 0000:05: fixups for bus
[    1.309689] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.309693] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.309698] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.309703] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.309708] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 0
[    1.309764] pci_bus 0000:06: dev 03, created physical slot 2
[    1.309771] pci_bus 0000:06: dev 04, created physical slot 3
[    1.309777] pci_bus 0000:06: dev 05, created physical slot 4
[    1.309784] pci_bus 0000:06: dev 06, created physical slot 5
[    1.309818] pci_bus 0000:06: scanning bus
[    1.309830] pci 0000:06:00.0: [8086:1547] type 01 class 0x060400
[    1.309859] pci 0000:06:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.309900] pci 0000:06:00.0: supports D1 D2
[    1.309901] pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.309904] pci 0000:06:00.0: PME# disabled
[    1.309958] pci 0000:06:03.0: [8086:1547] type 01 class 0x060400
[    1.309987] pci 0000:06:03.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310027] pci 0000:06:03.0: supports D1 D2
[    1.310028] pci 0000:06:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310031] pci 0000:06:03.0: PME# disabled
[    1.310083] pci 0000:06:04.0: [8086:1547] type 01 class 0x060400
[    1.310111] pci 0000:06:04.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310151] pci 0000:06:04.0: supports D1 D2
[    1.310153] pci 0000:06:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310155] pci 0000:06:04.0: PME# disabled
[    1.310208] pci 0000:06:05.0: [8086:1547] type 01 class 0x060400
[    1.310232] pci 0000:06:05.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310273] pci 0000:06:05.0: supports D1 D2
[    1.310274] pci 0000:06:05.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310276] pci 0000:06:05.0: PME# disabled
[    1.310329] pci 0000:06:06.0: [8086:1547] type 01 class 0x060400
[    1.310353] pci 0000:06:06.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310394] pci 0000:06:06.0: supports D1 D2
[    1.310395] pci 0000:06:06.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310397] pci 0000:06:06.0: PME# disabled
[    1.310460] pci_bus 0000:06: fixups for bus
[    1.310461] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.310465] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.310468] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.310472] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.310474] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 0
[    1.310522] pci_bus 0000:07: dev 00, created physical slot 1
[    1.310527] acpiphp: Slot [1] registered
[    1.310529] pci_bus 0000:07: scanning bus
[    1.310547] pci 0000:07:00.0: [8086:1547] type 00 class 0x088000
[    1.310561] pci 0000:07:00.0: reg 0x10: [mem 0xc1f00000-0xc1f3ffff]
[    1.310570] pci 0000:07:00.0: reg 0x14: [mem 0xc1f40000-0xc1f40fff]
[    1.310677] pci 0000:07:00.0: supports D1 D2
[    1.310678] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310681] pci 0000:07:00.0: PME# disabled
[    1.316359] pci_bus 0000:07: fixups for bus
[    1.316362] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.316372] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.316379] pci_bus 0000:07: bus scan returning with max=07
[    1.316393] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 0
[    1.316484] pci_bus 0000:08: scanning bus
[    1.316509] pci 0000:08:00.0: [8086:1549] type 01 class 0x060400
[    1.316577] pci 0000:08:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.316674] pci 0000:08:00.0: supports D1 D2
[    1.316675] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.316680] pci 0000:08:00.0: PME# disabled
[    1.323029] pci_bus 0000:08: fixups for bus
[    1.323033] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.323040] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.323045] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.323062] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.323065] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 0
[    1.323133] pci_bus 0000:09: scanning bus
[    1.323159] pci 0000:09:00.0: [8086:1549] type 01 class 0x060400
[    1.323229] pci 0000:09:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.323329] pci 0000:09:00.0: supports D1 D2
[    1.323330] pci 0000:09:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.323335] pci 0000:09:00.0: PME# disabled
[    1.323448] pci_bus 0000:09: fixups for bus
[    1.323450] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.323462] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.323471] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.323475] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 0
[    1.323542] pci_bus 0000:0a: scanning bus
[    1.323598] pci 0000:0a:00.0: [14e4:1682] type 00 class 0x020000
[    1.323643] pci 0000:0a:00.0: reg 0x10: [mem 0xce100000-0xce10ffff 64bit pref]
[    1.323672] pci 0000:0a:00.0: reg 0x18: [mem 0xce110000-0xce11ffff 64bit pref]
[    1.323720] pci 0000:0a:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
[    1.323933] pci 0000:0a:00.0: PME# supported from D0 D3hot D3cold
[    1.323940] pci 0000:0a:00.0: PME# disabled
[    1.329714] pci_bus 0000:0a: fixups for bus
[    1.329718] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.329741] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.329750] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.329752] pci_bus 0000:0a: bus scan returning with max=0a
[    1.329757] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 1
[    1.329764] pci_bus 0000:09: bus scan returning with max=0a
[    1.329769] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 1
[    1.329776] pci_bus 0000:08: bus scan returning with max=0a
[    1.329779] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 0
[    1.329869] pci_bus 0000:39: scanning bus
[    1.329872] pci_bus 0000:39: fixups for bus
[    1.329873] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.329877] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.329880] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.329884] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.329885] pci_bus 0000:39: bus scan returning with max=39
[    1.329888] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 0
[    1.329926] pci_bus 0000:6a: scanning bus
[    1.329928] pci_bus 0000:6a: fixups for bus
[    1.329929] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.329935] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.329939] pci_bus 0000:6a: bus scan returning with max=6a
[    1.329942] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 0
[    1.329981] pci_bus 0000:6b: scanning bus
[    1.329983] pci_bus 0000:6b: fixups for bus
[    1.329984] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.329990] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.329994] pci_bus 0000:6b: bus scan returning with max=6b
[    1.329997] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 1
[    1.330001] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 1
[    1.330005] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 1
[    1.330009] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 1
[    1.330013] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 1
[    1.330016] pci_bus 0000:06: bus scan returning with max=6b
[    1.330019] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 1
[    1.330022] pci_bus 0000:05: bus scan returning with max=6b
[    1.330025] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 0
[    1.330077] pci_bus 0000:02: scanning bus
[    1.330079] pci_bus 0000:02: fixups for bus
[    1.330080] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.330086] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.330091] pci_bus 0000:02: bus scan returning with max=02
[    1.330099] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 0
[    1.330222] pci_bus 0000:03: scanning bus
[    1.330259] pci 0000:03:00.0: [14e4:16a3] type 00 class 0x020000
[    1.330298] pci 0000:03:00.0: reg 0x10: [mem 0xc1800000-0xc180ffff 64bit pref]
[    1.330322] pci 0000:03:00.0: reg 0x18: [mem 0xc1810000-0xc181ffff 64bit pref]
[    1.330363] pci 0000:03:00.0: reg 0x30: [mem 0xfffff800-0xffffffff pref]
[    1.330515] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    1.330521] pci 0000:03:00.0: PME# disabled
[    1.330655] pci 0000:03:00.1: [14e4:16bc] type 00 class 0x080501
[    1.330693] pci 0000:03:00.1: reg 0x10: [mem 0xc1820000-0xc182ffff 64bit pref]
[    1.330885] pci 0000:03:00.1: PME# supported from D0 D3hot D3cold
[    1.330891] pci 0000:03:00.1: PME# disabled
[    1.330926] pci 0000:03:00.1: System wakeup disabled by ACPI
[    1.336472] pci_bus 0000:03: fixups for bus
[    1.336473] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.336479] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.336488] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.336489] pci_bus 0000:03: bus scan returning with max=03
[    1.336494] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 0
[    1.336599] pci_bus 0000:04: scanning bus
[    1.336631] pci 0000:04:00.0: [14e4:4331] type 00 class 0x028000
[    1.336659] pci 0000:04:00.0: reg 0x10: [mem 0xc1900000-0xc1903fff 64bit]
[    1.336822] pci 0000:04:00.0: supports D1 D2
[    1.336824] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    1.336828] pci 0000:04:00.0: PME# disabled
[    1.336863] pci 0000:04:00.0: System wakeup disabled by ACPI
[    1.343098] pci_bus 0000:04: fixups for bus
[    1.343099] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.343105] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.343113] pci_bus 0000:04: bus scan returning with max=04
[    1.343118] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 1
[    1.343120] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 1
[    1.343124] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 1
[    1.343133] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 1
[    1.343141] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 1
[    1.343147] pci_bus 0000:00: bus scan returning with max=6b
[    1.343553] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.343599] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.343644] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.343687] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.343727] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.343770] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.343814] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.343856] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.345163] ACPI: Enabled 3 GPEs in block 00 to 3F
[    1.345182] ACPI : EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    1.345238] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
[    1.345239] vgaarb: Boot video device: PCI:0000:00:02.0
[    1.345241] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    1.345251] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
[    1.345252] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0 PCI_BRIDGE_CONTROL=0000
[    1.345254] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    1.345256] vgaarb: loaded
[    1.345257] vgaarb: bridge control possible 0000:01:00.0
[    1.345257] vgaarb: no bridge control possible 0000:00:02.0
[    1.345312] PCI: Using ACPI for IRQ routing
[    1.350329] PCI: pci_cache_line_size set to 64 bytes
[    1.350345] pci 0000:01:00.0: BAR 0: reserving [mem 0xc0000000-0xc0ffffff flags 0x40200] (d=0, p=0)
[    1.350347] pci 0000:01:00.0: BAR 1: reserving [mem 0x90000000-0x9fffffff flags 0x14220c] (d=0, p=0)
[    1.350349] pci 0000:01:00.0: BAR 3: reserving [mem 0xa0000000-0xa1ffffff flags 0x14220c] (d=0, p=0)
[    1.350355] pci 0000:07:00.0: BAR 0: reserving [mem 0xc1f00000-0xc1f3ffff flags 0x40200] (d=0, p=0)
[    1.350356] pci 0000:07:00.0: BAR 1: reserving [mem 0xc1f40000-0xc1f40fff flags 0x40200] (d=0, p=0)
[    1.350374] pci 0000:00:02.0: BAR 0: reserving [mem 0xc1400000-0xc17fffff flags 0x140204] (d=0, p=0)
[    1.350376] pci 0000:00:02.0: BAR 2: reserving [mem 0xb0000000-0xbfffffff flags 0x14220c] (d=0, p=0)
[    1.350378] pci 0000:00:02.0: BAR 4: reserving [io  0x3000-0x303f flags 0x40101] (d=0, p=0)
[    1.350386] pci 0000:00:16.0: BAR 0: reserving [mem 0xc1c17100-0xc1c1710f flags 0x140204] (d=0, p=0)
[    1.350389] pci 0000:00:1a.0: BAR 0: reserving [mem 0xc1c16c00-0xc1c16fff flags 0x40200] (d=0, p=0)
[    1.350461] pci 0000:00:1d.0: BAR 0: reserving [mem 0xc1c16800-0xc1c16bff flags 0x40200] (d=0, p=0)
[    1.350466] pci 0000:00:1f.2: BAR 0: reserving [io  0x3098-0x309f flags 0x40101] (d=0, p=0)
[    1.350468] pci 0000:00:1f.2: BAR 1: reserving [io  0x30bc-0x30bf flags 0x40101] (d=0, p=0)
[    1.350469] pci 0000:00:1f.2: BAR 2: reserving [io  0x3090-0x3097 flags 0x40101] (d=0, p=0)
[    1.350471] pci 0000:00:1f.2: BAR 3: reserving [io  0x30b8-0x30bb flags 0x40101] (d=0, p=0)
[    1.350472] pci 0000:00:1f.2: BAR 4: reserving [io  0x3060-0x307f flags 0x40101] (d=0, p=0)
[    1.350474] pci 0000:00:1f.2: BAR 5: reserving [mem 0xc1c16000-0xc1c167ff flags 0x40200] (d=0, p=0)
[    1.350489] pci 0000:01:00.0: BAR 5: reserving [io  0x2000-0x207f flags 0x40101] (d=1, p=1)
[    1.350492] pci 0000:01:00.1: BAR 0: reserving [mem 0xc1080000-0xc1083fff flags 0x40200] (d=1, p=1)
[    1.351853] pci 0000:0a:00.0: BAR 0: reserving [mem 0xce100000-0xce10ffff flags 0x14220c] (d=1, p=1)
[    1.351855] pci 0000:0a:00.0: BAR 2: reserving [mem 0xce110000-0xce11ffff flags 0x14220c] (d=1, p=1)
[    1.351864] pci 0000:00:14.0: BAR 0: reserving [mem 0xc1c00000-0xc1c0ffff flags 0x140204] (d=1, p=1)
[    1.351870] pci 0000:00:1b.0: BAR 0: reserving [mem 0xc1c10000-0xc1c13fff flags 0x140204] (d=1, p=1)
[    1.351914] pci 0000:03:00.0: BAR 0: reserving [mem 0xc1800000-0xc180ffff flags 0x14220c] (d=1, p=1)
[    1.351916] pci 0000:03:00.0: BAR 2: reserving [mem 0xc1810000-0xc181ffff flags 0x14220c] (d=1, p=1)
[    1.351920] pci 0000:03:00.1: BAR 0: reserving [mem 0xc1820000-0xc182ffff flags 0x14220c] (d=1, p=1)
[    1.351944] pci 0000:04:00.0: BAR 0: reserving [mem 0xc1900000-0xc1903fff flags 0x140204] (d=1, p=1)
[    1.351951] pci 0000:00:1f.3: BAR 0: reserving [mem 0xc1c17000-0xc1c170ff flags 0x140204] (d=1, p=1)
[    1.351953] pci 0000:00:1f.3: BAR 4: reserving [io  0xefa0-0xefbf flags 0x40101] (d=1, p=1)
[    1.351955] e820: reserve RAM buffer [mem 0x0008e000-0x0008ffff]
[    1.351957] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    1.351958] e820: reserve RAM buffer [mem 0x8ad14000-0x8bffffff]
[    1.351960] e820: reserve RAM buffer [mem 0x8ad69000-0x8bffffff]
[    1.351961] e820: reserve RAM buffer [mem 0x8ae3a000-0x8bffffff]
[    1.351963] e820: reserve RAM buffer [mem 0x8aece000-0x8bffffff]
[    1.351964] e820: reserve RAM buffer [mem 0x8af92000-0x8bffffff]
[    1.351965] e820: reserve RAM buffer [mem 0x8b000000-0x8bffffff]
[    1.351966] e820: reserve RAM buffer [mem 0x46f600000-0x46fffffff]
[    1.352077] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    1.352081] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    1.355114] Switched to clocksource hpet
[    1.358633] pnp: PnP ACPI init
[    1.358812] system 00:00: [mem 0xfed00000-0xfed003ff] has been reserved
[    1.358815] system 00:00: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    1.358849] system 00:01: [io  0x1000-0x100f] has been reserved
[    1.358851] system 00:01: [io  0x0400-0x047f] could not be reserved
[    1.358852] system 00:01: [io  0x0500-0x057f] has been reserved
[    1.358854] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.358873] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    1.358918] pnp 00:03: Plug and Play ACPI device, IDs APP000b (active)
[    1.359032] system 00:04: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    1.359034] system 00:04: [mem 0xfed10000-0xfed17fff] has been reserved
[    1.359035] system 00:04: [mem 0xfed18000-0xfed18fff] has been reserved
[    1.359036] system 00:04: [mem 0xfed19000-0xfed19fff] has been reserved
[    1.359038] system 00:04: [mem 0xe0000000-0xefffffff] could not be reserved
[    1.359040] system 00:04: [mem 0xfed20000-0xfed3ffff] has been reserved
[    1.359041] system 00:04: [mem 0xfed90000-0xfed93fff] has been reserved
[    1.359043] system 00:04: [mem 0xfed45000-0xfed8ffff] has been reserved
[    1.359044] system 00:04: [mem 0xff000000-0xffffffff] could not be reserved
[    1.359046] system 00:04: [mem 0xfee00000-0xfeefffff] has been reserved
[    1.359047] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.361368] system 00:05: [mem 0x20000000-0x201fffff] has been reserved
[    1.361370] system 00:05: [mem 0x40000000-0x401fffff] could not be reserved
[    1.361372] system 00:05: Plug and Play ACPI device, IDs PNP0c01 (active)
[    1.361379] pnp: PnP ACPI: found 6 devices
[    1.367806] pci 0000:0a:00.0: can't claim BAR 6 [mem 0xffff0000-0xffffffff pref]: no compatible bridge window
[    1.367809] pci 0000:03:00.0: can't claim BAR 6 [mem 0xfffff800-0xffffffff pref]: no compatible bridge window
[    1.367834] pci 0000:09:00.0: bridge window [io  0x1000-0x0fff] to [bus 0a] add_size 1000
[    1.367847] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.367849] pci 0000:08:00.0: bridge window [io  0x1000-0x0fff] to [bus 09-0a] add_size 1000
[    1.367864] pci 0000:06:05.0: bridge window [io  0x1000-0x0fff] to [bus 6a] add_size 1000
[    1.367866] pci 0000:06:05.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6a] add_size 200000
[    1.367872] pci 0000:06:06.0: bridge window [io  0x1000-0x0fff] to [bus 6b] add_size 1000
[    1.367873] pci 0000:06:06.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6b] add_size 200000
[    1.367914] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.367916] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.367919] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.367921] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.367925] pci 0000:06:05.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.367927] pci 0000:06:06.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.367928] pci 0000:06:05.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.367929] pci 0000:06:06.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.367934] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.367935] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.367938] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.367939] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.367941] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.367942] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.367943] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.367945] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.367947] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.367949] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.367950] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.367951] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.367954] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.367955] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.367956] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.367958] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.367959] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.367963] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.367969] pci 0000:08:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.367971] pci 0000:08:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.367973] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.367974] pci 0000:09:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.367977] pci 0000:0a:00.0: BAR 6: assigned [mem 0xc2000000-0xc200ffff pref]
[    1.367978] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.367981] pci 0000:09:00.0:   bridge window [io  0x4000-0x4fff]
[    1.367989] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.367994] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368003] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.368006] pci 0000:08:00.0:   bridge window [io  0x4000-0x4fff]
[    1.368013] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.368018] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368027] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.368029] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.368032] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.368035] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.368039] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.368041] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.368045] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.368047] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.368051] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.368055] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.368060] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.368064] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.368070] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.368071] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.368075] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.368077] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.368082] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.368083] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.368085] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.368087] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.368090] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.368094] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.368102] pci 0000:03:00.0: BAR 6: assigned [mem 0xc1a00000-0xc1a007ff pref]
[    1.368104] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.368113] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.368118] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.368127] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.368133] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.368145] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    1.368146] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    1.368148] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    1.368149] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
[    1.368150] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
[    1.368152] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
[    1.368153] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
[    1.368154] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
[    1.368156] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
[    1.368157] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
[    1.368158] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
[    1.368159] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
[    1.368161] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
[    1.368162] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
[    1.368163] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
[    1.368164] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
[    1.368166] pci_bus 0000:00: resource 20 [mem 0x8fa00000-0xfeafffff]
[    1.368167] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
[    1.368169] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    1.368170] pci_bus 0000:01: resource 1 [mem 0xc0000000-0xc10fffff]
[    1.368171] pci_bus 0000:01: resource 2 [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.368173] pci_bus 0000:05: resource 0 [io  0x4000-0x6fff]
[    1.368174] pci_bus 0000:05: resource 1 [mem 0xc1d00000-0xce0fffff]
[    1.368175] pci_bus 0000:05: resource 2 [mem 0xce100000-0xda1fffff 64bit pref]
[    1.368177] pci_bus 0000:06: resource 0 [io  0x4000-0x5fff]
[    1.368178] pci_bus 0000:06: resource 1 [mem 0xc1d00000-0xca0fffff]
[    1.368179] pci_bus 0000:06: resource 2 [mem 0xce100000-0xd61fffff 64bit pref]
[    1.368181] pci_bus 0000:07: resource 1 [mem 0xc1f00000-0xc1ffffff]
[    1.368182] pci_bus 0000:08: resource 0 [io  0x4000-0x4fff]
[    1.368183] pci_bus 0000:08: resource 1 [mem 0xc2000000-0xc60fffff]
[    1.368185] pci_bus 0000:08: resource 2 [mem 0xce100000-0xd21fffff 64bit pref]
[    1.368186] pci_bus 0000:09: resource 0 [io  0x4000-0x4fff]
[    1.368187] pci_bus 0000:09: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.368188] pci_bus 0000:09: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368190] pci_bus 0000:0a: resource 0 [io  0x4000-0x4fff]
[    1.368191] pci_bus 0000:0a: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.368192] pci_bus 0000:0a: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368194] pci_bus 0000:39: resource 0 [io  0x5000-0x5fff]
[    1.368195] pci_bus 0000:39: resource 1 [mem 0xc6100000-0xca0fffff]
[    1.368196] pci_bus 0000:39: resource 2 [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.368198] pci_bus 0000:6a: resource 1 [mem 0xc1e00000-0xc1efffff]
[    1.368199] pci_bus 0000:6b: resource 1 [mem 0xc1d00000-0xc1dfffff]
[    1.368200] pci_bus 0000:02: resource 1 [mem 0xc1b00000-0xc1bfffff]
[    1.368202] pci_bus 0000:03: resource 1 [mem 0xc1a00000-0xc1afffff]
[    1.368203] pci_bus 0000:03: resource 2 [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.368204] pci_bus 0000:04: resource 1 [mem 0xc1900000-0xc19fffff]
[    1.368225] NET: Registered protocol family 2
[    1.368378] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    1.368586] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    1.368682] TCP: Hash tables configured (established 131072 bind 65536)
[    1.368695] TCP: reno registered
[    1.368710] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    1.368755] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    1.368821] NET: Registered protocol family 1
[    1.368840] pci 0000:00:02.0: calling pci_fixup_video+0x0/0x160
[    1.368841] pci 0000:00:02.0: Video device with shadowed ROM
[    1.368846] pci 0000:00:14.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.368854] pci 0000:00:14.0: enabling device (0000 -> 0002)
[    1.368906] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.368908] pci 0000:00:14.0: PCI INT A: no GSI
[    1.368989] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.368999] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.369121] pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.369236] pci 0000:01:00.0: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.369255] pci 0000:01:00.0: calling pci_fixup_video+0x0/0x160
[    1.369258] pci 0000:01:00.1: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.369269] PCI: CLS mismatch (256 != 128), using 64 bytes
[    1.369309] Unpacking initramfs...
[    1.521656] Freeing initrd memory: 9908K (ffff880036c96000 - ffff880037643000)
[    1.521664] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.521666] software IO TLB [mem 0x81c68000-0x85c68000] (64MB) mapped at [ffff880081c68000-ffff880085c67fff]
[    1.522027] RAPL PMU detected, hw unit 2^-16 Joules, API unit is 2^-32 Joules, 3 fixed counters 163840 ms ovfl timer
[    1.522071] Scanning for low memory corruption every 60 seconds
[    1.522325] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    1.522354] audit: initializing netlink subsys (disabled)
[    1.522366] audit: type=2000 audit(1408735629.519:1): initialized
[    1.522643] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.523704] zpool: loaded
[    1.523706] zbud: loaded
[    1.523864] VFS: Disk quotas dquot_6.5.2
[    1.523891] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.523989] msgmni has been set to 31915
[    1.524035] Key type big_key registered
[    1.524286] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.524337] io scheduler noop registered
[    1.524339] io scheduler deadline registered
[    1.524362] io scheduler cfq registered (default)
[    1.524488] pcieport 0000:00:01.0: irq 24 for MSI/MSI-X
[    1.524572] pcieport 0000:00:01.1: irq 25 for MSI/MSI-X
[    1.524605] pcieport 0000:00:01.2: enabling device (0000 -> 0002)
[    1.524657] pcieport 0000:00:01.2: enabling bus mastering
[    1.524670] pcieport 0000:00:01.2: irq 26 for MSI/MSI-X
[    1.525006] pcieport 0000:05:00.0: irq 27 for MSI/MSI-X
[    1.525111] pcieport 0000:06:00.0: irq 28 for MSI/MSI-X
[    1.525206] pcieport 0000:06:03.0: irq 29 for MSI/MSI-X
[    1.525308] pcieport 0000:06:04.0: irq 30 for MSI/MSI-X
[    1.525376] pcieport 0000:06:05.0: enabling device (0000 -> 0002)
[    1.525405] pcieport 0000:06:05.0: enabling bus mastering
[    1.525416] pcieport 0000:06:05.0: irq 31 for MSI/MSI-X
[    1.525485] pcieport 0000:06:06.0: enabling device (0000 -> 0002)
[    1.525515] pcieport 0000:06:06.0: enabling bus mastering
[    1.525525] pcieport 0000:06:06.0: irq 32 for MSI/MSI-X
[    1.525651] pcieport 0000:08:00.0: irq 33 for MSI/MSI-X
[    1.525833] pcieport 0000:09:00.0: irq 34 for MSI/MSI-X
[    1.525976] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.526065] pciehp 0000:06:03.0:pcie24: Slot #3 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.526094] pci_bus 0000:08: dev 00, created physical slot 3-1
[    1.924953] pciehp 0000:06:03.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    1.924964] pciehp 0000:06:03.0:pcie24: service driver pciehp loaded
[    1.924993] pciehp 0000:06:04.0:pcie24: Slot #4 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.925022] pci_bus 0000:39: dev 00, created physical slot 4-1
[    2.324823] pciehp 0000:06:04.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.324831] pciehp 0000:06:04.0:pcie24: service driver pciehp loaded
[    2.324855] pciehp 0000:06:05.0:pcie24: Slot #5 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.324879] pci_bus 0000:6a: dev 00, created physical slot 5-1
[    2.521429] tsc: Refined TSC clocksource calibration: 2693.889 MHz
[    2.724695] pciehp 0000:06:05.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.724703] pciehp 0000:06:05.0:pcie24: service driver pciehp loaded
[    2.724717] pciehp 0000:06:06.0:pcie24: Slot #6 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.724750] pci_bus 0000:6b: dev 00, created physical slot 6
[    3.124569] pciehp 0000:06:06.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.124577] pciehp 0000:06:06.0:pcie24: service driver pciehp loaded
[    3.124605] pciehp 0000:09:00.0:pcie24: Slot #9 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    3.124625] pci_bus 0000:0a: dev 00, created physical slot 9
[    3.521171] Switched to clocksource tsc
[    3.524434] pciehp 0000:09:00.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.524447] pciehp 0000:09:00.0:pcie24: service driver pciehp loaded
[    3.524458] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    3.525215] efifb: probing for efifb
[    3.525241] efifb: framebuffer at 0x90020000, mapped to 0xffffc9000b800000, using 28800k, total 28800k
[    3.525242] efifb: mode is 2880x1800x32, linelength=16384, pages=1
[    3.525243] efifb: scrolling: redraw
[    3.525244] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    3.539985] Console: switching to colour frame buffer device 360x112
[    3.554606] fb0: EFI VGA frame buffer device
[    3.554614] intel_idle: MWAIT substates: 0x21120
[    3.554615] intel_idle: v0.4 model 0x3A
[    3.554616] intel_idle: lapic_timer_reliable_states 0xffffffff
[    3.554869] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.554904] ACPI: AC Adapter [ADP1] (on-line)
[    3.554971] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    3.554980] ACPI: Lid Switch [LID0]
[    3.555008] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    3.555010] ACPI: Power Button [PWRB]
[    3.555036] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    3.555038] ACPI: Sleep Button [SLPB]
[    3.555063] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    3.555065] ACPI: Power Button [PWRF]
[    3.556864] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    3.557184] hpet: probe of PNP0103:00 failed with error -22
[    3.557192] Linux agpgart interface v0.103
[    3.557263] rtc_cmos 00:02: RTC can wake from S4
[    3.557382] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.557413] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    3.557422] Intel P-state driver initializing.
[    3.557431] Intel pstate controlling: cpu 0
[    3.557445] Intel pstate controlling: cpu 1
[    3.557456] Intel pstate controlling: cpu 2
[    3.557467] Intel pstate controlling: cpu 3
[    3.557482] Intel pstate controlling: cpu 4
[    3.557492] Intel pstate controlling: cpu 5
[    3.557502] Intel pstate controlling: cpu 6
[    3.557512] Intel pstate controlling: cpu 7
[    3.557548] EFI Variables Facility v0.08 2004-May-17
[    3.652007] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.652011] ACPI: Battery Slot [BAT0] (battery present)
[    3.780738] pstore: Registered efi as persistent store backend
[    3.780749] drop_monitor: Initializing network drop monitor service
[    3.780792] TCP: cubic registered
[    3.780870] NET: Registered protocol family 10
[    3.781017] NET: Registered protocol family 17
[    3.781024] Key type dns_resolver registered
[    3.781249] registered taskstats version 1
[    3.782124]   Magic number: 10:607:496
[    3.782227] rtc_cmos 00:02: setting system clock to 2014-08-22 19:27:12 UTC (1408735632)
[    3.782284] PM: Checking hibernation image partition /dev/sda5
[    3.782286] PM: Hibernation image not present or could not be loaded.
[    3.782727] Freeing unused kernel memory: 976K (ffffffff818d4000 - ffffffff819c8000)
[    3.782728] Write protecting the kernel read-only data: 8192k
[    3.784999] Freeing unused kernel memory: 1404K (ffff8800014a1000 - ffff880001600000)
[    3.785789] Freeing unused kernel memory: 512K (ffff880001780000 - ffff880001800000)
[    3.790024] random: systemd-tmpfile urandom read with 11 bits of entropy available
[    3.790826] systemd-udevd[86]: starting version 215
[    3.792325] [drm] Initialized drm 1.1.0 20060810
[    3.796489] [drm] Memory usable by graphics device = 2048M
[    3.796494] [drm] Replacing VGA console driver
[    3.796499] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.854474] i915 0000:00:02.0: irq 35 for MSI/MSI-X
[    3.854493] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.854495] [drm] Driver supports precise vblank timestamp query.
[    3.854504] i915 0000:00:02.0: Invalid ROM contents
[    3.854549] [drm] failed to find VBIOS tables
[    3.854701] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    3.877655] [drm] failed to retrieve link info, disabling eDP
[    3.950994] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2
[    3.964324] i915 0000:00:02.0: No connectors reported connected with modes
[    3.964329] [drm] Cannot find any crtc or sizes - going 1024x768
[    3.964917] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.965074] fbcon: inteldrmfb (fb1) is primary device
[    3.965075] fbcon: Remapping primary device, fb1, to tty 1-63
[    4.102654] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
[    4.102656] i915 0000:00:02.0: registered panic notifier
[    4.127924] [Firmware Bug]: ACPI(GFX0) defines _DOD but not _DOS
[    4.127959] ACPI: Video Device [GFX0] (multi-head: yes  rom: yes  post: no)
[    4.129629] acpi device:02: registered as cooling_device8
[    4.129706] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/LNXVIDEO:00/input/input4
[    4.171730] ACPI: Video Device [IGPU] (multi-head: yes  rom: no  post: no)
[    4.172075] acpi device:20: registered as cooling_device9
[    4.172160] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input5
[    4.172190] [drm] Initialized i915 1.6.0 20140725 for 0000:00:02.0 on minor 0
[    4.173507] wmi: Mapper loaded
[    4.180939] ACPI Warning: \_SB_.PCI0.IGPU._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    4.180968] ACPI: \_SB_.PCI0.IGPU: failed to evaluate _DSM
[    4.180987] ACPI Warning: \_SB_.PCI0.P0P2.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    4.181000] ACPI: \_SB_.PCI0.P0P2.GFX0: failed to evaluate _DSM
[    4.181019] checking generic (90020000 1c20000) vs hw (90000000 10000000)
[    4.181021] fb: switching to nouveaufb from EFI VGA
[    4.181330] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
[    4.181860] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e7150a2
[    4.181865] nouveau  [  DEVICE][0000:01:00.0] Chipset: GK107 (NVE7)
[    4.181868] nouveau  [  DEVICE][0000:01:00.0] Family : NVE0
[    4.181897] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
[    4.272142] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
[    4.272144] nouveau  [   VBIOS][0000:01:00.0] using image from PRAMIN
[    4.272276] nouveau  [   VBIOS][0000:01:00.0] BIT signature found
[    4.272279] nouveau  [   VBIOS][0000:01:00.0] version 80.07.26.04.01
[    4.273011] nouveau 0000:01:00.0: irq 36 for MSI/MSI-X
[    4.273023] nouveau  [     PMC][0000:01:00.0] MSI interrupts enabled
[    4.273070] nouveau  [     PFB][0000:01:00.0] RAM type: GDDR5
[    4.273071] nouveau  [     PFB][0000:01:00.0] RAM size: 1024 MiB
[    4.273073] nouveau  [     PFB][0000:01:00.0]    ZCOMP: 0 tags
[    4.308411] nouveau  [  PTHERM][0000:01:00.0] FAN control: none / external
[    4.308426] nouveau  [  PTHERM][0000:01:00.0] fan management: automatic
[    4.308437] nouveau  [  PTHERM][0000:01:00.0] internal sensor: yes
[    4.308473] nouveau  [     CLK][0000:01:00.0] 07: core 270-405 MHz memory 838 MHz 
[    4.308541] nouveau  [     CLK][0000:01:00.0] 0a: core 270-900 MHz memory 1560 MHz 
[    4.308591] nouveau  [     CLK][0000:01:00.0] 0e: core 270-900 MHz memory 4000 MHz 
[    4.308625] nouveau  [     CLK][0000:01:00.0] 0f: core 270-900 MHz memory 5016 MHz 
[    4.308768] nouveau  [     CLK][0000:01:00.0] --: core 405 MHz memory 680 MHz 
[    4.340459] [TTM] Zone  kernel: Available graphics memory: 8171710 kiB
[    4.340461] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    4.340462] [TTM] Initializing pool allocator
[    4.340466] [TTM] Initializing DMA pool allocator
[    4.340473] nouveau  [     DRM] VRAM: 1024 MiB
[    4.340475] nouveau  [     DRM] GART: 1048576 MiB
[    4.340477] nouveau  [     DRM] TMDS table version 2.0
[    4.340478] nouveau  [     DRM] DCB version 4.0
[    4.340479] nouveau  [     DRM] DCB outp 00: 048101b6 0f230010
[    4.340480] nouveau  [     DRM] DCB outp 01: 018212d6 0f220020
[    4.340481] nouveau  [     DRM] DCB outp 02: 01021212 00020020
[    4.340483] nouveau  [     DRM] DCB outp 03: 088324c6 0f220010
[    4.340484] nouveau  [     DRM] DCB outp 04: 08032402 00020010
[    4.340485] nouveau  [     DRM] DCB outp 05: 02843862 00020010
[    4.340486] nouveau  [     DRM] DCB conn 00: 00020047
[    4.340487] nouveau  [     DRM] DCB conn 01: 02208146
[    4.340488] nouveau  [     DRM] DCB conn 02: 01104246
[    4.340489] nouveau  [     DRM] DCB conn 03: 00410361
[    4.348885] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.348886] [drm] Driver supports precise vblank timestamp query.
[    4.357909] nouveau  [     DRM] MM: using COPY for buffer copies
[    4.457194] nouveau  [     DRM] allocated 2880x1800 fb: 0x80000, bo ffff880455721800
[    4.457258] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    4.457265] [drm] Initialized nouveau 1.2.0 20120801 for 0000:01:00.0 on minor 1
[    4.474617] ACPI: bus type USB registered
[    4.474639] usbcore: registered new interface driver usbfs
[    4.474650] usbcore: registered new interface driver hub
[    4.474683] usbcore: registered new device driver usb
[    4.474720] SCSI subsystem initialized
[    4.474799] sdhci: Secure Digital Host Controller Interface driver
[    4.474801] sdhci: Copyright(c) Pierre Ossman
[    4.475081] sdhci-pci 0000:03:00.1: SDHCI controller found [14e4:16bc] (rev 10)
[    4.475139] sdhci-pci 0000:03:00.1: enabling device (0000 -> 0002)
[    4.475141] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.475306] ehci-pci: EHCI PCI platform driver
[    4.475313] sdhci-pci 0000:03:00.1: enabling bus mastering
[    4.475321] sdhci-pci 0000:03:00.1: No vmmc regulator found
[    4.475322] sdhci-pci 0000:03:00.1: No vqmmc regulator found
[    4.475405] ehci-pci 0000:00:1a.0: enabling bus mastering
[    4.475418] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    4.475423] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    4.475434] mmc0: SDHCI controller on PCI [0000:03:00.1] using ADMA
[    4.475482] ehci-pci 0000:00:1a.0: debug port 2
[    4.476096] libata version 3.00 loaded.
[    4.479380] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    4.479394] ehci-pci 0000:00:1a.0: irq 23, io mem 0xc1c16c00
[    4.487467] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    4.487579] hub 1-0:1.0: USB hub found
[    4.487583] hub 1-0:1.0: 2 ports detected
[    4.487727] ehci-pci 0000:00:1d.0: enabling bus mastering
[    4.487735] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    4.487739] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    4.487751] ehci-pci 0000:00:1d.0: debug port 2
[    4.491649] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    4.491659] ehci-pci 0000:00:1d.0: irq 22, io mem 0xc1c16800
[    4.500815] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    4.500906] hub 2-0:1.0: USB hub found
[    4.500910] hub 2-0:1.0: 2 ports detected
[    4.501046] xhci_hcd 0000:00:14.0: can't derive routing for PCI INT A
[    4.501049] xhci_hcd 0000:00:14.0: PCI INT A: no GSI
[    4.501068] xhci_hcd 0000:00:14.0: enabling bus mastering
[    4.501074] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.501079] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[    4.501469] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    4.501485] xhci_hcd 0000:00:14.0: irq 37 for MSI/MSI-X
[    4.501645] hub 3-0:1.0: USB hub found
[    4.501655] hub 3-0:1.0: 4 ports detected
[    4.501777] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.501779] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
[    4.501864] hub 4-0:1.0: USB hub found
[    4.501873] hub 4-0:1.0: 4 ports detected
[    4.501994] ahci 0000:00:1f.2: version 3.0
[    4.502092] ahci 0000:00:1f.2: irq 38 for MSI/MSI-X
[    4.502138] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1 impl SATA mode
[    4.502141] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems apst 
[    4.502611] scsi host0: ahci
[    4.502707] scsi host1: ahci
[    4.502769] scsi host2: ahci
[    4.502816] scsi host3: ahci
[    4.502859] scsi host4: ahci
[    4.502903] scsi host5: ahci
[    4.502933] ata1: SATA max UDMA/133 abar m2048@0xc1c16000 port 0xc1c16100 irq 38
[    4.502934] ata2: DUMMY
[    4.502935] ata3: DUMMY
[    4.502936] ata4: DUMMY
[    4.502936] ata5: DUMMY
[    4.502937] ata6: DUMMY
[    4.794081] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    4.820726] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    4.821037] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.821147] ata1.00: ATA-8: APPLE SSD SD512E, 1027AP, max UDMA/133
[    4.821150] ata1.00: 977105060 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    4.821549] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.821663] ata1.00: configured for UDMA/133
[    4.821847] scsi 0:0:0:0: Direct-Access     ATA      APPLE SSD SD512E AP   PQ: 0 ANSI: 5
[    4.823967] sd 0:0:0:0: [sda] 977105060 512-byte logical blocks: (500 GB/465 GiB)
[    4.823970] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    4.824008] sd 0:0:0:0: [sda] Write Protect is off
[    4.824009] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    4.824029] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.827210]  sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
[    4.828068] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.861161] PM: Starting manual resume from disk
[    4.861164] PM: Hibernation image partition 8:5 present
[    4.861165] PM: Looking for hibernation image.
[    4.861429] PM: Image not found (code -22)
[    4.861432] PM: Hibernation image not present or could not be loaded.
[    4.899267] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[    4.918444] hub 1-1:1.0: USB hub found
[    4.918656] hub 1-1:1.0: 6 ports detected
[    5.027365] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    5.151429] hub 2-1:1.0: USB hub found
[    5.151494] hub 2-1:1.0: 8 ports detected
[    5.230732] usb 1-1.1: new high-speed USB device number 3 using ehci-pci
[    5.417303] usb 2-1.8: new high-speed USB device number 3 using ehci-pci
[    5.504550] hub 2-1.8:1.0: USB hub found
[    5.504669] hub 2-1.8:1.0: 2 ports detected
[    5.706870] systemd[1]: Cannot add dependency job for unit hddtemp.service, ignoring: Unit hddtemp.service failed to load: No such file or directory.
[    5.738794] EXT4-fs (sda7): re-mounted. Opts: data=ordered,discard
[    5.771032] systemd-udevd[198]: starting version 215
[    5.783779] usb 2-1.8.1: new full-speed USB device number 4 using ehci-pci
[    5.883723] hub 2-1.8.1:1.0: USB hub found
[    5.883886] hub 2-1.8.1:1.0: 3 ports detected
[    5.963905] usb 2-1.8.2: new full-speed USB device number 5 using ehci-pci
[    6.046788] apple_gmux: Found gmux version 3.2.19 [indexed]
[    6.059209] thunderbolt 0000:07:00.0: irq 39 for MSI/MSI-X
[    6.059261] thunderbolt 0000:07:00.0: NHI initialized, starting thunderbolt
[    6.059274] thunderbolt 0000:07:00.0: allocating TX ring 0 of size 10
[    6.059278] thunderbolt 0000:07:00.0: allocating RX ring 0 of size 10
[    6.059282] thunderbolt 0000:07:00.0: control channel created
[    6.059285] thunderbolt 0000:07:00.0: control channel starting...
[    6.059287] thunderbolt 0000:07:00.0: starting TX ring 0
[    6.059292] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[    6.059294] thunderbolt 0000:07:00.0: starting RX ring 0
[    6.059300] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001)
[    6.059421] thunderbolt 0000:07:00.0: initializing Switch at 0x0 (depth: 0, up port: 5)
[    6.059424] thunderbolt 0000:07:00.0: old switch config:
[    6.059426] thunderbolt 0000:07:00.0:  Switch: 8086:1547 (Revision: 3, TB Version: 1)
[    6.059427] thunderbolt 0000:07:00.0:   Max Port Number: 12
[    6.059428] thunderbolt 0000:07:00.0:   Config:
[    6.059430] thunderbolt 0000:07:00.0:    Upstream Port Number: 5 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 255ms
[    6.059431] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.063732] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[    6.066544] input: PC Speaker as /devices/platform/pcspkr/input/input6
[    6.067629] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20140724/utaddress-258)
[    6.067636] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.067641] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.067645] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.067647] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.067650] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.067652] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.067656] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.067657] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    6.067677] i801_smbus 0000:00:1f.3: enabling device (0000 -> 0003)
[    6.067774] ACPI Warning: SystemIO range 0x000000000000efa0-0x000000000000efbf conflicts with OpRegion 0x000000000000efa0-0x000000000000efaf (\_SB_.PCI0.SBUS.SMBI) (20140724/utaddress-258)
[    6.067780] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.069029] pps_core: LinuxPPS API ver. 1 registered
[    6.069031] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    6.070135] PTP clock support registered
[    6.070199] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[    6.073485] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[    6.073511] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[    6.073525] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[    6.073540] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[    6.073558] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[    6.073582] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[    6.073599] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[    6.073717] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    6.076390] tg3.c:v3.137 (May 11, 2014)
[    6.085106] iTCO_vendor_support: vendor-support=0
[    6.086106] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    6.086138] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[    6.086598] input: bcm5974 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.2/input/input7
[    6.086990] tg3 0000:0a:00.0: enabling device (0000 -> 0002)
[    6.087057] tg3 0000:0a:00.0: enabling bus mastering
[    6.090307] hidraw: raw HID events driver (C) Jiri Kosina
[    6.093222] AVX version of gcm_enc/dec engaged.
[    6.093224] AES CTR mode by8 optimization enabled
[    6.094356] thunderbolt 0000:07:00.0: 0: uid: 0x1000000000000
[    6.094452] thunderbolt 0000:07:00.0:  Port 0: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.094454] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.094455] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.094456] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.094959] thunderbolt 0000:07:00.0:  Port 1: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.094960] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.094961] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.094963] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.095448] thunderbolt 0000:07:00.0:  Port 2: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.095450] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.095451] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.095452] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.095949] thunderbolt 0000:07:00.0:  Port 3: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.095950] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.095951] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.095952] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.096446] thunderbolt 0000:07:00.0:  Port 4: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.096448] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.096449] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.096450] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.096549] thunderbolt 0000:07:00.0:  Port 5: 8086:1547 (Revision: 3, TB Version: 1, Type: NHI (0x2))
[    6.096552] thunderbolt 0000:07:00.0:   Max hop id (in/out): 11/11
[    6.096553] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.096555] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.096649] thunderbolt 0000:07:00.0:  Port 6: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.096651] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.096653] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.096654] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.096749] thunderbolt 0000:07:00.0:  Port 7: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.096751] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.096753] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.096755] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.096848] thunderbolt 0000:07:00.0:  Port 8: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.096849] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.096850] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.096851] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.096958] thunderbolt 0000:07:00.0:  Port 9: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.096961] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.096962] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.096964] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.097050] thunderbolt 0000:07:00.0:  Port 10: ffff:ffff (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0102))
[    6.097053] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.097054] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.097056] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.097151] thunderbolt 0000:07:00.0:  Port 11: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.097154] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.097156] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.097157] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.097252] thunderbolt 0000:07:00.0:  Port 12: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.097254] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.097256] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.097258] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.097649] thunderbolt 0000:07:00.0: 0:1: is connected, link is up (state: 2)
[    6.097870] thunderbolt 0000:07:00.0: initializing Switch at 0x1 (depth: 1, up port: 1)
[    6.097873] thunderbolt 0000:07:00.0: old switch config:
[    6.097876] thunderbolt 0000:07:00.0:  Switch: 8086:1549 (Revision: 0, TB Version: 1)
[    6.097877] thunderbolt 0000:07:00.0:   Max Port Number: 2
[    6.097879] thunderbolt 0000:07:00.0:   Config:
[    6.097882] thunderbolt 0000:07:00.0:    Upstream Port Number: 1 Depth: 1 Route String: 0x1 Enabled: 1, PlugEventsDelay: 255ms
[    6.097884] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.102779] Adding 8388604k swap on /dev/sda6.  Priority:-1 extents:1 across:8388604k SSFS
[    6.107503] thunderbolt 0000:07:00.0: resetting error on 0:b.
[    6.107512] thunderbolt 0000:07:00.0: resetting error on 0:1.
[    6.107612] thunderbolt 0000:07:00.0: resetting error on 0:c.
[    6.111908] thunderbolt 0000:07:00.0: 1: reading drom (length: 0x7b)
[    6.118078] usbcore: registered new interface driver bcm5974
[    6.118083] vga_switcheroo: enabled
[    6.122801] usbcore: registered new interface driver usbhid
[    6.122809] usbhid: USB HID core driver
[    6.131717] applesmc: key=493 fan=2 temp=44 index=43 acc=0 lux=2 kbd=1
[    6.132325] mousedev: PS/2 mouse device common for all mice
[    6.132485] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.0/0003:05AC:0262.0001/input/input8
[    6.132560] apple 0003:05AC:0262.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input0
[    6.134724] random: nonblocking pool is initialized
[    6.140172] tg3 0000:0a:00.0 eth0: Tigon3 [partno(BCM957762) rev 57766000] (PCI Express) MAC address 40:6c:8f:43:4c:fd
[    6.140177] tg3 0000:0a:00.0 eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[    6.140179] tg3 0000:0a:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    6.140181] tg3 0000:0a:00.0 eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[    6.147800] tg3 0000:0a:00.0 ens9: renamed from eth0
[    6.150423] usb 2-1.8.1.1: new full-speed USB device number 6 using ehci-pci
[    6.157149] systemd-udevd[204]: renamed network interface eth0 to ens9
[    6.168972] systemd-journald[178]: Received request to flush runtime journal from PID 1
[    6.195900] apple 0003:05AC:0262.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input1
[    6.303750] usb 2-1.8.1.2: new full-speed USB device number 7 using ehci-pci
[    6.393674] cfg80211: Calling CRDA to update world regulatory domain
[    6.441698] thunderbolt 0000:07:00.0: 1: uid: 0x1000200641bb0
[    6.441778] thunderbolt 0000:07:00.0:  Port 0: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.441780] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.441781] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.441782] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.442270] thunderbolt 0000:07:00.0:  Port 1: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.442272] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.442273] thunderbolt 0000:07:00.0:   Max counters: 4
[    6.442274] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.442350] thunderbolt 0000:07:00.0:  Port 2: 8086:1549 (Revision: 0, TB Version: 1, Type: PCIe (0x100102))
[    6.442351] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.442351] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.442352] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.442748] thunderbolt 0000:07:00.0: 0:3: is unplugged (state: 7)
[    6.443047] thunderbolt 0000:07:00.0: 1:2: PCIe port already activated, aborting
[    6.443055] thunderbolt 0000:07:00.0: 0:b: hotplug: scanning
[    6.443057] thunderbolt 0000:07:00.0: 0:b: hotplug: no switch found
[    6.443059] thunderbolt 0000:07:00.0: 0:1: got plug event for connected port, ignoring
[    6.443060] thunderbolt 0000:07:00.0: 0:c: hotplug: scanning
[    6.443061] thunderbolt 0000:07:00.0: 0:c: hotplug: no switch found
[    6.456966] usb 2-1.8.1.3: new full-speed USB device number 8 using ehci-pci
[    6.548655] input: HID 05ac:820a as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.1/2-1.8.1.1:1.0/0003:05AC:820A.0003/input/input9
[    6.548731] hid-generic 0003:05AC:820A.0003: input,hidraw2: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:1d.0-1.8.1.1/input0
[    6.548803] input: HID 05ac:820b as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.2/2-1.8.1.2:1.0/0003:05AC:820B.0004/input/input10
[    6.548857] hid-generic 0003:05AC:820B.0004: input,hidraw3: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:1d.0-1.8.1.2/input0
[    6.561511] Bluetooth: Core ver 2.19
[    6.561522] NET: Registered protocol family 31
[    6.561523] Bluetooth: HCI device and connection manager initialized
[    6.561528] Bluetooth: HCI socket layer initialized
[    6.561529] Bluetooth: L2CAP socket layer initialized
[    6.561533] Bluetooth: SCO socket layer initialized
[    6.570113] usbcore: registered new interface driver btusb
[    6.671223] usb 2-1.8.1.1: USB disconnect, device number 6
[    6.825226] tg3 0000:0a:00.0: irq 41 for MSI/MSI-X
[    6.825237] tg3 0000:0a:00.0: irq 42 for MSI/MSI-X
[    6.825243] tg3 0000:0a:00.0: irq 43 for MSI/MSI-X
[    6.825248] tg3 0000:0a:00.0: irq 44 for MSI/MSI-X
[    6.825254] tg3 0000:0a:00.0: irq 45 for MSI/MSI-X
[    6.993099] IPv6: ADDRCONF(NETDEV_UP): ens9: link is not ready
[    7.020820] usb 2-1.8.1.2: USB disconnect, device number 7
[   10.395312] tg3 0000:0a:00.0 ens9: Link is up at 1000 Mbps, full duplex
[   10.395319] tg3 0000:0a:00.0 ens9: Flow control is on for TX and on for RX
[   10.395322] tg3 0000:0a:00.0 ens9: EEE is enabled
[   10.395337] IPv6: ADDRCONF(NETDEV_CHANGE): ens9: link becomes ready

[-- Attachment #3: dmesg_bl_nouveau.txt --]
[-- Type: text/plain, Size: 108351 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.17.0-rc1-hdev-00002-g0d1f272-dirty (anoever@linuxbook) (gcc version 4.9.1 (GCC) ) #258 SMP PREEMPT Fri Aug 22 21:20:37 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000bffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x000000008ad13fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad14000-0x000000008ad52fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000008ad53000-0x000000008ad68fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad69000-0x000000008ad8efff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000008ad8f000-0x000000008ae39fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ae3a000-0x000000008ae8efff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008ae8f000-0x000000008aecdfff] usable
[    0.000000] BIOS-e820: [mem 0x000000008aece000-0x000000008aefefff] type 20
[    0.000000] BIOS-e820: [mem 0x000000008aeff000-0x000000008af91fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008af92000-0x000000008affefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008afff000-0x000000008affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000008b000000-0x000000008f9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe70000-0x00000000ffe9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000046f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v1.10 by Apple
[    0.000000] efi:  ACPI=0x8ad8e000  ACPI 2.0=0x8ad8e014  SMBIOS=0x8ad1b000 
[    0.000000] efi: mem00: type=7, attr=0x80000000000000f, range=[0x0000000000000000-0x000000000008e000) (0MB)
[    0.000000] efi: mem01: type=0, attr=0x80000000000000f, range=[0x000000000008e000-0x0000000000090000) (0MB)
[    0.000000] efi: mem02: type=7, attr=0x80000000000000f, range=[0x0000000000090000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem03: type=2, attr=0xf, range=[0x0000000000100000-0x0000000000efb000) (13MB)
[    0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000efb000-0x0000000020000000) (497MB)
[    0.000000] efi: mem05: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020200000) (2MB)
[    0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000020200000-0x0000000036c96000) (362MB)
[    0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000036c96000-0x0000000037643000) (9MB)
[    0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000037643000-0x0000000040004000) (137MB)
[    0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000040004000-0x0000000040005000) (0MB)
[    0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000040005000-0x000000006456f000) (581MB)
[    0.000000] efi: mem11: type=2, attr=0xf, range=[0x000000006456f000-0x0000000085c2c000) (534MB)
[    0.000000] efi: mem12: type=1, attr=0xf, range=[0x0000000085c2c000-0x0000000085c4a000) (0MB)
[    0.000000] efi: mem13: type=7, attr=0xf, range=[0x0000000085c4a000-0x0000000085c68000) (0MB)
[    0.000000] efi: mem14: type=4, attr=0xf, range=[0x0000000085c68000-0x0000000087d24000) (32MB)
[    0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000087d24000-0x0000000087d2f000) (0MB)
[    0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000087d2f000-0x000000008946b000) (23MB)
[    0.000000] efi: mem17: type=3, attr=0xf, range=[0x000000008946b000-0x0000000089484000) (0MB)
[    0.000000] efi: mem18: type=4, attr=0xf, range=[0x0000000089484000-0x0000000089547000) (0MB)
[    0.000000] efi: mem19: type=2, attr=0xf, range=[0x0000000089547000-0x0000000089548000) (0MB)
[    0.000000] efi: mem20: type=4, attr=0xf, range=[0x0000000089548000-0x0000000089562000) (0MB)
[    0.000000] efi: mem21: type=3, attr=0xf, range=[0x0000000089562000-0x000000008956b000) (0MB)
[    0.000000] efi: mem22: type=4, attr=0xf, range=[0x000000008956b000-0x0000000089581000) (0MB)
[    0.000000] efi: mem23: type=2, attr=0xf, range=[0x0000000089581000-0x0000000089582000) (0MB)
[    0.000000] efi: mem24: type=4, attr=0xf, range=[0x0000000089582000-0x0000000089588000) (0MB)
[    0.000000] efi: mem25: type=3, attr=0xf, range=[0x0000000089588000-0x000000008958a000) (0MB)
[    0.000000] efi: mem26: type=4, attr=0xf, range=[0x000000008958a000-0x0000000089591000) (0MB)
[    0.000000] efi: mem27: type=3, attr=0xf, range=[0x0000000089591000-0x0000000089599000) (0MB)
[    0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000089599000-0x000000008959b000) (0MB)
[    0.000000] efi: mem29: type=2, attr=0xf, range=[0x000000008959b000-0x000000008959c000) (0MB)
[    0.000000] efi: mem30: type=4, attr=0xf, range=[0x000000008959c000-0x000000008959d000) (0MB)
[    0.000000] efi: mem31: type=3, attr=0xf, range=[0x000000008959d000-0x000000008959e000) (0MB)
[    0.000000] efi: mem32: type=4, attr=0xf, range=[0x000000008959e000-0x00000000895a3000) (0MB)
[    0.000000] efi: mem33: type=3, attr=0xf, range=[0x00000000895a3000-0x00000000895a8000) (0MB)
[    0.000000] efi: mem34: type=4, attr=0xf, range=[0x00000000895a8000-0x00000000895bf000) (0MB)
[    0.000000] efi: mem35: type=3, attr=0xf, range=[0x00000000895bf000-0x00000000895c3000) (0MB)
[    0.000000] efi: mem36: type=4, attr=0xf, range=[0x00000000895c3000-0x00000000895c7000) (0MB)
[    0.000000] efi: mem37: type=2, attr=0xf, range=[0x00000000895c7000-0x00000000895c8000) (0MB)
[    0.000000] efi: mem38: type=4, attr=0xf, range=[0x00000000895c8000-0x00000000895c9000) (0MB)
[    0.000000] efi: mem39: type=3, attr=0xf, range=[0x00000000895c9000-0x00000000895ca000) (0MB)
[    0.000000] efi: mem40: type=4, attr=0xf, range=[0x00000000895ca000-0x00000000895cb000) (0MB)
[    0.000000] efi: mem41: type=3, attr=0xf, range=[0x00000000895cb000-0x00000000895d6000) (0MB)
[    0.000000] efi: mem42: type=4, attr=0xf, range=[0x00000000895d6000-0x00000000895dc000) (0MB)
[    0.000000] efi: mem43: type=3, attr=0xf, range=[0x00000000895dc000-0x00000000895de000) (0MB)
[    0.000000] efi: mem44: type=4, attr=0xf, range=[0x00000000895de000-0x00000000895f8000) (0MB)
[    0.000000] efi: mem45: type=3, attr=0xf, range=[0x00000000895f8000-0x0000000089634000) (0MB)
[    0.000000] efi: mem46: type=4, attr=0xf, range=[0x0000000089634000-0x000000008964a000) (0MB)
[    0.000000] efi: mem47: type=3, attr=0xf, range=[0x000000008964a000-0x000000008964d000) (0MB)
[    0.000000] efi: mem48: type=4, attr=0xf, range=[0x000000008964d000-0x000000008964f000) (0MB)
[    0.000000] efi: mem49: type=2, attr=0xf, range=[0x000000008964f000-0x0000000089650000) (0MB)
[    0.000000] efi: mem50: type=4, attr=0xf, range=[0x0000000089650000-0x0000000089685000) (0MB)
[    0.000000] efi: mem51: type=3, attr=0xf, range=[0x0000000089685000-0x0000000089693000) (0MB)
[    0.000000] efi: mem52: type=4, attr=0xf, range=[0x0000000089693000-0x0000000089697000) (0MB)
[    0.000000] efi: mem53: type=3, attr=0xf, range=[0x0000000089697000-0x00000000896ab000) (0MB)
[    0.000000] efi: mem54: type=4, attr=0xf, range=[0x00000000896ab000-0x00000000896b0000) (0MB)
[    0.000000] efi: mem55: type=3, attr=0xf, range=[0x00000000896b0000-0x00000000896b1000) (0MB)
[    0.000000] efi: mem56: type=4, attr=0xf, range=[0x00000000896b1000-0x00000000896b4000) (0MB)
[    0.000000] efi: mem57: type=2, attr=0xf, range=[0x00000000896b4000-0x00000000896b5000) (0MB)
[    0.000000] efi: mem58: type=4, attr=0xf, range=[0x00000000896b5000-0x00000000896b9000) (0MB)
[    0.000000] efi: mem59: type=3, attr=0xf, range=[0x00000000896b9000-0x00000000896bb000) (0MB)
[    0.000000] efi: mem60: type=4, attr=0xf, range=[0x00000000896bb000-0x00000000896bf000) (0MB)
[    0.000000] efi: mem61: type=3, attr=0xf, range=[0x00000000896bf000-0x00000000896d9000) (0MB)
[    0.000000] efi: mem62: type=4, attr=0xf, range=[0x00000000896d9000-0x00000000896dc000) (0MB)
[    0.000000] efi: mem63: type=2, attr=0xf, range=[0x00000000896dc000-0x00000000896dd000) (0MB)
[    0.000000] efi: mem64: type=3, attr=0xf, range=[0x00000000896dd000-0x00000000896de000) (0MB)
[    0.000000] efi: mem65: type=4, attr=0xf, range=[0x00000000896de000-0x00000000896e0000) (0MB)
[    0.000000] efi: mem66: type=3, attr=0xf, range=[0x00000000896e0000-0x00000000896e1000) (0MB)
[    0.000000] efi: mem67: type=4, attr=0xf, range=[0x00000000896e1000-0x00000000896e2000) (0MB)
[    0.000000] efi: mem68: type=3, attr=0xf, range=[0x00000000896e2000-0x00000000896e3000) (0MB)
[    0.000000] efi: mem69: type=4, attr=0xf, range=[0x00000000896e3000-0x00000000896e5000) (0MB)
[    0.000000] efi: mem70: type=3, attr=0xf, range=[0x00000000896e5000-0x00000000896ea000) (0MB)
[    0.000000] efi: mem71: type=4, attr=0xf, range=[0x00000000896ea000-0x00000000896eb000) (0MB)
[    0.000000] efi: mem72: type=2, attr=0xf, range=[0x00000000896eb000-0x00000000896ec000) (0MB)
[    0.000000] efi: mem73: type=4, attr=0xf, range=[0x00000000896ec000-0x00000000896ed000) (0MB)
[    0.000000] efi: mem74: type=3, attr=0xf, range=[0x00000000896ed000-0x00000000896ee000) (0MB)
[    0.000000] efi: mem75: type=4, attr=0xf, range=[0x00000000896ee000-0x00000000896ef000) (0MB)
[    0.000000] efi: mem76: type=3, attr=0xf, range=[0x00000000896ef000-0x00000000896f0000) (0MB)
[    0.000000] efi: mem77: type=4, attr=0xf, range=[0x00000000896f0000-0x00000000896f2000) (0MB)
[    0.000000] efi: mem78: type=3, attr=0xf, range=[0x00000000896f2000-0x00000000896f4000) (0MB)
[    0.000000] efi: mem79: type=2, attr=0xf, range=[0x00000000896f4000-0x00000000896f5000) (0MB)
[    0.000000] efi: mem80: type=4, attr=0xf, range=[0x00000000896f5000-0x00000000896f8000) (0MB)
[    0.000000] efi: mem81: type=3, attr=0xf, range=[0x00000000896f8000-0x00000000896fc000) (0MB)
[    0.000000] efi: mem82: type=4, attr=0xf, range=[0x00000000896fc000-0x00000000896fd000) (0MB)
[    0.000000] efi: mem83: type=3, attr=0xf, range=[0x00000000896fd000-0x00000000896fe000) (0MB)
[    0.000000] efi: mem84: type=4, attr=0xf, range=[0x00000000896fe000-0x00000000896ff000) (0MB)
[    0.000000] efi: mem85: type=2, attr=0xf, range=[0x00000000896ff000-0x0000000089700000) (0MB)
[    0.000000] efi: mem86: type=4, attr=0xf, range=[0x0000000089700000-0x0000000089701000) (0MB)
[    0.000000] efi: mem87: type=3, attr=0xf, range=[0x0000000089701000-0x0000000089708000) (0MB)
[    0.000000] efi: mem88: type=4, attr=0xf, range=[0x0000000089708000-0x0000000089709000) (0MB)
[    0.000000] efi: mem89: type=3, attr=0xf, range=[0x0000000089709000-0x000000008970a000) (0MB)
[    0.000000] efi: mem90: type=4, attr=0xf, range=[0x000000008970a000-0x000000008970b000) (0MB)
[    0.000000] efi: mem91: type=3, attr=0xf, range=[0x000000008970b000-0x000000008970c000) (0MB)
[    0.000000] efi: mem92: type=4, attr=0xf, range=[0x000000008970c000-0x000000008970f000) (0MB)
[    0.000000] efi: mem93: type=3, attr=0xf, range=[0x000000008970f000-0x000000008971f000) (0MB)
[    0.000000] efi: mem94: type=4, attr=0xf, range=[0x000000008971f000-0x0000000089723000) (0MB)
[    0.000000] efi: mem95: type=2, attr=0xf, range=[0x0000000089723000-0x0000000089724000) (0MB)
[    0.000000] efi: mem96: type=4, attr=0xf, range=[0x0000000089724000-0x000000008972b000) (0MB)
[    0.000000] efi: mem97: type=3, attr=0xf, range=[0x000000008972b000-0x0000000089730000) (0MB)
[    0.000000] efi: mem98: type=4, attr=0xf, range=[0x0000000089730000-0x0000000089739000) (0MB)
[    0.000000] efi: mem99: type=3, attr=0xf, range=[0x0000000089739000-0x0000000089752000) (0MB)
[    0.000000] efi: mem100: type=4, attr=0xf, range=[0x0000000089752000-0x0000000089754000) (0MB)
[    0.000000] efi: mem101: type=3, attr=0xf, range=[0x0000000089754000-0x0000000089762000) (0MB)
[    0.000000] efi: mem102: type=4, attr=0xf, range=[0x0000000089762000-0x0000000089763000) (0MB)
[    0.000000] efi: mem103: type=3, attr=0xf, range=[0x0000000089763000-0x0000000089766000) (0MB)
[    0.000000] efi: mem104: type=4, attr=0xf, range=[0x0000000089766000-0x0000000089769000) (0MB)
[    0.000000] efi: mem105: type=3, attr=0xf, range=[0x0000000089769000-0x0000000089778000) (0MB)
[    0.000000] efi: mem106: type=4, attr=0xf, range=[0x0000000089778000-0x0000000089779000) (0MB)
[    0.000000] efi: mem107: type=3, attr=0xf, range=[0x0000000089779000-0x000000008977d000) (0MB)
[    0.000000] efi: mem108: type=2, attr=0xf, range=[0x000000008977d000-0x000000008977e000) (0MB)
[    0.000000] efi: mem109: type=4, attr=0xf, range=[0x000000008977e000-0x0000000089783000) (0MB)
[    0.000000] efi: mem110: type=3, attr=0xf, range=[0x0000000089783000-0x0000000089787000) (0MB)
[    0.000000] efi: mem111: type=4, attr=0xf, range=[0x0000000089787000-0x000000008978c000) (0MB)
[    0.000000] efi: mem112: type=2, attr=0xf, range=[0x000000008978c000-0x000000008978d000) (0MB)
[    0.000000] efi: mem113: type=4, attr=0xf, range=[0x000000008978d000-0x000000008978f000) (0MB)
[    0.000000] efi: mem114: type=3, attr=0xf, range=[0x000000008978f000-0x0000000089790000) (0MB)
[    0.000000] efi: mem115: type=4, attr=0xf, range=[0x0000000089790000-0x0000000089791000) (0MB)
[    0.000000] efi: mem116: type=3, attr=0xf, range=[0x0000000089791000-0x0000000089793000) (0MB)
[    0.000000] efi: mem117: type=4, attr=0xf, range=[0x0000000089793000-0x0000000089795000) (0MB)
[    0.000000] efi: mem118: type=3, attr=0xf, range=[0x0000000089795000-0x0000000089797000) (0MB)
[    0.000000] efi: mem119: type=2, attr=0xf, range=[0x0000000089797000-0x0000000089798000) (0MB)
[    0.000000] efi: mem120: type=4, attr=0xf, range=[0x0000000089798000-0x000000008979b000) (0MB)
[    0.000000] efi: mem121: type=3, attr=0xf, range=[0x000000008979b000-0x00000000897cb000) (0MB)
[    0.000000] efi: mem122: type=4, attr=0xf, range=[0x00000000897cb000-0x00000000897ce000) (0MB)
[    0.000000] efi: mem123: type=3, attr=0xf, range=[0x00000000897ce000-0x00000000897d3000) (0MB)
[    0.000000] efi: mem124: type=4, attr=0xf, range=[0x00000000897d3000-0x00000000897d7000) (0MB)
[    0.000000] efi: mem125: type=3, attr=0xf, range=[0x00000000897d7000-0x00000000897e5000) (0MB)
[    0.000000] efi: mem126: type=4, attr=0xf, range=[0x00000000897e5000-0x00000000897e8000) (0MB)
[    0.000000] efi: mem127: type=3, attr=0xf, range=[0x00000000897e8000-0x00000000897eb000) (0MB)
[    0.000000] efi: mem128: type=4, attr=0xf, range=[0x00000000897eb000-0x00000000897ef000) (0MB)
[    0.000000] efi: mem129: type=2, attr=0xf, range=[0x00000000897ef000-0x00000000897f0000) (0MB)
[    0.000000] efi: mem130: type=4, attr=0xf, range=[0x00000000897f0000-0x00000000897f3000) (0MB)
[    0.000000] efi: mem131: type=3, attr=0xf, range=[0x00000000897f3000-0x00000000897fa000) (0MB)
[    0.000000] efi: mem132: type=4, attr=0xf, range=[0x00000000897fa000-0x00000000897fd000) (0MB)
[    0.000000] efi: mem133: type=3, attr=0xf, range=[0x00000000897fd000-0x00000000897fe000) (0MB)
[    0.000000] efi: mem134: type=4, attr=0xf, range=[0x00000000897fe000-0x0000000089800000) (0MB)
[    0.000000] efi: mem135: type=2, attr=0xf, range=[0x0000000089800000-0x0000000089801000) (0MB)
[    0.000000] efi: mem136: type=4, attr=0xf, range=[0x0000000089801000-0x0000000089802000) (0MB)
[    0.000000] efi: mem137: type=3, attr=0xf, range=[0x0000000089802000-0x0000000089804000) (0MB)
[    0.000000] efi: mem138: type=4, attr=0xf, range=[0x0000000089804000-0x0000000089807000) (0MB)
[    0.000000] efi: mem139: type=2, attr=0xf, range=[0x0000000089807000-0x0000000089808000) (0MB)
[    0.000000] efi: mem140: type=3, attr=0xf, range=[0x0000000089808000-0x0000000089809000) (0MB)
[    0.000000] efi: mem141: type=4, attr=0xf, range=[0x0000000089809000-0x000000008980d000) (0MB)
[    0.000000] efi: mem142: type=3, attr=0xf, range=[0x000000008980d000-0x0000000089810000) (0MB)
[    0.000000] efi: mem143: type=4, attr=0xf, range=[0x0000000089810000-0x0000000089811000) (0MB)
[    0.000000] efi: mem144: type=3, attr=0xf, range=[0x0000000089811000-0x000000008981c000) (0MB)
[    0.000000] efi: mem145: type=4, attr=0xf, range=[0x000000008981c000-0x000000008981e000) (0MB)
[    0.000000] efi: mem146: type=3, attr=0xf, range=[0x000000008981e000-0x0000000089820000) (0MB)
[    0.000000] efi: mem147: type=4, attr=0xf, range=[0x0000000089820000-0x0000000089823000) (0MB)
[    0.000000] efi: mem148: type=2, attr=0xf, range=[0x0000000089823000-0x0000000089824000) (0MB)
[    0.000000] efi: mem149: type=4, attr=0xf, range=[0x0000000089824000-0x0000000089825000) (0MB)
[    0.000000] efi: mem150: type=3, attr=0xf, range=[0x0000000089825000-0x0000000089826000) (0MB)
[    0.000000] efi: mem151: type=4, attr=0xf, range=[0x0000000089826000-0x000000008982a000) (0MB)
[    0.000000] efi: mem152: type=3, attr=0xf, range=[0x000000008982a000-0x000000008982b000) (0MB)
[    0.000000] efi: mem153: type=4, attr=0xf, range=[0x000000008982b000-0x0000000089832000) (0MB)
[    0.000000] efi: mem154: type=3, attr=0xf, range=[0x0000000089832000-0x0000000089834000) (0MB)
[    0.000000] efi: mem155: type=4, attr=0xf, range=[0x0000000089834000-0x000000008983b000) (0MB)
[    0.000000] efi: mem156: type=3, attr=0xf, range=[0x000000008983b000-0x000000008983c000) (0MB)
[    0.000000] efi: mem157: type=2, attr=0xf, range=[0x000000008983c000-0x000000008983d000) (0MB)
[    0.000000] efi: mem158: type=4, attr=0xf, range=[0x000000008983d000-0x000000008983e000) (0MB)
[    0.000000] efi: mem159: type=3, attr=0xf, range=[0x000000008983e000-0x000000008983f000) (0MB)
[    0.000000] efi: mem160: type=4, attr=0xf, range=[0x000000008983f000-0x000000008985c000) (0MB)
[    0.000000] efi: mem161: type=3, attr=0xf, range=[0x000000008985c000-0x0000000089861000) (0MB)
[    0.000000] efi: mem162: type=4, attr=0xf, range=[0x0000000089861000-0x00000000898c6000) (0MB)
[    0.000000] efi: mem163: type=2, attr=0xf, range=[0x00000000898c6000-0x00000000898c7000) (0MB)
[    0.000000] efi: mem164: type=4, attr=0xf, range=[0x00000000898c7000-0x00000000898c8000) (0MB)
[    0.000000] efi: mem165: type=3, attr=0xf, range=[0x00000000898c8000-0x00000000898db000) (0MB)
[    0.000000] efi: mem166: type=4, attr=0xf, range=[0x00000000898db000-0x0000000089921000) (0MB)
[    0.000000] efi: mem167: type=3, attr=0xf, range=[0x0000000089921000-0x0000000089938000) (0MB)
[    0.000000] efi: mem168: type=4, attr=0xf, range=[0x0000000089938000-0x0000000089953000) (0MB)
[    0.000000] efi: mem169: type=3, attr=0xf, range=[0x0000000089953000-0x0000000089958000) (0MB)
[    0.000000] efi: mem170: type=4, attr=0xf, range=[0x0000000089958000-0x0000000089959000) (0MB)
[    0.000000] efi: mem171: type=2, attr=0xf, range=[0x0000000089959000-0x000000008995a000) (0MB)
[    0.000000] efi: mem172: type=4, attr=0xf, range=[0x000000008995a000-0x0000000089960000) (0MB)
[    0.000000] efi: mem173: type=3, attr=0xf, range=[0x0000000089960000-0x0000000089961000) (0MB)
[    0.000000] efi: mem174: type=4, attr=0xf, range=[0x0000000089961000-0x0000000089963000) (0MB)
[    0.000000] efi: mem175: type=3, attr=0xf, range=[0x0000000089963000-0x0000000089964000) (0MB)
[    0.000000] efi: mem176: type=4, attr=0xf, range=[0x0000000089964000-0x0000000089965000) (0MB)
[    0.000000] efi: mem177: type=3, attr=0xf, range=[0x0000000089965000-0x0000000089968000) (0MB)
[    0.000000] efi: mem178: type=4, attr=0xf, range=[0x0000000089968000-0x000000008997e000) (0MB)
[    0.000000] efi: mem179: type=3, attr=0xf, range=[0x000000008997e000-0x00000000899a1000) (0MB)
[    0.000000] efi: mem180: type=4, attr=0xf, range=[0x00000000899a1000-0x00000000899a2000) (0MB)
[    0.000000] efi: mem181: type=2, attr=0xf, range=[0x00000000899a2000-0x00000000899a3000) (0MB)
[    0.000000] efi: mem182: type=4, attr=0xf, range=[0x00000000899a3000-0x00000000899a4000) (0MB)
[    0.000000] efi: mem183: type=3, attr=0xf, range=[0x00000000899a4000-0x00000000899a6000) (0MB)
[    0.000000] efi: mem184: type=4, attr=0xf, range=[0x00000000899a6000-0x00000000899a7000) (0MB)
[    0.000000] efi: mem185: type=3, attr=0xf, range=[0x00000000899a7000-0x00000000899aa000) (0MB)
[    0.000000] efi: mem186: type=2, attr=0xf, range=[0x00000000899aa000-0x00000000899ab000) (0MB)
[    0.000000] efi: mem187: type=4, attr=0xf, range=[0x00000000899ab000-0x0000000089dcc000) (4MB)
[    0.000000] efi: mem188: type=3, attr=0xf, range=[0x0000000089dcc000-0x0000000089dd6000) (0MB)
[    0.000000] efi: mem189: type=4, attr=0xf, range=[0x0000000089dd6000-0x0000000089e60000) (0MB)
[    0.000000] efi: mem190: type=3, attr=0xf, range=[0x0000000089e60000-0x0000000089e63000) (0MB)
[    0.000000] efi: mem191: type=4, attr=0xf, range=[0x0000000089e63000-0x0000000089e65000) (0MB)
[    0.000000] efi: mem192: type=2, attr=0xf, range=[0x0000000089e65000-0x0000000089e66000) (0MB)
[    0.000000] efi: mem193: type=4, attr=0xf, range=[0x0000000089e66000-0x0000000089e67000) (0MB)
[    0.000000] efi: mem194: type=3, attr=0xf, range=[0x0000000089e67000-0x0000000089e6c000) (0MB)
[    0.000000] efi: mem195: type=4, attr=0xf, range=[0x0000000089e6c000-0x0000000089e6d000) (0MB)
[    0.000000] efi: mem196: type=3, attr=0xf, range=[0x0000000089e6d000-0x0000000089e70000) (0MB)
[    0.000000] efi: mem197: type=4, attr=0xf, range=[0x0000000089e70000-0x0000000089e72000) (0MB)
[    0.000000] efi: mem198: type=3, attr=0xf, range=[0x0000000089e72000-0x0000000089e73000) (0MB)
[    0.000000] efi: mem199: type=4, attr=0xf, range=[0x0000000089e73000-0x0000000089e75000) (0MB)
[    0.000000] efi: mem200: type=3, attr=0xf, range=[0x0000000089e75000-0x0000000089e76000) (0MB)
[    0.000000] efi: mem201: type=4, attr=0xf, range=[0x0000000089e76000-0x000000008a355000) (4MB)
[    0.000000] efi: mem202: type=2, attr=0xf, range=[0x000000008a355000-0x000000008a356000) (0MB)
[    0.000000] efi: mem203: type=4, attr=0xf, range=[0x000000008a356000-0x000000008a440000) (0MB)
[    0.000000] efi: mem204: type=2, attr=0xf, range=[0x000000008a440000-0x000000008a441000) (0MB)
[    0.000000] efi: mem205: type=4, attr=0xf, range=[0x000000008a441000-0x000000008acfa000) (8MB)
[    0.000000] efi: mem206: type=2, attr=0xf, range=[0x000000008acfa000-0x000000008acfb000) (0MB)
[    0.000000] efi: mem207: type=4, attr=0xf, range=[0x000000008acfb000-0x000000008ad03000) (0MB)
[    0.000000] efi: mem208: type=7, attr=0xf, range=[0x000000008ad03000-0x000000008ad14000) (0MB)
[    0.000000] efi: mem209: type=10, attr=0xf, range=[0x000000008ad14000-0x000000008ad53000) (0MB)
[    0.000000] efi: mem210: type=7, attr=0xf, range=[0x000000008ad53000-0x000000008ad69000) (0MB)
[    0.000000] efi: mem211: type=9, attr=0xf, range=[0x000000008ad69000-0x000000008ad8f000) (0MB)
[    0.000000] efi: mem212: type=7, attr=0xf, range=[0x000000008ad8f000-0x000000008ae3a000) (0MB)
[    0.000000] efi: mem213: type=6, attr=0x800000000000000f, range=[0x000000008ae3a000-0x000000008ae8f000) (0MB)
[    0.000000] efi: mem214: type=7, attr=0xf, range=[0x000000008ae8f000-0x000000008aece000) (0MB)
[    0.000000] efi: mem215: type=5, attr=0x800000000000000f, range=[0x000000008aece000-0x000000008aeff000) (0MB)
[    0.000000] efi: mem216: type=7, attr=0xf, range=[0x000000008aeff000-0x000000008af86000) (0MB)
[    0.000000] efi: mem217: type=2, attr=0xf, range=[0x000000008af86000-0x000000008af92000) (0MB)
[    0.000000] efi: mem218: type=0, attr=0xf, range=[0x000000008af92000-0x000000008afff000) (0MB)
[    0.000000] efi: mem219: type=2, attr=0xf, range=[0x000000008afff000-0x000000008b000000) (0MB)
[    0.000000] efi: mem220: type=7, attr=0xf, range=[0x0000000100000000-0x000000046f600000) (14070MB)
[    0.000000] efi: mem221: type=0, attr=0x8000000000000000, range=[0x00000000000a0000-0x00000000000c0000) (0MB)
[    0.000000] efi: mem222: type=0, attr=0x8000000000000000, range=[0x000000008b000000-0x000000008fa00000) (74MB)
[    0.000000] efi: mem223: type=11, attr=0x8000000000000000, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB)
[    0.000000] efi: mem224: type=11, attr=0x8000000000000000, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem225: type=11, attr=0x8000000000000000, range=[0x00000000ffe70000-0x00000000ffea0000) (0MB)
[    0.000000] SMBIOS 2.4 present.
[    0.000000] DMI: Apple Inc. MacBookPro10,1/Mac-C3EC7CD22292981F, BIOS MBP101.88Z.00EE.B03.1212211437 12/21/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x46f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: write-back
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-DFFFF write-protect
[    0.000000]   E0000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0C0000000 mask FC0000000 uncachable
[    0.000000]   1 base 0A0000000 mask FE0000000 uncachable
[    0.000000]   2 base 090000000 mask FF0000000 uncachable
[    0.000000]   3 base 08C000000 mask FFC000000 uncachable
[    0.000000]   4 base 08B000000 mask FFF000000 uncachable
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0x8b000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01ae8000, 0x01ae8fff] PGTABLE
[    0.000000] BRK [0x01ae9000, 0x01ae9fff] PGTABLE
[    0.000000] BRK [0x01aea000, 0x01aeafff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46f400000-0x46f5fffff]
[    0.000000]  [mem 0x46f400000-0x46f5fffff] page 2M
[    0.000000] BRK [0x01aeb000, 0x01aebfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46c000000-0x46f3fffff]
[    0.000000]  [mem 0x46c000000-0x46f3fffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x400000000-0x46bffffff]
[    0.000000]  [mem 0x400000000-0x46bffffff] page 2M
[    0.000000] BRK [0x01aec000, 0x01aecfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x1fffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x20200000-0x40003fff]
[    0.000000]  [mem 0x20200000-0x3fffffff] page 2M
[    0.000000]  [mem 0x40000000-0x40003fff] page 4k
[    0.000000] BRK [0x01aed000, 0x01aedfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x40005000-0x8ad13fff]
[    0.000000]  [mem 0x40005000-0x401fffff] page 4k
[    0.000000]  [mem 0x40200000-0x8abfffff] page 2M
[    0.000000]  [mem 0x8ac00000-0x8ad13fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]  [mem 0x8ad53000-0x8ad68fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]  [mem 0x8ad8f000-0x8ae39fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]  [mem 0x8ae8f000-0x8aecdfff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8aeff000-0x8af91fff]
[    0.000000]  [mem 0x8aeff000-0x8af91fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8afff000-0x8affffff]
[    0.000000]  [mem 0x8afff000-0x8affffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x3ffffffff]
[    0.000000]  [mem 0x100000000-0x3ffffffff] page 2M
[    0.000000] RAMDISK: [mem 0x36c96000-0x37642fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000008AD8E014 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x000000008AD8E1C0 0000B4 (v01 APPLE  Apple00  00000000      01000013)
[    0.000000] ACPI: FACP 0x000000008AD8C000 0000F4 (v04 APPLE  Apple00  00000000 Loki 0000005F)
[    0.000000] ACPI: DSDT 0x000000008AD82000 004D5C (v01 APPLE  MacBookP 00100001 INTL 20100915)
[    0.000000] ACPI: FACS 0x000000008AD1E000 000040
[    0.000000] ACPI: HPET 0x000000008AD8B000 000038 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: APIC 0x000000008AD8A000 0000BC (v02 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SBST 0x000000008AD88000 000030 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: ECDT 0x000000008AD87000 000053 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SSDT 0x000000008AD7F000 00053A (v01 APPLE  SataAhci 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD7E000 000024 (v01 APPLE  SmcDppt  00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD79000 000D3E (v01 APPLE  UsbPpt   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD77000 000159 (v02 APPLE  IGHda    00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD75000 000032 (v01 APPLE  SsdtS3   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD73000 0015EB (v02 APPLE  SsdtIGPU 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6E000 0019AA (v01 APPLE  TbtPEG11 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6D000 00071D (v01 PmRef  Cpu0Ist  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6C000 000B3D (v01 PmRef  CpuPm    00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6B000 000315 (v01 PmRef  Cpu0Tst  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6A000 00037A (v01 PmRef  ApTst    00003000 INTL 20100915)
[    0.000000] ACPI: DMAR 0x000000008AD69000 000088 (v01 APPLE  IVB      00000001 AAPL 00000001)
[    0.000000] ACPI: MCFG 0x000000008AD89000 00003C (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000046f5fffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x46f5fffff]
[    0.000000]   NODE_DATA [mem 0x46f5ec000-0x46f5effff]
[    0.000000]  [ffffea0000000000-ffffea0011bfffff] PMD -> [ffff88045ec00000-ffff88046ebfffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x46f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0008dfff]
[    0.000000]   node   0: [mem 0x00090000-0x0009ffff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x40003fff]
[    0.000000]   node   0: [mem 0x40005000-0x8ad13fff]
[    0.000000]   node   0: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]   node   0: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]   node   0: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]   node   0: [mem 0x8aeff000-0x8af91fff]
[    0.000000]   node   0: [mem 0x8afff000-0x8affffff]
[    0.000000]   node   0: [mem 0x100000000-0x46f5fffff]
[    0.000000] On node 0 totalpages: 4170308
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 25 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8819 pages used for memmap
[    0.000000]   DMA32 zone: 564391 pages, LIFO batch:31
[    0.000000]   Normal zone: 56280 pages used for memmap
[    0.000000]   Normal zone: 3601920 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics stolen memory at 0x8ba00000-0x8f9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad14000-0x8ad52fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad69000-0x8ad8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ae3a000-0x8ae8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8aece000-0x8aefefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8af92000-0x8affefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8b000000-0x8f9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8fa00000-0xe00f7fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f8000-0xe00f8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f9000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xffe6ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffe70000-0xffe9ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffea0000-0xffffffff]
[    0.000000] e820: [mem 0x8fa00000-0xe00f7fff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88046f200000 s82432 r8192 d24064 u262144
[    0.000000] pcpu-alloc: s82432 r8192 d24064 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4105120
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] Memory: 16248216K/16681232K available (4728K kernel code, 843K rwdata, 1536K rodata, 976K init, 1128K bss, 433016K reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	Dump stacks of tasks blocking RCU-preempt GP.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS:8448 nr_irqs:488 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 67108864 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2693.813 MHz processor
[    0.000029] Calibrating delay loop (skipped), value calculated using timer frequency.. 5389.11 BogoMIPS (lpj=8979376)
[    0.000031] pid_max: default: 32768 minimum: 301
[    0.000037] ACPI: Core revision 20140724
[    0.006746] ACPI: All ACPI Tables successfully acquired
[    0.016897] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.020499] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.022104] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.022121] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.022321] Initializing cgroup subsys memory
[    0.022326] Initializing cgroup subsys devices
[    0.022327] Initializing cgroup subsys freezer
[    0.022329] Initializing cgroup subsys net_cls
[    0.022330] Initializing cgroup subsys blkio
[    0.022348] CPU: Physical Processor ID: 0
[    0.022349] CPU: Processor Core ID: 0
[    0.022680] mce: CPU supports 9 MCE banks
[    0.022691] CPU0: Thermal monitoring enabled (TM1)
[    0.022699] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.022791] Freeing SMP alternatives memory: 16K (ffffffff819c8000 - ffffffff819cc000)
[    0.024712] ftrace: allocating 18428 entries in 72 pages
[    0.032921] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.065914] smpboot: CPU0: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz (fam: 06, model: 3a, stepping: 09)
[    0.065922] TSC deadline timer enabled
[    0.065940] Performance Events: PEBS fmt1+, 16-deep LBR, IvyBridge events, full-width counters, Intel PMU driver.
[    0.065957] ... version:                3
[    0.065958] ... bit width:              48
[    0.065959] ... generic registers:      4
[    0.065960] ... value mask:             0000ffffffffffff
[    0.065961] ... max period:             0000ffffffffffff
[    0.065961] ... fixed-purpose events:   3
[    0.065962] ... event mask:             000000070000000f
[    0.089344] x86: Booting SMP configuration:
[    0.089345] .... node  #0, CPUs:      #1
[    0.102841] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.109516]  #2 #3 #4 #5 #6 #7
[    0.221066] x86: Booted up 1 node, 8 CPUs
[    0.221070] smpboot: Total of 8 processors activated (43118.88 BogoMIPS)
[    0.226807] devtmpfs: initialized
[    0.229706] PM: Registering ACPI NVS region [mem 0x8ad14000-0x8ad52fff] (258048 bytes)
[    0.230433] RTC time: 19:35:46, date: 08/22/14
[    0.230506] NET: Registered protocol family 16
[    0.230603] cpuidle: using governor ladder
[    0.230605] cpuidle: using governor menu
[    0.230629] ACPI: bus type PCI registered
[    0.230630] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.230679] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.230681] PCI: not using MMCONFIG
[    0.230682] PCI: Using configuration type 1 for base access
[    0.243569] ACPI: Added _OSI(Module Device)
[    0.243571] ACPI: Added _OSI(Processor Device)
[    0.243572] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.243573] ACPI: Added _OSI(Processor Aggregator Device)
[    0.244686] ACPI : EC: EC description table is found, configuring boot EC
[    0.248345] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.248762] ACPI: Dynamic OEM Table Load:
[    0.248771] ACPI: SSDT 0xFFFF880458BA8000 0008AD (v01 PmRef  Cpu0Cst  00003001 INTL 20100915)
[    0.260148] ACPI: Dynamic OEM Table Load:
[    0.260155] ACPI: SSDT 0xFFFF880458B3B000 0003A4 (v01 PmRef  ApIst    00003000 INTL 20100915)
[    0.273382] ACPI: Dynamic OEM Table Load:
[    0.273388] ACPI: SSDT 0xFFFF880458B5D600 000119 (v01 PmRef  ApCst    00003000 INTL 20100915)
[    0.287508] ACPI: Interpreter enabled
[    0.287513] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140724/hwxface-580)
[    0.287516] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140724/hwxface-580)
[    0.287527] ACPI: (supports S0 S3 S4 S5)
[    0.287528] ACPI: Using IOAPIC for interrupt routing
[    0.287541] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.287854] PCI: MMCONFIG at [mem 0xe0000000-0xe9bfffff] reserved in ACPI motherboard resources
[    0.287963] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.294424] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.294429] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.294519] acpi PNP0A08:00: _OSC: platform does not support [PME]
[    0.294594] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug AER PCIeCapability]
[    0.294745] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-9b] only partially covers this bridge
[    0.294846] PCI host bridge to bus 0000:00
[    0.294848] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.294850] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.294851] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.294853] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.294854] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
[    0.294855] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
[    0.294856] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
[    0.294858] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
[    0.294859] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    0.294860] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    0.294861] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    0.294863] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    0.294864] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    0.294865] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    0.294866] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
[    0.294867] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
[    0.294869] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
[    0.294870] pci_bus 0000:00: root bus resource [mem 0x8fa00000-0xfeafffff]
[    0.294871] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    0.294873] pci_bus 0000:00: scanning bus
[    0.294879] pci 0000:00:00.0: [8086:0154] type 00 class 0x060000
[    0.294887] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0x10
[    0.294952] pci 0000:00:01.0: [8086:0151] type 01 class 0x060400
[    0.294967] pci 0000:00:01.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.294985] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.294989] pci 0000:00:01.0: PME# disabled
[    0.295009] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.295038] pci 0000:00:01.1: [8086:0155] type 01 class 0x060400
[    0.295051] pci 0000:00:01.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295067] pci 0000:00:01.1: PME# supported from D0 D3hot D3cold
[    0.295069] pci 0000:00:01.1: PME# disabled
[    0.295089] pci 0000:00:01.1: System wakeup disabled by ACPI
[    0.295127] pci 0000:00:01.2: [8086:0159] type 01 class 0x060400
[    0.295155] pci 0000:00:01.2: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295207] pci 0000:00:01.2: PME# supported from D0 D3hot D3cold
[    0.295210] pci 0000:00:01.2: PME# disabled
[    0.295237] pci 0000:00:01.2: System wakeup disabled by ACPI
[    0.295273] pci 0000:00:02.0: [8086:0166] type 00 class 0x030000
[    0.295282] pci 0000:00:02.0: reg 0x10: [mem 0xc1400000-0xc17fffff 64bit]
[    0.295287] pci 0000:00:02.0: reg 0x18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    0.295291] pci 0000:00:02.0: reg 0x20: [io  0x3000-0x303f]
[    0.295371] pci 0000:00:14.0: [8086:1e31] type 00 class 0x0c0330
[    0.295390] pci 0000:00:14.0: reg 0x10: [mem 0xc1c00000-0xc1c0ffff 64bit]
[    0.295449] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.295453] pci 0000:00:14.0: PME# disabled
[    0.295476] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.295514] pci 0000:00:16.0: [8086:1e3a] type 00 class 0x078000
[    0.295536] pci 0000:00:16.0: reg 0x10: [mem 0xc1c17100-0xc1c1710f 64bit]
[    0.295610] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.295614] pci 0000:00:16.0: PME# disabled
[    0.295682] pci 0000:00:1a.0: [8086:1e2d] type 00 class 0x0c0320
[    0.295703] pci 0000:00:1a.0: reg 0x10: [mem 0xc1c16c00-0xc1c16fff]
[    0.295790] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.295794] pci 0000:00:1a.0: PME# disabled
[    0.295821] pci 0000:00:1a.0: System wakeup disabled by ACPI
[    0.295856] pci 0000:00:1b.0: [8086:1e20] type 00 class 0x040300
[    0.295870] pci 0000:00:1b.0: reg 0x10: [mem 0xc1c10000-0xc1c13fff 64bit]
[    0.295935] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.295938] pci 0000:00:1b.0: PME# disabled
[    0.295963] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.295999] pci 0000:00:1c.0: [8086:1e10] type 01 class 0x060400
[    0.296063] pci 0000:00:1c.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.296137] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.296142] pci 0000:00:1c.0: PME# disabled
[    0.296177] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.296216] pci 0000:00:1c.1: [8086:1e12] type 01 class 0x060400
[    0.296280] pci 0000:00:1c.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.296356] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.296361] pci 0000:00:1c.1: PME# disabled
[    0.296397] pci 0000:00:1c.1: System wakeup disabled by ACPI
[    0.296441] pci 0000:00:1d.0: [8086:1e26] type 00 class 0x0c0320
[    0.296461] pci 0000:00:1d.0: reg 0x10: [mem 0xc1c16800-0xc1c16bff]
[    0.296548] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.296552] pci 0000:00:1d.0: PME# disabled
[    0.296577] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.296613] pci 0000:00:1f.0: [8086:1e57] type 00 class 0x060100
[    0.296772] pci 0000:00:1f.2: [8086:1e03] type 00 class 0x010601
[    0.296789] pci 0000:00:1f.2: reg 0x10: [io  0x3098-0x309f]
[    0.296797] pci 0000:00:1f.2: reg 0x14: [io  0x30bc-0x30bf]
[    0.296805] pci 0000:00:1f.2: reg 0x18: [io  0x3090-0x3097]
[    0.296812] pci 0000:00:1f.2: reg 0x1c: [io  0x30b8-0x30bb]
[    0.296820] pci 0000:00:1f.2: reg 0x20: [io  0x3060-0x307f]
[    0.296828] pci 0000:00:1f.2: reg 0x24: [mem 0xc1c16000-0xc1c167ff]
[    0.296871] pci 0000:00:1f.2: PME# supported from D3hot
[    0.296875] pci 0000:00:1f.2: PME# disabled
[    0.296929] pci 0000:00:1f.3: [8086:1e22] type 00 class 0x0c0500
[    0.296942] pci 0000:00:1f.3: reg 0x10: [mem 0xc1c17000-0xc1c170ff 64bit]
[    0.296957] pci 0000:00:1f.3: reg 0x20: [io  0xefa0-0xefbf]
[    0.297011] pci_bus 0000:00: fixups for bus
[    0.297014] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 0
[    0.297056] pci_bus 0000:01: scanning bus
[    0.297068] pci 0000:01:00.0: [10de:0fd5] type 00 class 0x030000
[    0.297079] pci 0000:01:00.0: reg 0x10: [mem 0xc0000000-0xc0ffffff]
[    0.297090] pci 0000:01:00.0: reg 0x14: [mem 0x90000000-0x9fffffff 64bit pref]
[    0.297099] pci 0000:01:00.0: reg 0x1c: [mem 0xa0000000-0xa1ffffff 64bit pref]
[    0.297106] pci 0000:01:00.0: reg 0x24: [io  0x2000-0x207f]
[    0.297113] pci 0000:01:00.0: reg 0x30: [mem 0xc1000000-0xc107ffff pref]
[    0.297170] pci 0000:01:00.0: System wakeup disabled by ACPI
[    0.297213] pci 0000:01:00.1: [10de:0e1b] type 00 class 0x040300
[    0.297222] pci 0000:01:00.1: reg 0x10: [mem 0xc1080000-0xc1083fff]
[    1.303558] pci 0000:00:01.0: ASPM: Could not configure common clock
[    1.303586] pci_bus 0000:01: fixups for bus
[    1.303590] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.303603] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.303606] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.303609] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.303611] pci_bus 0000:01: bus scan returning with max=01
[    1.303613] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 0
[    1.303650] pci_bus 0000:05: scanning bus
[    1.303662] pci 0000:05:00.0: [8086:1547] type 01 class 0x060400
[    1.303688] pci 0000:05:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.303726] pci 0000:05:00.0: supports D1 D2
[    1.303728] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.303730] pci 0000:05:00.0: PME# disabled
[    1.310235] pci_bus 0000:05: fixups for bus
[    1.310239] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.310243] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.310247] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.310253] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.310257] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 0
[    1.310314] pci_bus 0000:06: dev 03, created physical slot 2
[    1.310320] pci_bus 0000:06: dev 04, created physical slot 3
[    1.310326] pci_bus 0000:06: dev 05, created physical slot 4
[    1.310333] pci_bus 0000:06: dev 06, created physical slot 5
[    1.310367] pci_bus 0000:06: scanning bus
[    1.310379] pci 0000:06:00.0: [8086:1547] type 01 class 0x060400
[    1.310408] pci 0000:06:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310449] pci 0000:06:00.0: supports D1 D2
[    1.310450] pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310453] pci 0000:06:00.0: PME# disabled
[    1.310507] pci 0000:06:03.0: [8086:1547] type 01 class 0x060400
[    1.310536] pci 0000:06:03.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310576] pci 0000:06:03.0: supports D1 D2
[    1.310577] pci 0000:06:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310580] pci 0000:06:03.0: PME# disabled
[    1.310632] pci 0000:06:04.0: [8086:1547] type 01 class 0x060400
[    1.310660] pci 0000:06:04.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310700] pci 0000:06:04.0: supports D1 D2
[    1.310702] pci 0000:06:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310704] pci 0000:06:04.0: PME# disabled
[    1.310757] pci 0000:06:05.0: [8086:1547] type 01 class 0x060400
[    1.310781] pci 0000:06:05.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310821] pci 0000:06:05.0: supports D1 D2
[    1.310822] pci 0000:06:05.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310825] pci 0000:06:05.0: PME# disabled
[    1.310878] pci 0000:06:06.0: [8086:1547] type 01 class 0x060400
[    1.310902] pci 0000:06:06.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310942] pci 0000:06:06.0: supports D1 D2
[    1.310943] pci 0000:06:06.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310946] pci 0000:06:06.0: PME# disabled
[    1.311008] pci_bus 0000:06: fixups for bus
[    1.311009] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.311013] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.311016] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.311020] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.311022] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 0
[    1.311069] pci_bus 0000:07: dev 00, created physical slot 1
[    1.311074] acpiphp: Slot [1] registered
[    1.311077] pci_bus 0000:07: scanning bus
[    1.311094] pci 0000:07:00.0: [8086:1547] type 00 class 0x088000
[    1.311109] pci 0000:07:00.0: reg 0x10: [mem 0xc1f00000-0xc1f3ffff]
[    1.311118] pci 0000:07:00.0: reg 0x14: [mem 0xc1f40000-0xc1f40fff]
[    1.311224] pci 0000:07:00.0: supports D1 D2
[    1.311226] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311229] pci 0000:07:00.0: PME# disabled
[    1.316908] pci_bus 0000:07: fixups for bus
[    1.316912] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.316921] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.316928] pci_bus 0000:07: bus scan returning with max=07
[    1.316942] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 0
[    1.317033] pci_bus 0000:08: scanning bus
[    1.317058] pci 0000:08:00.0: [8086:1549] type 01 class 0x060400
[    1.317126] pci 0000:08:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.317223] pci 0000:08:00.0: supports D1 D2
[    1.317225] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.317229] pci 0000:08:00.0: PME# disabled
[    1.323579] pci_bus 0000:08: fixups for bus
[    1.323582] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.323589] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.323594] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.323611] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.323614] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 0
[    1.323682] pci_bus 0000:09: scanning bus
[    1.323708] pci 0000:09:00.0: [8086:1549] type 01 class 0x060400
[    1.323779] pci 0000:09:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.323878] pci 0000:09:00.0: supports D1 D2
[    1.323880] pci 0000:09:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.323885] pci 0000:09:00.0: PME# disabled
[    1.323998] pci_bus 0000:09: fixups for bus
[    1.323999] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.324012] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.324021] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.324024] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 0
[    1.324092] pci_bus 0000:0a: scanning bus
[    1.324148] pci 0000:0a:00.0: [14e4:1682] type 00 class 0x020000
[    1.324193] pci 0000:0a:00.0: reg 0x10: [mem 0xce100000-0xce10ffff 64bit pref]
[    1.324223] pci 0000:0a:00.0: reg 0x18: [mem 0xce110000-0xce11ffff 64bit pref]
[    1.324271] pci 0000:0a:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
[    1.324484] pci 0000:0a:00.0: PME# supported from D0 D3hot D3cold
[    1.324491] pci 0000:0a:00.0: PME# disabled
[    1.330264] pci_bus 0000:0a: fixups for bus
[    1.330267] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.330291] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.330300] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.330301] pci_bus 0000:0a: bus scan returning with max=0a
[    1.330306] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 1
[    1.330313] pci_bus 0000:09: bus scan returning with max=0a
[    1.330319] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 1
[    1.330325] pci_bus 0000:08: bus scan returning with max=0a
[    1.330328] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 0
[    1.330419] pci_bus 0000:39: scanning bus
[    1.330421] pci_bus 0000:39: fixups for bus
[    1.330422] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.330426] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.330429] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.330433] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.330435] pci_bus 0000:39: bus scan returning with max=39
[    1.330438] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 0
[    1.330475] pci_bus 0000:6a: scanning bus
[    1.330477] pci_bus 0000:6a: fixups for bus
[    1.330478] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.330484] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.330488] pci_bus 0000:6a: bus scan returning with max=6a
[    1.330491] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 0
[    1.330530] pci_bus 0000:6b: scanning bus
[    1.330532] pci_bus 0000:6b: fixups for bus
[    1.330534] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.330539] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.330543] pci_bus 0000:6b: bus scan returning with max=6b
[    1.330546] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 1
[    1.330550] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 1
[    1.330554] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 1
[    1.330558] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 1
[    1.330562] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 1
[    1.330566] pci_bus 0000:06: bus scan returning with max=6b
[    1.330568] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 1
[    1.330572] pci_bus 0000:05: bus scan returning with max=6b
[    1.330574] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 0
[    1.330626] pci_bus 0000:02: scanning bus
[    1.330629] pci_bus 0000:02: fixups for bus
[    1.330630] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.330635] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.330640] pci_bus 0000:02: bus scan returning with max=02
[    1.330648] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 0
[    1.330772] pci_bus 0000:03: scanning bus
[    1.330810] pci 0000:03:00.0: [14e4:16a3] type 00 class 0x020000
[    1.330848] pci 0000:03:00.0: reg 0x10: [mem 0xc1800000-0xc180ffff 64bit pref]
[    1.330873] pci 0000:03:00.0: reg 0x18: [mem 0xc1810000-0xc181ffff 64bit pref]
[    1.330913] pci 0000:03:00.0: reg 0x30: [mem 0xfffff800-0xffffffff pref]
[    1.331064] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    1.331070] pci 0000:03:00.0: PME# disabled
[    1.331201] pci 0000:03:00.1: [14e4:16bc] type 00 class 0x080501
[    1.331239] pci 0000:03:00.1: reg 0x10: [mem 0xc1820000-0xc182ffff 64bit pref]
[    1.331430] pci 0000:03:00.1: PME# supported from D0 D3hot D3cold
[    1.331436] pci 0000:03:00.1: PME# disabled
[    1.331471] pci 0000:03:00.1: System wakeup disabled by ACPI
[    1.337024] pci_bus 0000:03: fixups for bus
[    1.337026] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.337032] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.337040] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.337041] pci_bus 0000:03: bus scan returning with max=03
[    1.337046] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 0
[    1.337152] pci_bus 0000:04: scanning bus
[    1.337180] pci 0000:04:00.0: [14e4:4331] type 00 class 0x028000
[    1.337209] pci 0000:04:00.0: reg 0x10: [mem 0xc1900000-0xc1903fff 64bit]
[    1.337375] pci 0000:04:00.0: supports D1 D2
[    1.337377] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    1.337383] pci 0000:04:00.0: PME# disabled
[    1.337417] pci 0000:04:00.0: System wakeup disabled by ACPI
[    1.343647] pci_bus 0000:04: fixups for bus
[    1.343649] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.343654] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.343662] pci_bus 0000:04: bus scan returning with max=04
[    1.343667] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 1
[    1.343669] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 1
[    1.343673] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 1
[    1.343681] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 1
[    1.343690] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 1
[    1.343696] pci_bus 0000:00: bus scan returning with max=6b
[    1.344100] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344147] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344191] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344235] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344277] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344321] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344364] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344407] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.345717] ACPI: Enabled 3 GPEs in block 00 to 3F
[    1.345735] ACPI : EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    1.345791] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
[    1.345792] vgaarb: Boot video device: PCI:0000:00:02.0
[    1.345793] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    1.345804] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
[    1.345805] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0 PCI_BRIDGE_CONTROL=0000
[    1.345806] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    1.345809] vgaarb: loaded
[    1.345809] vgaarb: bridge control possible 0000:01:00.0
[    1.345810] vgaarb: no bridge control possible 0000:00:02.0
[    1.345865] PCI: Using ACPI for IRQ routing
[    1.350888] PCI: pci_cache_line_size set to 64 bytes
[    1.350905] pci 0000:01:00.0: BAR 0: reserving [mem 0xc0000000-0xc0ffffff flags 0x40200] (d=0, p=0)
[    1.350907] pci 0000:01:00.0: BAR 1: reserving [mem 0x90000000-0x9fffffff flags 0x14220c] (d=0, p=0)
[    1.350908] pci 0000:01:00.0: BAR 3: reserving [mem 0xa0000000-0xa1ffffff flags 0x14220c] (d=0, p=0)
[    1.350914] pci 0000:07:00.0: BAR 0: reserving [mem 0xc1f00000-0xc1f3ffff flags 0x40200] (d=0, p=0)
[    1.350916] pci 0000:07:00.0: BAR 1: reserving [mem 0xc1f40000-0xc1f40fff flags 0x40200] (d=0, p=0)
[    1.350934] pci 0000:00:02.0: BAR 0: reserving [mem 0xc1400000-0xc17fffff flags 0x140204] (d=0, p=0)
[    1.350936] pci 0000:00:02.0: BAR 2: reserving [mem 0xb0000000-0xbfffffff flags 0x14220c] (d=0, p=0)
[    1.350938] pci 0000:00:02.0: BAR 4: reserving [io  0x3000-0x303f flags 0x40101] (d=0, p=0)
[    1.350945] pci 0000:00:16.0: BAR 0: reserving [mem 0xc1c17100-0xc1c1710f flags 0x140204] (d=0, p=0)
[    1.350948] pci 0000:00:1a.0: BAR 0: reserving [mem 0xc1c16c00-0xc1c16fff flags 0x40200] (d=0, p=0)
[    1.351020] pci 0000:00:1d.0: BAR 0: reserving [mem 0xc1c16800-0xc1c16bff flags 0x40200] (d=0, p=0)
[    1.351025] pci 0000:00:1f.2: BAR 0: reserving [io  0x3098-0x309f flags 0x40101] (d=0, p=0)
[    1.351026] pci 0000:00:1f.2: BAR 1: reserving [io  0x30bc-0x30bf flags 0x40101] (d=0, p=0)
[    1.351028] pci 0000:00:1f.2: BAR 2: reserving [io  0x3090-0x3097 flags 0x40101] (d=0, p=0)
[    1.351030] pci 0000:00:1f.2: BAR 3: reserving [io  0x30b8-0x30bb flags 0x40101] (d=0, p=0)
[    1.351031] pci 0000:00:1f.2: BAR 4: reserving [io  0x3060-0x307f flags 0x40101] (d=0, p=0)
[    1.351033] pci 0000:00:1f.2: BAR 5: reserving [mem 0xc1c16000-0xc1c167ff flags 0x40200] (d=0, p=0)
[    1.351047] pci 0000:01:00.0: BAR 5: reserving [io  0x2000-0x207f flags 0x40101] (d=1, p=1)
[    1.351050] pci 0000:01:00.1: BAR 0: reserving [mem 0xc1080000-0xc1083fff flags 0x40200] (d=1, p=1)
[    1.352058] pci 0000:0a:00.0: BAR 0: reserving [mem 0xce100000-0xce10ffff flags 0x14220c] (d=1, p=1)
[    1.352060] pci 0000:0a:00.0: BAR 2: reserving [mem 0xce110000-0xce11ffff flags 0x14220c] (d=1, p=1)
[    1.352069] pci 0000:00:14.0: BAR 0: reserving [mem 0xc1c00000-0xc1c0ffff flags 0x140204] (d=1, p=1)
[    1.352075] pci 0000:00:1b.0: BAR 0: reserving [mem 0xc1c10000-0xc1c13fff flags 0x140204] (d=1, p=1)
[    1.352119] pci 0000:03:00.0: BAR 0: reserving [mem 0xc1800000-0xc180ffff flags 0x14220c] (d=1, p=1)
[    1.352121] pci 0000:03:00.0: BAR 2: reserving [mem 0xc1810000-0xc181ffff flags 0x14220c] (d=1, p=1)
[    1.352125] pci 0000:03:00.1: BAR 0: reserving [mem 0xc1820000-0xc182ffff flags 0x14220c] (d=1, p=1)
[    1.352149] pci 0000:04:00.0: BAR 0: reserving [mem 0xc1900000-0xc1903fff flags 0x140204] (d=1, p=1)
[    1.352155] pci 0000:00:1f.3: BAR 0: reserving [mem 0xc1c17000-0xc1c170ff flags 0x140204] (d=1, p=1)
[    1.352157] pci 0000:00:1f.3: BAR 4: reserving [io  0xefa0-0xefbf flags 0x40101] (d=1, p=1)
[    1.352160] e820: reserve RAM buffer [mem 0x0008e000-0x0008ffff]
[    1.352161] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    1.352162] e820: reserve RAM buffer [mem 0x8ad14000-0x8bffffff]
[    1.352164] e820: reserve RAM buffer [mem 0x8ad69000-0x8bffffff]
[    1.352165] e820: reserve RAM buffer [mem 0x8ae3a000-0x8bffffff]
[    1.352167] e820: reserve RAM buffer [mem 0x8aece000-0x8bffffff]
[    1.352168] e820: reserve RAM buffer [mem 0x8af92000-0x8bffffff]
[    1.352169] e820: reserve RAM buffer [mem 0x8b000000-0x8bffffff]
[    1.352170] e820: reserve RAM buffer [mem 0x46f600000-0x46fffffff]
[    1.352281] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    1.352286] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    1.354316] Switched to clocksource hpet
[    1.357849] pnp: PnP ACPI init
[    1.358031] system 00:00: [mem 0xfed00000-0xfed003ff] has been reserved
[    1.358034] system 00:00: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    1.358068] system 00:01: [io  0x1000-0x100f] has been reserved
[    1.358070] system 00:01: [io  0x0400-0x047f] could not be reserved
[    1.358071] system 00:01: [io  0x0500-0x057f] has been reserved
[    1.358073] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.358092] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    1.358138] pnp 00:03: Plug and Play ACPI device, IDs APP000b (active)
[    1.358251] system 00:04: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    1.358252] system 00:04: [mem 0xfed10000-0xfed17fff] has been reserved
[    1.358254] system 00:04: [mem 0xfed18000-0xfed18fff] has been reserved
[    1.358255] system 00:04: [mem 0xfed19000-0xfed19fff] has been reserved
[    1.358257] system 00:04: [mem 0xe0000000-0xefffffff] could not be reserved
[    1.358258] system 00:04: [mem 0xfed20000-0xfed3ffff] has been reserved
[    1.358260] system 00:04: [mem 0xfed90000-0xfed93fff] has been reserved
[    1.358261] system 00:04: [mem 0xfed45000-0xfed8ffff] has been reserved
[    1.358263] system 00:04: [mem 0xff000000-0xffffffff] could not be reserved
[    1.358264] system 00:04: [mem 0xfee00000-0xfeefffff] has been reserved
[    1.358266] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.360365] system 00:05: [mem 0x20000000-0x201fffff] has been reserved
[    1.360367] system 00:05: [mem 0x40000000-0x401fffff] could not be reserved
[    1.360369] system 00:05: Plug and Play ACPI device, IDs PNP0c01 (active)
[    1.360376] pnp: PnP ACPI: found 6 devices
[    1.366784] pci 0000:0a:00.0: can't claim BAR 6 [mem 0xffff0000-0xffffffff pref]: no compatible bridge window
[    1.366787] pci 0000:03:00.0: can't claim BAR 6 [mem 0xfffff800-0xffffffff pref]: no compatible bridge window
[    1.366813] pci 0000:09:00.0: bridge window [io  0x1000-0x0fff] to [bus 0a] add_size 1000
[    1.366827] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.366829] pci 0000:08:00.0: bridge window [io  0x1000-0x0fff] to [bus 09-0a] add_size 1000
[    1.366844] pci 0000:06:05.0: bridge window [io  0x1000-0x0fff] to [bus 6a] add_size 1000
[    1.366846] pci 0000:06:05.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6a] add_size 200000
[    1.366852] pci 0000:06:06.0: bridge window [io  0x1000-0x0fff] to [bus 6b] add_size 1000
[    1.366853] pci 0000:06:06.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6b] add_size 200000
[    1.366894] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.366896] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.366899] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.366901] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.366905] pci 0000:06:05.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.366907] pci 0000:06:06.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.366908] pci 0000:06:05.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.366909] pci 0000:06:06.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.366914] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.366915] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.366918] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.366919] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.366921] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.366922] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.366924] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.366925] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.366928] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.366929] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.366930] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.366932] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.366934] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.366935] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.366937] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.366938] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.366939] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.366943] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.366949] pci 0000:08:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.366951] pci 0000:08:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.366952] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.366954] pci 0000:09:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.366956] pci 0000:0a:00.0: BAR 6: assigned [mem 0xc2000000-0xc200ffff pref]
[    1.366958] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.366961] pci 0000:09:00.0:   bridge window [io  0x4000-0x4fff]
[    1.366968] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.366973] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.366982] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.366985] pci 0000:08:00.0:   bridge window [io  0x4000-0x4fff]
[    1.366992] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.366998] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.367006] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.367008] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.367012] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.367015] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.367019] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.367021] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.367024] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.367027] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.367031] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.367035] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.367040] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.367043] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.367049] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.367051] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.367054] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.367057] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.367061] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.367062] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.367065] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.367067] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.367069] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.367073] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.367082] pci 0000:03:00.0: BAR 6: assigned [mem 0xc1a00000-0xc1a007ff pref]
[    1.367083] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.367092] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.367096] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.367104] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.367111] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.367122] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    1.367124] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    1.367125] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    1.367126] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
[    1.367128] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
[    1.367129] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
[    1.367130] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
[    1.367132] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
[    1.367133] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
[    1.367134] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
[    1.367135] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
[    1.367137] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
[    1.367138] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
[    1.367139] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
[    1.367141] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
[    1.367142] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
[    1.367143] pci_bus 0000:00: resource 20 [mem 0x8fa00000-0xfeafffff]
[    1.367144] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
[    1.367146] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    1.367147] pci_bus 0000:01: resource 1 [mem 0xc0000000-0xc10fffff]
[    1.367148] pci_bus 0000:01: resource 2 [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.367150] pci_bus 0000:05: resource 0 [io  0x4000-0x6fff]
[    1.367151] pci_bus 0000:05: resource 1 [mem 0xc1d00000-0xce0fffff]
[    1.367152] pci_bus 0000:05: resource 2 [mem 0xce100000-0xda1fffff 64bit pref]
[    1.367154] pci_bus 0000:06: resource 0 [io  0x4000-0x5fff]
[    1.367155] pci_bus 0000:06: resource 1 [mem 0xc1d00000-0xca0fffff]
[    1.367156] pci_bus 0000:06: resource 2 [mem 0xce100000-0xd61fffff 64bit pref]
[    1.367158] pci_bus 0000:07: resource 1 [mem 0xc1f00000-0xc1ffffff]
[    1.367159] pci_bus 0000:08: resource 0 [io  0x4000-0x4fff]
[    1.367160] pci_bus 0000:08: resource 1 [mem 0xc2000000-0xc60fffff]
[    1.367162] pci_bus 0000:08: resource 2 [mem 0xce100000-0xd21fffff 64bit pref]
[    1.367163] pci_bus 0000:09: resource 0 [io  0x4000-0x4fff]
[    1.367164] pci_bus 0000:09: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.367165] pci_bus 0000:09: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.367167] pci_bus 0000:0a: resource 0 [io  0x4000-0x4fff]
[    1.367168] pci_bus 0000:0a: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.367169] pci_bus 0000:0a: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.367171] pci_bus 0000:39: resource 0 [io  0x5000-0x5fff]
[    1.367172] pci_bus 0000:39: resource 1 [mem 0xc6100000-0xca0fffff]
[    1.367173] pci_bus 0000:39: resource 2 [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.367175] pci_bus 0000:6a: resource 1 [mem 0xc1e00000-0xc1efffff]
[    1.367176] pci_bus 0000:6b: resource 1 [mem 0xc1d00000-0xc1dfffff]
[    1.367177] pci_bus 0000:02: resource 1 [mem 0xc1b00000-0xc1bfffff]
[    1.367179] pci_bus 0000:03: resource 1 [mem 0xc1a00000-0xc1afffff]
[    1.367180] pci_bus 0000:03: resource 2 [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.367182] pci_bus 0000:04: resource 1 [mem 0xc1900000-0xc19fffff]
[    1.367205] NET: Registered protocol family 2
[    1.367375] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    1.367572] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    1.367678] TCP: Hash tables configured (established 131072 bind 65536)
[    1.367691] TCP: reno registered
[    1.367706] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    1.367750] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    1.367817] NET: Registered protocol family 1
[    1.367835] pci 0000:00:02.0: calling pci_fixup_video+0x0/0x160
[    1.367837] pci 0000:00:02.0: Video device with shadowed ROM
[    1.367842] pci 0000:00:14.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.367851] pci 0000:00:14.0: enabling device (0000 -> 0002)
[    1.367906] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.367907] pci 0000:00:14.0: PCI INT A: no GSI
[    1.367988] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.367998] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.368119] pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.368235] pci 0000:01:00.0: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.368253] pci 0000:01:00.0: calling pci_fixup_video+0x0/0x160
[    1.368257] pci 0000:01:00.1: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.368267] PCI: CLS mismatch (256 != 128), using 64 bytes
[    1.368312] Unpacking initramfs...
[    1.520668] Freeing initrd memory: 9908K (ffff880036c96000 - ffff880037643000)
[    1.520676] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.520678] software IO TLB [mem 0x81c68000-0x85c68000] (64MB) mapped at [ffff880081c68000-ffff880085c67fff]
[    1.521037] RAPL PMU detected, hw unit 2^-16 Joules, API unit is 2^-32 Joules, 3 fixed counters 163840 ms ovfl timer
[    1.521081] Scanning for low memory corruption every 60 seconds
[    1.521342] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    1.521371] audit: initializing netlink subsys (disabled)
[    1.521382] audit: type=2000 audit(1408736147.519:1): initialized
[    1.521658] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.522722] zpool: loaded
[    1.522724] zbud: loaded
[    1.522885] VFS: Disk quotas dquot_6.5.2
[    1.522912] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.523011] msgmni has been set to 31915
[    1.523057] Key type big_key registered
[    1.523317] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.523369] io scheduler noop registered
[    1.523371] io scheduler deadline registered
[    1.523394] io scheduler cfq registered (default)
[    1.523521] pcieport 0000:00:01.0: irq 24 for MSI/MSI-X
[    1.523607] pcieport 0000:00:01.1: irq 25 for MSI/MSI-X
[    1.523639] pcieport 0000:00:01.2: enabling device (0000 -> 0002)
[    1.523690] pcieport 0000:00:01.2: enabling bus mastering
[    1.523702] pcieport 0000:00:01.2: irq 26 for MSI/MSI-X
[    1.524037] pcieport 0000:05:00.0: irq 27 for MSI/MSI-X
[    1.524128] pcieport 0000:06:00.0: irq 28 for MSI/MSI-X
[    1.524223] pcieport 0000:06:03.0: irq 29 for MSI/MSI-X
[    1.524336] pcieport 0000:06:04.0: irq 30 for MSI/MSI-X
[    1.524404] pcieport 0000:06:05.0: enabling device (0000 -> 0002)
[    1.524434] pcieport 0000:06:05.0: enabling bus mastering
[    1.524444] pcieport 0000:06:05.0: irq 31 for MSI/MSI-X
[    1.524514] pcieport 0000:06:06.0: enabling device (0000 -> 0002)
[    1.524544] pcieport 0000:06:06.0: enabling bus mastering
[    1.524554] pcieport 0000:06:06.0: irq 32 for MSI/MSI-X
[    1.524679] pcieport 0000:08:00.0: irq 33 for MSI/MSI-X
[    1.524861] pcieport 0000:09:00.0: irq 34 for MSI/MSI-X
[    1.525006] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.525094] pciehp 0000:06:03.0:pcie24: Slot #3 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.525118] pci_bus 0000:08: dev 00, created physical slot 3-1
[    1.924156] pciehp 0000:06:03.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    1.924167] pciehp 0000:06:03.0:pcie24: service driver pciehp loaded
[    1.924196] pciehp 0000:06:04.0:pcie24: Slot #4 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.924227] pci_bus 0000:39: dev 00, created physical slot 4-1
[    2.324031] pciehp 0000:06:04.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.324045] pciehp 0000:06:04.0:pcie24: service driver pciehp loaded
[    2.324078] pciehp 0000:06:05.0:pcie24: Slot #5 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.324109] pci_bus 0000:6a: dev 00, created physical slot 5-1
[    2.520630] tsc: Refined TSC clocksource calibration: 2693.887 MHz
[    2.723899] pciehp 0000:06:05.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.723907] pciehp 0000:06:05.0:pcie24: service driver pciehp loaded
[    2.723930] pciehp 0000:06:06.0:pcie24: Slot #6 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.723951] pci_bus 0000:6b: dev 00, created physical slot 6
[    3.123771] pciehp 0000:06:06.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.123778] pciehp 0000:06:06.0:pcie24: service driver pciehp loaded
[    3.123806] pciehp 0000:09:00.0:pcie24: Slot #9 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    3.123827] pci_bus 0000:0a: dev 00, created physical slot 9
[    3.520375] Switched to clocksource tsc
[    3.523636] pciehp 0000:09:00.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.523649] pciehp 0000:09:00.0:pcie24: service driver pciehp loaded
[    3.523660] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    3.524417] efifb: probing for efifb
[    3.524444] efifb: framebuffer at 0x90020000, mapped to 0xffffc9000b800000, using 28800k, total 28800k
[    3.524445] efifb: mode is 2880x1800x32, linelength=16384, pages=1
[    3.524446] efifb: scrolling: redraw
[    3.524447] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    3.539188] Console: switching to colour frame buffer device 360x112
[    3.553792] fb0: EFI VGA frame buffer device
[    3.553799] intel_idle: MWAIT substates: 0x21120
[    3.553801] intel_idle: v0.4 model 0x3A
[    3.553801] intel_idle: lapic_timer_reliable_states 0xffffffff
[    3.554056] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.554091] ACPI: AC Adapter [ADP1] (on-line)
[    3.554158] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    3.554167] ACPI: Lid Switch [LID0]
[    3.554195] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    3.554197] ACPI: Power Button [PWRB]
[    3.554223] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    3.554225] ACPI: Sleep Button [SLPB]
[    3.554250] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    3.554252] ACPI: Power Button [PWRF]
[    3.556032] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    3.556308] hpet: probe of PNP0103:00 failed with error -22
[    3.556316] Linux agpgart interface v0.103
[    3.556386] rtc_cmos 00:02: RTC can wake from S4
[    3.556511] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.556544] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    3.556554] Intel P-state driver initializing.
[    3.556562] Intel pstate controlling: cpu 0
[    3.556578] Intel pstate controlling: cpu 1
[    3.556589] Intel pstate controlling: cpu 2
[    3.556600] Intel pstate controlling: cpu 3
[    3.556615] Intel pstate controlling: cpu 4
[    3.556625] Intel pstate controlling: cpu 5
[    3.556635] Intel pstate controlling: cpu 6
[    3.556645] Intel pstate controlling: cpu 7
[    3.556680] EFI Variables Facility v0.08 2004-May-17
[    3.641177] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.641180] ACPI: Battery Slot [BAT0] (battery present)
[    3.787196] pstore: Registered efi as persistent store backend
[    3.787206] drop_monitor: Initializing network drop monitor service
[    3.787246] TCP: cubic registered
[    3.787321] NET: Registered protocol family 10
[    3.787490] NET: Registered protocol family 17
[    3.787495] Key type dns_resolver registered
[    3.787834] registered taskstats version 1
[    3.788585]   Magic number: 10:710:597
[    3.788700] rtc_cmos 00:02: setting system clock to 2014-08-22 19:35:50 UTC (1408736150)
[    3.788754] PM: Checking hibernation image partition /dev/sda5
[    3.788757] PM: Hibernation image not present or could not be loaded.
[    3.789209] Freeing unused kernel memory: 976K (ffffffff818d4000 - ffffffff819c8000)
[    3.789210] Write protecting the kernel read-only data: 8192k
[    3.791448] Freeing unused kernel memory: 1404K (ffff8800014a1000 - ffff880001600000)
[    3.792230] Freeing unused kernel memory: 512K (ffff880001780000 - ffff880001800000)
[    3.796426] random: systemd-tmpfile urandom read with 11 bits of entropy available
[    3.797231] systemd-udevd[88]: starting version 215
[    3.798775] [drm] Initialized drm 1.1.0 20060810
[    3.803013] [drm] Memory usable by graphics device = 2048M
[    3.803017] [drm] Replacing VGA console driver
[    3.803021] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.863623] i915 0000:00:02.0: irq 35 for MSI/MSI-X
[    3.863640] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.863641] [drm] Driver supports precise vblank timestamp query.
[    3.863650] i915 0000:00:02.0: Invalid ROM contents
[    3.863696] [drm] failed to find VBIOS tables
[    3.863826] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    3.883516] [drm] failed to retrieve link info, disabling eDP
[    3.956835] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2
[    3.970175] i915 0000:00:02.0: No connectors reported connected with modes
[    3.970178] [drm] Cannot find any crtc or sizes - going 1024x768
[    3.970511] checking generic (90020000 1c20000) vs hw (b0000000 10000000)
[    3.970557] fbcon: inteldrmfb (fb1) is primary device
[    3.970557] fbcon: Remapping primary device, fb1, to tty 1-63
[    4.062701] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
[    4.062702] i915 0000:00:02.0: registered panic notifier
[    4.090395] [Firmware Bug]: ACPI(GFX0) defines _DOD but not _DOS
[    4.090421] ACPI: Video Device [GFX0] (multi-head: yes  rom: yes  post: no)
[    4.091827] acpi device:02: registered as cooling_device8
[    4.091898] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/LNXVIDEO:00/input/input4
[    4.131266] ACPI: Video Device [IGPU] (multi-head: yes  rom: no  post: no)
[    4.131666] acpi device:20: registered as cooling_device9
[    4.131795] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input5
[    4.131842] [drm] Initialized i915 1.6.0 20140725 for 0000:00:02.0 on minor 0
[    4.156744] ACPI: bus type USB registered
[    4.156777] usbcore: registered new interface driver usbfs
[    4.156786] usbcore: registered new interface driver hub
[    4.156848] usbcore: registered new device driver usb
[    4.156982] sdhci: Secure Digital Host Controller Interface driver
[    4.156983] sdhci: Copyright(c) Pierre Ossman
[    4.157322] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.157552] ehci-pci: EHCI PCI platform driver
[    4.157626] sdhci-pci 0000:03:00.1: SDHCI controller found [14e4:16bc] (rev 10)
[    4.157686] sdhci-pci 0000:03:00.1: enabling device (0000 -> 0002)
[    4.157696] ehci-pci 0000:00:1a.0: enabling bus mastering
[    4.157711] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    4.157719] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    4.157782] ehci-pci 0000:00:1a.0: debug port 2
[    4.157838] sdhci-pci 0000:03:00.1: enabling bus mastering
[    4.157847] sdhci-pci 0000:03:00.1: No vmmc regulator found
[    4.157849] sdhci-pci 0000:03:00.1: No vqmmc regulator found
[    4.158010] mmc0: SDHCI controller on PCI [0000:03:00.1] using ADMA
[    4.158260] SCSI subsystem initialized
[    4.159381] libata version 3.00 loaded.
[    4.161741] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    4.161758] ehci-pci 0000:00:1a.0: irq 23, io mem 0xc1c16c00
[    4.170122] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    4.170341] hub 1-0:1.0: USB hub found
[    4.170346] hub 1-0:1.0: 2 ports detected
[    4.170546] ehci-pci 0000:00:1d.0: enabling bus mastering
[    4.170555] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    4.170559] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    4.170574] ehci-pci 0000:00:1d.0: debug port 2
[    4.174477] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    4.174489] ehci-pci 0000:00:1d.0: irq 22, io mem 0xc1c16800
[    4.183463] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    4.183653] hub 2-0:1.0: USB hub found
[    4.183659] hub 2-0:1.0: 2 ports detected
[    4.183795] xhci_hcd 0000:00:14.0: can't derive routing for PCI INT A
[    4.183797] xhci_hcd 0000:00:14.0: PCI INT A: no GSI
[    4.183816] xhci_hcd 0000:00:14.0: enabling bus mastering
[    4.183821] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.183825] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[    4.183923] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    4.183946] xhci_hcd 0000:00:14.0: irq 36 for MSI/MSI-X
[    4.184161] hub 3-0:1.0: USB hub found
[    4.184181] hub 3-0:1.0: 4 ports detected
[    4.184333] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.184335] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
[    4.184509] hub 4-0:1.0: USB hub found
[    4.184521] hub 4-0:1.0: 4 ports detected
[    4.184700] ahci 0000:00:1f.2: version 3.0
[    4.184784] ahci 0000:00:1f.2: irq 37 for MSI/MSI-X
[    4.184820] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1 impl SATA mode
[    4.184822] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems apst 
[    4.185185] scsi host0: ahci
[    4.185253] scsi host1: ahci
[    4.185308] scsi host2: ahci
[    4.185359] scsi host3: ahci
[    4.185407] scsi host4: ahci
[    4.185454] scsi host5: ahci
[    4.185485] ata1: SATA max UDMA/133 abar m2048@0xc1c16000 port 0xc1c16100 irq 37
[    4.185486] ata2: DUMMY
[    4.185487] ata3: DUMMY
[    4.185488] ata4: DUMMY
[    4.185488] ata5: DUMMY
[    4.185489] ata6: DUMMY
[    4.476700] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    4.503351] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    4.503612] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.503655] ata1.00: ATA-8: APPLE SSD SD512E, 1027AP, max UDMA/133
[    4.503656] ata1.00: 977105060 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    4.503929] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.503971] ata1.00: configured for UDMA/133
[    4.504111] scsi 0:0:0:0: Direct-Access     ATA      APPLE SSD SD512E AP   PQ: 0 ANSI: 5
[    4.506525] sd 0:0:0:0: [sda] 977105060 512-byte logical blocks: (500 GB/465 GiB)
[    4.506528] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    4.506924] sd 0:0:0:0: [sda] Write Protect is off
[    4.506929] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    4.507047] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.511517]  sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
[    4.513378] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.547532] PM: Starting manual resume from disk
[    4.547536] PM: Hibernation image partition 8:5 present
[    4.547537] PM: Looking for hibernation image.
[    4.547735] PM: Image not found (code -22)
[    4.547737] PM: Hibernation image not present or could not be loaded.
[    4.585589] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[    4.600747] hub 1-1:1.0: USB hub found
[    4.600987] hub 1-1:1.0: 6 ports detected
[    4.706715] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    4.830795] hub 2-1:1.0: USB hub found
[    4.830844] hub 2-1:1.0: 8 ports detected
[    4.910001] usb 1-1.1: new high-speed USB device number 3 using ehci-pci
[    5.099903] usb 2-1.8: new high-speed USB device number 3 using ehci-pci
[    5.190419] hub 2-1.8:1.0: USB hub found
[    5.190515] hub 2-1.8:1.0: 2 ports detected
[    5.421559] systemd[1]: Cannot add dependency job for unit hddtemp.service, ignoring: Unit hddtemp.service failed to load: No such file or directory.
[    5.447966] EXT4-fs (sda7): re-mounted. Opts: data=ordered,discard
[    5.469813] usb 2-1.8.1: new full-speed USB device number 4 using ehci-pci
[    5.483950] systemd-udevd[198]: starting version 215
[    5.569155] hub 2-1.8.1:1.0: USB hub found
[    5.569364] hub 2-1.8.1:1.0: 3 ports detected
[    5.649886] usb 2-1.8.2: new full-speed USB device number 5 using ehci-pci
[    5.736716] apple_gmux: Found gmux version 3.2.19 [indexed]
[    5.749684] thunderbolt 0000:07:00.0: irq 38 for MSI/MSI-X
[    5.749726] thunderbolt 0000:07:00.0: NHI initialized, starting thunderbolt
[    5.749734] thunderbolt 0000:07:00.0: allocating TX ring 0 of size 10
[    5.749737] thunderbolt 0000:07:00.0: allocating RX ring 0 of size 10
[    5.749740] thunderbolt 0000:07:00.0: control channel created
[    5.749741] thunderbolt 0000:07:00.0: control channel starting...
[    5.749742] thunderbolt 0000:07:00.0: starting TX ring 0
[    5.749746] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[    5.749748] thunderbolt 0000:07:00.0: starting RX ring 0
[    5.749752] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001)
[    5.750094] i801_smbus 0000:00:1f.3: enabling device (0000 -> 0003)
[    5.750178] ACPI Warning: SystemIO range 0x000000000000efa0-0x000000000000efbf conflicts with OpRegion 0x000000000000efa0-0x000000000000efaf (\_SB_.PCI0.SBUS.SMBI) (20140724/utaddress-258)
[    5.750184] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    5.750298] thunderbolt 0000:07:00.0: initializing Switch at 0x0 (depth: 0, up port: 5)
[    5.750301] thunderbolt 0000:07:00.0: old switch config:
[    5.750303] thunderbolt 0000:07:00.0:  Switch: 8086:1547 (Revision: 3, TB Version: 1)
[    5.750305] thunderbolt 0000:07:00.0:   Max Port Number: 12
[    5.750307] thunderbolt 0000:07:00.0:   Config:
[    5.750310] thunderbolt 0000:07:00.0:    Upstream Port Number: 5 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 255ms
[    5.750312] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    5.750520] input: PC Speaker as /devices/platform/pcspkr/input/input6
[    5.753729] mei_me 0000:00:16.0: irq 39 for MSI/MSI-X
[    5.753741] pps_core: LinuxPPS API ver. 1 registered
[    5.753742] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    5.755636] PTP clock support registered
[    5.755929] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[    5.756935] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20140724/utaddress-258)
[    5.756940] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    5.756943] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    5.756945] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    5.756946] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    5.756949] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    5.756950] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    5.756952] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    5.756953] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    5.759099] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[    5.759140] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[    5.759177] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[    5.759216] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[    5.759242] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[    5.759260] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[    5.759278] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[    5.759426] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    5.763105] tg3.c:v3.137 (May 11, 2014)
[    5.772432] input: bcm5974 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.2/input/input7
[    5.773967] iTCO_vendor_support: vendor-support=0
[    5.776266] tg3 0000:0a:00.0: enabling device (0000 -> 0002)
[    5.776335] tg3 0000:0a:00.0: enabling bus mastering
[    5.776558] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    5.776584] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[    5.777465] hidraw: raw HID events driver (C) Jiri Kosina
[    5.783542] AVX version of gcm_enc/dec engaged.
[    5.783545] AES CTR mode by8 optimization enabled
[    5.785092] Adding 8388604k swap on /dev/sda6.  Priority:-1 extents:1 across:8388604k SSFS
[    5.787118] thunderbolt 0000:07:00.0: 0: uid: 0x1000000000000
[    5.787259] thunderbolt 0000:07:00.0:  Port 0: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    5.787261] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    5.787262] thunderbolt 0000:07:00.0:   Max counters: 8
[    5.787263] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.787711] thunderbolt 0000:07:00.0:  Port 1: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    5.787713] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    5.787714] thunderbolt 0000:07:00.0:   Max counters: 16
[    5.787715] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    5.788212] thunderbolt 0000:07:00.0:  Port 2: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    5.788215] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    5.788217] thunderbolt 0000:07:00.0:   Max counters: 16
[    5.788219] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    5.788713] thunderbolt 0000:07:00.0:  Port 3: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    5.788717] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    5.788719] thunderbolt 0000:07:00.0:   Max counters: 16
[    5.788721] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    5.789209] thunderbolt 0000:07:00.0:  Port 4: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    5.789212] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    5.789214] thunderbolt 0000:07:00.0:   Max counters: 16
[    5.789216] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    5.789308] thunderbolt 0000:07:00.0:  Port 5: 8086:1547 (Revision: 3, TB Version: 1, Type: NHI (0x2))
[    5.789311] thunderbolt 0000:07:00.0:   Max hop id (in/out): 11/11
[    5.789313] thunderbolt 0000:07:00.0:   Max counters: 16
[    5.789314] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789528] thunderbolt 0000:07:00.0:  Port 6: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    5.789530] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    5.789532] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789535] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789555] thunderbolt 0000:07:00.0:  Port 7: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    5.789557] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    5.789559] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789561] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789657] thunderbolt 0000:07:00.0:  Port 8: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    5.789660] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    5.789662] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789663] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789749] thunderbolt 0000:07:00.0:  Port 9: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    5.789750] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    5.789752] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789753] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789847] thunderbolt 0000:07:00.0:  Port 10: ffff:ffff (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0102))
[    5.789849] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    5.789850] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789851] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    5.789946] thunderbolt 0000:07:00.0:  Port 11: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    5.789947] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    5.789948] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.789949] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    5.790046] thunderbolt 0000:07:00.0:  Port 12: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    5.790047] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    5.790048] thunderbolt 0000:07:00.0:   Max counters: 2
[    5.790049] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    5.790445] thunderbolt 0000:07:00.0: 0:1: is connected, link is up (state: 2)
[    5.790644] thunderbolt 0000:07:00.0: initializing Switch at 0x1 (depth: 1, up port: 1)
[    5.790645] thunderbolt 0000:07:00.0: old switch config:
[    5.790647] thunderbolt 0000:07:00.0:  Switch: 8086:1549 (Revision: 0, TB Version: 1)
[    5.790648] thunderbolt 0000:07:00.0:   Max Port Number: 2
[    5.790649] thunderbolt 0000:07:00.0:   Config:
[    5.790650] thunderbolt 0000:07:00.0:    Upstream Port Number: 1 Depth: 1 Route String: 0x1 Enabled: 1, PlugEventsDelay: 255ms
[    5.790651] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    5.804321] thunderbolt 0000:07:00.0: 1: reading drom (length: 0x7b)
[    5.813174] usbcore: registered new interface driver bcm5974
[    5.817811] usbcore: registered new interface driver usbhid
[    5.817814] usbhid: USB HID core driver
[    5.819516] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2/2-1.8.2:1.0/0003:05AC:0262.0001/input/input8
[    5.819651] apple 0003:05AC:0262.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input0
[    5.819789] mousedev: PS/2 mouse device common for all mice
[    5.822544] random: nonblocking pool is initialized
[    5.823178] tg3 0000:0a:00.0 eth0: Tigon3 [partno(BCM957762) rev 57766000] (PCI Express) MAC address 40:6c:8f:43:4c:fd
[    5.823181] tg3 0000:0a:00.0 eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[    5.823183] tg3 0000:0a:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    5.823184] tg3 0000:0a:00.0 eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[    5.824546] applesmc: key=493 fan=2 temp=44 index=43 acc=0 lux=2 kbd=1
[    5.830830] tg3 0000:0a:00.0 ens9: renamed from eth0
[    5.836412] usb 2-1.8.1.1: new full-speed USB device number 6 using ehci-pci
[    5.843055] systemd-udevd[205]: renamed network interface eth0 to ens9
[    5.857393] systemd-journald[176]: Received request to flush runtime journal from PID 1
[    5.881679] apple 0003:05AC:0262.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input1
[    5.989655] usb 2-1.8.1.2: new full-speed USB device number 7 using ehci-pci
[    6.001732] thunderbolt 0000:07:00.0: resetting error on 0:b.
[    6.001830] thunderbolt 0000:07:00.0: resetting error on 0:1.
[    6.001931] thunderbolt 0000:07:00.0: resetting error on 0:c.
[    6.085259] cfg80211: Calling CRDA to update world regulatory domain
[    6.129971] thunderbolt 0000:07:00.0: 1: uid: 0x1000200641bb0
[    6.130047] thunderbolt 0000:07:00.0:  Port 0: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.130050] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.130051] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.130053] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.130545] thunderbolt 0000:07:00.0:  Port 1: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.130548] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.130549] thunderbolt 0000:07:00.0:   Max counters: 4
[    6.130551] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.130644] thunderbolt 0000:07:00.0:  Port 2: 8086:1549 (Revision: 0, TB Version: 1, Type: PCIe (0x100102))
[    6.130646] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.130646] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.130647] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.131049] thunderbolt 0000:07:00.0: 0:3: is unplugged (state: 7)
[    6.131344] thunderbolt 0000:07:00.0: 1:2: PCIe port already activated, aborting
[    6.131352] thunderbolt 0000:07:00.0: 0:b: hotplug: scanning
[    6.131355] thunderbolt 0000:07:00.0: 0:b: hotplug: no switch found
[    6.131357] thunderbolt 0000:07:00.0: 0:1: got plug event for connected port, ignoring
[    6.131358] thunderbolt 0000:07:00.0: 0:c: hotplug: scanning
[    6.131359] thunderbolt 0000:07:00.0: 0:c: hotplug: no switch found
[    6.142917] usb 2-1.8.1.3: new full-speed USB device number 8 using ehci-pci
[    6.233698] input: HID 05ac:820a as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.1/2-1.8.1.1:1.0/0003:05AC:820A.0003/input/input9
[    6.233784] hid-generic 0003:05AC:820A.0003: input,hidraw2: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:1d.0-1.8.1.1/input0
[    6.233879] input: HID 05ac:820b as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.1/2-1.8.1.2/2-1.8.1.2:1.0/0003:05AC:820B.0004/input/input10
[    6.234029] hid-generic 0003:05AC:820B.0004: input,hidraw3: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:1d.0-1.8.1.2/input0
[    6.243153] Bluetooth: Core ver 2.19
[    6.243164] NET: Registered protocol family 31
[    6.243165] Bluetooth: HCI device and connection manager initialized
[    6.243169] Bluetooth: HCI socket layer initialized
[    6.243171] Bluetooth: L2CAP socket layer initialized
[    6.243174] Bluetooth: SCO socket layer initialized
[    6.249656] usbcore: registered new interface driver btusb
[    6.353588] usb 2-1.8.1.1: USB disconnect, device number 6
[    6.480700] tg3 0000:0a:00.0: irq 40 for MSI/MSI-X
[    6.480706] tg3 0000:0a:00.0: irq 41 for MSI/MSI-X
[    6.480710] tg3 0000:0a:00.0: irq 42 for MSI/MSI-X
[    6.480713] tg3 0000:0a:00.0: irq 43 for MSI/MSI-X
[    6.480716] tg3 0000:0a:00.0: irq 44 for MSI/MSI-X
[    6.573215] usb 2-1.8.1.2: USB disconnect, device number 7
[    6.648245] IPv6: ADDRCONF(NETDEV_UP): ens9: link is not ready
[   10.146049] tg3 0000:0a:00.0 ens9: Link is up at 1000 Mbps, full duplex
[   10.146065] tg3 0000:0a:00.0 ens9: Flow control is on for TX and on for RX
[   10.146070] tg3 0000:0a:00.0 ens9: EEE is enabled
[   10.146098] IPv6: ADDRCONF(NETDEV_CHANGE): ens9: link becomes ready

[-- Attachment #4: dmesg_bl_i915.txt --]
[-- Type: text/plain, Size: 110420 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.17.0-rc1-hdev-00002-g0d1f272-dirty (anoever@linuxbook) (gcc version 4.9.1 (GCC) ) #258 SMP PREEMPT Fri Aug 22 21:20:37 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000bffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x000000008ad13fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad14000-0x000000008ad52fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000008ad53000-0x000000008ad68fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ad69000-0x000000008ad8efff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000008ad8f000-0x000000008ae39fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008ae3a000-0x000000008ae8efff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008ae8f000-0x000000008aecdfff] usable
[    0.000000] BIOS-e820: [mem 0x000000008aece000-0x000000008aefefff] type 20
[    0.000000] BIOS-e820: [mem 0x000000008aeff000-0x000000008af91fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008af92000-0x000000008affefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008afff000-0x000000008affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000008b000000-0x000000008f9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe70000-0x00000000ffe9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000046f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v1.10 by Apple
[    0.000000] efi:  ACPI=0x8ad8e000  ACPI 2.0=0x8ad8e014  SMBIOS=0x8ad1b000 
[    0.000000] efi: mem00: type=7, attr=0x80000000000000f, range=[0x0000000000000000-0x000000000008e000) (0MB)
[    0.000000] efi: mem01: type=0, attr=0x80000000000000f, range=[0x000000000008e000-0x0000000000090000) (0MB)
[    0.000000] efi: mem02: type=7, attr=0x80000000000000f, range=[0x0000000000090000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem03: type=2, attr=0xf, range=[0x0000000000100000-0x0000000000efb000) (13MB)
[    0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000efb000-0x0000000020000000) (497MB)
[    0.000000] efi: mem05: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020200000) (2MB)
[    0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000020200000-0x0000000036c96000) (362MB)
[    0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000036c96000-0x0000000037643000) (9MB)
[    0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000037643000-0x0000000040004000) (137MB)
[    0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000040004000-0x0000000040005000) (0MB)
[    0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000040005000-0x000000006456f000) (581MB)
[    0.000000] efi: mem11: type=2, attr=0xf, range=[0x000000006456f000-0x0000000085c2c000) (534MB)
[    0.000000] efi: mem12: type=1, attr=0xf, range=[0x0000000085c2c000-0x0000000085c4a000) (0MB)
[    0.000000] efi: mem13: type=7, attr=0xf, range=[0x0000000085c4a000-0x0000000085c68000) (0MB)
[    0.000000] efi: mem14: type=4, attr=0xf, range=[0x0000000085c68000-0x0000000087d24000) (32MB)
[    0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000087d24000-0x0000000087d2f000) (0MB)
[    0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000087d2f000-0x000000008946b000) (23MB)
[    0.000000] efi: mem17: type=3, attr=0xf, range=[0x000000008946b000-0x0000000089484000) (0MB)
[    0.000000] efi: mem18: type=4, attr=0xf, range=[0x0000000089484000-0x0000000089547000) (0MB)
[    0.000000] efi: mem19: type=2, attr=0xf, range=[0x0000000089547000-0x0000000089548000) (0MB)
[    0.000000] efi: mem20: type=4, attr=0xf, range=[0x0000000089548000-0x0000000089562000) (0MB)
[    0.000000] efi: mem21: type=3, attr=0xf, range=[0x0000000089562000-0x000000008956b000) (0MB)
[    0.000000] efi: mem22: type=4, attr=0xf, range=[0x000000008956b000-0x0000000089581000) (0MB)
[    0.000000] efi: mem23: type=2, attr=0xf, range=[0x0000000089581000-0x0000000089582000) (0MB)
[    0.000000] efi: mem24: type=4, attr=0xf, range=[0x0000000089582000-0x0000000089588000) (0MB)
[    0.000000] efi: mem25: type=3, attr=0xf, range=[0x0000000089588000-0x000000008958a000) (0MB)
[    0.000000] efi: mem26: type=4, attr=0xf, range=[0x000000008958a000-0x0000000089591000) (0MB)
[    0.000000] efi: mem27: type=3, attr=0xf, range=[0x0000000089591000-0x0000000089599000) (0MB)
[    0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000089599000-0x000000008959b000) (0MB)
[    0.000000] efi: mem29: type=2, attr=0xf, range=[0x000000008959b000-0x000000008959c000) (0MB)
[    0.000000] efi: mem30: type=4, attr=0xf, range=[0x000000008959c000-0x000000008959d000) (0MB)
[    0.000000] efi: mem31: type=3, attr=0xf, range=[0x000000008959d000-0x000000008959e000) (0MB)
[    0.000000] efi: mem32: type=4, attr=0xf, range=[0x000000008959e000-0x00000000895a3000) (0MB)
[    0.000000] efi: mem33: type=3, attr=0xf, range=[0x00000000895a3000-0x00000000895a8000) (0MB)
[    0.000000] efi: mem34: type=4, attr=0xf, range=[0x00000000895a8000-0x00000000895bf000) (0MB)
[    0.000000] efi: mem35: type=3, attr=0xf, range=[0x00000000895bf000-0x00000000895c3000) (0MB)
[    0.000000] efi: mem36: type=4, attr=0xf, range=[0x00000000895c3000-0x00000000895c7000) (0MB)
[    0.000000] efi: mem37: type=2, attr=0xf, range=[0x00000000895c7000-0x00000000895c8000) (0MB)
[    0.000000] efi: mem38: type=4, attr=0xf, range=[0x00000000895c8000-0x00000000895c9000) (0MB)
[    0.000000] efi: mem39: type=3, attr=0xf, range=[0x00000000895c9000-0x00000000895ca000) (0MB)
[    0.000000] efi: mem40: type=4, attr=0xf, range=[0x00000000895ca000-0x00000000895cb000) (0MB)
[    0.000000] efi: mem41: type=3, attr=0xf, range=[0x00000000895cb000-0x00000000895d6000) (0MB)
[    0.000000] efi: mem42: type=4, attr=0xf, range=[0x00000000895d6000-0x00000000895dc000) (0MB)
[    0.000000] efi: mem43: type=3, attr=0xf, range=[0x00000000895dc000-0x00000000895de000) (0MB)
[    0.000000] efi: mem44: type=4, attr=0xf, range=[0x00000000895de000-0x00000000895f8000) (0MB)
[    0.000000] efi: mem45: type=3, attr=0xf, range=[0x00000000895f8000-0x0000000089634000) (0MB)
[    0.000000] efi: mem46: type=4, attr=0xf, range=[0x0000000089634000-0x000000008964a000) (0MB)
[    0.000000] efi: mem47: type=3, attr=0xf, range=[0x000000008964a000-0x000000008964d000) (0MB)
[    0.000000] efi: mem48: type=4, attr=0xf, range=[0x000000008964d000-0x000000008964f000) (0MB)
[    0.000000] efi: mem49: type=2, attr=0xf, range=[0x000000008964f000-0x0000000089650000) (0MB)
[    0.000000] efi: mem50: type=4, attr=0xf, range=[0x0000000089650000-0x0000000089685000) (0MB)
[    0.000000] efi: mem51: type=3, attr=0xf, range=[0x0000000089685000-0x0000000089693000) (0MB)
[    0.000000] efi: mem52: type=4, attr=0xf, range=[0x0000000089693000-0x0000000089697000) (0MB)
[    0.000000] efi: mem53: type=3, attr=0xf, range=[0x0000000089697000-0x00000000896ab000) (0MB)
[    0.000000] efi: mem54: type=4, attr=0xf, range=[0x00000000896ab000-0x00000000896b0000) (0MB)
[    0.000000] efi: mem55: type=3, attr=0xf, range=[0x00000000896b0000-0x00000000896b1000) (0MB)
[    0.000000] efi: mem56: type=4, attr=0xf, range=[0x00000000896b1000-0x00000000896b4000) (0MB)
[    0.000000] efi: mem57: type=2, attr=0xf, range=[0x00000000896b4000-0x00000000896b5000) (0MB)
[    0.000000] efi: mem58: type=4, attr=0xf, range=[0x00000000896b5000-0x00000000896b9000) (0MB)
[    0.000000] efi: mem59: type=3, attr=0xf, range=[0x00000000896b9000-0x00000000896bb000) (0MB)
[    0.000000] efi: mem60: type=4, attr=0xf, range=[0x00000000896bb000-0x00000000896bf000) (0MB)
[    0.000000] efi: mem61: type=3, attr=0xf, range=[0x00000000896bf000-0x00000000896d9000) (0MB)
[    0.000000] efi: mem62: type=4, attr=0xf, range=[0x00000000896d9000-0x00000000896dc000) (0MB)
[    0.000000] efi: mem63: type=2, attr=0xf, range=[0x00000000896dc000-0x00000000896dd000) (0MB)
[    0.000000] efi: mem64: type=3, attr=0xf, range=[0x00000000896dd000-0x00000000896de000) (0MB)
[    0.000000] efi: mem65: type=4, attr=0xf, range=[0x00000000896de000-0x00000000896e0000) (0MB)
[    0.000000] efi: mem66: type=3, attr=0xf, range=[0x00000000896e0000-0x00000000896e1000) (0MB)
[    0.000000] efi: mem67: type=4, attr=0xf, range=[0x00000000896e1000-0x00000000896e2000) (0MB)
[    0.000000] efi: mem68: type=3, attr=0xf, range=[0x00000000896e2000-0x00000000896e3000) (0MB)
[    0.000000] efi: mem69: type=4, attr=0xf, range=[0x00000000896e3000-0x00000000896e5000) (0MB)
[    0.000000] efi: mem70: type=3, attr=0xf, range=[0x00000000896e5000-0x00000000896ea000) (0MB)
[    0.000000] efi: mem71: type=4, attr=0xf, range=[0x00000000896ea000-0x00000000896eb000) (0MB)
[    0.000000] efi: mem72: type=2, attr=0xf, range=[0x00000000896eb000-0x00000000896ec000) (0MB)
[    0.000000] efi: mem73: type=4, attr=0xf, range=[0x00000000896ec000-0x00000000896ed000) (0MB)
[    0.000000] efi: mem74: type=3, attr=0xf, range=[0x00000000896ed000-0x00000000896ee000) (0MB)
[    0.000000] efi: mem75: type=4, attr=0xf, range=[0x00000000896ee000-0x00000000896ef000) (0MB)
[    0.000000] efi: mem76: type=3, attr=0xf, range=[0x00000000896ef000-0x00000000896f0000) (0MB)
[    0.000000] efi: mem77: type=4, attr=0xf, range=[0x00000000896f0000-0x00000000896f2000) (0MB)
[    0.000000] efi: mem78: type=3, attr=0xf, range=[0x00000000896f2000-0x00000000896f4000) (0MB)
[    0.000000] efi: mem79: type=2, attr=0xf, range=[0x00000000896f4000-0x00000000896f5000) (0MB)
[    0.000000] efi: mem80: type=4, attr=0xf, range=[0x00000000896f5000-0x00000000896f8000) (0MB)
[    0.000000] efi: mem81: type=3, attr=0xf, range=[0x00000000896f8000-0x00000000896fc000) (0MB)
[    0.000000] efi: mem82: type=4, attr=0xf, range=[0x00000000896fc000-0x00000000896fd000) (0MB)
[    0.000000] efi: mem83: type=3, attr=0xf, range=[0x00000000896fd000-0x00000000896fe000) (0MB)
[    0.000000] efi: mem84: type=4, attr=0xf, range=[0x00000000896fe000-0x00000000896ff000) (0MB)
[    0.000000] efi: mem85: type=2, attr=0xf, range=[0x00000000896ff000-0x0000000089700000) (0MB)
[    0.000000] efi: mem86: type=4, attr=0xf, range=[0x0000000089700000-0x0000000089701000) (0MB)
[    0.000000] efi: mem87: type=3, attr=0xf, range=[0x0000000089701000-0x0000000089708000) (0MB)
[    0.000000] efi: mem88: type=4, attr=0xf, range=[0x0000000089708000-0x0000000089709000) (0MB)
[    0.000000] efi: mem89: type=3, attr=0xf, range=[0x0000000089709000-0x000000008970a000) (0MB)
[    0.000000] efi: mem90: type=4, attr=0xf, range=[0x000000008970a000-0x000000008970b000) (0MB)
[    0.000000] efi: mem91: type=3, attr=0xf, range=[0x000000008970b000-0x000000008970c000) (0MB)
[    0.000000] efi: mem92: type=4, attr=0xf, range=[0x000000008970c000-0x000000008970f000) (0MB)
[    0.000000] efi: mem93: type=3, attr=0xf, range=[0x000000008970f000-0x000000008971f000) (0MB)
[    0.000000] efi: mem94: type=4, attr=0xf, range=[0x000000008971f000-0x0000000089723000) (0MB)
[    0.000000] efi: mem95: type=2, attr=0xf, range=[0x0000000089723000-0x0000000089724000) (0MB)
[    0.000000] efi: mem96: type=4, attr=0xf, range=[0x0000000089724000-0x000000008972b000) (0MB)
[    0.000000] efi: mem97: type=3, attr=0xf, range=[0x000000008972b000-0x0000000089730000) (0MB)
[    0.000000] efi: mem98: type=4, attr=0xf, range=[0x0000000089730000-0x0000000089739000) (0MB)
[    0.000000] efi: mem99: type=3, attr=0xf, range=[0x0000000089739000-0x0000000089752000) (0MB)
[    0.000000] efi: mem100: type=4, attr=0xf, range=[0x0000000089752000-0x0000000089754000) (0MB)
[    0.000000] efi: mem101: type=3, attr=0xf, range=[0x0000000089754000-0x0000000089762000) (0MB)
[    0.000000] efi: mem102: type=4, attr=0xf, range=[0x0000000089762000-0x0000000089763000) (0MB)
[    0.000000] efi: mem103: type=3, attr=0xf, range=[0x0000000089763000-0x0000000089766000) (0MB)
[    0.000000] efi: mem104: type=4, attr=0xf, range=[0x0000000089766000-0x0000000089769000) (0MB)
[    0.000000] efi: mem105: type=3, attr=0xf, range=[0x0000000089769000-0x0000000089778000) (0MB)
[    0.000000] efi: mem106: type=4, attr=0xf, range=[0x0000000089778000-0x0000000089779000) (0MB)
[    0.000000] efi: mem107: type=3, attr=0xf, range=[0x0000000089779000-0x000000008977d000) (0MB)
[    0.000000] efi: mem108: type=2, attr=0xf, range=[0x000000008977d000-0x000000008977e000) (0MB)
[    0.000000] efi: mem109: type=4, attr=0xf, range=[0x000000008977e000-0x0000000089783000) (0MB)
[    0.000000] efi: mem110: type=3, attr=0xf, range=[0x0000000089783000-0x0000000089787000) (0MB)
[    0.000000] efi: mem111: type=4, attr=0xf, range=[0x0000000089787000-0x000000008978c000) (0MB)
[    0.000000] efi: mem112: type=2, attr=0xf, range=[0x000000008978c000-0x000000008978d000) (0MB)
[    0.000000] efi: mem113: type=4, attr=0xf, range=[0x000000008978d000-0x000000008978f000) (0MB)
[    0.000000] efi: mem114: type=3, attr=0xf, range=[0x000000008978f000-0x0000000089790000) (0MB)
[    0.000000] efi: mem115: type=4, attr=0xf, range=[0x0000000089790000-0x0000000089791000) (0MB)
[    0.000000] efi: mem116: type=3, attr=0xf, range=[0x0000000089791000-0x0000000089793000) (0MB)
[    0.000000] efi: mem117: type=4, attr=0xf, range=[0x0000000089793000-0x0000000089795000) (0MB)
[    0.000000] efi: mem118: type=3, attr=0xf, range=[0x0000000089795000-0x0000000089797000) (0MB)
[    0.000000] efi: mem119: type=2, attr=0xf, range=[0x0000000089797000-0x0000000089798000) (0MB)
[    0.000000] efi: mem120: type=4, attr=0xf, range=[0x0000000089798000-0x000000008979b000) (0MB)
[    0.000000] efi: mem121: type=3, attr=0xf, range=[0x000000008979b000-0x00000000897cb000) (0MB)
[    0.000000] efi: mem122: type=4, attr=0xf, range=[0x00000000897cb000-0x00000000897ce000) (0MB)
[    0.000000] efi: mem123: type=3, attr=0xf, range=[0x00000000897ce000-0x00000000897d3000) (0MB)
[    0.000000] efi: mem124: type=4, attr=0xf, range=[0x00000000897d3000-0x00000000897d7000) (0MB)
[    0.000000] efi: mem125: type=3, attr=0xf, range=[0x00000000897d7000-0x00000000897e5000) (0MB)
[    0.000000] efi: mem126: type=4, attr=0xf, range=[0x00000000897e5000-0x00000000897e8000) (0MB)
[    0.000000] efi: mem127: type=3, attr=0xf, range=[0x00000000897e8000-0x00000000897eb000) (0MB)
[    0.000000] efi: mem128: type=4, attr=0xf, range=[0x00000000897eb000-0x00000000897ef000) (0MB)
[    0.000000] efi: mem129: type=2, attr=0xf, range=[0x00000000897ef000-0x00000000897f0000) (0MB)
[    0.000000] efi: mem130: type=4, attr=0xf, range=[0x00000000897f0000-0x00000000897f3000) (0MB)
[    0.000000] efi: mem131: type=3, attr=0xf, range=[0x00000000897f3000-0x00000000897fa000) (0MB)
[    0.000000] efi: mem132: type=4, attr=0xf, range=[0x00000000897fa000-0x00000000897fd000) (0MB)
[    0.000000] efi: mem133: type=3, attr=0xf, range=[0x00000000897fd000-0x00000000897fe000) (0MB)
[    0.000000] efi: mem134: type=4, attr=0xf, range=[0x00000000897fe000-0x0000000089800000) (0MB)
[    0.000000] efi: mem135: type=2, attr=0xf, range=[0x0000000089800000-0x0000000089801000) (0MB)
[    0.000000] efi: mem136: type=4, attr=0xf, range=[0x0000000089801000-0x0000000089802000) (0MB)
[    0.000000] efi: mem137: type=3, attr=0xf, range=[0x0000000089802000-0x0000000089804000) (0MB)
[    0.000000] efi: mem138: type=4, attr=0xf, range=[0x0000000089804000-0x0000000089807000) (0MB)
[    0.000000] efi: mem139: type=2, attr=0xf, range=[0x0000000089807000-0x0000000089808000) (0MB)
[    0.000000] efi: mem140: type=3, attr=0xf, range=[0x0000000089808000-0x0000000089809000) (0MB)
[    0.000000] efi: mem141: type=4, attr=0xf, range=[0x0000000089809000-0x000000008980d000) (0MB)
[    0.000000] efi: mem142: type=3, attr=0xf, range=[0x000000008980d000-0x0000000089810000) (0MB)
[    0.000000] efi: mem143: type=4, attr=0xf, range=[0x0000000089810000-0x0000000089811000) (0MB)
[    0.000000] efi: mem144: type=3, attr=0xf, range=[0x0000000089811000-0x000000008981c000) (0MB)
[    0.000000] efi: mem145: type=4, attr=0xf, range=[0x000000008981c000-0x000000008981e000) (0MB)
[    0.000000] efi: mem146: type=3, attr=0xf, range=[0x000000008981e000-0x0000000089820000) (0MB)
[    0.000000] efi: mem147: type=4, attr=0xf, range=[0x0000000089820000-0x0000000089823000) (0MB)
[    0.000000] efi: mem148: type=2, attr=0xf, range=[0x0000000089823000-0x0000000089824000) (0MB)
[    0.000000] efi: mem149: type=4, attr=0xf, range=[0x0000000089824000-0x0000000089825000) (0MB)
[    0.000000] efi: mem150: type=3, attr=0xf, range=[0x0000000089825000-0x0000000089826000) (0MB)
[    0.000000] efi: mem151: type=4, attr=0xf, range=[0x0000000089826000-0x000000008982a000) (0MB)
[    0.000000] efi: mem152: type=3, attr=0xf, range=[0x000000008982a000-0x000000008982b000) (0MB)
[    0.000000] efi: mem153: type=4, attr=0xf, range=[0x000000008982b000-0x0000000089832000) (0MB)
[    0.000000] efi: mem154: type=3, attr=0xf, range=[0x0000000089832000-0x0000000089834000) (0MB)
[    0.000000] efi: mem155: type=4, attr=0xf, range=[0x0000000089834000-0x000000008983b000) (0MB)
[    0.000000] efi: mem156: type=3, attr=0xf, range=[0x000000008983b000-0x000000008983c000) (0MB)
[    0.000000] efi: mem157: type=2, attr=0xf, range=[0x000000008983c000-0x000000008983d000) (0MB)
[    0.000000] efi: mem158: type=4, attr=0xf, range=[0x000000008983d000-0x000000008983e000) (0MB)
[    0.000000] efi: mem159: type=3, attr=0xf, range=[0x000000008983e000-0x000000008983f000) (0MB)
[    0.000000] efi: mem160: type=4, attr=0xf, range=[0x000000008983f000-0x000000008985c000) (0MB)
[    0.000000] efi: mem161: type=3, attr=0xf, range=[0x000000008985c000-0x0000000089861000) (0MB)
[    0.000000] efi: mem162: type=4, attr=0xf, range=[0x0000000089861000-0x00000000898c6000) (0MB)
[    0.000000] efi: mem163: type=2, attr=0xf, range=[0x00000000898c6000-0x00000000898c7000) (0MB)
[    0.000000] efi: mem164: type=4, attr=0xf, range=[0x00000000898c7000-0x00000000898c8000) (0MB)
[    0.000000] efi: mem165: type=3, attr=0xf, range=[0x00000000898c8000-0x00000000898db000) (0MB)
[    0.000000] efi: mem166: type=4, attr=0xf, range=[0x00000000898db000-0x0000000089921000) (0MB)
[    0.000000] efi: mem167: type=3, attr=0xf, range=[0x0000000089921000-0x0000000089938000) (0MB)
[    0.000000] efi: mem168: type=4, attr=0xf, range=[0x0000000089938000-0x0000000089953000) (0MB)
[    0.000000] efi: mem169: type=3, attr=0xf, range=[0x0000000089953000-0x0000000089958000) (0MB)
[    0.000000] efi: mem170: type=4, attr=0xf, range=[0x0000000089958000-0x0000000089959000) (0MB)
[    0.000000] efi: mem171: type=2, attr=0xf, range=[0x0000000089959000-0x000000008995a000) (0MB)
[    0.000000] efi: mem172: type=4, attr=0xf, range=[0x000000008995a000-0x0000000089960000) (0MB)
[    0.000000] efi: mem173: type=3, attr=0xf, range=[0x0000000089960000-0x0000000089961000) (0MB)
[    0.000000] efi: mem174: type=4, attr=0xf, range=[0x0000000089961000-0x0000000089963000) (0MB)
[    0.000000] efi: mem175: type=3, attr=0xf, range=[0x0000000089963000-0x0000000089964000) (0MB)
[    0.000000] efi: mem176: type=4, attr=0xf, range=[0x0000000089964000-0x0000000089965000) (0MB)
[    0.000000] efi: mem177: type=3, attr=0xf, range=[0x0000000089965000-0x0000000089968000) (0MB)
[    0.000000] efi: mem178: type=4, attr=0xf, range=[0x0000000089968000-0x000000008997e000) (0MB)
[    0.000000] efi: mem179: type=3, attr=0xf, range=[0x000000008997e000-0x00000000899a1000) (0MB)
[    0.000000] efi: mem180: type=4, attr=0xf, range=[0x00000000899a1000-0x00000000899a2000) (0MB)
[    0.000000] efi: mem181: type=2, attr=0xf, range=[0x00000000899a2000-0x00000000899a3000) (0MB)
[    0.000000] efi: mem182: type=4, attr=0xf, range=[0x00000000899a3000-0x00000000899a4000) (0MB)
[    0.000000] efi: mem183: type=3, attr=0xf, range=[0x00000000899a4000-0x00000000899a6000) (0MB)
[    0.000000] efi: mem184: type=4, attr=0xf, range=[0x00000000899a6000-0x00000000899a7000) (0MB)
[    0.000000] efi: mem185: type=3, attr=0xf, range=[0x00000000899a7000-0x00000000899aa000) (0MB)
[    0.000000] efi: mem186: type=2, attr=0xf, range=[0x00000000899aa000-0x00000000899ab000) (0MB)
[    0.000000] efi: mem187: type=4, attr=0xf, range=[0x00000000899ab000-0x0000000089dcc000) (4MB)
[    0.000000] efi: mem188: type=3, attr=0xf, range=[0x0000000089dcc000-0x0000000089dd6000) (0MB)
[    0.000000] efi: mem189: type=4, attr=0xf, range=[0x0000000089dd6000-0x0000000089e60000) (0MB)
[    0.000000] efi: mem190: type=3, attr=0xf, range=[0x0000000089e60000-0x0000000089e63000) (0MB)
[    0.000000] efi: mem191: type=4, attr=0xf, range=[0x0000000089e63000-0x0000000089e65000) (0MB)
[    0.000000] efi: mem192: type=2, attr=0xf, range=[0x0000000089e65000-0x0000000089e66000) (0MB)
[    0.000000] efi: mem193: type=4, attr=0xf, range=[0x0000000089e66000-0x0000000089e67000) (0MB)
[    0.000000] efi: mem194: type=3, attr=0xf, range=[0x0000000089e67000-0x0000000089e6c000) (0MB)
[    0.000000] efi: mem195: type=4, attr=0xf, range=[0x0000000089e6c000-0x0000000089e6d000) (0MB)
[    0.000000] efi: mem196: type=3, attr=0xf, range=[0x0000000089e6d000-0x0000000089e70000) (0MB)
[    0.000000] efi: mem197: type=4, attr=0xf, range=[0x0000000089e70000-0x0000000089e72000) (0MB)
[    0.000000] efi: mem198: type=3, attr=0xf, range=[0x0000000089e72000-0x0000000089e73000) (0MB)
[    0.000000] efi: mem199: type=4, attr=0xf, range=[0x0000000089e73000-0x0000000089e75000) (0MB)
[    0.000000] efi: mem200: type=3, attr=0xf, range=[0x0000000089e75000-0x0000000089e76000) (0MB)
[    0.000000] efi: mem201: type=4, attr=0xf, range=[0x0000000089e76000-0x000000008a355000) (4MB)
[    0.000000] efi: mem202: type=2, attr=0xf, range=[0x000000008a355000-0x000000008a356000) (0MB)
[    0.000000] efi: mem203: type=4, attr=0xf, range=[0x000000008a356000-0x000000008a440000) (0MB)
[    0.000000] efi: mem204: type=2, attr=0xf, range=[0x000000008a440000-0x000000008a441000) (0MB)
[    0.000000] efi: mem205: type=4, attr=0xf, range=[0x000000008a441000-0x000000008acfa000) (8MB)
[    0.000000] efi: mem206: type=2, attr=0xf, range=[0x000000008acfa000-0x000000008acfb000) (0MB)
[    0.000000] efi: mem207: type=4, attr=0xf, range=[0x000000008acfb000-0x000000008ad03000) (0MB)
[    0.000000] efi: mem208: type=7, attr=0xf, range=[0x000000008ad03000-0x000000008ad14000) (0MB)
[    0.000000] efi: mem209: type=10, attr=0xf, range=[0x000000008ad14000-0x000000008ad53000) (0MB)
[    0.000000] efi: mem210: type=7, attr=0xf, range=[0x000000008ad53000-0x000000008ad69000) (0MB)
[    0.000000] efi: mem211: type=9, attr=0xf, range=[0x000000008ad69000-0x000000008ad8f000) (0MB)
[    0.000000] efi: mem212: type=7, attr=0xf, range=[0x000000008ad8f000-0x000000008ae3a000) (0MB)
[    0.000000] efi: mem213: type=6, attr=0x800000000000000f, range=[0x000000008ae3a000-0x000000008ae8f000) (0MB)
[    0.000000] efi: mem214: type=7, attr=0xf, range=[0x000000008ae8f000-0x000000008aece000) (0MB)
[    0.000000] efi: mem215: type=5, attr=0x800000000000000f, range=[0x000000008aece000-0x000000008aeff000) (0MB)
[    0.000000] efi: mem216: type=7, attr=0xf, range=[0x000000008aeff000-0x000000008af86000) (0MB)
[    0.000000] efi: mem217: type=2, attr=0xf, range=[0x000000008af86000-0x000000008af92000) (0MB)
[    0.000000] efi: mem218: type=0, attr=0xf, range=[0x000000008af92000-0x000000008afff000) (0MB)
[    0.000000] efi: mem219: type=2, attr=0xf, range=[0x000000008afff000-0x000000008b000000) (0MB)
[    0.000000] efi: mem220: type=7, attr=0xf, range=[0x0000000100000000-0x000000046f600000) (14070MB)
[    0.000000] efi: mem221: type=0, attr=0x8000000000000000, range=[0x00000000000a0000-0x00000000000c0000) (0MB)
[    0.000000] efi: mem222: type=0, attr=0x8000000000000000, range=[0x000000008b000000-0x000000008fa00000) (74MB)
[    0.000000] efi: mem223: type=11, attr=0x8000000000000000, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB)
[    0.000000] efi: mem224: type=11, attr=0x8000000000000000, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem225: type=11, attr=0x8000000000000000, range=[0x00000000ffe70000-0x00000000ffea0000) (0MB)
[    0.000000] SMBIOS 2.4 present.
[    0.000000] DMI: Apple Inc. MacBookPro10,1/Mac-C3EC7CD22292981F, BIOS MBP101.88Z.00EE.B03.1212211437 12/21/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x46f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: write-back
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-DFFFF write-protect
[    0.000000]   E0000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0C0000000 mask FC0000000 uncachable
[    0.000000]   1 base 0A0000000 mask FE0000000 uncachable
[    0.000000]   2 base 090000000 mask FF0000000 uncachable
[    0.000000]   3 base 08C000000 mask FFC000000 uncachable
[    0.000000]   4 base 08B000000 mask FFF000000 uncachable
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0x8b000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01ae8000, 0x01ae8fff] PGTABLE
[    0.000000] BRK [0x01ae9000, 0x01ae9fff] PGTABLE
[    0.000000] BRK [0x01aea000, 0x01aeafff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46f400000-0x46f5fffff]
[    0.000000]  [mem 0x46f400000-0x46f5fffff] page 2M
[    0.000000] BRK [0x01aeb000, 0x01aebfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x46c000000-0x46f3fffff]
[    0.000000]  [mem 0x46c000000-0x46f3fffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x400000000-0x46bffffff]
[    0.000000]  [mem 0x400000000-0x46bffffff] page 2M
[    0.000000] BRK [0x01aec000, 0x01aecfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x1fffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x20200000-0x40003fff]
[    0.000000]  [mem 0x20200000-0x3fffffff] page 2M
[    0.000000]  [mem 0x40000000-0x40003fff] page 4k
[    0.000000] BRK [0x01aed000, 0x01aedfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x40005000-0x8ad13fff]
[    0.000000]  [mem 0x40005000-0x401fffff] page 4k
[    0.000000]  [mem 0x40200000-0x8abfffff] page 2M
[    0.000000]  [mem 0x8ac00000-0x8ad13fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]  [mem 0x8ad53000-0x8ad68fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]  [mem 0x8ad8f000-0x8ae39fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]  [mem 0x8ae8f000-0x8aecdfff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8aeff000-0x8af91fff]
[    0.000000]  [mem 0x8aeff000-0x8af91fff] page 4k
[    0.000000] init_memory_mapping: [mem 0x8afff000-0x8affffff]
[    0.000000]  [mem 0x8afff000-0x8affffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x3ffffffff]
[    0.000000]  [mem 0x100000000-0x3ffffffff] page 2M
[    0.000000] RAMDISK: [mem 0x36c96000-0x37642fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000008AD8E014 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x000000008AD8E1C0 0000B4 (v01 APPLE  Apple00  00000000      01000013)
[    0.000000] ACPI: FACP 0x000000008AD8C000 0000F4 (v04 APPLE  Apple00  00000000 Loki 0000005F)
[    0.000000] ACPI: DSDT 0x000000008AD82000 004D5C (v01 APPLE  MacBookP 00100001 INTL 20100915)
[    0.000000] ACPI: FACS 0x000000008AD1E000 000040
[    0.000000] ACPI: HPET 0x000000008AD8B000 000038 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: APIC 0x000000008AD8A000 0000BC (v02 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SBST 0x000000008AD88000 000030 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: ECDT 0x000000008AD87000 000053 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: SSDT 0x000000008AD7F000 00053A (v01 APPLE  SataAhci 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD7E000 000024 (v01 APPLE  SmcDppt  00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD79000 000D3E (v01 APPLE  UsbPpt   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD77000 000159 (v02 APPLE  IGHda    00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD75000 000032 (v01 APPLE  SsdtS3   00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD73000 0015EB (v02 APPLE  SsdtIGPU 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6E000 0019AA (v01 APPLE  TbtPEG11 00001000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6D000 00071D (v01 PmRef  Cpu0Ist  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6C000 000B3D (v01 PmRef  CpuPm    00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6B000 000315 (v01 PmRef  Cpu0Tst  00003000 INTL 20100915)
[    0.000000] ACPI: SSDT 0x000000008AD6A000 00037A (v01 PmRef  ApTst    00003000 INTL 20100915)
[    0.000000] ACPI: DMAR 0x000000008AD69000 000088 (v01 APPLE  IVB      00000001 AAPL 00000001)
[    0.000000] ACPI: MCFG 0x000000008AD89000 00003C (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000046f5fffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x46f5fffff]
[    0.000000]   NODE_DATA [mem 0x46f5ec000-0x46f5effff]
[    0.000000]  [ffffea0000000000-ffffea0011bfffff] PMD -> [ffff88045ec00000-ffff88046ebfffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x46f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0008dfff]
[    0.000000]   node   0: [mem 0x00090000-0x0009ffff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x40003fff]
[    0.000000]   node   0: [mem 0x40005000-0x8ad13fff]
[    0.000000]   node   0: [mem 0x8ad53000-0x8ad68fff]
[    0.000000]   node   0: [mem 0x8ad8f000-0x8ae39fff]
[    0.000000]   node   0: [mem 0x8ae8f000-0x8aecdfff]
[    0.000000]   node   0: [mem 0x8aeff000-0x8af91fff]
[    0.000000]   node   0: [mem 0x8afff000-0x8affffff]
[    0.000000]   node   0: [mem 0x100000000-0x46f5fffff]
[    0.000000] On node 0 totalpages: 4170308
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 25 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8819 pages used for memmap
[    0.000000]   DMA32 zone: 564391 pages, LIFO batch:31
[    0.000000]   Normal zone: 56280 pages used for memmap
[    0.000000]   Normal zone: 3601920 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics stolen memory at 0x8ba00000-0x8f9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad14000-0x8ad52fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ad69000-0x8ad8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8ae3a000-0x8ae8efff]
[    0.000000] PM: Registered nosave memory: [mem 0x8aece000-0x8aefefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8af92000-0x8affefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8b000000-0x8f9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8fa00000-0xe00f7fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f8000-0xe00f8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00f9000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xffe6ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffe70000-0xffe9ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xffea0000-0xffffffff]
[    0.000000] e820: [mem 0x8fa00000-0xe00f7fff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88046f200000 s82432 r8192 d24064 u262144
[    0.000000] pcpu-alloc: s82432 r8192 d24064 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4105120
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-hdev root=UUID=555026f1-7426-49a7-80aa-3d2bf31d5cc8 rw quiet systemd.unit=graphical.target resume=/dev/sda5
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] Memory: 16248216K/16681232K available (4728K kernel code, 843K rwdata, 1536K rodata, 976K init, 1128K bss, 433016K reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	Dump stacks of tasks blocking RCU-preempt GP.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS:8448 nr_irqs:488 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 67108864 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2693.813 MHz processor
[    0.000028] Calibrating delay loop (skipped), value calculated using timer frequency.. 5389.11 BogoMIPS (lpj=8979376)
[    0.000031] pid_max: default: 32768 minimum: 301
[    0.000036] ACPI: Core revision 20140724
[    0.006748] ACPI: All ACPI Tables successfully acquired
[    0.017144] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.020737] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.022345] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.022361] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.022561] Initializing cgroup subsys memory
[    0.022566] Initializing cgroup subsys devices
[    0.022568] Initializing cgroup subsys freezer
[    0.022569] Initializing cgroup subsys net_cls
[    0.022571] Initializing cgroup subsys blkio
[    0.022588] CPU: Physical Processor ID: 0
[    0.022589] CPU: Processor Core ID: 0
[    0.022920] mce: CPU supports 9 MCE banks
[    0.022932] CPU0: Thermal monitoring enabled (TM1)
[    0.022939] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.023032] Freeing SMP alternatives memory: 16K (ffffffff819c8000 - ffffffff819cc000)
[    0.024951] ftrace: allocating 18428 entries in 72 pages
[    0.033173] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.066166] smpboot: CPU0: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz (fam: 06, model: 3a, stepping: 09)
[    0.066175] TSC deadline timer enabled
[    0.066192] Performance Events: PEBS fmt1+, 16-deep LBR, IvyBridge events, full-width counters, Intel PMU driver.
[    0.066209] ... version:                3
[    0.066210] ... bit width:              48
[    0.066211] ... generic registers:      4
[    0.066212] ... value mask:             0000ffffffffffff
[    0.066213] ... max period:             0000ffffffffffff
[    0.066213] ... fixed-purpose events:   3
[    0.066214] ... event mask:             000000070000000f
[    0.089596] x86: Booting SMP configuration:
[    0.089598] .... node  #0, CPUs:      #1
[    0.103195] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.109869]  #2 #3 #4 #5 #6 #7
[    0.221420] x86: Booted up 1 node, 8 CPUs
[    0.221424] smpboot: Total of 8 processors activated (43118.88 BogoMIPS)
[    0.227156] devtmpfs: initialized
[    0.230056] PM: Registering ACPI NVS region [mem 0x8ad14000-0x8ad52fff] (258048 bytes)
[    0.230787] RTC time: 19:39:05, date: 08/22/14
[    0.230860] NET: Registered protocol family 16
[    0.230956] cpuidle: using governor ladder
[    0.230958] cpuidle: using governor menu
[    0.230982] ACPI: bus type PCI registered
[    0.230983] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.231032] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.231034] PCI: not using MMCONFIG
[    0.231035] PCI: Using configuration type 1 for base access
[    0.243920] ACPI: Added _OSI(Module Device)
[    0.243922] ACPI: Added _OSI(Processor Device)
[    0.243923] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.243924] ACPI: Added _OSI(Processor Aggregator Device)
[    0.245033] ACPI : EC: EC description table is found, configuring boot EC
[    0.248813] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.249229] ACPI: Dynamic OEM Table Load:
[    0.249238] ACPI: SSDT 0xFFFF880458BA8000 0008AD (v01 PmRef  Cpu0Cst  00003001 INTL 20100915)
[    0.260502] ACPI: Dynamic OEM Table Load:
[    0.260509] ACPI: SSDT 0xFFFF880458B3B000 0003A4 (v01 PmRef  ApIst    00003000 INTL 20100915)
[    0.273735] ACPI: Dynamic OEM Table Load:
[    0.273740] ACPI: SSDT 0xFFFF880458B5D600 000119 (v01 PmRef  ApCst    00003000 INTL 20100915)
[    0.287861] ACPI: Interpreter enabled
[    0.287866] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140724/hwxface-580)
[    0.287869] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140724/hwxface-580)
[    0.287880] ACPI: (supports S0 S3 S4 S5)
[    0.287881] ACPI: Using IOAPIC for interrupt routing
[    0.287894] PCI: MMCONFIG for domain 0000 [bus 00-9b] at [mem 0xe0000000-0xe9bfffff] (base 0xe0000000)
[    0.288211] PCI: MMCONFIG at [mem 0xe0000000-0xe9bfffff] reserved in ACPI motherboard resources
[    0.288321] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.294454] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.294459] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.294549] acpi PNP0A08:00: _OSC: platform does not support [PME]
[    0.294623] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug AER PCIeCapability]
[    0.294774] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-9b] only partially covers this bridge
[    0.294876] PCI host bridge to bus 0000:00
[    0.294878] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.294880] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.294881] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.294882] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.294884] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
[    0.294885] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
[    0.294886] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
[    0.294887] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
[    0.294888] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    0.294890] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    0.294891] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    0.294892] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    0.294893] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    0.294895] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    0.294896] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
[    0.294897] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
[    0.294898] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
[    0.294899] pci_bus 0000:00: root bus resource [mem 0x8fa00000-0xfeafffff]
[    0.294901] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    0.294902] pci_bus 0000:00: scanning bus
[    0.294909] pci 0000:00:00.0: [8086:0154] type 00 class 0x060000
[    0.294916] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0x10
[    0.294980] pci 0000:00:01.0: [8086:0151] type 01 class 0x060400
[    0.294995] pci 0000:00:01.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295013] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.295017] pci 0000:00:01.0: PME# disabled
[    0.295037] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.295066] pci 0000:00:01.1: [8086:0155] type 01 class 0x060400
[    0.295079] pci 0000:00:01.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295096] pci 0000:00:01.1: PME# supported from D0 D3hot D3cold
[    0.295097] pci 0000:00:01.1: PME# disabled
[    0.295117] pci 0000:00:01.1: System wakeup disabled by ACPI
[    0.295155] pci 0000:00:01.2: [8086:0159] type 01 class 0x060400
[    0.295183] pci 0000:00:01.2: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.295234] pci 0000:00:01.2: PME# supported from D0 D3hot D3cold
[    0.295237] pci 0000:00:01.2: PME# disabled
[    0.295265] pci 0000:00:01.2: System wakeup disabled by ACPI
[    0.295300] pci 0000:00:02.0: [8086:0166] type 00 class 0x030000
[    0.295309] pci 0000:00:02.0: reg 0x10: [mem 0xc1400000-0xc17fffff 64bit]
[    0.295314] pci 0000:00:02.0: reg 0x18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    0.295318] pci 0000:00:02.0: reg 0x20: [io  0x3000-0x303f]
[    0.295398] pci 0000:00:14.0: [8086:1e31] type 00 class 0x0c0330
[    0.295418] pci 0000:00:14.0: reg 0x10: [mem 0xc1c00000-0xc1c0ffff 64bit]
[    0.295476] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.295480] pci 0000:00:14.0: PME# disabled
[    0.295503] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.295540] pci 0000:00:16.0: [8086:1e3a] type 00 class 0x078000
[    0.295563] pci 0000:00:16.0: reg 0x10: [mem 0xc1c17100-0xc1c1710f 64bit]
[    0.295636] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.295640] pci 0000:00:16.0: PME# disabled
[    0.295708] pci 0000:00:1a.0: [8086:1e2d] type 00 class 0x0c0320
[    0.295729] pci 0000:00:1a.0: reg 0x10: [mem 0xc1c16c00-0xc1c16fff]
[    0.295815] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.295819] pci 0000:00:1a.0: PME# disabled
[    0.295845] pci 0000:00:1a.0: System wakeup disabled by ACPI
[    0.295880] pci 0000:00:1b.0: [8086:1e20] type 00 class 0x040300
[    0.295895] pci 0000:00:1b.0: reg 0x10: [mem 0xc1c10000-0xc1c13fff 64bit]
[    0.295959] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.295963] pci 0000:00:1b.0: PME# disabled
[    0.295988] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.296024] pci 0000:00:1c.0: [8086:1e10] type 01 class 0x060400
[    0.296089] pci 0000:00:1c.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.296162] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.296166] pci 0000:00:1c.0: PME# disabled
[    0.296201] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.296239] pci 0000:00:1c.1: [8086:1e12] type 01 class 0x060400
[    0.296303] pci 0000:00:1c.1: calling pci_fixup_transparent_bridge+0x0/0x30
[    0.296376] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.296381] pci 0000:00:1c.1: PME# disabled
[    0.296417] pci 0000:00:1c.1: System wakeup disabled by ACPI
[    0.296460] pci 0000:00:1d.0: [8086:1e26] type 00 class 0x0c0320
[    0.296481] pci 0000:00:1d.0: reg 0x10: [mem 0xc1c16800-0xc1c16bff]
[    0.296570] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.296574] pci 0000:00:1d.0: PME# disabled
[    0.296598] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.296636] pci 0000:00:1f.0: [8086:1e57] type 00 class 0x060100
[    0.296789] pci 0000:00:1f.2: [8086:1e03] type 00 class 0x010601
[    0.296806] pci 0000:00:1f.2: reg 0x10: [io  0x3098-0x309f]
[    0.296814] pci 0000:00:1f.2: reg 0x14: [io  0x30bc-0x30bf]
[    0.296822] pci 0000:00:1f.2: reg 0x18: [io  0x3090-0x3097]
[    0.296829] pci 0000:00:1f.2: reg 0x1c: [io  0x30b8-0x30bb]
[    0.296837] pci 0000:00:1f.2: reg 0x20: [io  0x3060-0x307f]
[    0.296845] pci 0000:00:1f.2: reg 0x24: [mem 0xc1c16000-0xc1c167ff]
[    0.296888] pci 0000:00:1f.2: PME# supported from D3hot
[    0.296892] pci 0000:00:1f.2: PME# disabled
[    0.296943] pci 0000:00:1f.3: [8086:1e22] type 00 class 0x0c0500
[    0.296956] pci 0000:00:1f.3: reg 0x10: [mem 0xc1c17000-0xc1c170ff 64bit]
[    0.296971] pci 0000:00:1f.3: reg 0x20: [io  0xefa0-0xefbf]
[    0.297034] pci_bus 0000:00: fixups for bus
[    0.297037] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 0
[    0.297080] pci_bus 0000:01: scanning bus
[    0.297092] pci 0000:01:00.0: [10de:0fd5] type 00 class 0x030000
[    0.297103] pci 0000:01:00.0: reg 0x10: [mem 0xc0000000-0xc0ffffff]
[    0.297113] pci 0000:01:00.0: reg 0x14: [mem 0x90000000-0x9fffffff 64bit pref]
[    0.297123] pci 0000:01:00.0: reg 0x1c: [mem 0xa0000000-0xa1ffffff 64bit pref]
[    0.297130] pci 0000:01:00.0: reg 0x24: [io  0x2000-0x207f]
[    0.297137] pci 0000:01:00.0: reg 0x30: [mem 0xc1000000-0xc107ffff pref]
[    0.297194] pci 0000:01:00.0: System wakeup disabled by ACPI
[    0.297236] pci 0000:01:00.1: [10de:0e1b] type 00 class 0x040300
[    0.297245] pci 0000:01:00.1: reg 0x10: [mem 0xc1080000-0xc1083fff]
[    1.303906] pci 0000:00:01.0: ASPM: Could not configure common clock
[    1.303934] pci_bus 0000:01: fixups for bus
[    1.303937] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.303950] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.303953] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.303956] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.303958] pci_bus 0000:01: bus scan returning with max=01
[    1.303960] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 0
[    1.303997] pci_bus 0000:05: scanning bus
[    1.304009] pci 0000:05:00.0: [8086:1547] type 01 class 0x060400
[    1.304035] pci 0000:05:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.304074] pci 0000:05:00.0: supports D1 D2
[    1.304075] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.304077] pci 0000:05:00.0: PME# disabled
[    1.310582] pci_bus 0000:05: fixups for bus
[    1.310586] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.310590] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.310595] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.310600] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.310604] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 0
[    1.310661] pci_bus 0000:06: dev 03, created physical slot 2
[    1.310668] pci_bus 0000:06: dev 04, created physical slot 3
[    1.310674] pci_bus 0000:06: dev 05, created physical slot 4
[    1.310681] pci_bus 0000:06: dev 06, created physical slot 5
[    1.310714] pci_bus 0000:06: scanning bus
[    1.310727] pci 0000:06:00.0: [8086:1547] type 01 class 0x060400
[    1.310756] pci 0000:06:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310797] pci 0000:06:00.0: supports D1 D2
[    1.310798] pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310800] pci 0000:06:00.0: PME# disabled
[    1.310855] pci 0000:06:03.0: [8086:1547] type 01 class 0x060400
[    1.310884] pci 0000:06:03.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.310924] pci 0000:06:03.0: supports D1 D2
[    1.310925] pci 0000:06:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.310928] pci 0000:06:03.0: PME# disabled
[    1.310980] pci 0000:06:04.0: [8086:1547] type 01 class 0x060400
[    1.311008] pci 0000:06:04.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.311049] pci 0000:06:04.0: supports D1 D2
[    1.311050] pci 0000:06:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311052] pci 0000:06:04.0: PME# disabled
[    1.311105] pci 0000:06:05.0: [8086:1547] type 01 class 0x060400
[    1.311130] pci 0000:06:05.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.311170] pci 0000:06:05.0: supports D1 D2
[    1.311171] pci 0000:06:05.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311174] pci 0000:06:05.0: PME# disabled
[    1.311227] pci 0000:06:06.0: [8086:1547] type 01 class 0x060400
[    1.311251] pci 0000:06:06.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.311291] pci 0000:06:06.0: supports D1 D2
[    1.311292] pci 0000:06:06.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311295] pci 0000:06:06.0: PME# disabled
[    1.311358] pci_bus 0000:06: fixups for bus
[    1.311359] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.311363] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.311366] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.311370] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.311372] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 0
[    1.311420] pci_bus 0000:07: dev 00, created physical slot 1
[    1.311425] acpiphp: Slot [1] registered
[    1.311427] pci_bus 0000:07: scanning bus
[    1.311445] pci 0000:07:00.0: [8086:1547] type 00 class 0x088000
[    1.311459] pci 0000:07:00.0: reg 0x10: [mem 0xc1f00000-0xc1f3ffff]
[    1.311468] pci 0000:07:00.0: reg 0x14: [mem 0xc1f40000-0xc1f40fff]
[    1.311575] pci 0000:07:00.0: supports D1 D2
[    1.311576] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.311580] pci 0000:07:00.0: PME# disabled
[    1.317256] pci_bus 0000:07: fixups for bus
[    1.317260] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.317269] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.317276] pci_bus 0000:07: bus scan returning with max=07
[    1.317290] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 0
[    1.317381] pci_bus 0000:08: scanning bus
[    1.317406] pci 0000:08:00.0: [8086:1549] type 01 class 0x060400
[    1.317474] pci 0000:08:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.317571] pci 0000:08:00.0: supports D1 D2
[    1.317572] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.317577] pci 0000:08:00.0: PME# disabled
[    1.323926] pci_bus 0000:08: fixups for bus
[    1.323930] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.323937] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.323942] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.323958] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.323961] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 0
[    1.324029] pci_bus 0000:09: scanning bus
[    1.324055] pci 0000:09:00.0: [8086:1549] type 01 class 0x060400
[    1.324127] pci 0000:09:00.0: calling pci_fixup_transparent_bridge+0x0/0x30
[    1.324227] pci 0000:09:00.0: supports D1 D2
[    1.324228] pci 0000:09:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.324233] pci 0000:09:00.0: PME# disabled
[    1.324346] pci_bus 0000:09: fixups for bus
[    1.324348] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.324360] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.324369] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.324373] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 0
[    1.324440] pci_bus 0000:0a: scanning bus
[    1.324496] pci 0000:0a:00.0: [14e4:1682] type 00 class 0x020000
[    1.324542] pci 0000:0a:00.0: reg 0x10: [mem 0xce100000-0xce10ffff 64bit pref]
[    1.324571] pci 0000:0a:00.0: reg 0x18: [mem 0xce110000-0xce11ffff 64bit pref]
[    1.324620] pci 0000:0a:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
[    1.324833] pci 0000:0a:00.0: PME# supported from D0 D3hot D3cold
[    1.324840] pci 0000:0a:00.0: PME# disabled
[    1.330612] pci_bus 0000:0a: fixups for bus
[    1.330615] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.330639] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.330648] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.330649] pci_bus 0000:0a: bus scan returning with max=0a
[    1.330655] pci 0000:09:00.0: scanning [bus 0a-0a] behind bridge, pass 1
[    1.330662] pci_bus 0000:09: bus scan returning with max=0a
[    1.330667] pci 0000:08:00.0: scanning [bus 09-0a] behind bridge, pass 1
[    1.330674] pci_bus 0000:08: bus scan returning with max=0a
[    1.330676] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 0
[    1.330767] pci_bus 0000:39: scanning bus
[    1.330769] pci_bus 0000:39: fixups for bus
[    1.330771] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.330775] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.330778] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.330782] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.330783] pci_bus 0000:39: bus scan returning with max=39
[    1.330786] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 0
[    1.330824] pci_bus 0000:6a: scanning bus
[    1.330826] pci_bus 0000:6a: fixups for bus
[    1.330827] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.330833] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.330837] pci_bus 0000:6a: bus scan returning with max=6a
[    1.330839] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 0
[    1.330879] pci_bus 0000:6b: scanning bus
[    1.330881] pci_bus 0000:6b: fixups for bus
[    1.330882] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.330888] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.330892] pci_bus 0000:6b: bus scan returning with max=6b
[    1.330895] pci 0000:06:00.0: scanning [bus 07-07] behind bridge, pass 1
[    1.330899] pci 0000:06:03.0: scanning [bus 08-38] behind bridge, pass 1
[    1.330903] pci 0000:06:04.0: scanning [bus 39-69] behind bridge, pass 1
[    1.330907] pci 0000:06:05.0: scanning [bus 6a-6a] behind bridge, pass 1
[    1.330911] pci 0000:06:06.0: scanning [bus 6b-6b] behind bridge, pass 1
[    1.330914] pci_bus 0000:06: bus scan returning with max=6b
[    1.330917] pci 0000:05:00.0: scanning [bus 06-6b] behind bridge, pass 1
[    1.330920] pci_bus 0000:05: bus scan returning with max=6b
[    1.330923] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 0
[    1.330975] pci_bus 0000:02: scanning bus
[    1.330977] pci_bus 0000:02: fixups for bus
[    1.330978] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.330984] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.330989] pci_bus 0000:02: bus scan returning with max=02
[    1.330997] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 0
[    1.331120] pci_bus 0000:03: scanning bus
[    1.331158] pci 0000:03:00.0: [14e4:16a3] type 00 class 0x020000
[    1.331196] pci 0000:03:00.0: reg 0x10: [mem 0xc1800000-0xc180ffff 64bit pref]
[    1.331221] pci 0000:03:00.0: reg 0x18: [mem 0xc1810000-0xc181ffff 64bit pref]
[    1.331261] pci 0000:03:00.0: reg 0x30: [mem 0xfffff800-0xffffffff pref]
[    1.331412] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    1.331417] pci 0000:03:00.0: PME# disabled
[    1.331551] pci 0000:03:00.1: [14e4:16bc] type 00 class 0x080501
[    1.331589] pci 0000:03:00.1: reg 0x10: [mem 0xc1820000-0xc182ffff 64bit pref]
[    1.331785] pci 0000:03:00.1: PME# supported from D0 D3hot D3cold
[    1.331790] pci 0000:03:00.1: PME# disabled
[    1.331824] pci 0000:03:00.1: System wakeup disabled by ACPI
[    1.337371] pci_bus 0000:03: fixups for bus
[    1.337372] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.337378] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.337387] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.337388] pci_bus 0000:03: bus scan returning with max=03
[    1.337393] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 0
[    1.337498] pci_bus 0000:04: scanning bus
[    1.337527] pci 0000:04:00.0: [14e4:4331] type 00 class 0x028000
[    1.337555] pci 0000:04:00.0: reg 0x10: [mem 0xc1900000-0xc1903fff 64bit]
[    1.337720] pci 0000:04:00.0: supports D1 D2
[    1.337721] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    1.337726] pci 0000:04:00.0: PME# disabled
[    1.337760] pci 0000:04:00.0: System wakeup disabled by ACPI
[    1.343991] pci_bus 0000:04: fixups for bus
[    1.343992] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.343998] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.344006] pci_bus 0000:04: bus scan returning with max=04
[    1.344010] pci 0000:00:01.0: scanning [bus 01-01] behind bridge, pass 1
[    1.344013] pci 0000:00:01.1: scanning [bus 05-6b] behind bridge, pass 1
[    1.344016] pci 0000:00:01.2: scanning [bus 02-02] behind bridge, pass 1
[    1.344025] pci 0000:00:1c.0: scanning [bus 03-03] behind bridge, pass 1
[    1.344033] pci 0000:00:1c.1: scanning [bus 04-04] behind bridge, pass 1
[    1.344040] pci_bus 0000:00: bus scan returning with max=6b
[    1.344446] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344492] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344537] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344577] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344619] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344663] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.344705] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    1.344750] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    1.346054] ACPI: Enabled 3 GPEs in block 00 to 3F
[    1.346073] ACPI : EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    1.346128] vgaarb: PCI:0000:00:02.0 PCI_COMMAND=0007
[    1.346129] vgaarb: Boot video device: PCI:0000:00:02.0
[    1.346130] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    1.346141] vgaarb: PCI:0000:01:00.0 PCI_COMMAND=0006
[    1.346142] vgaarb: PCI:0000:01:00.0, bridge PCI:0000:00:01.0 PCI_BRIDGE_CONTROL=0000
[    1.346143] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    1.346145] vgaarb: loaded
[    1.346146] vgaarb: bridge control possible 0000:01:00.0
[    1.346147] vgaarb: no bridge control possible 0000:00:02.0
[    1.346202] PCI: Using ACPI for IRQ routing
[    1.351240] PCI: pci_cache_line_size set to 64 bytes
[    1.351257] pci 0000:01:00.0: BAR 0: reserving [mem 0xc0000000-0xc0ffffff flags 0x40200] (d=0, p=0)
[    1.351259] pci 0000:01:00.0: BAR 1: reserving [mem 0x90000000-0x9fffffff flags 0x14220c] (d=0, p=0)
[    1.351261] pci 0000:01:00.0: BAR 3: reserving [mem 0xa0000000-0xa1ffffff flags 0x14220c] (d=0, p=0)
[    1.351267] pci 0000:07:00.0: BAR 0: reserving [mem 0xc1f00000-0xc1f3ffff flags 0x40200] (d=0, p=0)
[    1.351268] pci 0000:07:00.0: BAR 1: reserving [mem 0xc1f40000-0xc1f40fff flags 0x40200] (d=0, p=0)
[    1.351286] pci 0000:00:02.0: BAR 0: reserving [mem 0xc1400000-0xc17fffff flags 0x140204] (d=0, p=0)
[    1.351288] pci 0000:00:02.0: BAR 2: reserving [mem 0xb0000000-0xbfffffff flags 0x14220c] (d=0, p=0)
[    1.351290] pci 0000:00:02.0: BAR 4: reserving [io  0x3000-0x303f flags 0x40101] (d=0, p=0)
[    1.351297] pci 0000:00:16.0: BAR 0: reserving [mem 0xc1c17100-0xc1c1710f flags 0x140204] (d=0, p=0)
[    1.351300] pci 0000:00:1a.0: BAR 0: reserving [mem 0xc1c16c00-0xc1c16fff flags 0x40200] (d=0, p=0)
[    1.351372] pci 0000:00:1d.0: BAR 0: reserving [mem 0xc1c16800-0xc1c16bff flags 0x40200] (d=0, p=0)
[    1.351376] pci 0000:00:1f.2: BAR 0: reserving [io  0x3098-0x309f flags 0x40101] (d=0, p=0)
[    1.351377] pci 0000:00:1f.2: BAR 1: reserving [io  0x30bc-0x30bf flags 0x40101] (d=0, p=0)
[    1.351379] pci 0000:00:1f.2: BAR 2: reserving [io  0x3090-0x3097 flags 0x40101] (d=0, p=0)
[    1.351380] pci 0000:00:1f.2: BAR 3: reserving [io  0x30b8-0x30bb flags 0x40101] (d=0, p=0)
[    1.351382] pci 0000:00:1f.2: BAR 4: reserving [io  0x3060-0x307f flags 0x40101] (d=0, p=0)
[    1.351383] pci 0000:00:1f.2: BAR 5: reserving [mem 0xc1c16000-0xc1c167ff flags 0x40200] (d=0, p=0)
[    1.351398] pci 0000:01:00.0: BAR 5: reserving [io  0x2000-0x207f flags 0x40101] (d=1, p=1)
[    1.351401] pci 0000:01:00.1: BAR 0: reserving [mem 0xc1080000-0xc1083fff flags 0x40200] (d=1, p=1)
[    1.352758] pci 0000:0a:00.0: BAR 0: reserving [mem 0xce100000-0xce10ffff flags 0x14220c] (d=1, p=1)
[    1.352760] pci 0000:0a:00.0: BAR 2: reserving [mem 0xce110000-0xce11ffff flags 0x14220c] (d=1, p=1)
[    1.352769] pci 0000:00:14.0: BAR 0: reserving [mem 0xc1c00000-0xc1c0ffff flags 0x140204] (d=1, p=1)
[    1.352775] pci 0000:00:1b.0: BAR 0: reserving [mem 0xc1c10000-0xc1c13fff flags 0x140204] (d=1, p=1)
[    1.352819] pci 0000:03:00.0: BAR 0: reserving [mem 0xc1800000-0xc180ffff flags 0x14220c] (d=1, p=1)
[    1.352820] pci 0000:03:00.0: BAR 2: reserving [mem 0xc1810000-0xc181ffff flags 0x14220c] (d=1, p=1)
[    1.352824] pci 0000:03:00.1: BAR 0: reserving [mem 0xc1820000-0xc182ffff flags 0x14220c] (d=1, p=1)
[    1.352849] pci 0000:04:00.0: BAR 0: reserving [mem 0xc1900000-0xc1903fff flags 0x140204] (d=1, p=1)
[    1.352856] pci 0000:00:1f.3: BAR 0: reserving [mem 0xc1c17000-0xc1c170ff flags 0x140204] (d=1, p=1)
[    1.352858] pci 0000:00:1f.3: BAR 4: reserving [io  0xefa0-0xefbf flags 0x40101] (d=1, p=1)
[    1.352860] e820: reserve RAM buffer [mem 0x0008e000-0x0008ffff]
[    1.352862] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    1.352863] e820: reserve RAM buffer [mem 0x8ad14000-0x8bffffff]
[    1.352864] e820: reserve RAM buffer [mem 0x8ad69000-0x8bffffff]
[    1.352866] e820: reserve RAM buffer [mem 0x8ae3a000-0x8bffffff]
[    1.352867] e820: reserve RAM buffer [mem 0x8aece000-0x8bffffff]
[    1.352869] e820: reserve RAM buffer [mem 0x8af92000-0x8bffffff]
[    1.352870] e820: reserve RAM buffer [mem 0x8b000000-0x8bffffff]
[    1.352871] e820: reserve RAM buffer [mem 0x46f600000-0x46fffffff]
[    1.352981] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    1.352986] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    1.356018] Switched to clocksource hpet
[    1.359553] pnp: PnP ACPI init
[    1.359737] system 00:00: [mem 0xfed00000-0xfed003ff] has been reserved
[    1.359740] system 00:00: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    1.359773] system 00:01: [io  0x1000-0x100f] has been reserved
[    1.359775] system 00:01: [io  0x0400-0x047f] could not be reserved
[    1.359777] system 00:01: [io  0x0500-0x057f] has been reserved
[    1.359778] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.359797] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    1.359843] pnp 00:03: Plug and Play ACPI device, IDs APP000b (active)
[    1.359956] system 00:04: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    1.359958] system 00:04: [mem 0xfed10000-0xfed17fff] has been reserved
[    1.359959] system 00:04: [mem 0xfed18000-0xfed18fff] has been reserved
[    1.359961] system 00:04: [mem 0xfed19000-0xfed19fff] has been reserved
[    1.359963] system 00:04: [mem 0xe0000000-0xefffffff] could not be reserved
[    1.359964] system 00:04: [mem 0xfed20000-0xfed3ffff] has been reserved
[    1.359965] system 00:04: [mem 0xfed90000-0xfed93fff] has been reserved
[    1.359967] system 00:04: [mem 0xfed45000-0xfed8ffff] has been reserved
[    1.359968] system 00:04: [mem 0xff000000-0xffffffff] could not be reserved
[    1.359970] system 00:04: [mem 0xfee00000-0xfeefffff] has been reserved
[    1.359972] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    1.362329] system 00:05: [mem 0x20000000-0x201fffff] has been reserved
[    1.362331] system 00:05: [mem 0x40000000-0x401fffff] could not be reserved
[    1.362333] system 00:05: Plug and Play ACPI device, IDs PNP0c01 (active)
[    1.362340] pnp: PnP ACPI: found 6 devices
[    1.368771] pci 0000:0a:00.0: can't claim BAR 6 [mem 0xffff0000-0xffffffff pref]: no compatible bridge window
[    1.368774] pci 0000:03:00.0: can't claim BAR 6 [mem 0xfffff800-0xffffffff pref]: no compatible bridge window
[    1.368799] pci 0000:09:00.0: bridge window [io  0x1000-0x0fff] to [bus 0a] add_size 1000
[    1.368813] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.368815] pci 0000:08:00.0: bridge window [io  0x1000-0x0fff] to [bus 09-0a] add_size 1000
[    1.368830] pci 0000:06:05.0: bridge window [io  0x1000-0x0fff] to [bus 6a] add_size 1000
[    1.368832] pci 0000:06:05.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6a] add_size 200000
[    1.368838] pci 0000:06:06.0: bridge window [io  0x1000-0x0fff] to [bus 6b] add_size 1000
[    1.368839] pci 0000:06:06.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 6b] add_size 200000
[    1.368879] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.368882] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    1.368884] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xc10fffff]
[    1.368886] pci 0000:00:01.0:   bridge window [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.368890] pci 0000:06:05.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.368892] pci 0000:06:06.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    1.368893] pci 0000:06:05.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.368895] pci 0000:06:06.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.368899] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.368900] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.368903] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.368904] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.368906] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.368907] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.368908] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.368910] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.368912] pci 0000:06:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.368914] pci 0000:06:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.368915] pci 0000:06:06.0: BAR 13: no space for [io  size 0x1000]
[    1.368917] pci 0000:06:06.0: BAR 13: failed to assign [io  size 0x1000]
[    1.368919] pci 0000:06:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[    1.368920] pci 0000:06:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[    1.368922] pci 0000:06:05.0: BAR 13: no space for [io  size 0x1000]
[    1.368923] pci 0000:06:05.0: BAR 13: failed to assign [io  size 0x1000]
[    1.368924] pci 0000:06:00.0: PCI bridge to [bus 07]
[    1.368928] pci 0000:06:00.0:   bridge window [mem 0xc1f00000-0xc1ffffff]
[    1.368934] pci 0000:08:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.368936] pci 0000:08:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.368938] pci 0000:09:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    1.368939] pci 0000:09:00.0: BAR 13: assigned [io  0x4000-0x4fff]
[    1.368941] pci 0000:0a:00.0: BAR 6: assigned [mem 0xc2000000-0xc200ffff pref]
[    1.368943] pci 0000:09:00.0: PCI bridge to [bus 0a]
[    1.368946] pci 0000:09:00.0:   bridge window [io  0x4000-0x4fff]
[    1.368953] pci 0000:09:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.368958] pci 0000:09:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368967] pci 0000:08:00.0: PCI bridge to [bus 09-0a]
[    1.368971] pci 0000:08:00.0:   bridge window [io  0x4000-0x4fff]
[    1.368978] pci 0000:08:00.0:   bridge window [mem 0xc2000000-0xc20fffff]
[    1.368983] pci 0000:08:00.0:   bridge window [mem 0xce100000-0xce1fffff 64bit pref]
[    1.368992] pci 0000:06:03.0: PCI bridge to [bus 08-38]
[    1.368994] pci 0000:06:03.0:   bridge window [io  0x4000-0x4fff]
[    1.368997] pci 0000:06:03.0:   bridge window [mem 0xc2000000-0xc60fffff]
[    1.369000] pci 0000:06:03.0:   bridge window [mem 0xce100000-0xd21fffff 64bit pref]
[    1.369004] pci 0000:06:04.0: PCI bridge to [bus 39-69]
[    1.369006] pci 0000:06:04.0:   bridge window [io  0x5000-0x5fff]
[    1.369009] pci 0000:06:04.0:   bridge window [mem 0xc6100000-0xca0fffff]
[    1.369012] pci 0000:06:04.0:   bridge window [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.369016] pci 0000:06:05.0: PCI bridge to [bus 6a]
[    1.369020] pci 0000:06:05.0:   bridge window [mem 0xc1e00000-0xc1efffff]
[    1.369025] pci 0000:06:06.0: PCI bridge to [bus 6b]
[    1.369029] pci 0000:06:06.0:   bridge window [mem 0xc1d00000-0xc1dfffff]
[    1.369034] pci 0000:05:00.0: PCI bridge to [bus 06-6b]
[    1.369036] pci 0000:05:00.0:   bridge window [io  0x4000-0x5fff]
[    1.369040] pci 0000:05:00.0:   bridge window [mem 0xc1d00000-0xca0fffff]
[    1.369042] pci 0000:05:00.0:   bridge window [mem 0xce100000-0xd61fffff 64bit pref]
[    1.369046] pci 0000:00:01.1: PCI bridge to [bus 05-6b]
[    1.369048] pci 0000:00:01.1:   bridge window [io  0x4000-0x6fff]
[    1.369050] pci 0000:00:01.1:   bridge window [mem 0xc1d00000-0xce0fffff]
[    1.369052] pci 0000:00:01.1:   bridge window [mem 0xce100000-0xda1fffff 64bit pref]
[    1.369055] pci 0000:00:01.2: PCI bridge to [bus 02]
[    1.369059] pci 0000:00:01.2:   bridge window [mem 0xc1b00000-0xc1bfffff]
[    1.369067] pci 0000:03:00.0: BAR 6: assigned [mem 0xc1a00000-0xc1a007ff pref]
[    1.369068] pci 0000:00:1c.0: PCI bridge to [bus 03]
[    1.369078] pci 0000:00:1c.0:   bridge window [mem 0xc1a00000-0xc1afffff]
[    1.369082] pci 0000:00:1c.0:   bridge window [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.369091] pci 0000:00:1c.1: PCI bridge to [bus 04]
[    1.369097] pci 0000:00:1c.1:   bridge window [mem 0xc1900000-0xc19fffff]
[    1.369108] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    1.369110] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    1.369111] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    1.369113] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
[    1.369114] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
[    1.369115] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
[    1.369116] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
[    1.369118] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
[    1.369119] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
[    1.369120] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
[    1.369122] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
[    1.369123] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
[    1.369124] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
[    1.369125] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
[    1.369127] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
[    1.369128] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
[    1.369129] pci_bus 0000:00: resource 20 [mem 0x8fa00000-0xfeafffff]
[    1.369130] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
[    1.369132] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    1.369133] pci_bus 0000:01: resource 1 [mem 0xc0000000-0xc10fffff]
[    1.369134] pci_bus 0000:01: resource 2 [mem 0x90000000-0xa1ffffff 64bit pref]
[    1.369136] pci_bus 0000:05: resource 0 [io  0x4000-0x6fff]
[    1.369137] pci_bus 0000:05: resource 1 [mem 0xc1d00000-0xce0fffff]
[    1.369138] pci_bus 0000:05: resource 2 [mem 0xce100000-0xda1fffff 64bit pref]
[    1.369140] pci_bus 0000:06: resource 0 [io  0x4000-0x5fff]
[    1.369141] pci_bus 0000:06: resource 1 [mem 0xc1d00000-0xca0fffff]
[    1.369142] pci_bus 0000:06: resource 2 [mem 0xce100000-0xd61fffff 64bit pref]
[    1.369144] pci_bus 0000:07: resource 1 [mem 0xc1f00000-0xc1ffffff]
[    1.369145] pci_bus 0000:08: resource 0 [io  0x4000-0x4fff]
[    1.369146] pci_bus 0000:08: resource 1 [mem 0xc2000000-0xc60fffff]
[    1.369148] pci_bus 0000:08: resource 2 [mem 0xce100000-0xd21fffff 64bit pref]
[    1.369149] pci_bus 0000:09: resource 0 [io  0x4000-0x4fff]
[    1.369150] pci_bus 0000:09: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.369151] pci_bus 0000:09: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.369153] pci_bus 0000:0a: resource 0 [io  0x4000-0x4fff]
[    1.369154] pci_bus 0000:0a: resource 1 [mem 0xc2000000-0xc20fffff]
[    1.369155] pci_bus 0000:0a: resource 2 [mem 0xce100000-0xce1fffff 64bit pref]
[    1.369157] pci_bus 0000:39: resource 0 [io  0x5000-0x5fff]
[    1.369158] pci_bus 0000:39: resource 1 [mem 0xc6100000-0xca0fffff]
[    1.369159] pci_bus 0000:39: resource 2 [mem 0xd2200000-0xd61fffff 64bit pref]
[    1.369160] pci_bus 0000:6a: resource 1 [mem 0xc1e00000-0xc1efffff]
[    1.369162] pci_bus 0000:6b: resource 1 [mem 0xc1d00000-0xc1dfffff]
[    1.369163] pci_bus 0000:02: resource 1 [mem 0xc1b00000-0xc1bfffff]
[    1.369165] pci_bus 0000:03: resource 1 [mem 0xc1a00000-0xc1afffff]
[    1.369166] pci_bus 0000:03: resource 2 [mem 0xc1800000-0xc18fffff 64bit pref]
[    1.369167] pci_bus 0000:04: resource 1 [mem 0xc1900000-0xc19fffff]
[    1.369188] NET: Registered protocol family 2
[    1.369343] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    1.369551] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    1.369647] TCP: Hash tables configured (established 131072 bind 65536)
[    1.369660] TCP: reno registered
[    1.369675] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    1.369720] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    1.369786] NET: Registered protocol family 1
[    1.369804] pci 0000:00:02.0: calling pci_fixup_video+0x0/0x160
[    1.369806] pci 0000:00:02.0: Video device with shadowed ROM
[    1.369811] pci 0000:00:14.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.369819] pci 0000:00:14.0: enabling device (0000 -> 0002)
[    1.369871] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.369872] pci 0000:00:14.0: PCI INT A: no GSI
[    1.369952] pci 0000:00:14.0: can't derive routing for PCI INT A
[    1.369963] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.370084] pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x6e0
[    1.370200] pci 0000:01:00.0: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.370219] pci 0000:01:00.0: calling pci_fixup_video+0x0/0x160
[    1.370222] pci 0000:01:00.1: calling nv_msi_ht_cap_quirk_leaf+0x0/0x30
[    1.370232] PCI: CLS mismatch (256 != 128), using 64 bytes
[    1.370272] Unpacking initramfs...
[    1.522865] Freeing initrd memory: 9908K (ffff880036c96000 - ffff880037643000)
[    1.522873] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.522875] software IO TLB [mem 0x81c68000-0x85c68000] (64MB) mapped at [ffff880081c68000-ffff880085c67fff]
[    1.523215] RAPL PMU detected, hw unit 2^-16 Joules, API unit is 2^-32 Joules, 3 fixed counters 163840 ms ovfl timer
[    1.523258] Scanning for low memory corruption every 60 seconds
[    1.523516] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    1.523545] audit: initializing netlink subsys (disabled)
[    1.523557] audit: type=2000 audit(1408736345.519:1): initialized
[    1.523833] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.524894] zpool: loaded
[    1.524897] zbud: loaded
[    1.525054] VFS: Disk quotas dquot_6.5.2
[    1.525081] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.525180] msgmni has been set to 31915
[    1.525227] Key type big_key registered
[    1.525477] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.525528] io scheduler noop registered
[    1.525529] io scheduler deadline registered
[    1.525552] io scheduler cfq registered (default)
[    1.525677] pcieport 0000:00:01.0: irq 24 for MSI/MSI-X
[    1.525761] pcieport 0000:00:01.1: irq 25 for MSI/MSI-X
[    1.525795] pcieport 0000:00:01.2: enabling device (0000 -> 0002)
[    1.525846] pcieport 0000:00:01.2: enabling bus mastering
[    1.525859] pcieport 0000:00:01.2: irq 26 for MSI/MSI-X
[    1.526207] pcieport 0000:05:00.0: irq 27 for MSI/MSI-X
[    1.526301] pcieport 0000:06:00.0: irq 28 for MSI/MSI-X
[    1.526395] pcieport 0000:06:03.0: irq 29 for MSI/MSI-X
[    1.526497] pcieport 0000:06:04.0: irq 30 for MSI/MSI-X
[    1.526566] pcieport 0000:06:05.0: enabling device (0000 -> 0002)
[    1.526596] pcieport 0000:06:05.0: enabling bus mastering
[    1.526607] pcieport 0000:06:05.0: irq 31 for MSI/MSI-X
[    1.526676] pcieport 0000:06:06.0: enabling device (0000 -> 0002)
[    1.526705] pcieport 0000:06:06.0: enabling bus mastering
[    1.526715] pcieport 0000:06:06.0: irq 32 for MSI/MSI-X
[    1.526841] pcieport 0000:08:00.0: irq 33 for MSI/MSI-X
[    1.527024] pcieport 0000:09:00.0: irq 34 for MSI/MSI-X
[    1.527169] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.527258] pciehp 0000:06:03.0:pcie24: Slot #3 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.527285] pci_bus 0000:08: dev 00, created physical slot 3-1
[    1.925858] pciehp 0000:06:03.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    1.925869] pciehp 0000:06:03.0:pcie24: service driver pciehp loaded
[    1.925897] pciehp 0000:06:04.0:pcie24: Slot #4 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    1.925926] pci_bus 0000:39: dev 00, created physical slot 4-1
[    2.325727] pciehp 0000:06:04.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.325735] pciehp 0000:06:04.0:pcie24: service driver pciehp loaded
[    2.325749] pciehp 0000:06:05.0:pcie24: Slot #5 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.325782] pci_bus 0000:6a: dev 00, created physical slot 5-1
[    2.525663] tsc: Refined TSC clocksource calibration: 2693.888 MHz
[    2.725601] pciehp 0000:06:05.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    2.725609] pciehp 0000:06:05.0:pcie24: service driver pciehp loaded
[    2.725632] pciehp 0000:06:06.0:pcie24: Slot #6 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    2.725654] pci_bus 0000:6b: dev 00, created physical slot 6
[    3.125473] pciehp 0000:06:06.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.125481] pciehp 0000:06:06.0:pcie24: service driver pciehp loaded
[    3.125509] pciehp 0000:09:00.0:pcie24: Slot #9 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl- LLActRep+
[    3.125529] pci_bus 0000:0a: dev 00, created physical slot 9
[    3.525356] pciehp 0000:09:00.0:pcie24: Timeout on hotplug command 0x00000000 (issued 0 msec ago)
[    3.525385] pciehp 0000:09:00.0:pcie24: service driver pciehp loaded
[    3.525395] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    3.525415] Switched to clocksource tsc
[    3.526164] efifb: probing for efifb
[    3.526191] efifb: framebuffer at 0x90020000, mapped to 0xffffc9000b800000, using 28800k, total 28800k
[    3.526192] efifb: mode is 2880x1800x32, linelength=16384, pages=1
[    3.526193] efifb: scrolling: redraw
[    3.526194] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    3.540950] Console: switching to colour frame buffer device 360x112
[    3.555547] fb0: EFI VGA frame buffer device
[    3.555554] intel_idle: MWAIT substates: 0x21120
[    3.555555] intel_idle: v0.4 model 0x3A
[    3.555556] intel_idle: lapic_timer_reliable_states 0xffffffff
[    3.555812] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.555849] ACPI: AC Adapter [ADP1] (on-line)
[    3.555915] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    3.555925] ACPI: Lid Switch [LID0]
[    3.555952] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    3.555955] ACPI: Power Button [PWRB]
[    3.555980] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    3.555982] ACPI: Sleep Button [SLPB]
[    3.556008] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    3.556009] ACPI: Power Button [PWRF]
[    3.557803] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    3.558110] hpet: probe of PNP0103:00 failed with error -22
[    3.558118] Linux agpgart interface v0.103
[    3.558189] rtc_cmos 00:02: RTC can wake from S4
[    3.558309] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.558340] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    3.558348] Intel P-state driver initializing.
[    3.558357] Intel pstate controlling: cpu 0
[    3.558373] Intel pstate controlling: cpu 1
[    3.558384] Intel pstate controlling: cpu 2
[    3.558395] Intel pstate controlling: cpu 3
[    3.558410] Intel pstate controlling: cpu 4
[    3.558420] Intel pstate controlling: cpu 5
[    3.558430] Intel pstate controlling: cpu 6
[    3.558440] Intel pstate controlling: cpu 7
[    3.558476] EFI Variables Facility v0.08 2004-May-17
[    3.649533] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    3.649537] ACPI: Battery Slot [BAT0] (battery present)
[    3.791549] pstore: Registered efi as persistent store backend
[    3.791560] drop_monitor: Initializing network drop monitor service
[    3.791601] TCP: cubic registered
[    3.791680] NET: Registered protocol family 10
[    3.791824] NET: Registered protocol family 17
[    3.791830] Key type dns_resolver registered
[    3.792260] registered taskstats version 1
[    3.792998]   Magic number: 10:813:698
[    3.793089] rtc_cmos 00:02: setting system clock to 2014-08-22 19:39:08 UTC (1408736348)
[    3.793136] PM: Checking hibernation image partition /dev/sda5
[    3.793138] PM: Hibernation image not present or could not be loaded.
[    3.793590] Freeing unused kernel memory: 976K (ffffffff818d4000 - ffffffff819c8000)
[    3.793591] Write protecting the kernel read-only data: 8192k
[    3.795837] Freeing unused kernel memory: 1404K (ffff8800014a1000 - ffff880001600000)
[    3.796635] Freeing unused kernel memory: 512K (ffff880001780000 - ffff880001800000)
[    3.800875] random: systemd-tmpfile urandom read with 11 bits of entropy available
[    3.801677] systemd-udevd[88]: starting version 215
[    3.803186] [drm] Initialized drm 1.1.0 20060810
[    3.804158] wmi: Mapper loaded
[    3.808073] ACPI Warning: \_SB_.PCI0.IGPU._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    3.808083] ACPI: \_SB_.PCI0.IGPU: failed to evaluate _DSM
[    3.808094] ACPI Warning: \_SB_.PCI0.P0P2.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20140724/nsarguments-95)
[    3.808100] ACPI: \_SB_.PCI0.P0P2.GFX0: failed to evaluate _DSM
[    3.808111] checking generic (90020000 1c20000) vs hw (90000000 10000000)
[    3.808112] fb: switching to nouveaufb from EFI VGA
[    3.808126] Console: switching to colour dummy device 80x25
[    3.808277] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
[    3.808455] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e7150a2
[    3.808457] nouveau  [  DEVICE][0000:01:00.0] Chipset: GK107 (NVE7)
[    3.808458] nouveau  [  DEVICE][0000:01:00.0] Family : NVE0
[    3.808467] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
[    3.894871] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
[    3.894872] nouveau  [   VBIOS][0000:01:00.0] using image from PRAMIN
[    3.894943] nouveau  [   VBIOS][0000:01:00.0] BIT signature found
[    3.894945] nouveau  [   VBIOS][0000:01:00.0] version 80.07.26.04.01
[    3.895501] nouveau 0000:01:00.0: irq 35 for MSI/MSI-X
[    3.895533] nouveau  [     PMC][0000:01:00.0] MSI interrupts enabled
[    3.895596] nouveau  [     PFB][0000:01:00.0] RAM type: GDDR5
[    3.895597] nouveau  [     PFB][0000:01:00.0] RAM size: 1024 MiB
[    3.895598] nouveau  [     PFB][0000:01:00.0]    ZCOMP: 0 tags
[    3.930324] nouveau  [  PTHERM][0000:01:00.0] FAN control: none / external
[    3.930338] nouveau  [  PTHERM][0000:01:00.0] fan management: automatic
[    3.930348] nouveau  [  PTHERM][0000:01:00.0] internal sensor: yes
[    3.930380] nouveau  [     CLK][0000:01:00.0] 07: core 270-405 MHz memory 838 MHz 
[    3.930424] nouveau  [     CLK][0000:01:00.0] 0a: core 270-900 MHz memory 1560 MHz 
[    3.930455] nouveau  [     CLK][0000:01:00.0] 0e: core 270-900 MHz memory 4000 MHz 
[    3.930476] nouveau  [     CLK][0000:01:00.0] 0f: core 270-900 MHz memory 5016 MHz 
[    3.930618] nouveau  [     CLK][0000:01:00.0] --: core 405 MHz memory 680 MHz 
[    3.954261] [TTM] Zone  kernel: Available graphics memory: 8171710 kiB
[    3.954265] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    3.954267] [TTM] Initializing pool allocator
[    3.954275] [TTM] Initializing DMA pool allocator
[    3.954300] nouveau  [     DRM] VRAM: 1024 MiB
[    3.954301] nouveau  [     DRM] GART: 1048576 MiB
[    3.954303] nouveau  [     DRM] TMDS table version 2.0
[    3.954304] nouveau  [     DRM] DCB version 4.0
[    3.954305] nouveau  [     DRM] DCB outp 00: 048101b6 0f230010
[    3.954306] nouveau  [     DRM] DCB outp 01: 018212d6 0f220020
[    3.954307] nouveau  [     DRM] DCB outp 02: 01021212 00020020
[    3.954308] nouveau  [     DRM] DCB outp 03: 088324c6 0f220010
[    3.954309] nouveau  [     DRM] DCB outp 04: 08032402 00020010
[    3.954310] nouveau  [     DRM] DCB outp 05: 02843862 00020010
[    3.954311] nouveau  [     DRM] DCB conn 00: 00020047
[    3.954312] nouveau  [     DRM] DCB conn 01: 02208146
[    3.954313] nouveau  [     DRM] DCB conn 02: 01104246
[    3.954314] nouveau  [     DRM] DCB conn 03: 00410361
[    3.962059] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.962060] [drm] Driver supports precise vblank timestamp query.
[    3.966892] nouveau  [     DRM] MM: using COPY for buffer copies
[    4.059051] nouveau  [     DRM] allocated 2880x1800 fb: 0x80000, bo ffff880455a1bc00
[    4.711260] Console: switching to colour frame buffer device 360x112
[    4.717648] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    4.717649] nouveau 0000:01:00.0: registered panic notifier
[    4.744949] [drm] Initialized nouveau 1.2.0 20120801 for 0000:01:00.0 on minor 0
[    4.790662] ACPI: bus type USB registered
[    4.790681] usbcore: registered new interface driver usbfs
[    4.790688] usbcore: registered new interface driver hub
[    4.790720] usbcore: registered new device driver usb
[    4.791331] SCSI subsystem initialized
[    4.791544] sdhci: Secure Digital Host Controller Interface driver
[    4.791545] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.791547] sdhci: Copyright(c) Pierre Ossman
[    4.791661] xhci_hcd 0000:00:14.0: can't derive routing for PCI INT A
[    4.791662] xhci_hcd 0000:00:14.0: PCI INT A: no GSI
[    4.791686] ehci-pci: EHCI PCI platform driver
[    4.791689] xhci_hcd 0000:00:14.0: enabling bus mastering
[    4.791695] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.791699] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    4.791769] sdhci-pci 0000:03:00.1: SDHCI controller found [14e4:16bc] (rev 10)
[    4.791824] sdhci-pci 0000:03:00.1: enabling device (0000 -> 0002)
[    4.791835] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    4.791854] xhci_hcd 0000:00:14.0: irq 36 for MSI/MSI-X
[    4.791966] sdhci-pci 0000:03:00.1: enabling bus mastering
[    4.791971] sdhci-pci 0000:03:00.1: No vmmc regulator found
[    4.791973] sdhci-pci 0000:03:00.1: No vqmmc regulator found
[    4.792072] mmc0: SDHCI controller on PCI [0000:03:00.1] using ADMA
[    4.792155] hub 1-0:1.0: USB hub found
[    4.792166] hub 1-0:1.0: 4 ports detected
[    4.792301] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    4.792303] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    4.792399] hub 2-0:1.0: USB hub found
[    4.792409] hub 2-0:1.0: 4 ports detected
[    4.792582] ehci-pci 0000:00:1a.0: enabling bus mastering
[    4.792590] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    4.792594] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 3
[    4.792607] ehci-pci 0000:00:1a.0: debug port 2
[    4.792707] libata version 3.00 loaded.
[    4.796506] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    4.796517] ehci-pci 0000:00:1a.0: irq 23, io mem 0xc1c16c00
[    4.804936] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    4.805037] hub 3-0:1.0: USB hub found
[    4.805041] hub 3-0:1.0: 2 ports detected
[    4.805179] ehci-pci 0000:00:1d.0: enabling bus mastering
[    4.805187] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    4.805190] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[    4.805203] ehci-pci 0000:00:1d.0: debug port 2
[    4.809104] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    4.809115] ehci-pci 0000:00:1d.0: irq 22, io mem 0xc1c16800
[    4.818261] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    4.818363] hub 4-0:1.0: USB hub found
[    4.818366] hub 4-0:1.0: 2 ports detected
[    4.818469] ahci 0000:00:1f.2: version 3.0
[    4.818571] ahci 0000:00:1f.2: irq 37 for MSI/MSI-X
[    4.818608] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1 impl SATA mode
[    4.818609] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems apst 
[    4.819009] scsi host0: ahci
[    4.819108] scsi host1: ahci
[    4.819197] scsi host2: ahci
[    4.819258] scsi host3: ahci
[    4.819308] scsi host4: ahci
[    4.819354] scsi host5: ahci
[    4.819384] ata1: SATA max UDMA/133 abar m2048@0xc1c16000 port 0xc1c16100 irq 37
[    4.819385] ata2: DUMMY
[    4.819386] ata3: DUMMY
[    4.819386] ata4: DUMMY
[    4.819387] ata5: DUMMY
[    4.819388] ata6: DUMMY
[    5.111546] usb 3-1: new high-speed USB device number 2 using ehci-pci
[    5.138175] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    5.138457] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    5.138528] ata1.00: ATA-8: APPLE SSD SD512E, 1027AP, max UDMA/133
[    5.138530] ata1.00: 977105060 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    5.138868] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    5.138940] ata1.00: configured for UDMA/133
[    5.139059] scsi 0:0:0:0: Direct-Access     ATA      APPLE SSD SD512E AP   PQ: 0 ANSI: 5
[    5.140496] sd 0:0:0:0: [sda] 977105060 512-byte logical blocks: (500 GB/465 GiB)
[    5.140498] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    5.140545] sd 0:0:0:0: [sda] Write Protect is off
[    5.140546] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    5.140554] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.144076]  sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
[    5.144718] sd 0:0:0:0: [sda] Attached SCSI disk
[    5.175802] PM: Starting manual resume from disk
[    5.175806] PM: Hibernation image partition 8:5 present
[    5.175807] PM: Looking for hibernation image.
[    5.176004] PM: Image not found (code -22)
[    5.176010] PM: Hibernation image not present or could not be loaded.
[    5.215153] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[    5.236032] hub 3-1:1.0: USB hub found
[    5.236279] hub 3-1:1.0: 6 ports detected
[    5.341613] usb 4-1: new high-speed USB device number 2 using ehci-pci
[    5.465749] hub 4-1:1.0: USB hub found
[    5.465937] hub 4-1:1.0: 8 ports detected
[    5.534876] usb 3-1.1: new high-speed USB device number 3 using ehci-pci
[    5.738045] usb 4-1.8: new high-speed USB device number 3 using ehci-pci
[    5.828515] hub 4-1.8:1.0: USB hub found
[    5.828644] hub 4-1.8:1.0: 2 ports detected
[    6.051828] systemd[1]: Cannot add dependency job for unit hddtemp.service, ignoring: Unit hddtemp.service failed to load: No such file or directory.
[    6.084434] EXT4-fs (sda7): re-mounted. Opts: data=ordered,discard
[    6.108015] usb 4-1.8.1: new full-speed USB device number 4 using ehci-pci
[    6.116517] systemd-udevd[198]: starting version 215
[    6.207903] hub 4-1.8.1:1.0: USB hub found
[    6.208232] hub 4-1.8.1:1.0: 3 ports detected
[    6.288064] usb 4-1.8.2: new full-speed USB device number 5 using ehci-pci
[    6.417281] apple_gmux: Found gmux version 3.2.19 [indexed]
[    6.425104] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20140724/utaddress-258)
[    6.425109] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.425114] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.425116] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.425117] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.425118] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.425119] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140724/utaddress-258)
[    6.425121] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.425121] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    6.427265] thunderbolt 0000:07:00.0: irq 38 for MSI/MSI-X
[    6.427323] thunderbolt 0000:07:00.0: NHI initialized, starting thunderbolt
[    6.427338] thunderbolt 0000:07:00.0: allocating TX ring 0 of size 10
[    6.427342] thunderbolt 0000:07:00.0: allocating RX ring 0 of size 10
[    6.427346] thunderbolt 0000:07:00.0: control channel created
[    6.427348] thunderbolt 0000:07:00.0: control channel starting...
[    6.427349] thunderbolt 0000:07:00.0: starting TX ring 0
[    6.427354] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[    6.427356] thunderbolt 0000:07:00.0: starting RX ring 0
[    6.427360] thunderbolt 0000:07:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001)
[    6.427482] thunderbolt 0000:07:00.0: initializing Switch at 0x0 (depth: 0, up port: 5)
[    6.427484] thunderbolt 0000:07:00.0: old switch config:
[    6.427485] thunderbolt 0000:07:00.0:  Switch: 8086:1547 (Revision: 3, TB Version: 1)
[    6.427486] thunderbolt 0000:07:00.0:   Max Port Number: 12
[    6.427487] thunderbolt 0000:07:00.0:   Config:
[    6.427488] thunderbolt 0000:07:00.0:    Upstream Port Number: 5 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 255ms
[    6.427489] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.428039] mei_me 0000:00:16.0: irq 39 for MSI/MSI-X
[    6.430058] input: PC Speaker as /devices/platform/pcspkr/input/input4
[    6.431007] i801_smbus 0000:00:1f.3: enabling device (0000 -> 0003)
[    6.431099] ACPI Warning: SystemIO range 0x000000000000efa0-0x000000000000efbf conflicts with OpRegion 0x000000000000efa0-0x000000000000efaf (\_SB_.PCI0.SBUS.SMBI) (20140724/utaddress-258)
[    6.431104] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    6.432036] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[    6.434475] pps_core: LinuxPPS API ver. 1 registered
[    6.434476] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    6.435196] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[    6.435226] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[    6.435234] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[    6.435244] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[    6.435252] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[    6.435262] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[    6.435271] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[    6.435314] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    6.436384] PTP clock support registered
[    6.442313] iTCO_vendor_support: vendor-support=0
[    6.445707] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    6.445729] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[    6.445944] tg3.c:v3.137 (May 11, 2014)
[    6.449006] hidraw: raw HID events driver (C) Jiri Kosina
[    6.449151] input: bcm5974 as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8/4-1.8.2/4-1.8.2:1.2/input/input5
[    6.449193] usbcore: registered new interface driver bcm5974
[    6.457754] tg3 0000:0a:00.0: enabling device (0000 -> 0002)
[    6.457816] tg3 0000:0a:00.0: enabling bus mastering
[    6.459417] usbcore: registered new interface driver usbhid
[    6.459418] usbhid: USB HID core driver
[    6.460493] AVX version of gcm_enc/dec engaged.
[    6.460495] AES CTR mode by8 optimization enabled
[    6.461066] thunderbolt 0000:07:00.0: 0: uid: 0x1000000000000
[    6.461173] thunderbolt 0000:07:00.0:  Port 0: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.461175] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.461177] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.461178] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.461320] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8/4-1.8.2/4-1.8.2:1.0/0003:05AC:0262.0001/input/input6
[    6.461397] apple 0003:05AC:0262.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input0
[    6.461666] mousedev: PS/2 mouse device common for all mice
[    6.461676] thunderbolt 0000:07:00.0:  Port 1: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.461679] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.461680] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.461682] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.462160] thunderbolt 0000:07:00.0:  Port 2: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.462162] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.462163] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.462164] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.462659] thunderbolt 0000:07:00.0:  Port 3: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.462660] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.462661] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.462662] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.463158] thunderbolt 0000:07:00.0:  Port 4: 8086:1547 (Revision: 3, TB Version: 1, Type: Port (0x1))
[    6.463160] thunderbolt 0000:07:00.0:   Max hop id (in/out): 15/15
[    6.463161] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.463162] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.463258] thunderbolt 0000:07:00.0:  Port 5: 8086:1547 (Revision: 3, TB Version: 1, Type: NHI (0x2))
[    6.463259] thunderbolt 0000:07:00.0:   Max hop id (in/out): 11/11
[    6.463259] thunderbolt 0000:07:00.0:   Max counters: 16
[    6.463260] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463359] thunderbolt 0000:07:00.0:  Port 6: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.463361] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.463362] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463363] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463461] thunderbolt 0000:07:00.0:  Port 7: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.463463] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.463465] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463466] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463563] thunderbolt 0000:07:00.0:  Port 8: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.463565] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.463566] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463568] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463675] thunderbolt 0000:07:00.0:  Port 9: 8086:1547 (Revision: 3, TB Version: 1, Type: PCIe (0x100101))
[    6.463677] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.463679] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463680] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463761] thunderbolt 0000:07:00.0:  Port 10: ffff:ffff (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0102))
[    6.463762] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.463764] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463765] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.463876] thunderbolt 0000:07:00.0:  Port 11: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.463878] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.463880] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463882] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.463962] thunderbolt 0000:07:00.0:  Port 12: 8086:1547 (Revision: 3, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.463964] thunderbolt 0000:07:00.0:   Max hop id (in/out): 9/9
[    6.463965] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.463967] thunderbolt 0000:07:00.0:   NFC Credits: 0xf00000
[    6.464361] thunderbolt 0000:07:00.0: 0:1: is connected, link is up (state: 2)
[    6.464560] thunderbolt 0000:07:00.0: initializing Switch at 0x1 (depth: 1, up port: 1)
[    6.464561] thunderbolt 0000:07:00.0: old switch config:
[    6.464562] thunderbolt 0000:07:00.0:  Switch: 8086:1549 (Revision: 0, TB Version: 1)
[    6.464563] thunderbolt 0000:07:00.0:   Max Port Number: 2
[    6.464564] thunderbolt 0000:07:00.0:   Config:
[    6.464566] thunderbolt 0000:07:00.0:    Upstream Port Number: 1 Depth: 1 Route String: 0x1 Enabled: 1, PlugEventsDelay: 255ms
[    6.464568] thunderbolt 0000:07:00.0:    unknown1: 0x0 unknown4: 0x0
[    6.470929] Adding 8388604k swap on /dev/sda6.  Priority:-1 extents:1 across:8388604k SSFS
[    6.474521] usb 4-1.8.1.1: new full-speed USB device number 6 using ehci-pci
[    6.478230] thunderbolt 0000:07:00.0: 1: reading drom (length: 0x7b)
[    6.493682] applesmc: key=493 fan=2 temp=44 index=43 acc=0 lux=2 kbd=1
[    6.500467] tg3 0000:0a:00.0 eth0: Tigon3 [partno(BCM957762) rev 57766000] (PCI Express) MAC address 40:6c:8f:43:4c:fd
[    6.500471] tg3 0000:0a:00.0 eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[    6.500473] tg3 0000:0a:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    6.500475] tg3 0000:0a:00.0 eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[    6.508291] tg3 0000:0a:00.0 ens9: renamed from eth0
[    6.520671] apple 0003:05AC:0262.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-1.8.2/input1
[    6.521281] systemd-udevd[204]: renamed network interface eth0 to ens9
[    6.533183] random: nonblocking pool is initialized
[    6.534288] systemd-journald[176]: Received request to flush runtime journal from PID 1
[    6.564866] thunderbolt 0000:07:00.0: resetting error on 0:b.
[    6.565001] thunderbolt 0000:07:00.0: resetting error on 0:1.
[    6.565064] thunderbolt 0000:07:00.0: resetting error on 0:c.
[    6.627845] usb 4-1.8.1.2: new full-speed USB device number 7 using ehci-pci
[    6.727303] cfg80211: Calling CRDA to update world regulatory domain
[    6.781188] usb 4-1.8.1.3: new full-speed USB device number 8 using ehci-pci
[    6.807529] thunderbolt 0000:07:00.0: 1: uid: 0x1000200641bb0
[    6.807630] thunderbolt 0000:07:00.0:  Port 0: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.807630] thunderbolt 0000:07:00.0:   Max hop id (in/out): 7/7
[    6.807631] thunderbolt 0000:07:00.0:   Max counters: 8
[    6.807631] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.808125] thunderbolt 0000:07:00.0:  Port 1: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
[    6.808126] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.808126] thunderbolt 0000:07:00.0:   Max counters: 4
[    6.808127] thunderbolt 0000:07:00.0:   NFC Credits: 0x3c00000
[    6.808247] thunderbolt 0000:07:00.0:  Port 2: 8086:1549 (Revision: 0, TB Version: 1, Type: PCIe (0x100102))
[    6.808248] thunderbolt 0000:07:00.0:   Max hop id (in/out): 8/8
[    6.808248] thunderbolt 0000:07:00.0:   Max counters: 2
[    6.808249] thunderbolt 0000:07:00.0:   NFC Credits: 0x700000
[    6.808627] thunderbolt 0000:07:00.0: 0:3: is unplugged (state: 7)
[    6.808924] thunderbolt 0000:07:00.0: 1:2: PCIe port already activated, aborting
[    6.808929] thunderbolt 0000:07:00.0: 0:b: hotplug: scanning
[    6.808930] thunderbolt 0000:07:00.0: 0:b: hotplug: no switch found
[    6.808931] thunderbolt 0000:07:00.0: 0:1: got plug event for connected port, ignoring
[    6.808932] thunderbolt 0000:07:00.0: 0:c: hotplug: scanning
[    6.808932] thunderbolt 0000:07:00.0: 0:c: hotplug: no switch found
[    6.883420] Bluetooth: Core ver 2.19
[    6.883430] NET: Registered protocol family 31
[    6.883431] Bluetooth: HCI device and connection manager initialized
[    6.883436] Bluetooth: HCI socket layer initialized
[    6.883437] Bluetooth: L2CAP socket layer initialized
[    6.883440] input: HID 05ac:820a as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8/4-1.8.1/4-1.8.1.1/4-1.8.1.1:1.0/0003:05AC:820A.0003/input/input7
[    6.883441] Bluetooth: SCO socket layer initialized
[    6.883534] hid-generic 0003:05AC:820A.0003: input,hidraw2: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:1d.0-1.8.1.1/input0
[    6.883625] input: HID 05ac:820b as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8/4-1.8.1/4-1.8.1.2/4-1.8.1.2:1.0/0003:05AC:820B.0004/input/input8
[    6.883747] hid-generic 0003:05AC:820B.0004: input,hidraw3: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:1d.0-1.8.1.2/input0
[    6.888442] usbcore: registered new interface driver btusb
[    6.988351] usb 4-1.8.1.1: USB disconnect, device number 6
[    7.211293] usb 4-1.8.1.2: USB disconnect, device number 7
[    7.211777] tg3 0000:0a:00.0: irq 40 for MSI/MSI-X
[    7.211779] tg3 0000:0a:00.0: irq 41 for MSI/MSI-X
[    7.211780] tg3 0000:0a:00.0: irq 42 for MSI/MSI-X
[    7.211782] tg3 0000:0a:00.0: irq 43 for MSI/MSI-X
[    7.211784] tg3 0000:0a:00.0: irq 44 for MSI/MSI-X
[    7.379068] IPv6: ADDRCONF(NETDEV_UP): ens9: link is not ready
[   10.724856] tg3 0000:0a:00.0 ens9: Link is up at 1000 Mbps, full duplex
[   10.724871] tg3 0000:0a:00.0 ens9: Flow control is on for TX and on for RX
[   10.724875] tg3 0000:0a:00.0 ens9: EEE is enabled
[   10.724915] IPv6: ADDRCONF(NETDEV_CHANGE): ens9: link becomes ready

[-- Attachment #5: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-22 20:30                                       ` Andreas Noever
@ 2014-08-23 11:06                                         ` Bruno Prémont
  2014-08-24 21:09                                             ` Bruno Prémont
  2014-08-24 21:13                                           ` [PATCH 2/2 v2] vgaarb: Drop obsolete #ifndef Bruno Prémont
  0 siblings, 2 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-23 11:06 UTC (permalink / raw)
  To: Andreas Noever
  Cc: dri-devel, Matthew Garrett, Linux PCI, Greg Kroah-Hartman, Bjorn Helgaas

On Fri, 22 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> > For Andreas's system the discrete nvidia GPU has no I/O enabled
> > according to PCI_COMMAND flags while the integrated intel one does have
> > them (that's why the Intel GPU is chosen).
> >
> > Unfortunately I don't know what makes his system choke at boot time as
> > he did not provide logs for the failing case.
> Attached dmesg for the failing case (obtained via ssh).
>
> Without blacklisting a small horizontal bar of vertical green bars
> appears (no x, no console).

It's good to know that it's just the graphics (console / X) that are not
displaying properly.

> If nouveau is blacklisted then I get a console, but X will not start
> (No devices found).

The console you get is EFIFB (on the nvidia GPU to which display is routed).

Here the reason why X does not start is probably that i915 did not find
its VBIOS tables nor any connected monitor and thus X thinks "no active
output => I don't start".
Though your X would be able to start if it did not find xf86-video-intel
(intel_drv.so) and/or did find/had an explicit reference to xf86-video-fbdev
(fbdev_drv.so).

If under OSX you told your system to start on intel GPU (I think there
is an option in this direction) you system would probably boot fine as the
initial choice by vgaarb would match gmux/switcheroo settings.

> If i915 is blacklisted then I do not get a console. The screen just
> freezes after a few boot messages.

This is more interesting.

Initially you had efifb printing kernel logs until nouveau gets loaded
by udev and replaces efifb. From there on possibly applegmux does not
take over correctly (it may need both i915 and nouveau active to properly
route framebuffer to panel or connector).

Though your X should be telling the same thing as for nouveau blacklisted
as nvidia GPU is not the one having boot_vga set...

If not it may be worth finding out in what state your system exactly is
with regards to graphics.

> What is vga_default_device() used for? Is it supposed to hold the
> device that is controlling the (boot) screen? Why can't we just read
> the configuration from vga_switcheroo/gmux?

For systems not using vga_switcheroo:
  vga_default_device represents the PCI GPU that was used to boot (and
  normally handles legacy VGA I/O).
  It's never changed after boot (except eventually when a GPU gets
  hotplugged)

For systems with vga_switcheroo
  vga_default_device represents the active GPU (the one that would be
  handling legacy VGA I/O if used - and the one controlling the output
  connectors)
  vga_switcheroo is actively changing vga_default_device.


gmux is a driver for vga_switcheroo to perform the low-level platform
operations allowing switching (outputs) from one GPU to the other.


So a guess on my side would be that with both i915 and nouveau loaded
you may be able to get your display working if you can tell X to
switch GPU twice (and thus end up with matching vga_default_device
and device selected by gmux) - though I don't know how one asks for this
switch to happen.

> > If there is no better way to detect the proper legacy VGA device the
> > only remaining option would be to perform the screen_info testing in
> > vga_arb_device_init() enclosed in arch #ifdef...

I will propose a patch in this direction later this weekend.

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-08-23 11:06                                         ` Bruno Prémont
@ 2014-08-24 21:09                                             ` Bruno Prémont
  2014-08-24 21:13                                           ` [PATCH 2/2 v2] vgaarb: Drop obsolete #ifndef Bruno Prémont
  1 sibling, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-24 21:09 UTC (permalink / raw)
  To: Andreas Noever
  Cc: dri-devel, Matthew Garrett, Linux PCI, Greg Kroah-Hartman, Bjorn Helgaas

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

For dual-GPU Apple computers above change represents a regression as
code in efifb did forcefully override vga_default_device while the
merge did not (vgaarb happens prior to PCI fixup).

To improve on initial device selection by vgaarb (it cannot know if
PCI device not behind bridges see/decode legacy VGA I/O or not), move
the screen_info based check from pci_video_fixup to vgaarb's init
function and use it to refine/override decision taken while adding
the individual PCI VGA devices.
This way PCI fixup has no reason to adjust vga_default_device
anymore but can depend on its value for flagging shadowed VBIOS.

This has the nice benefit of removing duplicated code but does
introduce a #if defined() block in vgaarb.
Not all architectures have screen_info and would cause compile to
fail without it.

Reported-By: Andreas Noever <andreas.noever@gmail.com>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
Andreas, does this work properly for you, including the improvement
on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?


Other arches using PCI and vgaarb that have screen_info may want
to be added to the #if defined() block or even introduce a new
CONFIG_HAVE_SCREEN_INFO or similar...


 arch/ia64/pci/fixup.c    | 24 +-----------------------
 arch/x86/pci/fixup.c     | 24 +-----------------------
 drivers/gpu/vga/vgaarb.c | 38 +++++++++++++++++++++++++++++++++++++-
 3 files changed, 39 insertions(+), 47 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index ec73b2c..fc505d5 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -38,27 +38,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
@@ -83,8 +62,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..9a2b710 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -326,27 +326,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
@@ -371,8 +350,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..cffdff9 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -41,6 +41,7 @@
 #include <linux/poll.h>
 #include <linux/miscdevice.h>
 #include <linux/slab.h>
+#include <linux/screen_info.h>
 
 #include <linux/uaccess.h>
 
@@ -585,8 +586,11 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	 */
 #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
-	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
+	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
+		pr_info("vgaarb: setting as boot device: PCI:%s\n",
+			pci_name(pdev));
 		vga_set_default_device(pdev);
+	}
 #endif
 
 	vga_arbiter_check_bridge_sharing(vgadev);
@@ -1320,6 +1324,38 @@ static int __init vga_arb_device_init(void)
 	pr_info("vgaarb: loaded\n");
 
 	list_for_each_entry(vgadev, &vga_list, list) {
+#if defined(CONFIG_X86) || defined(CONFIG_IA64)
+		/* Override I/O based detection done by vga_arbiter_add_pci_device()
+		 * as it may take the wrong device (e.g. on Apple system under EFI).
+		 *
+		 * Select the device owning the boot framebuffer if there is one.
+		 */
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(vgadev->pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(vgadev->pdev, i);
+			end  = pci_resource_end(vgadev->pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base < start ||
+			    (screen_info.lfb_base + screen_info.lfb_size) >= end)
+				continue;
+			if (!vga_default_device())
+				pr_info("vgaarb: setting as boot device: PCI:%s\n",
+					pci_name(vgadev->pdev));
+			else if (vgadev->pdev != vga_default_device())
+				pr_info("vgaarb: overriding boot device: PCI:%s\n",
+					pci_name(vgadev->pdev));
+			vga_set_default_device(vgadev->pdev);
+		}
+#endif
 		if (vgadev->bridge_has_one_vga)
 			pr_info("vgaarb: bridge control possible %s\n", pci_name(vgadev->pdev));
 		else
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
@ 2014-08-24 21:09                                             ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-24 21:09 UTC (permalink / raw)
  To: Andreas Noever
  Cc: Bjorn Helgaas, Matthew Garrett, Greg Kroah-Hartman, dri-devel, Linux PCI

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

For dual-GPU Apple computers above change represents a regression as
code in efifb did forcefully override vga_default_device while the
merge did not (vgaarb happens prior to PCI fixup).

To improve on initial device selection by vgaarb (it cannot know if
PCI device not behind bridges see/decode legacy VGA I/O or not), move
the screen_info based check from pci_video_fixup to vgaarb's init
function and use it to refine/override decision taken while adding
the individual PCI VGA devices.
This way PCI fixup has no reason to adjust vga_default_device
anymore but can depend on its value for flagging shadowed VBIOS.

This has the nice benefit of removing duplicated code but does
introduce a #if defined() block in vgaarb.
Not all architectures have screen_info and would cause compile to
fail without it.

Reported-By: Andreas Noever <andreas.noever@gmail.com>
CC: Matthew Garrett <matthew.garrett@nebula.com>
CC: stable@vger.kernel.org # v3.5+
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
---
Andreas, does this work properly for you, including the improvement
on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?


Other arches using PCI and vgaarb that have screen_info may want
to be added to the #if defined() block or even introduce a new
CONFIG_HAVE_SCREEN_INFO or similar...


 arch/ia64/pci/fixup.c    | 24 +-----------------------
 arch/x86/pci/fixup.c     | 24 +-----------------------
 drivers/gpu/vga/vgaarb.c | 38 +++++++++++++++++++++++++++++++++++++-
 3 files changed, 39 insertions(+), 47 deletions(-)

diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
index ec73b2c..fc505d5 100644
--- a/arch/ia64/pci/fixup.c
+++ b/arch/ia64/pci/fixup.c
@@ -38,27 +38,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		return;
 	/* Maybe, this machine supports legacy memory map. */
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
@@ -83,8 +62,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index c61ea57..9a2b710 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -326,27 +326,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
 	struct pci_bus *bus;
 	u16 config;
 
-	if (!vga_default_device()) {
-		resource_size_t start, end;
-		int i;
-
-		/* Does firmware framebuffer belong to us? */
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
-				continue;
-
-			start = pci_resource_start(pdev, i);
-			end  = pci_resource_end(pdev, i);
-
-			if (!start || !end)
-				continue;
-
-			if (screen_info.lfb_base >= start &&
-			    (screen_info.lfb_base + screen_info.lfb_size) < end)
-				vga_set_default_device(pdev);
-		}
-	}
-
 	/* Is VGA routed to us? */
 	bus = pdev->bus;
 	while (bus) {
@@ -371,8 +350,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
 		pci_read_config_word(pdev, PCI_COMMAND, &config);
 		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
-			dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
-			vga_set_default_device(pdev);
+			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
 		}
 	}
 }
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index d2077f0..cffdff9 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -41,6 +41,7 @@
 #include <linux/poll.h>
 #include <linux/miscdevice.h>
 #include <linux/slab.h>
+#include <linux/screen_info.h>
 
 #include <linux/uaccess.h>
 
@@ -585,8 +586,11 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	 */
 #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
-	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
+	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
+		pr_info("vgaarb: setting as boot device: PCI:%s\n",
+			pci_name(pdev));
 		vga_set_default_device(pdev);
+	}
 #endif
 
 	vga_arbiter_check_bridge_sharing(vgadev);
@@ -1320,6 +1324,38 @@ static int __init vga_arb_device_init(void)
 	pr_info("vgaarb: loaded\n");
 
 	list_for_each_entry(vgadev, &vga_list, list) {
+#if defined(CONFIG_X86) || defined(CONFIG_IA64)
+		/* Override I/O based detection done by vga_arbiter_add_pci_device()
+		 * as it may take the wrong device (e.g. on Apple system under EFI).
+		 *
+		 * Select the device owning the boot framebuffer if there is one.
+		 */
+		resource_size_t start, end;
+		int i;
+
+		/* Does firmware framebuffer belong to us? */
+		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+			if (!(pci_resource_flags(vgadev->pdev, i) & IORESOURCE_MEM))
+				continue;
+
+			start = pci_resource_start(vgadev->pdev, i);
+			end  = pci_resource_end(vgadev->pdev, i);
+
+			if (!start || !end)
+				continue;
+
+			if (screen_info.lfb_base < start ||
+			    (screen_info.lfb_base + screen_info.lfb_size) >= end)
+				continue;
+			if (!vga_default_device())
+				pr_info("vgaarb: setting as boot device: PCI:%s\n",
+					pci_name(vgadev->pdev));
+			else if (vgadev->pdev != vga_default_device())
+				pr_info("vgaarb: overriding boot device: PCI:%s\n",
+					pci_name(vgadev->pdev));
+			vga_set_default_device(vgadev->pdev);
+		}
+#endif
 		if (vgadev->bridge_has_one_vga)
 			pr_info("vgaarb: bridge control possible %s\n", pci_name(vgadev->pdev));
 		else
-- 
1.8.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* [PATCH 2/2 v2] vgaarb: Drop obsolete #ifndef
  2014-08-23 11:06                                         ` Bruno Prémont
  2014-08-24 21:09                                             ` Bruno Prémont
@ 2014-08-24 21:13                                           ` Bruno Prémont
  1 sibling, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-24 21:13 UTC (permalink / raw)
  To: Andreas Noever
  Cc: dri-devel, Matthew Garrett, Linux PCI, Greg Kroah-Hartman, Bjorn Helgaas

With commit 20cde694027e boot video device detection was moved from
efifb to x86 and ia64 pci/fixup.c.

Remove the left-over #ifndef check that will allways match since
the corresponding arch-specific define is gone with above patch.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
CC: Matthew Garrett <matthew.garrett@nebula.com>
---

No fundamental change from previous iteration, just reversed the
patch ordering and dropped the stable@ tag as this is just clean-up.


 drivers/gpu/vga/vgaarb.c | 8 --------
 include/linux/vgaarb.h   | 2 --
 2 files changed, 10 deletions(-)

diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index cffdff9..fb28314 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -113,10 +113,8 @@ both:
 	return 1;
 }
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 /* this is only used a cookie - it should not be dereferenced */
 static struct pci_dev *vga_default;
-#endif
 
 static void vga_arb_device_card_gone(struct pci_dev *pdev);
 
@@ -132,7 +130,6 @@ static struct vga_device *vgadev_find(struct pci_dev *pdev)
 }
 
 /* Returns the default VGA device (vgacon's babe) */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 struct pci_dev *vga_default_device(void)
 {
 	return vga_default;
@@ -148,7 +145,6 @@ void vga_set_default_device(struct pci_dev *pdev)
 	pci_dev_put(vga_default);
 	vga_default = pci_dev_get(pdev);
 }
-#endif
 
 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state)
 {
@@ -584,14 +580,12 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
 	/* Deal with VGA default device. Use first enabled one
 	 * by default if arch doesn't have it's own hook
 	 */
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == NULL &&
 	    ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
 		pr_info("vgaarb: setting as boot device: PCI:%s\n",
 			pci_name(pdev));
 		vga_set_default_device(pdev);
 	}
-#endif
 
 	vga_arbiter_check_bridge_sharing(vgadev);
 
@@ -625,10 +619,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
 		goto bail;
 	}
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 	if (vga_default == pdev)
 		vga_set_default_device(NULL);
-#endif
 
 	if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
 		vga_decode_count--;
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h
index 2c02f3a..c37bd4d 100644
--- a/include/linux/vgaarb.h
+++ b/include/linux/vgaarb.h
@@ -182,7 +182,6 @@ extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
  *     vga_get()...
  */
 
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
 #ifdef CONFIG_VGA_ARB
 extern struct pci_dev *vga_default_device(void);
 extern void vga_set_default_device(struct pci_dev *pdev);
@@ -190,7 +189,6 @@ extern void vga_set_default_device(struct pci_dev *pdev);
 static inline struct pci_dev *vga_default_device(void) { return NULL; };
 static inline void vga_set_default_device(struct pci_dev *pdev) { };
 #endif
-#endif
 
 /**
  *     vga_conflicts
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-22  6:23                                     ` Bruno Prémont
@ 2014-08-25 12:16                                         ` Daniel Vetter
  2014-08-25 12:16                                         ` Daniel Vetter
  1 sibling, 0 replies; 62+ messages in thread
From: Daniel Vetter @ 2014-08-25 12:16 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Bjorn Helgaas, Matthew Garrett, Linux PCI, DRI mailing list,
	Greg Kroah-Hartman, Andreas Noever

On Fri, Aug 22, 2014 at 08:23:24AM +0200, Bruno Prémont wrote:
> On Thu, 21 Aug 2014 23:39:31 -0500 Bjorn Helgaas wrote:
> > On Thu, Aug 21, 2014 at 4:34 PM, Bruno Prémont wrote:
> > 
> > > A second step would then be to tune vgaarb's initial selection.
> > > Bjorn, is it possible to verify which I/O ports are decoded by a PCI
> > > device at the time of adding it to vgaarb? If so, how? I would like to
> > > check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
> > > a device as default if that I/O range is decoded by the device.
> > 
> > I don't know of a way.  I'm pretty sure VGA devices are allowed to
> > respond to those legacy addresses even if there's no BAR for them, but
> > I haven't found a spec reference for this.  There is the VGA Enable
> > bit in bridges, of course (PCI Bridge spec, sec 12.1.1.  If the VGA
> > device is behind a bridge that doesn't have the VGA Enable bit set, it
> > probably isn't the default device.
> 
> Those VGA devices behind bridges are the easy ones that vgaarb selects
> properly.
> It's the ones not behind a bridge (integrated graphics) like the intel
> one that cause problems.
> 
> For Andreas's system the discrete nvidia GPU has no I/O enabled
> according to PCI_COMMAND flags while the integrated intel one does have
> them (that's why the Intel GPU is chosen).
> 
> Unfortunately I don't know what makes his system choke at boot time as
> he did not provide logs for the failing case.

Very often when something goes wrong with a kms driver we hang while doing
the initial modeset. Which is all done while holding the console_lock
(because fbdev+vt locking is just insane). You can try to get a closer
look with I915_FBDEV=n which will avoid the console_lock, but which also
won't register the legacy/compat i915 fbdev emulation any more, so greatly
changes boot behaviour.

If that doesn't lead to clues the next approach is to "carefully"
drop&reacquire console_lock at a few "interesting" places to get a few
printks out over netconsole or similar. Or just hack up entire netconsole
loggin infrastructure which bypasses printk and so all the console_lock
insanity.

It's not pretty, I know :(

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
@ 2014-08-25 12:16                                         ` Daniel Vetter
  0 siblings, 0 replies; 62+ messages in thread
From: Daniel Vetter @ 2014-08-25 12:16 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Matthew Garrett, Greg Kroah-Hartman, DRI mailing list,
	Andreas Noever, Linux PCI, Bjorn Helgaas

On Fri, Aug 22, 2014 at 08:23:24AM +0200, Bruno Prémont wrote:
> On Thu, 21 Aug 2014 23:39:31 -0500 Bjorn Helgaas wrote:
> > On Thu, Aug 21, 2014 at 4:34 PM, Bruno Prémont wrote:
> > 
> > > A second step would then be to tune vgaarb's initial selection.
> > > Bjorn, is it possible to verify which I/O ports are decoded by a PCI
> > > device at the time of adding it to vgaarb? If so, how? I would like to
> > > check for legacy VGA I/O range (0x03B0-0x03DF) and only let vgaarb set
> > > a device as default if that I/O range is decoded by the device.
> > 
> > I don't know of a way.  I'm pretty sure VGA devices are allowed to
> > respond to those legacy addresses even if there's no BAR for them, but
> > I haven't found a spec reference for this.  There is the VGA Enable
> > bit in bridges, of course (PCI Bridge spec, sec 12.1.1.  If the VGA
> > device is behind a bridge that doesn't have the VGA Enable bit set, it
> > probably isn't the default device.
> 
> Those VGA devices behind bridges are the easy ones that vgaarb selects
> properly.
> It's the ones not behind a bridge (integrated graphics) like the intel
> one that cause problems.
> 
> For Andreas's system the discrete nvidia GPU has no I/O enabled
> according to PCI_COMMAND flags while the integrated intel one does have
> them (that's why the Intel GPU is chosen).
> 
> Unfortunately I don't know what makes his system choke at boot time as
> he did not provide logs for the failing case.

Very often when something goes wrong with a kms driver we hang while doing
the initial modeset. Which is all done while holding the console_lock
(because fbdev+vt locking is just insane). You can try to get a closer
look with I915_FBDEV=n which will avoid the console_lock, but which also
won't register the legacy/compat i915 fbdev emulation any more, so greatly
changes boot behaviour.

If that doesn't lead to clues the next approach is to "carefully"
drop&reacquire console_lock at a few "interesting" places to get a few
printks out over netconsole or similar. Or just hack up entire netconsole
loggin infrastructure which bypasses printk and so all the console_lock
insanity.

It's not pretty, I know :(

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup()
  2014-08-25 12:16                                         ` Daniel Vetter
  (?)
@ 2014-08-25 12:39                                         ` Bruno Prémont
  -1 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-25 12:39 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Bjorn Helgaas, Matthew Garrett, Linux PCI, DRI mailing list,
	Greg Kroah-Hartman, Andreas Noever

Hi Daniel,

On Mon, 25 Aug 2014 14:16:02 +0200 Daniel Vetter wrote:
> Very often when something goes wrong with a kms driver we hang while doing
> the initial modeset. Which is all done while holding the console_lock
> (because fbdev+vt locking is just insane). You can try to get a closer
> look with I915_FBDEV=n which will avoid the console_lock, but which also
> won't register the legacy/compat i915 fbdev emulation any more, so greatly
> changes boot behaviour.
> 
> If that doesn't lead to clues the next approach is to "carefully"
> drop&reacquire console_lock at a few "interesting" places to get a few
> printks out over netconsole or similar. Or just hack up entire netconsole
> loggin infrastructure which bypasses printk and so all the console_lock
> insanity.

In this case it's not that bad as Andreas could send the logs for all
cases (captured via ssh).

So probably console lock is not held (unless he did have to do
terminal-free ssh which I doubt).
It looks much more as if it's just the output routing that gets weird
on his Mac (or possibly any other dual-GPU MacBook where discrete GPU is
primary). Black screen but alive system :)

See follow-up posts in this thread.

If you have some uncommon or otherwise weird (EFI) multi-GPU systems
around and want to give my patches sent yesterday evening a try, you're
welcome! Some with non-Apple GPU multiplexer would be nice to have
tested as well.


The following part mentioned earlier by Andreas might be of interest to
you though (and my latest patch series should bring the improvement):
> > vga_arbiter_add_pci_device chooses intel simply because it is the
> > first device. Next pci_fixup_video(intel) sees that it is the default
> > device, sets the IORESOURCE_ROM_SHADOW flag and calls
> > vga_set_default_device again. And finally (if the check is removed)
> > pci_fixup_video(nvidia) sees that it owns the framebuffer and sets
> > itself as the default device which allows the system to boot again.
> >
> > Does setting the ROM_SHADOW flag on (possibly) the wrong device have
> > any effect?  
> Yes it does. Removing the line changes a long standing
> i915 0000:00:02.0: Invalid ROM contents
> into a
> i915 0000:00:02.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment).
> 
> The first is logged at KERN_ERR and the second one only at KERN_INFO.
> We are making progress.

Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-08-24 21:09                                             ` Bruno Prémont
  (?)
@ 2014-08-26 15:32                                             ` Andreas Noever
  2014-08-28 20:47                                                 ` Bruno Prémont
  -1 siblings, 1 reply; 62+ messages in thread
From: Andreas Noever @ 2014-08-26 15:32 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: DRI mailing list, Matthew Garrett, Linux PCI, Greg Kroah-Hartman,
	Bjorn Helgaas

On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> With commit 20cde694027e boot video device detection was moved from
> efifb to x86 and ia64 pci/fixup.c.
>
> For dual-GPU Apple computers above change represents a regression as
> code in efifb did forcefully override vga_default_device while the
> merge did not (vgaarb happens prior to PCI fixup).
>
> To improve on initial device selection by vgaarb (it cannot know if
> PCI device not behind bridges see/decode legacy VGA I/O or not), move
> the screen_info based check from pci_video_fixup to vgaarb's init
> function and use it to refine/override decision taken while adding
> the individual PCI VGA devices.
> This way PCI fixup has no reason to adjust vga_default_device
> anymore but can depend on its value for flagging shadowed VBIOS.
>
> This has the nice benefit of removing duplicated code but does
> introduce a #if defined() block in vgaarb.
> Not all architectures have screen_info and would cause compile to
> fail without it.
>
> Reported-By: Andreas Noever <andreas.noever@gmail.com>
> CC: Matthew Garrett <matthew.garrett@nebula.com>
> CC: stable@vger.kernel.org # v3.5+
> Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> ---
> Andreas, does this work properly for you, including the improvement
> on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
Yep, thanks!

>
> Other arches using PCI and vgaarb that have screen_info may want
> to be added to the #if defined() block or even introduce a new
> CONFIG_HAVE_SCREEN_INFO or similar...
>
>
>  arch/ia64/pci/fixup.c    | 24 +-----------------------
>  arch/x86/pci/fixup.c     | 24 +-----------------------
>  drivers/gpu/vga/vgaarb.c | 38 +++++++++++++++++++++++++++++++++++++-
>  3 files changed, 39 insertions(+), 47 deletions(-)
>
> diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c
> index ec73b2c..fc505d5 100644
> --- a/arch/ia64/pci/fixup.c
> +++ b/arch/ia64/pci/fixup.c
> @@ -38,27 +38,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
>                 return;
>         /* Maybe, this machine supports legacy memory map. */
>
> -       if (!vga_default_device()) {
> -               resource_size_t start, end;
> -               int i;
> -
> -               /* Does firmware framebuffer belong to us? */
> -               for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
> -                       if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> -                               continue;
> -
> -                       start = pci_resource_start(pdev, i);
> -                       end  = pci_resource_end(pdev, i);
> -
> -                       if (!start || !end)
> -                               continue;
> -
> -                       if (screen_info.lfb_base >= start &&
> -                           (screen_info.lfb_base + screen_info.lfb_size) < end)
> -                               vga_set_default_device(pdev);
> -               }
> -       }
> -
>         /* Is VGA routed to us? */
>         bus = pdev->bus;
>         while (bus) {
> @@ -83,8 +62,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
>                 pci_read_config_word(pdev, PCI_COMMAND, &config);
>                 if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
>                         pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -                       dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -                       vga_set_default_device(pdev);
> +                       dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
>                 }
>         }
>  }
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index c61ea57..9a2b710 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -326,27 +326,6 @@ static void pci_fixup_video(struct pci_dev *pdev)
>         struct pci_bus *bus;
>         u16 config;
>
> -       if (!vga_default_device()) {
> -               resource_size_t start, end;
> -               int i;
> -
> -               /* Does firmware framebuffer belong to us? */
> -               for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
> -                       if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM))
> -                               continue;
> -
> -                       start = pci_resource_start(pdev, i);
> -                       end  = pci_resource_end(pdev, i);
> -
> -                       if (!start || !end)
> -                               continue;
> -
> -                       if (screen_info.lfb_base >= start &&
> -                           (screen_info.lfb_base + screen_info.lfb_size) < end)
> -                               vga_set_default_device(pdev);
> -               }
> -       }
> -
>         /* Is VGA routed to us? */
>         bus = pdev->bus;
>         while (bus) {
> @@ -371,8 +350,7 @@ static void pci_fixup_video(struct pci_dev *pdev)
>                 pci_read_config_word(pdev, PCI_COMMAND, &config);
>                 if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
>                         pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
> -                       dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
> -                       vga_set_default_device(pdev);
> +                       dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
>                 }
>         }
>  }
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
> index d2077f0..cffdff9 100644
> --- a/drivers/gpu/vga/vgaarb.c
> +++ b/drivers/gpu/vga/vgaarb.c
> @@ -41,6 +41,7 @@
>  #include <linux/poll.h>
>  #include <linux/miscdevice.h>
>  #include <linux/slab.h>
> +#include <linux/screen_info.h>
>
>  #include <linux/uaccess.h>
>
> @@ -585,8 +586,11 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
>          */
>  #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
>         if (vga_default == NULL &&
> -           ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
> +           ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
> +               pr_info("vgaarb: setting as boot device: PCI:%s\n",
> +                       pci_name(pdev));
>                 vga_set_default_device(pdev);
> +       }
>  #endif
>
>         vga_arbiter_check_bridge_sharing(vgadev);
> @@ -1320,6 +1324,38 @@ static int __init vga_arb_device_init(void)
>         pr_info("vgaarb: loaded\n");
>
>         list_for_each_entry(vgadev, &vga_list, list) {
> +#if defined(CONFIG_X86) || defined(CONFIG_IA64)
> +               /* Override I/O based detection done by vga_arbiter_add_pci_device()
> +                * as it may take the wrong device (e.g. on Apple system under EFI).
> +                *
> +                * Select the device owning the boot framebuffer if there is one.
> +                */
> +               resource_size_t start, end;
> +               int i;
> +
> +               /* Does firmware framebuffer belong to us? */
> +               for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
> +                       if (!(pci_resource_flags(vgadev->pdev, i) & IORESOURCE_MEM))
> +                               continue;
> +
> +                       start = pci_resource_start(vgadev->pdev, i);
> +                       end  = pci_resource_end(vgadev->pdev, i);
> +
> +                       if (!start || !end)
> +                               continue;
> +
> +                       if (screen_info.lfb_base < start ||
> +                           (screen_info.lfb_base + screen_info.lfb_size) >= end)
> +                               continue;
> +                       if (!vga_default_device())
> +                               pr_info("vgaarb: setting as boot device: PCI:%s\n",
> +                                       pci_name(vgadev->pdev));
> +                       else if (vgadev->pdev != vga_default_device())
> +                               pr_info("vgaarb: overriding boot device: PCI:%s\n",
> +                                       pci_name(vgadev->pdev));
> +                       vga_set_default_device(vgadev->pdev);
> +               }
> +#endif
>                 if (vgadev->bridge_has_one_vga)
>                         pr_info("vgaarb: bridge control possible %s\n", pci_name(vgadev->pdev));
>                 else
> --
> 1.8.5.5
>

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-08-26 15:32                                             ` Andreas Noever
@ 2014-08-28 20:47                                                 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-28 20:47 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Andreas Noever, dri-devel, Matthew Garrett, Greg Kroah-Hartman,
	Linux PCI

On Tue, 26 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont wrote:
> > With commit 20cde694027e boot video device detection was moved from
> > efifb to x86 and ia64 pci/fixup.c.
> >
> > For dual-GPU Apple computers above change represents a regression as
> > code in efifb did forcefully override vga_default_device while the
> > merge did not (vgaarb happens prior to PCI fixup).
> >
> > To improve on initial device selection by vgaarb (it cannot know if
> > PCI device not behind bridges see/decode legacy VGA I/O or not), move
> > the screen_info based check from pci_video_fixup to vgaarb's init
> > function and use it to refine/override decision taken while adding
> > the individual PCI VGA devices.
> > This way PCI fixup has no reason to adjust vga_default_device
> > anymore but can depend on its value for flagging shadowed VBIOS.
> >
> > This has the nice benefit of removing duplicated code but does
> > introduce a #if defined() block in vgaarb.
> > Not all architectures have screen_info and would cause compile to
> > fail without it.
> >
> > Reported-By: Andreas Noever <andreas.noever@gmail.com>
> > CC: Matthew Garrett <matthew.garrett@nebula.com>
> > CC: stable@vger.kernel.org # v3.5+
> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> > Andreas, does this work properly for you, including the improvement
> > on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
> Yep, thanks!
> 
> >
> > Other arches using PCI and vgaarb that have screen_info may want
> > to be added to the #if defined() block or even introduce a new
> > CONFIG_HAVE_SCREEN_INFO or similar...

Bjorn, can you queue these two patches, probably going through -next
for a week and passing them to Linus for -rc4, adding Andreas's Tested-by
to Patch 1/2 v2?

Thanks,
Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
@ 2014-08-28 20:47                                                 ` Bruno Prémont
  0 siblings, 0 replies; 62+ messages in thread
From: Bruno Prémont @ 2014-08-28 20:47 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Andreas Noever, Matthew Garrett, Linux PCI, dri-devel,
	Greg Kroah-Hartman

On Tue, 26 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont wrote:
> > With commit 20cde694027e boot video device detection was moved from
> > efifb to x86 and ia64 pci/fixup.c.
> >
> > For dual-GPU Apple computers above change represents a regression as
> > code in efifb did forcefully override vga_default_device while the
> > merge did not (vgaarb happens prior to PCI fixup).
> >
> > To improve on initial device selection by vgaarb (it cannot know if
> > PCI device not behind bridges see/decode legacy VGA I/O or not), move
> > the screen_info based check from pci_video_fixup to vgaarb's init
> > function and use it to refine/override decision taken while adding
> > the individual PCI VGA devices.
> > This way PCI fixup has no reason to adjust vga_default_device
> > anymore but can depend on its value for flagging shadowed VBIOS.
> >
> > This has the nice benefit of removing duplicated code but does
> > introduce a #if defined() block in vgaarb.
> > Not all architectures have screen_info and would cause compile to
> > fail without it.
> >
> > Reported-By: Andreas Noever <andreas.noever@gmail.com>
> > CC: Matthew Garrett <matthew.garrett@nebula.com>
> > CC: stable@vger.kernel.org # v3.5+
> > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > ---
> > Andreas, does this work properly for you, including the improvement
> > on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
> Yep, thanks!
> 
> >
> > Other arches using PCI and vgaarb that have screen_info may want
> > to be added to the #if defined() block or even introduce a new
> > CONFIG_HAVE_SCREEN_INFO or similar...

Bjorn, can you queue these two patches, probably going through -next
for a week and passing them to Linus for -rc4, adding Andreas's Tested-by
to Patch 1/2 v2?

Thanks,
Bruno
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-08-28 20:47                                                 ` Bruno Prémont
  (?)
@ 2014-09-12 11:19                                                 ` Bruno Prémont
  2014-09-12 14:28                                                     ` Bjorn Helgaas
  -1 siblings, 1 reply; 62+ messages in thread
From: Bruno Prémont @ 2014-09-12 11:19 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Andreas Noever, dri-devel, Matthew Garrett, Greg Kroah-Hartman,
	Linux PCI

Bjorn,

What is missing to get these two patches pushed to Linus?

Bruno


On Thu, 28 Aug 2014 22:47:50 +0200 Bruno Prémont wrote:
> On Tue, 26 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
> > On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont wrote:
> > > With commit 20cde694027e boot video device detection was moved from
> > > efifb to x86 and ia64 pci/fixup.c.
> > >
> > > For dual-GPU Apple computers above change represents a regression as
> > > code in efifb did forcefully override vga_default_device while the
> > > merge did not (vgaarb happens prior to PCI fixup).
> > >
> > > To improve on initial device selection by vgaarb (it cannot know if
> > > PCI device not behind bridges see/decode legacy VGA I/O or not), move
> > > the screen_info based check from pci_video_fixup to vgaarb's init
> > > function and use it to refine/override decision taken while adding
> > > the individual PCI VGA devices.
> > > This way PCI fixup has no reason to adjust vga_default_device
> > > anymore but can depend on its value for flagging shadowed VBIOS.
> > >
> > > This has the nice benefit of removing duplicated code but does
> > > introduce a #if defined() block in vgaarb.
> > > Not all architectures have screen_info and would cause compile to
> > > fail without it.
> > >
> > > Reported-By: Andreas Noever <andreas.noever@gmail.com>
> > > CC: Matthew Garrett <matthew.garrett@nebula.com>
> > > CC: stable@vger.kernel.org # v3.5+
> > > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
> > > ---
> > > Andreas, does this work properly for you, including the improvement
> > > on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
> > Yep, thanks!
> > 
> > >
> > > Other arches using PCI and vgaarb that have screen_info may want
> > > to be added to the #if defined() block or even introduce a new
> > > CONFIG_HAVE_SCREEN_INFO or similar...
> 
> Bjorn, can you queue these two patches, probably going through -next
> for a week and passing them to Linus for -rc4, adding Andreas's Tested-by
> to Patch 1/2 v2?
> 
> Thanks,
> Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-09-12 11:19                                                 ` Bruno Prémont
@ 2014-09-12 14:28                                                     ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-09-12 14:28 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Andreas Noever, DRI mailing list, Matthew Garrett,
	Greg Kroah-Hartman, Linux PCI

On Fri, Sep 12, 2014 at 5:19 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> Bjorn,
>
> What is missing to get these two patches pushed to Linus?

Sorry, I've been working on some other regressions and overlooked this
one.  If you open a bugzilla report and mark it as a regression, that
will help keep this on my radar.

Bjorn

> On Thu, 28 Aug 2014 22:47:50 +0200 Bruno Prémont wrote:
>> On Tue, 26 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
>> > On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont wrote:
>> > > With commit 20cde694027e boot video device detection was moved from
>> > > efifb to x86 and ia64 pci/fixup.c.
>> > >
>> > > For dual-GPU Apple computers above change represents a regression as
>> > > code in efifb did forcefully override vga_default_device while the
>> > > merge did not (vgaarb happens prior to PCI fixup).
>> > >
>> > > To improve on initial device selection by vgaarb (it cannot know if
>> > > PCI device not behind bridges see/decode legacy VGA I/O or not), move
>> > > the screen_info based check from pci_video_fixup to vgaarb's init
>> > > function and use it to refine/override decision taken while adding
>> > > the individual PCI VGA devices.
>> > > This way PCI fixup has no reason to adjust vga_default_device
>> > > anymore but can depend on its value for flagging shadowed VBIOS.
>> > >
>> > > This has the nice benefit of removing duplicated code but does
>> > > introduce a #if defined() block in vgaarb.
>> > > Not all architectures have screen_info and would cause compile to
>> > > fail without it.
>> > >
>> > > Reported-By: Andreas Noever <andreas.noever@gmail.com>
>> > > CC: Matthew Garrett <matthew.garrett@nebula.com>
>> > > CC: stable@vger.kernel.org # v3.5+
>> > > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
>> > > ---
>> > > Andreas, does this work properly for you, including the improvement
>> > > on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
>> > Yep, thanks!
>> >
>> > >
>> > > Other arches using PCI and vgaarb that have screen_info may want
>> > > to be added to the #if defined() block or even introduce a new
>> > > CONFIG_HAVE_SCREEN_INFO or similar...
>>
>> Bjorn, can you queue these two patches, probably going through -next
>> for a week and passing them to Linus for -rc4, adding Andreas's Tested-by
>> to Patch 1/2 v2?
>>
>> Thanks,
>> Bruno

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
@ 2014-09-12 14:28                                                     ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-09-12 14:28 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Andreas Noever, Matthew Garrett, Linux PCI, DRI mailing list,
	Greg Kroah-Hartman

On Fri, Sep 12, 2014 at 5:19 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> Bjorn,
>
> What is missing to get these two patches pushed to Linus?

Sorry, I've been working on some other regressions and overlooked this
one.  If you open a bugzilla report and mark it as a regression, that
will help keep this on my radar.

Bjorn

> On Thu, 28 Aug 2014 22:47:50 +0200 Bruno Prémont wrote:
>> On Tue, 26 August 2014 Andreas Noever <andreas.noever@gmail.com> wrote:
>> > On Sun, Aug 24, 2014 at 11:09 PM, Bruno Prémont wrote:
>> > > With commit 20cde694027e boot video device detection was moved from
>> > > efifb to x86 and ia64 pci/fixup.c.
>> > >
>> > > For dual-GPU Apple computers above change represents a regression as
>> > > code in efifb did forcefully override vga_default_device while the
>> > > merge did not (vgaarb happens prior to PCI fixup).
>> > >
>> > > To improve on initial device selection by vgaarb (it cannot know if
>> > > PCI device not behind bridges see/decode legacy VGA I/O or not), move
>> > > the screen_info based check from pci_video_fixup to vgaarb's init
>> > > function and use it to refine/override decision taken while adding
>> > > the individual PCI VGA devices.
>> > > This way PCI fixup has no reason to adjust vga_default_device
>> > > anymore but can depend on its value for flagging shadowed VBIOS.
>> > >
>> > > This has the nice benefit of removing duplicated code but does
>> > > introduce a #if defined() block in vgaarb.
>> > > Not all architectures have screen_info and would cause compile to
>> > > fail without it.
>> > >
>> > > Reported-By: Andreas Noever <andreas.noever@gmail.com>
>> > > CC: Matthew Garrett <matthew.garrett@nebula.com>
>> > > CC: stable@vger.kernel.org # v3.5+
>> > > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
>> > > ---
>> > > Andreas, does this work properly for you, including the improvement
>> > > on i915 complaint about VBIOS going from KERN_ERR to KERN_INFO?
>> > Yep, thanks!
>> >
>> > >
>> > > Other arches using PCI and vgaarb that have screen_info may want
>> > > to be added to the #if defined() block or even introduce a new
>> > > CONFIG_HAVE_SCREEN_INFO or similar...
>>
>> Bjorn, can you queue these two patches, probably going through -next
>> for a week and passing them to Linus for -rc4, adding Andreas's Tested-by
>> to Patch 1/2 v2?
>>
>> Thanks,
>> Bruno
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-09-12 14:28                                                     ` Bjorn Helgaas
  (?)
@ 2014-09-18 23:26                                                     ` Dave Airlie
  2014-09-19  5:18                                                         ` Bjorn Helgaas
  -1 siblings, 1 reply; 62+ messages in thread
From: Dave Airlie @ 2014-09-18 23:26 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Bruno Prémont, Andreas Noever, Matthew Garrett, Linux PCI,
	DRI mailing list, Greg Kroah-Hartman

On 13 September 2014 00:28, Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Fri, Sep 12, 2014 at 5:19 AM, Bruno Prémont
> <bonbons@linux-vserver.org> wrote:
>> Bjorn,
>>
>> What is missing to get these two patches pushed to Linus?
>
> Sorry, I've been working on some other regressions and overlooked this
> one.  If you open a bugzilla report and mark it as a regression, that
> will help keep this on my radar.

My MBP is crying? can we get these merged, I can handle if if you want
to ack them for me!

Dave.

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
  2014-09-18 23:26                                                     ` Dave Airlie
@ 2014-09-19  5:18                                                         ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-09-19  5:18 UTC (permalink / raw)
  To: Dave Airlie
  Cc: Bruno Prémont, Andreas Noever, Matthew Garrett, Linux PCI,
	DRI mailing list, Greg Kroah-Hartman

On Fri, Sep 19, 2014 at 09:26:58AM +1000, Dave Airlie wrote:
> On 13 September 2014 00:28, Bjorn Helgaas <bhelgaas@google.com> wrote:
> > On Fri, Sep 12, 2014 at 5:19 AM, Bruno Prémont
> > <bonbons@linux-vserver.org> wrote:
> >> Bjorn,
> >>
> >> What is missing to get these two patches pushed to Linus?
> >
> > Sorry, I've been working on some other regressions and overlooked this
> > one.  If you open a bugzilla report and mark it as a regression, that
> > will help keep this on my radar.
> 
> My MBP is crying? can we get these merged, I can handle if if you want
> to ack them for me!

Yep, it's in linux-next and I'll send Linus a pull request for the tag [1]
tomorrow.  I meant to send it tonight, but I had to fix my for-linus branch
to remove a duplicate commit and I don't want to send the pull request
immediately afterwards.

Bjorn

[1] https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/tag/?h=for-linus&id=pci-v3.17-fixes-2

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io
@ 2014-09-19  5:18                                                         ` Bjorn Helgaas
  0 siblings, 0 replies; 62+ messages in thread
From: Bjorn Helgaas @ 2014-09-19  5:18 UTC (permalink / raw)
  To: Dave Airlie
  Cc: Matthew Garrett, Greg Kroah-Hartman, DRI mailing list,
	Bruno Prémont, Linux PCI, Andreas Noever

On Fri, Sep 19, 2014 at 09:26:58AM +1000, Dave Airlie wrote:
> On 13 September 2014 00:28, Bjorn Helgaas <bhelgaas@google.com> wrote:
> > On Fri, Sep 12, 2014 at 5:19 AM, Bruno Prémont
> > <bonbons@linux-vserver.org> wrote:
> >> Bjorn,
> >>
> >> What is missing to get these two patches pushed to Linus?
> >
> > Sorry, I've been working on some other regressions and overlooked this
> > one.  If you open a bugzilla report and mark it as a regression, that
> > will help keep this on my radar.
> 
> My MBP is crying? can we get these merged, I can handle if if you want
> to ack them for me!

Yep, it's in linux-next and I'll send Linus a pull request for the tag [1]
tomorrow.  I meant to send it tonight, but I had to fix my for-linus branch
to remove a duplicate commit and I don't want to send the pull request
immediately afterwards.

Bjorn

[1] https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/tag/?h=for-linus&id=pci-v3.17-fixes-2

^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2014-09-19  5:18 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-14 20:43 [Patch] x86, ia64, efifb: Move boot_vga fixup from pci to vgaarb Bruno Prémont
2014-05-14 20:43 ` Bruno Prémont
2014-05-27 23:42 ` Bjorn Helgaas
2014-05-27 23:42   ` Bjorn Helgaas
2014-06-02 18:16   ` Bruno Prémont
2014-06-02 18:16     ` Bruno Prémont
2014-06-02 18:19     ` [PATCH 2/2] x86, ia64: Merge common vga fixup code Bruno Prémont
2014-06-02 18:19       ` Bruno Prémont
2014-06-02 18:19     ` [PATCH 1/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Bruno Prémont
2014-06-02 18:19       ` Bruno Prémont
2014-06-17 22:35       ` Bjorn Helgaas
2014-06-17 22:35         ` Bjorn Helgaas
2014-06-18  6:09         ` Bruno Prémont
2014-06-18  6:09           ` Bruno Prémont
2014-06-24 20:41       ` Bruno Prémont
2014-06-24 20:41         ` Bruno Prémont
2014-06-24 22:55       ` [PATCH 1/2 v2] " Bruno Prémont
2014-06-24 22:55         ` Bruno Prémont
2014-06-24 22:58         ` [PATCH 2/2 v2] x86, ia64: Merge common vga fixup code Bruno Prémont
2014-06-24 22:58           ` Bruno Prémont
2014-06-24 23:02         ` [PATCH 1/2 v2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Matthew Garrett
2014-06-24 23:02           ` Matthew Garrett
2014-07-05 17:15         ` Bjorn Helgaas
2014-08-10  0:21           ` Andreas Noever
2014-08-10  0:36             ` Andreas Noever
2014-08-10  9:26               ` Bruno Prémont
2014-08-10  9:26                 ` Bruno Prémont
2014-08-10  9:56                 ` Andreas Noever
2014-08-10 16:34                   ` Bruno Prémont
2014-08-10 16:34                     ` Bruno Prémont
2014-08-14  0:40                     ` Andreas Noever
2014-08-16 17:21                       ` [PATCH 0/2] " Bruno Prémont
2014-08-16 17:21                         ` Bruno Prémont
2014-08-16 17:25                         ` [PATCH 1/2] vgaarb: Drop obsolete #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE Bruno Prémont
2014-08-16 17:25                           ` Bruno Prémont
2014-08-16 17:30                         ` [PATCH 2/2] x86, ia64: Don't default to first video device Bruno Prémont
2014-08-16 17:30                           ` Bruno Prémont
2014-08-19 15:45                         ` [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Andreas Noever
2014-08-20  5:55                           ` Bruno Prémont
2014-08-20  7:11                             ` Bruno Prémont
2014-08-21 15:55                               ` Andreas Noever
2014-08-21 21:34                                 ` Bruno Prémont
2014-08-21 21:34                                   ` Bruno Prémont
2014-08-22  4:39                                   ` Bjorn Helgaas
2014-08-22  6:23                                     ` Bruno Prémont
2014-08-22 20:30                                       ` Andreas Noever
2014-08-23 11:06                                         ` Bruno Prémont
2014-08-24 21:09                                           ` [PATCH 1/2 v2] vgaarb: Don't default exclusively to first video device with mem+io Bruno Prémont
2014-08-24 21:09                                             ` Bruno Prémont
2014-08-26 15:32                                             ` Andreas Noever
2014-08-28 20:47                                               ` Bruno Prémont
2014-08-28 20:47                                                 ` Bruno Prémont
2014-09-12 11:19                                                 ` Bruno Prémont
2014-09-12 14:28                                                   ` Bjorn Helgaas
2014-09-12 14:28                                                     ` Bjorn Helgaas
2014-09-18 23:26                                                     ` Dave Airlie
2014-09-19  5:18                                                       ` Bjorn Helgaas
2014-09-19  5:18                                                         ` Bjorn Helgaas
2014-08-24 21:13                                           ` [PATCH 2/2 v2] vgaarb: Drop obsolete #ifndef Bruno Prémont
2014-08-25 12:16                                       ` [PATCH 0/2] x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() Daniel Vetter
2014-08-25 12:16                                         ` Daniel Vetter
2014-08-25 12:39                                         ` Bruno Prémont

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.