All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-24  9:48 ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: lenb; +Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86, hpa

This patch series got some basic testing already (see patch 2 changelog) and
is based on latest 3.1-rc2 Linus kernel.

The patches are separated into ACPICA parts (patch 1) and kernel parts (patch 2).

They are ready for integeration (if now objections should show up in a review
discussion) and it would be great if they can be added in Len's latest acpi-test
tree for broader testing.

Thanks,

   Thomas


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

* [Devel] [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-24  9:48 ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: devel

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

This patch series got some basic testing already (see patch 2 changelog) and
is based on latest 3.1-rc2 Linus kernel.

The patches are separated into ACPICA parts (patch 1) and kernel parts (patch 2).

They are ready for integeration (if now objections should show up in a review
discussion) and it would be great if they can be added in Len's latest acpi-test
tree for broader testing.

Thanks,

   Thomas


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

* [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-24  9:48   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: lenb
  Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86,
	hpa, Thomas Renninger

Currently it's only possible to feed acpica with virtual
address for table overriding.
This patch introduces a function which allows the OS to
pass physical addresses for table overriding.

This is necessary to allow early table overridings of
arbitrary ACPI tables.

An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
because physical address overriding is rather transparent
(the same way acpica expects to get tables from reserved
memory BIOS regions which is the normal way).

Signed-off-by: Thomas Renninger <trenn@suse.de>
CC: devel@acpica.org
CC: linux-acpi@vger.kernel.org
CC: lenb@kernel.org
---
 drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
 drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
 drivers/acpi/osl.c             |   11 +++++++++++
 include/acpi/acpiosxf.h        |    4 ++++
 4 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
index 62365f6..b9b9d2a 100644
--- a/drivers/acpi/acpica/tbinstal.c
+++ b/drivers/acpi/acpica/tbinstal.c
@@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
 		table_desc->pointer = override_table;
 		table_desc->length = override_table->length;
 		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
+	} else {
+		acpi_physical_address address = 0;
+		u32 table_len = 0;
+		status = acpi_os_phys_table_override(table_desc->pointer,
+						     &address, &table_len);
+		if (ACPI_SUCCESS(status) && table_len && address) {
+			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
+				   "Phys table override, replaced with:",
+				   table_desc->pointer->signature,
+				   ACPI_CAST_PTR(void, table_desc->address)));
+			table_desc->address = address;
+			table_desc->pointer = acpi_os_map_memory(address,
+								 table_len);
+			table_desc->length = table_len;
+		}
 	}
 
 	/* Add the table to the global root table list */
diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index 0f2d395..df85afe 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
 		table_to_install = override_table;
 		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
 	} else {
-		table_to_install = mapped_table;
+		u32 table_len = 0;
+		acpi_physical_address tmp_addr = 0;
+
+		status = acpi_os_phys_table_override(mapped_table,
+						     &tmp_addr, &table_len);
+		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
+			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
+				   "Phys table override, replaced with:",
+				   mapped_table->signature,
+				   ACPI_CAST_PTR(void, address)));
+			acpi_os_unmap_memory(mapped_table,
+					     sizeof(struct acpi_table_header));
+			mapped_table = acpi_os_map_memory(address,
+					  sizeof(struct acpi_table_header));
+			address = tmp_addr;
+		}
 		flags = ACPI_TABLE_ORIGIN_MAPPED;
+		table_to_install = mapped_table;
 	}
 
 	/* Initialize the table entry */
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index fa32f58..49b5fa6 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
 	return AE_OK;
 }
 
+acpi_status
+acpi_os_phys_table_override(struct acpi_table_header *existing_table,
+			    acpi_physical_address *address, u32 *table_length)
+{
+	if (!existing_table)
+		return AE_BAD_PARAMETER;
+
+	table_length = 0;
+	return AE_OK;
+}
+
 static irqreturn_t acpi_irq(int irq, void *dev_id)
 {
 	u32 handled;
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
index 4543b6f..0bef969 100644
--- a/include/acpi/acpiosxf.h
+++ b/include/acpi/acpiosxf.h
@@ -95,6 +95,10 @@ acpi_status
 acpi_os_table_override(struct acpi_table_header *existing_table,
 		       struct acpi_table_header **new_table);
 
+acpi_status
+acpi_os_phys_table_override(struct acpi_table_header *existing_table,
+			    acpi_physical_address *address, u32 *table_length);
+
 /*
  * Spinlock primitives
  */
-- 
1.7.3.4

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

* [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-24  9:48   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: devel

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

Currently it's only possible to feed acpica with virtual
address for table overriding.
This patch introduces a function which allows the OS to
pass physical addresses for table overriding.

This is necessary to allow early table overridings of
arbitrary ACPI tables.

An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
because physical address overriding is rather transparent
(the same way acpica expects to get tables from reserved
memory BIOS regions which is the normal way).

Signed-off-by: Thomas Renninger <trenn(a)suse.de>
CC: devel(a)acpica.org
CC: linux-acpi(a)vger.kernel.org
CC: lenb(a)kernel.org
---
 drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
 drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
 drivers/acpi/osl.c             |   11 +++++++++++
 include/acpi/acpiosxf.h        |    4 ++++
 4 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
index 62365f6..b9b9d2a 100644
--- a/drivers/acpi/acpica/tbinstal.c
+++ b/drivers/acpi/acpica/tbinstal.c
@@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
 		table_desc->pointer = override_table;
 		table_desc->length = override_table->length;
 		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
+	} else {
+		acpi_physical_address address = 0;
+		u32 table_len = 0;
+		status = acpi_os_phys_table_override(table_desc->pointer,
+						     &address, &table_len);
+		if (ACPI_SUCCESS(status) && table_len && address) {
+			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
+				   "Phys table override, replaced with:",
+				   table_desc->pointer->signature,
+				   ACPI_CAST_PTR(void, table_desc->address)));
+			table_desc->address = address;
+			table_desc->pointer = acpi_os_map_memory(address,
+								 table_len);
+			table_desc->length = table_len;
+		}
 	}
 
 	/* Add the table to the global root table list */
diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index 0f2d395..df85afe 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
 		table_to_install = override_table;
 		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
 	} else {
-		table_to_install = mapped_table;
+		u32 table_len = 0;
+		acpi_physical_address tmp_addr = 0;
+
+		status = acpi_os_phys_table_override(mapped_table,
+						     &tmp_addr, &table_len);
+		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
+			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
+				   "Phys table override, replaced with:",
+				   mapped_table->signature,
+				   ACPI_CAST_PTR(void, address)));
+			acpi_os_unmap_memory(mapped_table,
+					     sizeof(struct acpi_table_header));
+			mapped_table = acpi_os_map_memory(address,
+					  sizeof(struct acpi_table_header));
+			address = tmp_addr;
+		}
 		flags = ACPI_TABLE_ORIGIN_MAPPED;
+		table_to_install = mapped_table;
 	}
 
 	/* Initialize the table entry */
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index fa32f58..49b5fa6 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
 	return AE_OK;
 }
 
+acpi_status
+acpi_os_phys_table_override(struct acpi_table_header *existing_table,
+			    acpi_physical_address *address, u32 *table_length)
+{
+	if (!existing_table)
+		return AE_BAD_PARAMETER;
+
+	table_length = 0;
+	return AE_OK;
+}
+
 static irqreturn_t acpi_irq(int irq, void *dev_id)
 {
 	u32 handled;
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
index 4543b6f..0bef969 100644
--- a/include/acpi/acpiosxf.h
+++ b/include/acpi/acpiosxf.h
@@ -95,6 +95,10 @@ acpi_status
 acpi_os_table_override(struct acpi_table_header *existing_table,
 		       struct acpi_table_header **new_table);
 
+acpi_status
+acpi_os_phys_table_override(struct acpi_table_header *existing_table,
+			    acpi_physical_address *address, u32 *table_length);
+
 /*
  * Spinlock primitives
  */
-- 
1.7.3.4


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

* [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-24  9:48   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: lenb
  Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86,
	hpa, Thomas Renninger

Details can be found in:
Documentation/acpi/initrd_table_override.txt

Additional dmesg output of a booted system with
FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
tables overridden (with ### marked comments):

### ACPI tables found glued to initrd
DSDT ACPI table found in initrd - size: 16234
FACP ACPI table found in initrd - size: 116
SSDT ACPI table found in initrd - size: 334
### Re-printed e820 map via e820_update() with additionally created
### ACPI data section at 0xcff55000 where the ACPI tables passed via
### initrd where copied to
modified physical RAM map:
...
  ### New ACPI data section:
  modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
  ### BIOS e820 provided ACPI data section:
  modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
...
### Total size of all ACPI tables glued to initrd
### The address is initrd_start which gets updated to
### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
Found acpi tables of size: 16684 at 0xffff8800374c4000

Disabling lock debugging due to kernel taint
### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
...
### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
### loaded ACPI table matches and gets overridden:
ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
ACPI: Dynamic OEM Table Load:
ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
...

If the initrd does not start with a valid ACPI table signature or the ACPI
table's checksum is wrong, there is no functional change.

Signed-off-by: Thomas Renninger <trenn@suse.de>
CC: linux-acpi@vger.kernel.org
CC: lenb@kernel.org
CC: linux-kernel@vger.kernel.org
CC: x86@kernel.org
---
 Documentation/acpi/initrd_table_override.txt |  110 +++++++++++++++++++
 arch/x86/kernel/setup.c                      |   18 +++-
 arch/x86/mm/init.c                           |    6 +
 drivers/acpi/Kconfig                         |    9 ++
 drivers/acpi/osl.c                           |  149 +++++++++++++++++++++++++-
 include/linux/acpi.h                         |    4 +
 include/linux/initrd.h                       |    3 +
 7 files changed, 291 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/acpi/initrd_table_override.txt

diff --git a/Documentation/acpi/initrd_table_override.txt b/Documentation/acpi/initrd_table_override.txt
new file mode 100644
index 0000000..7b29d5f
--- /dev/null
+++ b/Documentation/acpi/initrd_table_override.txt
@@ -0,0 +1,110 @@
+Overriding ACPI tables via initrd
+=================================
+
+1) Introduction (What is this about)
+2) What is this for
+3) How does it work
+4) References (Where to retrieve userspace tools)
+
+1) What is this about
+---------------------
+
+If ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible to
+override nearly any ACPI table provided by the BIOS with an instrumented,
+modified one.
+
+Up to 10 arbitrary ACPI tables can be passed.
+For a full list of ACPI tables that can be overridden, take a look at
+the char *table_sigs[MAX_ACPI_SIGNATURE]; definition in drivers/acpi/osl.c
+All ACPI tables iasl (Intel's ACPI compiler and disassembler) knows should
+be overridable, except:
+   - ACPI_SIG_RSDP (has a signature of 6 bytes)
+   - ACPI_SIG_FACS (does not have an ordinary ACPI table header)
+Both could get implemented as well.
+
+
+2) What is this for
+-------------------
+
+Please keep in mind that this is a debug option.
+ACPI tables should not get overridden for productive use.
+If BIOS ACPI tables are overridden the kernel will get tainted with the
+TAINT_OVERRIDDEN_ACPI_TABLE flag.
+Complain to your platform/BIOS vendor if you find a bug which is that sever
+that a workaround is not accepted in the Linus kernel.
+
+Still, it can and should be enabled in any kernel, because:
+  - There is no functional change with not instrumented initrds
+  - It provides a powerful feature to easily debug and test ACPI BIOS table
+    compatibility with the Linux kernel.
+
+Until now it was only possible to override the DSDT by compiling it into
+the kernel. This is a nightmare when trying to work on ACPI related bugs
+and a lot bugs got stuck because of that.
+Even for people with enough kernel knowledge, building a kernel to try out
+things is very time consuming. Also people may have to browse and modify the
+ACPI interpreter code to find a possible BIOS bug. With this feature, people
+can correct the ACPI tables and try out quickly whether this is the root cause
+that needs to get addressed in the kernel.
+
+This could even ease up testing for BIOS providers who could flush their BIOS
+to test, but overriding table via initrd is much easier and quicker.
+For example one could prepare different initrds overriding NUMA tables with
+different affinity settings. Set up a script, let the machine reboot and
+run tests over night and one can get a picture how these settings influence
+the Linux kernel and which values are best.
+
+People can instrument the dynamic ACPI (ASL) code (for example with debug
+statements showing up in syslog when the ACPI code is processed, etc.),
+to better understand BIOS to OS interfaces, to hunt down ACPI BIOS code related
+bugs quickly or to easier develop ACPI based drivers.
+
+Intstrumenting ACPI code in SSDTs is now much easier. Before, one had to copy
+all SSDTs into the DSDT to compile it into the kernel for testing
+(because only DSDT could get overridden). That's what the acpi_no_auto_ssdt
+boot param is for: the BIOS provided SSDTs are ignored and all have to get
+copied into the DSDT, complicated and time consuming.
+
+Much more use cases, depending on which ACPI parts you are working on...
+
+
+3) How does it work
+-------------------
+
+# Extract the machine's ACPI tables:
+acpidump >acpidump
+acpixtract -a acpidump
+# Disassemble, modify and recompile them:
+iasl -d *.dat
+# For example add this statement into a _PRT (PCI Routing Table) function
+# of the DSDT:
+Store("Hello World", debug)
+iasl -sa *.dsl
+# glue them together with the initrd. ACPI tables go first, original initrd
+# goes on top:
+cat TBL1.dat >>instrumented_initrd
+cat TBL2.dat >>instrumented_initrd
+cat TBL3.dat >>instrumented_initrd
+cat /boot/initrd >>instrumented_initrd
+# reboot with increased acpi debug level, e.g. boot params:
+acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
+# and check your syslog:
+[    1.268089] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
+[    1.272091] [ACPI Debug]  String [0x0B] "HELLO WORLD"
+
+iasl is able to disassemble and recompile quite a lot different,
+also static ACPI tables.
+
+4) Where to retrieve userspace tools
+------------------------------------
+
+iasl and acpixtract are part of Intel's ACPICA project:
+http://acpica.org/
+and should be packaged by distributions (for example in the acpica package
+on SUSE).
+
+acpidump can be found in Len Browns pmtools:
+ftp://kernel.org/pub/linux/kernel/people/lenb/acpi/utils/pmtools/acpidump
+This tool is also part of the acpica package on SUSE.
+Alternatively used ACPI tables can be retrieved via sysfs in latest kernels:
+/sys/firmware/acpi/tables
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index afaf384..9fe9aa5 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -411,12 +411,20 @@ static void __init reserve_initrd(void)
 		 */
 		initrd_start = ramdisk_image + PAGE_OFFSET;
 		initrd_end = initrd_start + ramdisk_size;
-		return;
+	} else {
+		relocate_initrd();
+		memblock_x86_free_range(ramdisk_image, ramdisk_end);
 	}
-
-	relocate_initrd();
-
-	memblock_x86_free_range(ramdisk_image, ramdisk_end);
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	acpi_initrd_offset = acpi_initrd_table_override((void *)initrd_start,
+							(void *)initrd_end);
+	if (!acpi_initrd_offset)
+		return;
+	printk(KERN_INFO "Found acpi tables of size: %lu at 0x%lx\n",
+	       acpi_initrd_offset, initrd_start);
+	initrd_start += acpi_initrd_offset;
+	return;
+#endif
 }
 #else
 static void __init reserve_initrd(void)
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 3032644..8843eca 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -390,6 +390,12 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 	 *   - relocate_initrd()
 	 * So here We can do PAGE_ALIGN() safely to get partial page to be freed
 	 */
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	if (acpi_initrd_offset)
+		free_init_pages("initrd memory", start - acpi_initrd_offset,
+				PAGE_ALIGN(end));
+	else
+#endif
 	free_init_pages("initrd memory", start, PAGE_ALIGN(end));
 }
 #endif
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index de0e3df..9c595c3 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -261,6 +261,15 @@ config ACPI_CUSTOM_DSDT
 	bool
 	default ACPI_CUSTOM_DSDT_FILE != ""
 
+config ACPI_INITRD_TABLE_OVERRIDE
+	bool
+	default y
+	help
+	  This option provides functionality to override arbitrary ACPI tables
+	  via initrd. No functional change if no ACPI tables are glued to the
+	  initrd, therefore it's safe to say Y.
+	  See Documentation/acpi/initrd_table_override.txt for details
+
 config ACPI_BLACKLIST_YEAR
 	int "Disable ACPI for systems before Jan 1st this year" if X86_32
 	default 0
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 49b5fa6..d901752 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -44,9 +44,11 @@
 #include <linux/list.h>
 #include <linux/jiffies.h>
 #include <linux/semaphore.h>
+#include <linux/memblock.h>
 
 #include <asm/io.h>
 #include <asm/uaccess.h>
+#include <asm/e820.h>
 
 #include <acpi/acpi.h>
 #include <acpi/acpi_bus.h>
@@ -499,6 +501,107 @@ acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
 	return AE_OK;
 }
 
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+#define ACPI_OVERRIDE_TABLES 10
+
+static unsigned long acpi_table_override_offset[ACPI_OVERRIDE_TABLES];
+static u64 acpi_tables_inram;
+
+unsigned long __initdata acpi_initrd_offset;
+
+/* Copied from acpica/tbutils.c:acpi_tb_checksum() */
+u8 __init acpi_table_checksum(u8 *buffer, u32 length)
+{
+	u8 sum = 0;
+	u8 *end = buffer + length;
+
+	while (buffer < end)
+		sum = (u8) (sum + *(buffer++));
+	return sum;
+}
+
+/* All but ACPI_SIG_RSDP and ACPI_SIG_FACS: */
+#define MAX_ACPI_SIGNATURE 35
+static const char *table_sigs[MAX_ACPI_SIGNATURE] = {
+	ACPI_SIG_BERT, ACPI_SIG_CPEP, ACPI_SIG_ECDT, ACPI_SIG_EINJ,
+	ACPI_SIG_ERST, ACPI_SIG_HEST, ACPI_SIG_MADT, ACPI_SIG_MSCT,
+	ACPI_SIG_SBST, ACPI_SIG_SLIT, ACPI_SIG_SRAT, ACPI_SIG_ASF,
+	ACPI_SIG_BOOT, ACPI_SIG_DBGP, ACPI_SIG_DMAR, ACPI_SIG_HPET,
+	ACPI_SIG_IBFT, ACPI_SIG_IVRS, ACPI_SIG_MCFG, ACPI_SIG_MCHI,
+	ACPI_SIG_SLIC, ACPI_SIG_SPCR, ACPI_SIG_SPMI, ACPI_SIG_TCPA,
+	ACPI_SIG_UEFI, ACPI_SIG_WAET, ACPI_SIG_WDAT, ACPI_SIG_WDDT,
+	ACPI_SIG_WDRT, ACPI_SIG_DSDT, ACPI_SIG_FADT, ACPI_SIG_PSDT,
+	ACPI_SIG_RSDT, ACPI_SIG_XSDT, ACPI_SIG_SSDT };
+
+int __init acpi_initrd_table_override(void *start_addr, void *end_addr)
+{
+	int table_nr, sig;
+	unsigned long offset = 0, max_len = end_addr - start_addr;
+	char *p;
+
+	for (table_nr = 0; table_nr < ACPI_OVERRIDE_TABLES; table_nr++) {
+		struct acpi_table_header *table;
+		if (max_len < offset + sizeof(struct acpi_table_header)) {
+			WARN_ON(1);
+			return 0;
+		}
+		table = start_addr + offset;
+
+		for (sig = 0; sig < MAX_ACPI_SIGNATURE; sig++)
+			if (!memcmp(table->signature, table_sigs[sig], 4))
+				break;
+
+		if (sig >= MAX_ACPI_SIGNATURE)
+			break;
+
+		if (max_len < offset + table->length) {
+			WARN_ON(1);
+			return 0;
+		}
+
+		if (acpi_table_checksum(start_addr + offset, table->length)) {
+			WARN(1, "%4.4s has invalid checksum\n",
+			     table->signature);
+			continue;
+		}
+		printk(KERN_INFO "%4.4s ACPI table found in initrd"
+		       " - size: %d\n", table->signature, table->length);
+
+		offset += table->length;
+		acpi_table_override_offset[table_nr] = offset;
+	}
+	if (!offset)
+		return 0;
+
+	acpi_tables_inram =
+		memblock_find_in_range(0, max_low_pfn_mapped << PAGE_SHIFT,
+				       offset, PAGE_SIZE);
+	if (acpi_tables_inram == MEMBLOCK_ERROR)
+		panic("Cannot find place for ACPI override tables\n");
+
+	/*
+	 * Only calling e820_add_reserve does not work and the
+	 * tables are invalid (memory got used) later.
+	 * memblock_x86_reserve_range works as expected and the tables
+	 * won't get modified. But it's not enough because ioremap will
+	 * complain later (used by acpi_os_map_memory) that the pages
+	 * that should get mapped are not marked "reserved".
+	 * Both memblock_x86_reserve_range and e820_add_region works fine.
+	 */
+	memblock_x86_reserve_range(acpi_tables_inram,
+				   acpi_tables_inram + offset,
+				   "ACPI TABLE OVERRIDE");
+	e820_add_region(acpi_tables_inram, offset, E820_ACPI);
+	update_e820();
+
+	p = early_ioremap(acpi_tables_inram, offset);
+	memcpy(p, start_addr, offset);
+	early_iounmap(p, offset);
+	return offset;
+}
+
+#endif
+
 acpi_status
 acpi_os_table_override(struct acpi_table_header * existing_table,
 		       struct acpi_table_header ** new_table)
@@ -526,11 +629,51 @@ acpi_status
 acpi_os_phys_table_override(struct acpi_table_header *existing_table,
 			    acpi_physical_address *address, u32 *table_length)
 {
-	if (!existing_table)
-		return AE_BAD_PARAMETER;
 
-	table_length = 0;
+#ifndef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	*table_length = 0;
+	*address = 0;
 	return AE_OK;
+#else
+	int table_nr = 0;
+	*table_length = 0;
+	*address = 0;
+	for (; table_nr < ACPI_OVERRIDE_TABLES &&
+		     acpi_table_override_offset[table_nr]; table_nr++) {
+		int table_offset;
+		int table_len;
+		struct acpi_table_header *table;
+
+		if (table_nr == 0)
+			table_offset = 0;
+		else
+			table_offset = acpi_table_override_offset[table_nr - 1];
+
+		table_len = acpi_table_override_offset[table_nr] - table_offset;
+
+		table = acpi_os_map_memory(acpi_tables_inram + table_offset,
+					   table_len);
+
+		if (memcmp(existing_table->signature, table->signature, 4)) {
+			acpi_os_unmap_memory(table, table_len);
+			continue;
+		}
+
+		/* Only override tables with matching oem id */
+		if (memcmp(table->oem_table_id, existing_table->oem_table_id,
+			   ACPI_OEM_TABLE_ID_SIZE)) {
+			acpi_os_unmap_memory(table, table_len);
+			continue;
+		}
+
+		acpi_os_unmap_memory(table, table_len);
+		*address = acpi_tables_inram + table_offset;
+		*table_length = table_len;
+		add_taint(TAINT_OVERRIDDEN_ACPI_TABLE);
+		break;
+	}
+	return AE_OK;
+#endif
 }
 
 static irqreturn_t acpi_irq(int irq, void *dev_id)
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 6001b4da..adc87ec 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -76,6 +76,10 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *table);
 
 typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
 
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+int __init acpi_initrd_table_override(void *start_addr, void *end_addr);
+#endif
+
 char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
 void __acpi_unmap_table(char *map, unsigned long size);
 int early_acpi_boot_init(void);
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index 55289d2..c7694d9 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -16,5 +16,8 @@ extern int initrd_below_start_ok;
 /* free_initrd_mem always gets called with the next two as arguments.. */
 extern unsigned long initrd_start, initrd_end;
 extern void free_initrd_mem(unsigned long, unsigned long);
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+extern unsigned long acpi_initrd_offset;
+#endif
 
 extern unsigned int real_root_dev;
-- 
1.7.3.4


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

* [Devel] [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-24  9:48   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-24  9:48 UTC (permalink / raw)
  To: devel

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

Details can be found in:
Documentation/acpi/initrd_table_override.txt

Additional dmesg output of a booted system with
FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
tables overridden (with ### marked comments):

### ACPI tables found glued to initrd
DSDT ACPI table found in initrd - size: 16234
FACP ACPI table found in initrd - size: 116
SSDT ACPI table found in initrd - size: 334
### Re-printed e820 map via e820_update() with additionally created
### ACPI data section at 0xcff55000 where the ACPI tables passed via
### initrd where copied to
modified physical RAM map:
...
  ### New ACPI data section:
  modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
  ### BIOS e820 provided ACPI data section:
  modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
...
### Total size of all ACPI tables glued to initrd
### The address is initrd_start which gets updated to
### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
Found acpi tables of size: 16684 at 0xffff8800374c4000

Disabling lock debugging due to kernel taint
### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
...
### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
### loaded ACPI table matches and gets overridden:
ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
ACPI: Dynamic OEM Table Load:
ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
...

If the initrd does not start with a valid ACPI table signature or the ACPI
table's checksum is wrong, there is no functional change.

Signed-off-by: Thomas Renninger <trenn(a)suse.de>
CC: linux-acpi(a)vger.kernel.org
CC: lenb(a)kernel.org
CC: linux-kernel(a)vger.kernel.org
CC: x86(a)kernel.org
---
 Documentation/acpi/initrd_table_override.txt |  110 +++++++++++++++++++
 arch/x86/kernel/setup.c                      |   18 +++-
 arch/x86/mm/init.c                           |    6 +
 drivers/acpi/Kconfig                         |    9 ++
 drivers/acpi/osl.c                           |  149 +++++++++++++++++++++++++-
 include/linux/acpi.h                         |    4 +
 include/linux/initrd.h                       |    3 +
 7 files changed, 291 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/acpi/initrd_table_override.txt

diff --git a/Documentation/acpi/initrd_table_override.txt b/Documentation/acpi/initrd_table_override.txt
new file mode 100644
index 0000000..7b29d5f
--- /dev/null
+++ b/Documentation/acpi/initrd_table_override.txt
@@ -0,0 +1,110 @@
+Overriding ACPI tables via initrd
+=================================
+
+1) Introduction (What is this about)
+2) What is this for
+3) How does it work
+4) References (Where to retrieve userspace tools)
+
+1) What is this about
+---------------------
+
+If ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible to
+override nearly any ACPI table provided by the BIOS with an instrumented,
+modified one.
+
+Up to 10 arbitrary ACPI tables can be passed.
+For a full list of ACPI tables that can be overridden, take a look at
+the char *table_sigs[MAX_ACPI_SIGNATURE]; definition in drivers/acpi/osl.c
+All ACPI tables iasl (Intel's ACPI compiler and disassembler) knows should
+be overridable, except:
+   - ACPI_SIG_RSDP (has a signature of 6 bytes)
+   - ACPI_SIG_FACS (does not have an ordinary ACPI table header)
+Both could get implemented as well.
+
+
+2) What is this for
+-------------------
+
+Please keep in mind that this is a debug option.
+ACPI tables should not get overridden for productive use.
+If BIOS ACPI tables are overridden the kernel will get tainted with the
+TAINT_OVERRIDDEN_ACPI_TABLE flag.
+Complain to your platform/BIOS vendor if you find a bug which is that sever
+that a workaround is not accepted in the Linus kernel.
+
+Still, it can and should be enabled in any kernel, because:
+  - There is no functional change with not instrumented initrds
+  - It provides a powerful feature to easily debug and test ACPI BIOS table
+    compatibility with the Linux kernel.
+
+Until now it was only possible to override the DSDT by compiling it into
+the kernel. This is a nightmare when trying to work on ACPI related bugs
+and a lot bugs got stuck because of that.
+Even for people with enough kernel knowledge, building a kernel to try out
+things is very time consuming. Also people may have to browse and modify the
+ACPI interpreter code to find a possible BIOS bug. With this feature, people
+can correct the ACPI tables and try out quickly whether this is the root cause
+that needs to get addressed in the kernel.
+
+This could even ease up testing for BIOS providers who could flush their BIOS
+to test, but overriding table via initrd is much easier and quicker.
+For example one could prepare different initrds overriding NUMA tables with
+different affinity settings. Set up a script, let the machine reboot and
+run tests over night and one can get a picture how these settings influence
+the Linux kernel and which values are best.
+
+People can instrument the dynamic ACPI (ASL) code (for example with debug
+statements showing up in syslog when the ACPI code is processed, etc.),
+to better understand BIOS to OS interfaces, to hunt down ACPI BIOS code related
+bugs quickly or to easier develop ACPI based drivers.
+
+Intstrumenting ACPI code in SSDTs is now much easier. Before, one had to copy
+all SSDTs into the DSDT to compile it into the kernel for testing
+(because only DSDT could get overridden). That's what the acpi_no_auto_ssdt
+boot param is for: the BIOS provided SSDTs are ignored and all have to get
+copied into the DSDT, complicated and time consuming.
+
+Much more use cases, depending on which ACPI parts you are working on...
+
+
+3) How does it work
+-------------------
+
+# Extract the machine's ACPI tables:
+acpidump >acpidump
+acpixtract -a acpidump
+# Disassemble, modify and recompile them:
+iasl -d *.dat
+# For example add this statement into a _PRT (PCI Routing Table) function
+# of the DSDT:
+Store("Hello World", debug)
+iasl -sa *.dsl
+# glue them together with the initrd. ACPI tables go first, original initrd
+# goes on top:
+cat TBL1.dat >>instrumented_initrd
+cat TBL2.dat >>instrumented_initrd
+cat TBL3.dat >>instrumented_initrd
+cat /boot/initrd >>instrumented_initrd
+# reboot with increased acpi debug level, e.g. boot params:
+acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
+# and check your syslog:
+[    1.268089] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
+[    1.272091] [ACPI Debug]  String [0x0B] "HELLO WORLD"
+
+iasl is able to disassemble and recompile quite a lot different,
+also static ACPI tables.
+
+4) Where to retrieve userspace tools
+------------------------------------
+
+iasl and acpixtract are part of Intel's ACPICA project:
+http://acpica.org/
+and should be packaged by distributions (for example in the acpica package
+on SUSE).
+
+acpidump can be found in Len Browns pmtools:
+ftp://kernel.org/pub/linux/kernel/people/lenb/acpi/utils/pmtools/acpidump
+This tool is also part of the acpica package on SUSE.
+Alternatively used ACPI tables can be retrieved via sysfs in latest kernels:
+/sys/firmware/acpi/tables
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index afaf384..9fe9aa5 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -411,12 +411,20 @@ static void __init reserve_initrd(void)
 		 */
 		initrd_start = ramdisk_image + PAGE_OFFSET;
 		initrd_end = initrd_start + ramdisk_size;
-		return;
+	} else {
+		relocate_initrd();
+		memblock_x86_free_range(ramdisk_image, ramdisk_end);
 	}
-
-	relocate_initrd();
-
-	memblock_x86_free_range(ramdisk_image, ramdisk_end);
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	acpi_initrd_offset = acpi_initrd_table_override((void *)initrd_start,
+							(void *)initrd_end);
+	if (!acpi_initrd_offset)
+		return;
+	printk(KERN_INFO "Found acpi tables of size: %lu at 0x%lx\n",
+	       acpi_initrd_offset, initrd_start);
+	initrd_start += acpi_initrd_offset;
+	return;
+#endif
 }
 #else
 static void __init reserve_initrd(void)
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 3032644..8843eca 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -390,6 +390,12 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 	 *   - relocate_initrd()
 	 * So here We can do PAGE_ALIGN() safely to get partial page to be freed
 	 */
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	if (acpi_initrd_offset)
+		free_init_pages("initrd memory", start - acpi_initrd_offset,
+				PAGE_ALIGN(end));
+	else
+#endif
 	free_init_pages("initrd memory", start, PAGE_ALIGN(end));
 }
 #endif
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index de0e3df..9c595c3 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -261,6 +261,15 @@ config ACPI_CUSTOM_DSDT
 	bool
 	default ACPI_CUSTOM_DSDT_FILE != ""
 
+config ACPI_INITRD_TABLE_OVERRIDE
+	bool
+	default y
+	help
+	  This option provides functionality to override arbitrary ACPI tables
+	  via initrd. No functional change if no ACPI tables are glued to the
+	  initrd, therefore it's safe to say Y.
+	  See Documentation/acpi/initrd_table_override.txt for details
+
 config ACPI_BLACKLIST_YEAR
 	int "Disable ACPI for systems before Jan 1st this year" if X86_32
 	default 0
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 49b5fa6..d901752 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -44,9 +44,11 @@
 #include <linux/list.h>
 #include <linux/jiffies.h>
 #include <linux/semaphore.h>
+#include <linux/memblock.h>
 
 #include <asm/io.h>
 #include <asm/uaccess.h>
+#include <asm/e820.h>
 
 #include <acpi/acpi.h>
 #include <acpi/acpi_bus.h>
@@ -499,6 +501,107 @@ acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
 	return AE_OK;
 }
 
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+#define ACPI_OVERRIDE_TABLES 10
+
+static unsigned long acpi_table_override_offset[ACPI_OVERRIDE_TABLES];
+static u64 acpi_tables_inram;
+
+unsigned long __initdata acpi_initrd_offset;
+
+/* Copied from acpica/tbutils.c:acpi_tb_checksum() */
+u8 __init acpi_table_checksum(u8 *buffer, u32 length)
+{
+	u8 sum = 0;
+	u8 *end = buffer + length;
+
+	while (buffer < end)
+		sum = (u8) (sum + *(buffer++));
+	return sum;
+}
+
+/* All but ACPI_SIG_RSDP and ACPI_SIG_FACS: */
+#define MAX_ACPI_SIGNATURE 35
+static const char *table_sigs[MAX_ACPI_SIGNATURE] = {
+	ACPI_SIG_BERT, ACPI_SIG_CPEP, ACPI_SIG_ECDT, ACPI_SIG_EINJ,
+	ACPI_SIG_ERST, ACPI_SIG_HEST, ACPI_SIG_MADT, ACPI_SIG_MSCT,
+	ACPI_SIG_SBST, ACPI_SIG_SLIT, ACPI_SIG_SRAT, ACPI_SIG_ASF,
+	ACPI_SIG_BOOT, ACPI_SIG_DBGP, ACPI_SIG_DMAR, ACPI_SIG_HPET,
+	ACPI_SIG_IBFT, ACPI_SIG_IVRS, ACPI_SIG_MCFG, ACPI_SIG_MCHI,
+	ACPI_SIG_SLIC, ACPI_SIG_SPCR, ACPI_SIG_SPMI, ACPI_SIG_TCPA,
+	ACPI_SIG_UEFI, ACPI_SIG_WAET, ACPI_SIG_WDAT, ACPI_SIG_WDDT,
+	ACPI_SIG_WDRT, ACPI_SIG_DSDT, ACPI_SIG_FADT, ACPI_SIG_PSDT,
+	ACPI_SIG_RSDT, ACPI_SIG_XSDT, ACPI_SIG_SSDT };
+
+int __init acpi_initrd_table_override(void *start_addr, void *end_addr)
+{
+	int table_nr, sig;
+	unsigned long offset = 0, max_len = end_addr - start_addr;
+	char *p;
+
+	for (table_nr = 0; table_nr < ACPI_OVERRIDE_TABLES; table_nr++) {
+		struct acpi_table_header *table;
+		if (max_len < offset + sizeof(struct acpi_table_header)) {
+			WARN_ON(1);
+			return 0;
+		}
+		table = start_addr + offset;
+
+		for (sig = 0; sig < MAX_ACPI_SIGNATURE; sig++)
+			if (!memcmp(table->signature, table_sigs[sig], 4))
+				break;
+
+		if (sig >= MAX_ACPI_SIGNATURE)
+			break;
+
+		if (max_len < offset + table->length) {
+			WARN_ON(1);
+			return 0;
+		}
+
+		if (acpi_table_checksum(start_addr + offset, table->length)) {
+			WARN(1, "%4.4s has invalid checksum\n",
+			     table->signature);
+			continue;
+		}
+		printk(KERN_INFO "%4.4s ACPI table found in initrd"
+		       " - size: %d\n", table->signature, table->length);
+
+		offset += table->length;
+		acpi_table_override_offset[table_nr] = offset;
+	}
+	if (!offset)
+		return 0;
+
+	acpi_tables_inram =
+		memblock_find_in_range(0, max_low_pfn_mapped << PAGE_SHIFT,
+				       offset, PAGE_SIZE);
+	if (acpi_tables_inram == MEMBLOCK_ERROR)
+		panic("Cannot find place for ACPI override tables\n");
+
+	/*
+	 * Only calling e820_add_reserve does not work and the
+	 * tables are invalid (memory got used) later.
+	 * memblock_x86_reserve_range works as expected and the tables
+	 * won't get modified. But it's not enough because ioremap will
+	 * complain later (used by acpi_os_map_memory) that the pages
+	 * that should get mapped are not marked "reserved".
+	 * Both memblock_x86_reserve_range and e820_add_region works fine.
+	 */
+	memblock_x86_reserve_range(acpi_tables_inram,
+				   acpi_tables_inram + offset,
+				   "ACPI TABLE OVERRIDE");
+	e820_add_region(acpi_tables_inram, offset, E820_ACPI);
+	update_e820();
+
+	p = early_ioremap(acpi_tables_inram, offset);
+	memcpy(p, start_addr, offset);
+	early_iounmap(p, offset);
+	return offset;
+}
+
+#endif
+
 acpi_status
 acpi_os_table_override(struct acpi_table_header * existing_table,
 		       struct acpi_table_header ** new_table)
@@ -526,11 +629,51 @@ acpi_status
 acpi_os_phys_table_override(struct acpi_table_header *existing_table,
 			    acpi_physical_address *address, u32 *table_length)
 {
-	if (!existing_table)
-		return AE_BAD_PARAMETER;
 
-	table_length = 0;
+#ifndef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+	*table_length = 0;
+	*address = 0;
 	return AE_OK;
+#else
+	int table_nr = 0;
+	*table_length = 0;
+	*address = 0;
+	for (; table_nr < ACPI_OVERRIDE_TABLES &&
+		     acpi_table_override_offset[table_nr]; table_nr++) {
+		int table_offset;
+		int table_len;
+		struct acpi_table_header *table;
+
+		if (table_nr == 0)
+			table_offset = 0;
+		else
+			table_offset = acpi_table_override_offset[table_nr - 1];
+
+		table_len = acpi_table_override_offset[table_nr] - table_offset;
+
+		table = acpi_os_map_memory(acpi_tables_inram + table_offset,
+					   table_len);
+
+		if (memcmp(existing_table->signature, table->signature, 4)) {
+			acpi_os_unmap_memory(table, table_len);
+			continue;
+		}
+
+		/* Only override tables with matching oem id */
+		if (memcmp(table->oem_table_id, existing_table->oem_table_id,
+			   ACPI_OEM_TABLE_ID_SIZE)) {
+			acpi_os_unmap_memory(table, table_len);
+			continue;
+		}
+
+		acpi_os_unmap_memory(table, table_len);
+		*address = acpi_tables_inram + table_offset;
+		*table_length = table_len;
+		add_taint(TAINT_OVERRIDDEN_ACPI_TABLE);
+		break;
+	}
+	return AE_OK;
+#endif
 }
 
 static irqreturn_t acpi_irq(int irq, void *dev_id)
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 6001b4da..adc87ec 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -76,6 +76,10 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *table);
 
 typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
 
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+int __init acpi_initrd_table_override(void *start_addr, void *end_addr);
+#endif
+
 char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
 void __acpi_unmap_table(char *map, unsigned long size);
 int early_acpi_boot_init(void);
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index 55289d2..c7694d9 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -16,5 +16,8 @@ extern int initrd_below_start_ok;
 /* free_initrd_mem always gets called with the next two as arguments.. */
 extern unsigned long initrd_start, initrd_end;
 extern void free_initrd_mem(unsigned long, unsigned long);
+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+extern unsigned long acpi_initrd_offset;
+#endif
 
 extern unsigned int real_root_dev;
-- 
1.7.3.4


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

* Re: [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
  2011-08-24  9:48   ` [Devel] " Thomas Renninger
  (?)
@ 2011-08-29  8:24     ` Joey Lee
  -1 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:24 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Currently it's only possible to feed acpica with virtual
> address for table overriding.
> This patch introduces a function which allows the OS to
> pass physical addresses for table overriding.
> 
> This is necessary to allow early table overridings of
> arbitrary ACPI tables.
> 
> An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
> because physical address overriding is rather transparent
> (the same way acpica expects to get tables from reserved
> memory BIOS regions which is the normal way).
> 
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: devel@acpica.org
> CC: linux-acpi@vger.kernel.org
> CC: lenb@kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's
Joey Lee

>  drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
>  drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
>  drivers/acpi/osl.c             |   11 +++++++++++
>  include/acpi/acpiosxf.h        |    4 ++++
>  4 files changed, 47 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
> index 62365f6..b9b9d2a 100644
> --- a/drivers/acpi/acpica/tbinstal.c
> +++ b/drivers/acpi/acpica/tbinstal.c
> @@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
>  		table_desc->pointer = override_table;
>  		table_desc->length = override_table->length;
>  		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
> +	} else {
> +		acpi_physical_address address = 0;
> +		u32 table_len = 0;
> +		status = acpi_os_phys_table_override(table_desc->pointer,
> +						     &address, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && address) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   table_desc->pointer->signature,
> +				   ACPI_CAST_PTR(void, table_desc->address)));
> +			table_desc->address = address;
> +			table_desc->pointer = acpi_os_map_memory(address,
> +								 table_len);
> +			table_desc->length = table_len;
> +		}
>  	}
>  
>  	/* Add the table to the global root table list */
> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
> index 0f2d395..df85afe 100644
> --- a/drivers/acpi/acpica/tbutils.c
> +++ b/drivers/acpi/acpica/tbutils.c
> @@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
>  		table_to_install = override_table;
>  		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
>  	} else {
> -		table_to_install = mapped_table;
> +		u32 table_len = 0;
> +		acpi_physical_address tmp_addr = 0;
> +
> +		status = acpi_os_phys_table_override(mapped_table,
> +						     &tmp_addr, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   mapped_table->signature,
> +				   ACPI_CAST_PTR(void, address)));
> +			acpi_os_unmap_memory(mapped_table,
> +					     sizeof(struct acpi_table_header));
> +			mapped_table = acpi_os_map_memory(address,
> +					  sizeof(struct acpi_table_header));
> +			address = tmp_addr;
> +		}
>  		flags = ACPI_TABLE_ORIGIN_MAPPED;
> +		table_to_install = mapped_table;
>  	}
>  
>  	/* Initialize the table entry */
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fa32f58..49b5fa6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
>  	return AE_OK;
>  }
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length)
> +{
> +	if (!existing_table)
> +		return AE_BAD_PARAMETER;
> +
> +	table_length = 0;
> +	return AE_OK;
> +}
> +
>  static irqreturn_t acpi_irq(int irq, void *dev_id)
>  {
>  	u32 handled;
> diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
> index 4543b6f..0bef969 100644
> --- a/include/acpi/acpiosxf.h
> +++ b/include/acpi/acpiosxf.h
> @@ -95,6 +95,10 @@ acpi_status
>  acpi_os_table_override(struct acpi_table_header *existing_table,
>  		       struct acpi_table_header **new_table);
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length);
> +
>  /*
>   * Spinlock primitives
>   */
> -- 
> 1.7.3.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" 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] 28+ messages in thread

* Re: [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-29  8:24     ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:24 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Currently it's only possible to feed acpica with virtual
> address for table overriding.
> This patch introduces a function which allows the OS to
> pass physical addresses for table overriding.
> 
> This is necessary to allow early table overridings of
> arbitrary ACPI tables.
> 
> An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
> because physical address overriding is rather transparent
> (the same way acpica expects to get tables from reserved
> memory BIOS regions which is the normal way).
> 
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: devel@acpica.org
> CC: linux-acpi@vger.kernel.org
> CC: lenb@kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's
Joey Lee

>  drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
>  drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
>  drivers/acpi/osl.c             |   11 +++++++++++
>  include/acpi/acpiosxf.h        |    4 ++++
>  4 files changed, 47 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
> index 62365f6..b9b9d2a 100644
> --- a/drivers/acpi/acpica/tbinstal.c
> +++ b/drivers/acpi/acpica/tbinstal.c
> @@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
>  		table_desc->pointer = override_table;
>  		table_desc->length = override_table->length;
>  		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
> +	} else {
> +		acpi_physical_address address = 0;
> +		u32 table_len = 0;
> +		status = acpi_os_phys_table_override(table_desc->pointer,
> +						     &address, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && address) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   table_desc->pointer->signature,
> +				   ACPI_CAST_PTR(void, table_desc->address)));
> +			table_desc->address = address;
> +			table_desc->pointer = acpi_os_map_memory(address,
> +								 table_len);
> +			table_desc->length = table_len;
> +		}
>  	}
>  
>  	/* Add the table to the global root table list */
> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
> index 0f2d395..df85afe 100644
> --- a/drivers/acpi/acpica/tbutils.c
> +++ b/drivers/acpi/acpica/tbutils.c
> @@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
>  		table_to_install = override_table;
>  		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
>  	} else {
> -		table_to_install = mapped_table;
> +		u32 table_len = 0;
> +		acpi_physical_address tmp_addr = 0;
> +
> +		status = acpi_os_phys_table_override(mapped_table,
> +						     &tmp_addr, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   mapped_table->signature,
> +				   ACPI_CAST_PTR(void, address)));
> +			acpi_os_unmap_memory(mapped_table,
> +					     sizeof(struct acpi_table_header));
> +			mapped_table = acpi_os_map_memory(address,
> +					  sizeof(struct acpi_table_header));
> +			address = tmp_addr;
> +		}
>  		flags = ACPI_TABLE_ORIGIN_MAPPED;
> +		table_to_install = mapped_table;
>  	}
>  
>  	/* Initialize the table entry */
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fa32f58..49b5fa6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
>  	return AE_OK;
>  }
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length)
> +{
> +	if (!existing_table)
> +		return AE_BAD_PARAMETER;
> +
> +	table_length = 0;
> +	return AE_OK;
> +}
> +
>  static irqreturn_t acpi_irq(int irq, void *dev_id)
>  {
>  	u32 handled;
> diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
> index 4543b6f..0bef969 100644
> --- a/include/acpi/acpiosxf.h
> +++ b/include/acpi/acpiosxf.h
> @@ -95,6 +95,10 @@ acpi_status
>  acpi_os_table_override(struct acpi_table_header *existing_table,
>  		       struct acpi_table_header **new_table);
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length);
> +
>  /*
>   * Spinlock primitives
>   */
> -- 
> 1.7.3.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



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

* Re: [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-29  8:24     ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:24 UTC (permalink / raw)
  To: devel

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

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Currently it's only possible to feed acpica with virtual
> address for table overriding.
> This patch introduces a function which allows the OS to
> pass physical addresses for table overriding.
> 
> This is necessary to allow early table overridings of
> arbitrary ACPI tables.
> 
> An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
> because physical address overriding is rather transparent
> (the same way acpica expects to get tables from reserved
> memory BIOS regions which is the normal way).
> 
> Signed-off-by: Thomas Renninger <trenn(a)suse.de>
> CC: devel(a)acpica.org
> CC: linux-acpi(a)vger.kernel.org
> CC: lenb(a)kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.

Tested-by: Lee, Chun-Yi <jlee(a)suse.com>


Thank's
Joey Lee

>  drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
>  drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
>  drivers/acpi/osl.c             |   11 +++++++++++
>  include/acpi/acpiosxf.h        |    4 ++++
>  4 files changed, 47 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
> index 62365f6..b9b9d2a 100644
> --- a/drivers/acpi/acpica/tbinstal.c
> +++ b/drivers/acpi/acpica/tbinstal.c
> @@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
>  		table_desc->pointer = override_table;
>  		table_desc->length = override_table->length;
>  		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
> +	} else {
> +		acpi_physical_address address = 0;
> +		u32 table_len = 0;
> +		status = acpi_os_phys_table_override(table_desc->pointer,
> +						     &address, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && address) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   table_desc->pointer->signature,
> +				   ACPI_CAST_PTR(void, table_desc->address)));
> +			table_desc->address = address;
> +			table_desc->pointer = acpi_os_map_memory(address,
> +								 table_len);
> +			table_desc->length = table_len;
> +		}
>  	}
>  
>  	/* Add the table to the global root table list */
> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
> index 0f2d395..df85afe 100644
> --- a/drivers/acpi/acpica/tbutils.c
> +++ b/drivers/acpi/acpica/tbutils.c
> @@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
>  		table_to_install = override_table;
>  		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
>  	} else {
> -		table_to_install = mapped_table;
> +		u32 table_len = 0;
> +		acpi_physical_address tmp_addr = 0;
> +
> +		status = acpi_os_phys_table_override(mapped_table,
> +						     &tmp_addr, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   mapped_table->signature,
> +				   ACPI_CAST_PTR(void, address)));
> +			acpi_os_unmap_memory(mapped_table,
> +					     sizeof(struct acpi_table_header));
> +			mapped_table = acpi_os_map_memory(address,
> +					  sizeof(struct acpi_table_header));
> +			address = tmp_addr;
> +		}
>  		flags = ACPI_TABLE_ORIGIN_MAPPED;
> +		table_to_install = mapped_table;
>  	}
>  
>  	/* Initialize the table entry */
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fa32f58..49b5fa6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
>  	return AE_OK;
>  }
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length)
> +{
> +	if (!existing_table)
> +		return AE_BAD_PARAMETER;
> +
> +	table_length = 0;
> +	return AE_OK;
> +}
> +
>  static irqreturn_t acpi_irq(int irq, void *dev_id)
>  {
>  	u32 handled;
> diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
> index 4543b6f..0bef969 100644
> --- a/include/acpi/acpiosxf.h
> +++ b/include/acpi/acpiosxf.h
> @@ -95,6 +95,10 @@ acpi_status
>  acpi_os_table_override(struct acpi_table_header *existing_table,
>  		       struct acpi_table_header **new_table);
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length);
> +
>  /*
>   * Spinlock primitives
>   */
> -- 
> 1.7.3.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo(a)vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



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

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
  2011-08-24  9:48   ` [Devel] " Thomas Renninger
  (?)
@ 2011-08-29  8:31     ` Joey Lee
  -1 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:31 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

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

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Details can be found in:
> Documentation/acpi/initrd_table_override.txt
> 
> Additional dmesg output of a booted system with
> FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> tables overridden (with ### marked comments):
> 
> ### ACPI tables found glued to initrd
> DSDT ACPI table found in initrd - size: 16234
> FACP ACPI table found in initrd - size: 116
> SSDT ACPI table found in initrd - size: 334
> ### Re-printed e820 map via e820_update() with additionally created
> ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> ### initrd where copied to
> modified physical RAM map:
> ...
>   ### New ACPI data section:
>   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
>   ### BIOS e820 provided ACPI data section:
>   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> ...
> ### Total size of all ACPI tables glued to initrd
> ### The address is initrd_start which gets updated to
> ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> Found acpi tables of size: 16684 at 0xffff8800374c4000
> 
> Disabling lock debugging due to kernel taint
> ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> ...
> ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> ### loaded ACPI table matches and gets overridden:
> ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ACPI: Dynamic OEM Table Load:
> ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ...
> 
> If the initrd does not start with a valid ACPI table signature or the ACPI
> table's checksum is wrong, there is no functional change.
> 
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: linux-acpi@vger.kernel.org
> CC: lenb@kernel.org
> CC: linux-kernel@vger.kernel.org
> CC: x86@kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.
I added a debug message to _BCM method in DSDT then override it in
initrd by follow initrd_table_override.txt.

The attached is my dmesg log.

> +3) How does it work
> +-------------------
> +
> +# Extract the machine's ACPI tables:
> +acpidump >acpidump
> +acpixtract -a acpidump
> +# Disassemble, modify and recompile them:
> +iasl -d *.dat
> +# For example add this statement into a _PRT (PCI Routing Table) function
> +# of the DSDT:
> +Store("Hello World", debug)
> +iasl -sa *.dsl
> +# glue them together with the initrd. ACPI tables go first, original initrd
> +# goes on top:
> +cat TBL1.dat >>instrumented_initrd
> +cat TBL2.dat >>instrumented_initrd
> +cat TBL3.dat >>instrumented_initrd

I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
because iasl -sa default generate out *.aml file but not *.dat file, my
iasl version is Intel 20110112-64 [Feb 27 2011].
That will be more clear for the first time user to understand need cat
*.aml file.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's
Joey Lee


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

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.0-0.7-desktop+ (linux@linux-cr4d.site) (gcc version 4.5.1 20101208 [gcc-4_5-branch revision 167585] (SUSE Linux) ) #1 SMP PREEMPT Thu Aug 25 04:01:42 CST 2011
[    0.000000] Command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009c400 (usable)
[    0.000000]  BIOS-e820: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  BIOS-e820: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  BIOS-e820: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  BIOS-e820: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  BIOS-e820: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  BIOS-e820: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  BIOS-e820: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  BIOS-e820: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f79f000 - 000000006f7df000 (usable)
[    0.000000]  BIOS-e820: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  BIOS-e820: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  BIOS-e820: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  BIOS-e820: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI present.
[    0.000000] DMI: Acer             S2.TXN03.002     /BAP50-CP        , BIOS V1.27   04/25/2011
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x6f800 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-DFFFF uncachable
[    0.000000]   E0000-FFFFF write-through
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 disabled
[    0.000000]   1 base 070000000 mask FF0000000 uncachable
[    0.000000]   2 base 000000000 mask F80000000 write-back
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] found SMP MP-table at [ffff8800000f6d40] f6d40
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 20480
[    0.000000] init_memory_mapping: 0000000000000000-000000006f800000
[    0.000000]  0000000000 - 006f800000 page 2M
[    0.000000] kernel direct mapping tables up to 6f800000 @ 6f7dc000-6f7df000
[    0.000000] RAMDISK: 36b48000 - 37ff0000
[    0.000000] DSDT ACPI table found in initrd - size: 56678
[    0.000000] modified physical RAM map:
[    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
[    0.000000]  modified: 0000000000010000 - 000000000009c400 (usable)
[    0.000000]  modified: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  modified: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  modified: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  modified: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  modified: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  modified: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  modified: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  modified: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  modified: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  modified: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  modified: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  modified: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  modified: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  modified: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  modified: 000000006f79f000 - 000000006f7ce000 (usable)
[    0.000000]  modified: 000000006f7ce000 - 000000006f7dbd66 (ACPI data)
[    0.000000]  modified: 000000006f7dbd66 - 000000006f7df000 (usable)
[    0.000000]  modified: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  modified: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  modified: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  modified: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  modified: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  modified: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  modified: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  modified: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  modified: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  modified: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  modified: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] Found acpi tables of size: 56678 at 0xffff880036b48000
[    0.000000] ACPI: RSDP 00000000000f6c80 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 000000006f7f0d89 00064 (v01 ACRSYS ACRPRDCT 06040000  LTP 00000000)
[    0.000000] ACPI: FACP 000000006f7e1000 000F4 (v03 INTEL  CRESTLNE 06040000 ALAN 00000001)
[    0.000000] Disabling lock debugging due to kernel taint
[    0.000000] ACPI: DSDT @ 0x000000006f7e2000 Phys table override, replaced with:
[    0.000000] ACPI: DSDT 000000006f7ce000 0DD4E (v02 ACRSYS CALPELLA 06040000 INTL 20060912)
[    0.000000] ACPI: FACS 000000006f79bfc0 00040
[    0.000000] ACPI: HPET 000000006f7fecdb 00038 (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: MCFG 000000006f7fed13 0003C (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: APIC 000000006f7fed4f 00084 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: BOOT 000000006f7fedd3 00028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SLIC 000000006f7fedfb 00176 (v01 ACRSYS ACRPRDCT 06040000 acer 00000000)
[    0.000000] ACPI: ASF! 000000006f7fef71 0008F (v16   CETP     CETP 06040000 PTL  00000001)
[    0.000000] ACPI: SSDT 000000006f7e0000 009F1 (v01  PmRef    CpuPm 00003000 INTL 20060912)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-000000006f800000
[    0.000000] Initmem setup node 0 0000000000000000-000000006f800000
[    0.000000]   NODE_DATA [000000006f7ba000 - 000000006f7cdfff]
[    0.000000]  [ffffea0000000000-ffffea00019fffff] PMD -> [ffff88006ce00000-ffff88006e7fffff] on node 0
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   empty
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[8] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009c
[    0.000000]     0: 0x00000100 -> 0x0006f27c
[    0.000000]     0: 0x0006f282 -> 0x0006f3ee
[    0.000000]     0: 0x0006f40f -> 0x0006f46f
[    0.000000]     0: 0x0006f70f -> 0x0006f717
[    0.000000]     0: 0x0006f71f -> 0x0006f76f
[    0.000000]     0: 0x0006f79f -> 0x0006f7df
[    0.000000]     0: 0x0006f7ff -> 0x0006f800
[    0.000000] On node 0 totalpages: 455789
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 5 pages reserved
[    0.000000]   DMA zone: 3919 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 6188 pages used for memmap
[    0.000000]   DMA32 zone: 445621 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    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: 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 high edge)
[    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: IRQ2 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] SMP: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009c000 - 000000000009d000
[    0.000000] PM: Registered nosave memory: 000000000009d000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 000000006f27c000 - 000000006f282000
[    0.000000] PM: Registered nosave memory: 000000006f3ee000 - 000000006f40f000
[    0.000000] PM: Registered nosave memory: 000000006f46f000 - 000000006f470000
[    0.000000] PM: Registered nosave memory: 000000006f470000 - 000000006f4f1000
[    0.000000] PM: Registered nosave memory: 000000006f4f1000 - 000000006f70f000
[    0.000000] PM: Registered nosave memory: 000000006f717000 - 000000006f71f000
[    0.000000] PM: Registered nosave memory: 000000006f76f000 - 000000006f79f000
[    0.000000] PM: Registered nosave memory: 000000006f7ce000 - 000000006f7db000
[    0.000000] PM: Registered nosave memory: 000000006f7db000 - 000000006f7dc000
[    0.000000] PM: Registered nosave memory: 000000006f7df000 - 000000006f7ff000
[    0.000000] Allocating PCI resources starting at 7c000000 (gap: 7c000000:64000000)
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] PERCPU: Embedded 26 pages/cpu @ffff88006f000000 s74240 r8192 d24064 u524288
[    0.000000] pcpu-alloc: s74240 r8192 d24064 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 449540
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 1760592k/1826816k available (5255k kernel code, 3660k absent, 62564k reserved, 6208k data, 936k init)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:33024 nr_irqs:712 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 14680064 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] Fast TSC calibration using PIT
[    0.001000] Detected 2128.025 MHz processor.
[    0.000003] Calibrating delay loop (skipped), value calculated using timer frequency.. 4256.05 BogoMIPS (lpj=2128025)
[    0.000007] pid_max: default: 32768 minimum: 301
[    0.000094] Security Framework initialized
[    0.000111] AppArmor: AppArmor initialized
[    0.000348] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000855] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.001104] Mount-cache hash table entries: 256
[    0.001232] Initializing cgroup subsys cpuacct
[    0.001236] Initializing cgroup subsys memory
[    0.001251] Initializing cgroup subsys devices
[    0.001254] Initializing cgroup subsys freezer
[    0.001256] Initializing cgroup subsys net_cls
[    0.001258] Initializing cgroup subsys blkio
[    0.001296] CPU: Physical Processor ID: 0
[    0.001298] CPU: Processor Core ID: 0
[    0.001303] mce: CPU supports 9 MCE banks
[    0.001315] CPU0: Thermal monitoring enabled (TM1)
[    0.001323] using mwait in idle threads.
[    0.002139] ACPI: Core revision 20110413
[    0.002274] ACPI Warning: Incorrect checksum in table [DSDT] - 0x95, should be 0x24 (20110413/tbutils-314)
[    0.020582] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.030582] CPU0: Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz stepping 02
[    0.132027] Performance Events: PEBS fmt1+, Westmere events, Intel PMU driver.
[    0.132034] ... version:                3
[    0.132035] ... bit width:              48
[    0.132036] ... generic registers:      4
[    0.132038] ... value mask:             0000ffffffffffff
[    0.132040] ... max period:             000000007fffffff
[    0.132041] ... fixed-purpose events:   3
[    0.132042] ... event mask:             000000070000000f
[    0.138133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.146046] Booting Node   0, Processors  #1
[    0.146052] smpboot cpu 1: start_ip = 97000
[    0.237133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.243014]  #2
[    0.243018] smpboot cpu 2: start_ip = 97000
[    0.334068] NMI watchdog enabled, takes one hw-pmu counter.
[    0.339970]  #3 Ok.
[    0.339974] smpboot cpu 3: start_ip = 97000
[    0.431058] NMI watchdog enabled, takes one hw-pmu counter.
[    0.432892] Brought up 4 CPUs
[    0.432897] Total of 4 processors activated (17023.39 BogoMIPS).
[    0.435127] devtmpfs: initialized
[    0.436139] PM: Registering ACPI NVS region at 6f470000 (528384 bytes)
[    0.436169] PM: Registering ACPI NVS region at 6f76f000 (196608 bytes)
[    0.436326] print_constraints: dummy: 
[    0.436358] Time: 16:11:19  Date: 08/29/11
[    0.436412] NET: Registered protocol family 16
[    0.436602] ACPI: bus type pci registered
[    0.436682] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.436685] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    0.501131] PCI: Using configuration type 1 for base access
[    0.502059] bio: create slab <bio-0> at 0
[    0.504909] ACPI: EC: Look up EC in DSDT
[    0.521923] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.523045] ACPI: SSDT 000000006f71ac18 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523728] ACPI: Dynamic OEM Table Load:
[    0.523731] ACPI: SSDT           (null) 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523990] ACPI: SSDT 000000006f718018 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.524639] ACPI: Dynamic OEM Table Load:
[    0.524642] ACPI: SSDT           (null) 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.530287] ACPI: SSDT 000000006f719a98 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.531042] ACPI: Dynamic OEM Table Load:
[    0.531045] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.535043] ACPI: SSDT 000000006f717d98 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.535744] ACPI: Dynamic OEM Table Load:
[    0.535747] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.539173] ACPI: Interpreter enabled
[    0.539176] ACPI: (supports S0 S3 S4 S5)
[    0.539204] ACPI: Using IOAPIC for interrupt routing
[    0.545359] ACPI: EC: GPE = 0x16, I/O: command/status = 0x66, data = 0x62
[    0.545605] ACPI: No dock devices found.
[    0.545607] HEST: Table not found.
[    0.545610] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.546201] \_SB_.PCI0:_OSC invalid UUID
[    0.546203] _OSC request data:1 8 1f 
[    0.546207] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.547164] pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7]
[    0.547167] pci_root PNP0A08:00: host bridge window [io  0x0d00-0xffff]
[    0.547169] pci_root PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff]
[    0.547172] pci_root PNP0A08:00: host bridge window [mem 0x000d4000-0x000d7fff]
[    0.547174] pci_root PNP0A08:00: host bridge window [mem 0x000d8000-0x000dbfff]
[    0.547176] pci_root PNP0A08:00: host bridge window [mem 0x000dc000-0x000dffff]
[    0.547179] pci_root PNP0A08:00: host bridge window [mem 0x7c000000-0xfebfffff]
[    0.547193] pci 0000:00:00.0: [8086:0044] type 0 class 0x000600
[    0.547213] DMAR: BIOS has allocated no shadow GTT; disabling IOMMU for graphics
[    0.547234] pci 0000:00:02.0: [8086:0046] type 0 class 0x000300
[    0.547246] pci 0000:00:02.0: reg 10: [mem 0xf0000000-0xf03fffff 64bit]
[    0.547253] pci 0000:00:02.0: reg 18: [mem 0xd0000000-0xdfffffff 64bit pref]
[    0.547259] pci 0000:00:02.0: reg 20: [io  0x1800-0x1807]
[    0.547325] pci 0000:00:16.0: [8086:3b64] type 0 class 0x000780
[    0.547355] pci 0000:00:16.0: reg 10: [mem 0xf0805800-0xf080580f 64bit]
[    0.547435] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.547440] pci 0000:00:16.0: PME# disabled
[    0.547484] pci 0000:00:1a.0: [8086:3b3c] type 0 class 0x000c03
[    0.547511] pci 0000:00:1a.0: reg 10: [mem 0xf0806000-0xf08063ff]
[    0.547602] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.547607] pci 0000:00:1a.0: PME# disabled
[    0.547639] pci 0000:00:1b.0: [8086:3b56] type 0 class 0x000403
[    0.547661] pci 0000:00:1b.0: reg 10: [mem 0xf0600000-0xf0603fff 64bit]
[    0.547741] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.547746] pci 0000:00:1b.0: PME# disabled
[    0.547774] pci 0000:00:1c.0: [8086:3b42] type 1 class 0x000604
[    0.547859] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.547864] pci 0000:00:1c.0: PME# disabled
[    0.547900] pci 0000:00:1c.5: [8086:3b4c] type 1 class 0x000604
[    0.547983] pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
[    0.547988] pci 0000:00:1c.5: PME# disabled
[    0.548026] pci 0000:00:1d.0: [8086:3b34] type 0 class 0x000c03
[    0.548052] pci 0000:00:1d.0: reg 10: [mem 0xf0806400-0xf08067ff]
[    0.548144] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.548148] pci 0000:00:1d.0: PME# disabled
[    0.548175] pci 0000:00:1e.0: [8086:2448] type 1 class 0x000604
[    0.548255] pci 0000:00:1f.0: [8086:3b09] type 0 class 0x000601
[    0.548379] pci 0000:00:1f.2: [8086:3b29] type 0 class 0x000106
[    0.548407] pci 0000:00:1f.2: reg 10: [io  0x1818-0x181f]
[    0.548418] pci 0000:00:1f.2: reg 14: [io  0x180c-0x180f]
[    0.548430] pci 0000:00:1f.2: reg 18: [io  0x1810-0x1817]
[    0.548442] pci 0000:00:1f.2: reg 1c: [io  0x1808-0x180b]
[    0.548453] pci 0000:00:1f.2: reg 20: [io  0x1820-0x183f]
[    0.548465] pci 0000:00:1f.2: reg 24: [mem 0xf0805000-0xf08057ff]
[    0.548514] pci 0000:00:1f.2: PME# supported from D3hot
[    0.548519] pci 0000:00:1f.2: PME# disabled
[    0.548543] pci 0000:00:1f.3: [8086:3b30] type 0 class 0x000c05
[    0.548564] pci 0000:00:1f.3: reg 10: [mem 0xf0806800-0xf08068ff 64bit]
[    0.548595] pci 0000:00:1f.3: reg 20: [io  0x1840-0x185f]
[    0.548644] pci 0000:00:1f.6: [8086:3b32] type 0 class 0x001180
[    0.548673] pci 0000:00:1f.6: reg 10: [mem 0xf0604000-0xf0604fff 64bit]
[    0.548887] pci 0000:02:00.0: [14e4:1690] type 0 class 0x000200
[    0.548930] pci 0000:02:00.0: reg 10: [mem 0xf0400000-0xf040ffff 64bit]
[    0.549105] pci 0000:02:00.0: PME# supported from D3hot D3cold
[    0.549113] pci 0000:02:00.0: PME# disabled
[    0.550892] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.550902] pci 0000:00:1c.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.550911] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.550926] pci 0000:00:1c.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551079] pci 0000:09:00.0: [8086:422c] type 0 class 0x000280
[    0.551138] pci 0000:09:00.0: reg 10: [mem 0xf0500000-0xf0501fff 64bit]
[    0.551335] pci 0000:09:00.0: PME# supported from D0 D3hot D3cold
[    0.551362] pci 0000:09:00.0: PME# disabled
[    0.551496] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.551501] pci 0000:00:1c.5:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551507] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.551515] pci 0000:00:1c.5:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551591] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c] (subtractive decode)
[    0.551597] pci 0000:00:1e.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551602] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff] (disabled)
[    0.551610] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551613] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
[    0.551615] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff] (subtractive decode)
[    0.551618] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[    0.551620] pci 0000:00:1e.0:   bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode)
[    0.551623] pci 0000:00:1e.0:   bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode)
[    0.551625] pci 0000:00:1e.0:   bridge window [mem 0x000dc000-0x000dffff] (subtractive decode)
[    0.551628] pci 0000:00:1e.0:   bridge window [mem 0x7c000000-0xfebfffff] (subtractive decode)
[    0.551652] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.551969] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.552136] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.552230] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP06._PRT]
[    0.552365] \_SB_.PCI0:_OSC invalid UUID
[    0.552367] _OSC request data:1 1f 1f 
[    0.552371]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.552426] \_SB_.PCI0:_OSC invalid UUID
[    0.552428] _OSC request data:1 0 1d 
[    0.552431]  pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d
[    0.552433] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558205] ACPI: PCI Root Bridge [CPBG] (domain 0000 [bus ff])
[    0.558250] pci 0000:ff:00.0: [8086:2c62] type 0 class 0x000600
[    0.558271] pci 0000:ff:00.1: [8086:2d01] type 0 class 0x000600
[    0.558294] pci 0000:ff:02.0: [8086:2d10] type 0 class 0x000600
[    0.558314] pci 0000:ff:02.1: [8086:2d11] type 0 class 0x000600
[    0.558332] pci 0000:ff:02.2: [8086:2d12] type 0 class 0x000600
[    0.558351] pci 0000:ff:02.3: [8086:2d13] type 0 class 0x000600
[    0.558387]  pci0000:ff: Requesting ACPI _OSC control (0x1d)
[    0.558390]  pci0000:ff: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[    0.558392] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558684] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 *5 6 7 10 12 14 15)
[    0.558753] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 *7 11 12 14 15)
[    0.558826] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.558894] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.558964] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.559031] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    0.559098] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.559166] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.559254] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.559265] vgaarb: loaded
[    0.559267] vgaarb: bridge control possible 0000:00:02.0
[    0.559448] SCSI subsystem initialized
[    0.559506] libata version 3.00 loaded.
[    0.559553] usbcore: registered new interface driver usbfs
[    0.559567] usbcore: registered new interface driver hub
[    0.559595] usbcore: registered new device driver usb
[    0.559665] PCI: Using ACPI for IRQ routing
[    0.569722] PCI: pci_cache_line_size set to 64 bytes
[    0.569912] reserve RAM buffer: 000000000009c400 - 000000000009ffff 
[    0.569914] reserve RAM buffer: 000000006f27c000 - 000000006fffffff 
[    0.569921] reserve RAM buffer: 000000006f3ee000 - 000000006fffffff 
[    0.569926] reserve RAM buffer: 000000006f46f000 - 000000006fffffff 
[    0.569932] reserve RAM buffer: 000000006f717000 - 000000006fffffff 
[    0.569936] reserve RAM buffer: 000000006f76f000 - 000000006fffffff 
[    0.569940] reserve RAM buffer: 000000006f7ce000 - 000000006fffffff 
[    0.569943] reserve RAM buffer: 000000006f7df000 - 000000006fffffff 
[    0.569945] reserve RAM buffer: 000000006f800000 - 000000006fffffff 
[    0.570046] NetLabel: Initializing
[    0.570048] NetLabel:  domain hash size = 128
[    0.570049] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.570063] NetLabel:  unlabeled traffic allowed by default
[    0.570079] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.570085] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.572111] Switching to clocksource hpet
[    0.572827] Switched to NOHz mode on CPU #0
[    0.572939] Switched to NOHz mode on CPU #2
[    0.572956] Switched to NOHz mode on CPU #1
[    0.572974] Switched to NOHz mode on CPU #3
[    0.573634] AppArmor: AppArmor Filesystem Enabled
[    0.573655] pnp: PnP ACPI init
[    0.573669] ACPI: bus type pnp registered
[    0.574216] pnp 00:00: [bus 00-fe]
[    0.574220] pnp 00:00: [io  0x0000-0x0cf7 window]
[    0.574222] pnp 00:00: [io  0x0cf8-0x0cff]
[    0.574224] pnp 00:00: [io  0x0d00-0xffff window]
[    0.574226] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    0.574229] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
[    0.574231] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
[    0.574233] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
[    0.574235] pnp 00:00: [mem 0x000cc000-0x000cffff window]
[    0.574237] pnp 00:00: [mem 0x000d0000-0x000d3fff window]
[    0.574239] pnp 00:00: [mem 0x000d4000-0x000d7fff window]
[    0.574241] pnp 00:00: [mem 0x000d8000-0x000dbfff window]
[    0.574243] pnp 00:00: [mem 0x000dc000-0x000dffff window]
[    0.574246] pnp 00:00: [mem 0x000e0000-0x000e3fff window]
[    0.574249] pnp 00:00: [mem 0x000e4000-0x000e7fff window]
[    0.574251] pnp 00:00: [mem 0x000e8000-0x000ebfff window]
[    0.574253] pnp 00:00: [mem 0x000ec000-0x000effff window]
[    0.574255] pnp 00:00: [mem 0x000f0000-0x000fffff window]
[    0.574257] pnp 00:00: [mem 0x7c000000-0xfebfffff window]
[    0.574259] pnp 00:00: [mem 0xfed40000-0xfed44fff window]
[    0.574322] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.574393] pnp 00:01: [io  0x0000-0x001f]
[    0.574395] pnp 00:01: [io  0x0081-0x0091]
[    0.574397] pnp 00:01: [io  0x0093-0x009f]
[    0.574399] pnp 00:01: [io  0x00c0-0x00df]
[    0.574401] pnp 00:01: [dma 4]
[    0.574431] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.574442] pnp 00:02: [mem 0xff000000-0xffffffff]
[    0.574471] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
[    0.574578] pnp 00:03: [irq 0 disabled]
[    0.574589] pnp 00:03: [irq 8]
[    0.574591] pnp 00:03: [mem 0xfed00000-0xfed003ff]
[    0.574621] pnp 00:03: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.574635] pnp 00:04: [io  0x00f0]
[    0.574641] pnp 00:04: [irq 13]
[    0.574669] pnp 00:04: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.574683] pnp 00:05: [io  0x002e-0x002f]
[    0.574685] pnp 00:05: [io  0x004e-0x004f]
[    0.574687] pnp 00:05: [io  0x0061]
[    0.574689] pnp 00:05: [io  0x0063]
[    0.574691] pnp 00:05: [io  0x0065]
[    0.574692] pnp 00:05: [io  0x0067]
[    0.574694] pnp 00:05: [io  0x0070]
[    0.574696] pnp 00:05: [io  0x0080]
[    0.574697] pnp 00:05: [io  0x0092]
[    0.574699] pnp 00:05: [io  0x00b2-0x00b3]
[    0.574701] pnp 00:05: [io  0x0680-0x069f]
[    0.574703] pnp 00:05: [io  0x0500-0x050f]
[    0.574706] pnp 00:05: [io  0xffff]
[    0.574707] pnp 00:05: [io  0xffff]
[    0.574709] pnp 00:05: [io  0x0400-0x047f]
[    0.574711] pnp 00:05: [io  0x1180-0x11ff]
[    0.574713] pnp 00:05: [io  0x164e-0x164f]
[    0.574715] pnp 00:05: [io  0xfe00]
[    0.574770] system 00:05: [io  0x0680-0x069f] has been reserved
[    0.574773] system 00:05: [io  0x0500-0x050f] has been reserved
[    0.574776] system 00:05: [io  0xffff] has been reserved
[    0.574778] system 00:05: [io  0xffff] has been reserved
[    0.574782] system 00:05: [io  0x0400-0x047f] has been reserved
[    0.574784] system 00:05: [io  0x1180-0x11ff] has been reserved
[    0.574787] system 00:05: [io  0x164e-0x164f] has been reserved
[    0.574790] system 00:05: [io  0xfe00] has been reserved
[    0.574793] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574838] pnp 00:06: [io  0x06a0-0x06af]
[    0.574840] pnp 00:06: [io  0x06b0-0x06ff]
[    0.574887] system 00:06: [io  0x06a0-0x06af] has been reserved
[    0.574890] system 00:06: [io  0x06b0-0x06ff] has been reserved
[    0.574892] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574938] pnp 00:07: [io  0x0070-0x0077]
[    0.574971] pnp 00:07: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.574989] pnp 00:08: [irq 12]
[    0.575021] pnp 00:08: Plug and Play ACPI device, IDs SYN1b20 SYN1b00 SYN0002 PNP0f13 (active)
[    0.575033] pnp 00:09: [io  0x0060]
[    0.575035] pnp 00:09: [io  0x0064]
[    0.575040] pnp 00:09: [irq 1]
[    0.575070] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.575510] pnp 00:0a: [mem 0xfed1c000-0xfed1ffff]
[    0.575512] pnp 00:0a: [mem 0xfed10000-0xfed13fff]
[    0.575514] pnp 00:0a: [mem 0xfed18000-0xfed18fff]
[    0.575516] pnp 00:0a: [mem 0xfed19000-0xfed19fff]
[    0.575518] pnp 00:0a: [mem 0xe0000000-0xefffffff]
[    0.575520] pnp 00:0a: [mem 0x00000000-0xffffffffffffffff disabled]
[    0.575523] pnp 00:0a: [mem 0xfeaff000-0xfeafffff]
[    0.575524] pnp 00:0a: [mem 0xfed20000-0xfed3ffff]
[    0.575526] pnp 00:0a: [mem 0xfed90000-0xfed8ffff disabled]
[    0.575529] pnp 00:0a: [mem 0xfed40000-0xfed44fff]
[    0.575530] pnp 00:0a: [mem 0xfed45000-0xfed8ffff]
[    0.575532] pnp 00:0a: [mem 0xff000000-0xffffffff]
[    0.575534] pnp 00:0a: [mem 0xfee00000-0xfeefffff]
[    0.575603] system 00:0a: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.575606] system 00:0a: [mem 0xfed10000-0xfed13fff] has been reserved
[    0.575609] system 00:0a: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.575612] system 00:0a: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.575615] system 00:0a: [mem 0xe0000000-0xefffffff] has been reserved
[    0.575618] system 00:0a: [mem 0xfeaff000-0xfeafffff] has been reserved
[    0.575621] system 00:0a: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.575624] system 00:0a: [mem 0xfed40000-0xfed44fff] has been reserved
[    0.575627] system 00:0a: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.575630] system 00:0a: [mem 0xff000000-0xffffffff] has been reserved
[    0.575633] system 00:0a: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.575636] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.575809] pnp 00:0b: [bus ff]
[    0.575856] pnp 00:0b: Plug and Play ACPI device, IDs PNP0a03 (active)
[    0.575869] pnp: PnP ACPI: found 12 devices
[    0.575870] ACPI: ACPI bus type pnp unregistered
[    0.581990] PCI: max bus depth: 1 pci_try_num: 2
[    0.582029] pci 0000:00:1c.5: BAR 15: assigned [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582033] pci 0000:00:1c.5: BAR 13: assigned [io  0x2000-0x2fff]
[    0.582036] pci 0000:00:1c.0: BAR 15: assigned [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582040] pci 0000:00:1c.0: BAR 13: assigned [io  0x3000-0x3fff]
[    0.582042] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.582046] pci 0000:00:1c.0:   bridge window [io  0x3000-0x3fff]
[    0.582052] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.582058] pci 0000:00:1c.0:   bridge window [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582066] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.582069] pci 0000:00:1c.5:   bridge window [io  0x2000-0x2fff]
[    0.582076] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.582081] pci 0000:00:1c.5:   bridge window [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582090] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c]
[    0.582091] pci 0000:00:1e.0:   bridge window [io  disabled]
[    0.582098] pci 0000:00:1e.0:   bridge window [mem disabled]
[    0.582102] pci 0000:00:1e.0:   bridge window [mem pref disabled]
[    0.582125] pci 0000:00:1c.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.582131] pci 0000:00:1c.0: setting latency timer to 64
[    0.582143] pci 0000:00:1c.5: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    0.582148] pci 0000:00:1c.5: setting latency timer to 64
[    0.582157] pci 0000:00:1e.0: setting latency timer to 64
[    0.582162] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.582164] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.582166] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582168] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582179] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582181] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582183] pci_bus 0000:00: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582186] pci_bus 0000:02: resource 0 [io  0x3000-0x3fff]
[    0.582188] pci_bus 0000:02: resource 1 [mem 0xf0400000-0xf04fffff]
[    0.582190] pci_bus 0000:02: resource 2 [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582192] pci_bus 0000:09: resource 0 [io  0x2000-0x2fff]
[    0.582194] pci_bus 0000:09: resource 1 [mem 0xf0500000-0xf05fffff]
[    0.582197] pci_bus 0000:09: resource 2 [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582199] pci_bus 0000:0c: resource 4 [io  0x0000-0x0cf7]
[    0.582201] pci_bus 0000:0c: resource 5 [io  0x0d00-0xffff]
[    0.582203] pci_bus 0000:0c: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582206] pci_bus 0000:0c: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582208] pci_bus 0000:0c: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582210] pci_bus 0000:0c: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582212] pci_bus 0000:0c: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582309] NET: Registered protocol family 2
[    0.582435] IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.583111] TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
[    0.584672] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.585024] TCP: Hash tables configured (established 262144 bind 65536)
[    0.585026] TCP reno registered
[    0.585036] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585057] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585233] NET: Registered protocol family 1
[    0.585250] pci 0000:00:02.0: Boot video device
[    0.585393] PCI: CLS 64 bytes, default 64
[    0.585444] Unpacking initramfs...
[    1.021678] Freeing initrd memory: 21152k freed
[    1.026475] Simple Boot Flag at 0x36 set to 0x1
[    1.027164] audit: initializing netlink socket (disabled)
[    1.027179] type=2000 audit(1314634279.859:1): initialized
[    1.048261] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.048632] VFS: Disk quotas dquot_6.5.2
[    1.048673] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.048897] msgmni has been set to 3479
[    1.049176] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    1.049211] io scheduler noop registered
[    1.049213] io scheduler deadline registered
[    1.049242] io scheduler cfq registered (default)
[    1.049564] vesafb: mode is 1024x768x16, linelength=2048, pages=84
[    1.049566] vesafb: scrolling: redraw
[    1.049569] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    1.050408] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90010980000, using 3072k, total 131008k
[    1.114201] Console: switching to colour frame buffer device 128x48
[    1.177848] fb0: VESA VGA frame buffer device
[    1.177859] intel_idle: MWAIT substates: 0x1120
[    1.177861] intel_idle: v0.4 model 0x25
[    1.177862] intel_idle: lapic_timer_reliable_states 0xffffffff
[    1.177898] ERST: Table is not found!
[    1.177968] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    1.299341] Non-volatile memory driver v1.3
[    1.299343] Linux agpgart interface v0.103
[    1.299424] agpgart-intel 0000:00:00.0: Intel HD Graphics Chipset
[    1.299577] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[    1.300615] agpgart-intel 0000:00:00.0: detected 131072K stolen memory
[    1.300769] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
[    1.300936] ahci 0000:00:1f.2: version 3.0
[    1.300962] ahci 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    1.301013] ahci 0000:00:1f.2: irq 40 for MSI/MSI-X
[    1.301045] ahci: SSS flag set, parallel bus scan disabled
[    1.301083] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 3 Gbps 0x3 impl SATA mode
[    1.301087] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck stag pm led clo pio slum part ems apst 
[    1.301093] ahci 0000:00:1f.2: setting latency timer to 64
[    1.303296] scsi0 : ahci
[    1.303409] scsi1 : ahci
[    1.303483] scsi2 : ahci
[    1.303554] scsi3 : ahci
[    1.303606] ata1: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805100 irq 40
[    1.303609] ata2: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805180 irq 40
[    1.303611] ata3: DUMMY
[    1.303612] ata4: DUMMY
[    1.303712] Fixed MDIO Bus: probed
[    1.303717] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.303736] ehci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.303754] ehci_hcd 0000:00:1a.0: setting latency timer to 64
[    1.303758] ehci_hcd 0000:00:1a.0: EHCI Host Controller
[    1.303784] ehci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    1.303819] ehci_hcd 0000:00:1a.0: debug port 2
[    1.307725] ehci_hcd 0000:00:1a.0: cache line size of 64 is not supported
[    1.307742] ehci_hcd 0000:00:1a.0: irq 16, io mem 0xf0806000
[    1.316885] ehci_hcd 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    1.316932] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.316938] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.316943] usb usb1: Product: EHCI Host Controller
[    1.316948] usb usb1: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.316952] usb usb1: SerialNumber: 0000:00:1a.0
[    1.317064] hub 1-0:1.0: USB hub found
[    1.317068] hub 1-0:1.0: 3 ports detected
[    1.317149] ehci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    1.317162] ehci_hcd 0000:00:1d.0: setting latency timer to 64
[    1.317166] ehci_hcd 0000:00:1d.0: EHCI Host Controller
[    1.317174] ehci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    1.317203] ehci_hcd 0000:00:1d.0: debug port 2
[    1.321193] ehci_hcd 0000:00:1d.0: cache line size of 64 is not supported
[    1.321209] ehci_hcd 0000:00:1d.0: irq 23, io mem 0xf0806400
[    1.330875] ehci_hcd 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    1.330913] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.330918] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.330923] usb usb2: Product: EHCI Host Controller
[    1.330928] usb usb2: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.330932] usb usb2: SerialNumber: 0000:00:1d.0
[    1.331036] hub 2-0:1.0: USB hub found
[    1.331040] hub 2-0:1.0: 3 ports detected
[    1.331112] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.331123] uhci_hcd: USB Universal Host Controller Interface driver
[    1.331157] Initializing USB Mass Storage driver...
[    1.331178] usbcore: registered new interface driver usb-storage
[    1.331180] USB Mass Storage support registered.
[    1.331189] usbcore: registered new interface driver ums-alauda
[    1.331197] usbcore: registered new interface driver ums-cypress
[    1.331206] usbcore: registered new interface driver ums-datafab
[    1.331215] usbcore: registered new interface driver ums-freecom
[    1.331224] usbcore: registered new interface driver ums-isd200
[    1.331232] usbcore: registered new interface driver ums-jumpshot
[    1.331240] usbcore: registered new interface driver ums-karma
[    1.331250] usbcore: registered new interface driver ums-onetouch
[    1.331258] usbcore: registered new interface driver ums-sddr09
[    1.331267] usbcore: registered new interface driver ums-sddr55
[    1.331275] usbcore: registered new interface driver ums-usbat
[    1.331326] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    1.337272] i8042: Detected active multiplexing controller, rev 1.1
[    1.340968] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.340998] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    1.341017] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    1.341037] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    1.341056] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    1.341136] mousedev: PS/2 mouse device common for all mice
[    1.341260] rtc_cmos 00:07: RTC can wake from S4
[    1.341373] rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0
[    1.341404] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    1.341514] cpuidle: using governor ladder
[    1.341668] cpuidle: using governor menu
[    1.341670] EFI Variables Facility v0.08 2004-May-17
[    1.341911] usbcore: registered new interface driver usbhid
[    1.341912] usbhid: USB HID core driver
[    1.342135] TCP cubic registered
[    1.342315] NET: Registered protocol family 10
[    1.342943] lib80211: common routines for IEEE802.11 drivers
[    1.342946] lib80211_crypt: registered algorithm 'NULL'
[    1.342948] Registering the dns_resolver key type
[    1.342964] libceph: loaded (mon/osd proto 15/24, osdmap 5/6 5/6)
[    1.343052] PM: Checking hibernation image partition /dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1
[    1.362464] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.609820] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.611083] ata1.00: ATA-8: Hitachi HTS545025B9A300, PB2OC60F, max UDMA/133
[    1.611088] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.612661] ata1.00: configured for UDMA/133
[    1.613025] scsi 0:0:0:0: Direct-Access     ATA      Hitachi HTS54502 PB2O PQ: 0 ANSI: 5
[    1.613371] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    1.613564] sd 0:0:0:0: [sda] Write Protect is off
[    1.613571] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.613645] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.618820] usb 1-1: new high speed USB device number 2 using ehci_hcd
[    1.646308]  sda: sda1 sda2 sda3
[    1.647037] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.733439] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[    1.733446] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.733774] hub 1-1:1.0: USB hub found
[    1.734007] hub 1-1:1.0: 6 ports detected
[    1.836710] usb 2-1: new high speed USB device number 2 using ehci_hcd
[    1.917691] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    1.918092] ata2.00: ATAPI: Optiarc DVD RW AD-7585H, KX04, max UDMA/100
[    1.920844] ata2.00: configured for UDMA/100
[    1.924098] scsi 1:0:0:0: CD-ROM            Optiarc  DVD RW AD-7585H  KX04 PQ: 0 ANSI: 5
[    1.951108] usb 2-1: New USB device found, idVendor=8087, idProduct=0020
[    1.951116] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.951396] hub 2-1:1.0: USB hub found
[    1.951593] hub 2-1:1.0: 8 ports detected
[    2.015911] usb 1-1.1: new high speed USB device number 3 using ehci_hcd
[    2.026624] Refined TSC clocksource calibration: 2127.999 MHz.
[    2.026633] Switching to clocksource tsc
[    2.133130] usb 1-1.1: New USB device found, idVendor=04f2, idProduct=b1d8
[    2.133137] usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[    2.133143] usb 1-1.1: Product: 1.3M WebCam
[    2.133147] usb 1-1.1: Manufacturer: Sonix Technology Co., Ltd.
[    2.210776] usb 1-1.3: new high speed USB device number 4 using ehci_hcd
[    2.230675] Synaptics Touchpad, model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd04733/0xa44000/0xa0000
[    2.281343] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio2/input/input1
[    2.286227] PM: Hibernation image not present or could not be loaded.
[    2.286295] registered taskstats version 1
[    2.286836]   Magic number: 7:505:187
[    2.287014] rtc_cmos 00:07: setting system clock to 2011-08-29 16:11:21 UTC (1314634281)
[    2.291271] Freeing unused kernel memory: 936k freed
[    2.291536] Write protecting the kernel read-only data: 10240k
[    2.297540] usb 1-1.3: New USB device found, idVendor=12d1, idProduct=140c
[    2.297547] usb 1-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[    2.297553] usb 1-1.3: Product: HUAWEI Mobile
[    2.297557] usb 1-1.3: Manufacturer: HUAWEI Technology
[    2.298524] Freeing unused kernel memory: 872k freed
[    2.310556] Freeing unused kernel memory: 1708k freed
[    2.363000] thermal LNXTHERM:00: registered as thermal_zone0
[    2.363006] ACPI: Thermal Zone [THRM] (39 C)
[    2.367748] ACPI: acpi_idle yielding to intel_idle
[    2.373635] usb 1-1.4: new high speed USB device number 5 using ehci_hcd
[    2.380961] udev[90]: starting version 166
[    2.400806] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
[    2.400957] ACPI: Lid Switch [LID]
[    2.401023] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
[    2.401067] ACPI: Power Button [PWRB]
[    2.401122] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
[    2.401162] ACPI: Sleep Button [SLPB]
[    2.401248] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input5
[    2.401291] ACPI: Power Button [PWRF]
[    2.431733] [drm] Initialized drm 1.1.0 20060810
[    2.459323] usb 1-1.4: New USB device found, idVendor=1c7a, idProduct=0801
[    2.459327] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.459331] usb 1-1.4: Product: FingerPrinter Reader
[    2.459333] usb 1-1.4: Manufacturer: Generic
[    2.459335] usb 1-1.4: SerialNumber: 00000000000006
[    2.459653] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    2.459665] i915 0000:00:02.0: setting latency timer to 64
[    2.625680] i915 0000:00:02.0: irq 41 for MSI/MSI-X
[    2.625691] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    2.625695] [drm] Driver supports precise vblank timestamp query.
[    2.625766] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.904268] checking generic (d0000000 7ff0000) vs hw (d0000000 10000000)
[    2.904272] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
[    2.904291] Console: switching to colour dummy device 80x25
[    2.904911] fbcon: inteldrmfb (fb0) is primary device
[    3.062972] Console: switching to colour frame buffer device 170x48
[    3.065834] fb0: inteldrmfb frame buffer device
[    3.065836] drm: registered panic notifier
[    3.076332] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076471] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076642] acpi device:04: registered as cooling_device4
[    3.076979] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input6
[    3.077028] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    3.077070] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.165172] PM: Marking nosave pages: 000000000009c000 - 0000000000100000
[    3.165183] PM: Marking nosave pages: 000000006f27c000 - 000000006f282000
[    3.165188] PM: Marking nosave pages: 000000006f3ee000 - 000000006f40f000
[    3.165193] PM: Marking nosave pages: 000000006f46f000 - 000000006f70f000
[    3.165218] PM: Marking nosave pages: 000000006f717000 - 000000006f71f000
[    3.165222] PM: Marking nosave pages: 000000006f76f000 - 000000006f79f000
[    3.165228] PM: Marking nosave pages: 000000006f7ce000 - 000000006f7dc000
[    3.165232] PM: Marking nosave pages: 000000006f7df000 - 000000006f7ff000
[    3.165237] PM: Basic memory bitmaps created
[    3.173517] PM: Basic memory bitmaps freed
[    3.173522] video LNXVIDEO:00: Restoring backlight state
[    3.173556] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.237134] PM: Starting manual resume from disk
[    3.237138] PM: Hibernation image partition 8:1 present
[    3.237139] PM: Looking for hibernation image.
[    3.237395] PM: Image not found (code -22)
[    3.237401] PM: Hibernation image not present or could not be loaded.
[    3.388592] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[    3.538397] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr
[    7.485249] udev[396]: starting version 166
[    7.945311] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.945325] ACPI: Battery Slot [BAT1] (battery present)
[    7.995510] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.995770] ACPI: AC Adapter [ACAD] (on-line)
[    8.468740] i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.673497] input: PC Speaker as /devices/platform/pcspkr/input/input7
[    8.782379] iTCO_vendor_support: vendor-support=0
[    8.815035] wmi: Mapper loaded
[    8.846429] cfg80211: Calling CRDA to update world regulatory domain
[    8.924291] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.06
[    8.924384] iTCO_wdt: Found a HM55 TCO device (Version=2, TCOBASE=0x0460)
[    8.924459] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[    8.982243] intel ips 0000:00:1f.6: CPU TDP doesn't match expected value (found 25, expected 29)
[    8.982273] intel ips 0000:00:1f.6: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.982554] intel ips 0000:00:1f.6: IPS driver initialized, MCP temp limit 90
[    8.997225] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    8.997310] scsi 1:0:0:0: Attached scsi generic sg1 type 5
[    9.140625] usbcore: registered new interface driver usbserial
[    9.140640] USB Serial support registered for generic
[    9.140728] usbcore: registered new interface driver usbserial_generic
[    9.140731] usbserial: USB Serial Driver core
[    9.235437] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    9.235445] cdrom: Uniform CD-ROM driver Revision: 3.20
[    9.235679] sr 1:0:0:0: Attached scsi CD-ROM sr0
[    9.273248] tg3.c:v3.119 (May 18, 2011)
[    9.273303] tg3 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    9.273319] tg3 0000:02:00.0: setting latency timer to 64
[    9.335627] tg3 mdio bus: probed
[    9.384181] tg3 0000:02:00.0: eth0: Tigon3 [partno(BCM957760) rev 57780001] (PCI Express) MAC address c8:0a:a9:55:1b:22
[    9.384185] tg3 0000:02:00.0: eth0: attached PHY driver [Broadcom BCM57780] (mii_bus:phy_addr=200:01)
[    9.384189] tg3 0000:02:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    9.384191] tg3 0000:02:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[    9.601697] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[    9.601833] HDA Intel 0000:00:1b.0: irq 42 for MSI/MSI-X
[    9.601900] HDA Intel 0000:00:1b.0: setting latency timer to 64
[    9.865339] Linux video capture interface: v2.00
[   10.091904] acer_wmi: Acer Laptop ACPI-WMI Extras
[   10.092579] acer_wmi: Function bitmap for Communication Button: 0x841
[   10.092596] acer_wmi: Brightness must be controlled by generic video driver
[   10.092856] input: Acer WMI hotkeys as /devices/virtual/input/input8
[   10.115244] cfg80211: World regulatory domain updated:
[   10.115247] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.115250] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115252] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115255] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115257] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115259] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.150648] uvcvideo: Found UVC 1.00 device 1.3M WebCam (04f2:b1d8)
[   10.160463] input: 1.3M WebCam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input9
[   10.160672] usbcore: registered new interface driver uvcvideo
[   10.160677] USB Video Class driver (v1.1.0)
[   10.735532] USB Serial support registered for GSM modem (1-port)
[   10.735656] option 1-1.3:1.0: GSM modem (1-port) converter detected
[   10.735899] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[   10.735918] option 1-1.3:1.1: GSM modem (1-port) converter detected
[   10.736083] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[   10.736107] option 1-1.3:1.2: GSM modem (1-port) converter detected
[   10.736211] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[   10.736233] option 1-1.3:1.3: GSM modem (1-port) converter detected
[   10.736326] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[   10.736364] usbcore: registered new interface driver option
[   10.736368] option: v0.7.2:USB Driver for GSM modems
[   10.817709] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input10
[   10.915929] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
[   10.915936] iwlagn: Copyright(c) 2003-2011 Intel Corporation
[   10.916069] iwlagn 0000:09:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[   10.916125] iwlagn 0000:09:00.0: setting latency timer to 64
[   10.916217] iwlagn 0000:09:00.0: Detected Intel(R) Centrino(R) Advanced-N 6200 AGN, REV=0x74
[   10.932864] iwlagn 0000:09:00.0: device EEPROM VER=0x434, CALIB=0x6
[   10.932870] iwlagn 0000:09:00.0: Device SKU: 0Xb
[   10.932900] iwlagn 0000:09:00.0: Tunable channels: 13 802.11bg, 24 802.11a channels
[   10.933243] iwlagn 0000:09:00.0: irq 43 for MSI/MSI-X
[   11.003702] iwlagn 0000:09:00.0: loaded firmware version 9.193.4.1 build 19710
[   11.004064] Registered led device: phy0-led
[   11.063390] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   11.455858] Adding 2103292k swap on /dev/sda1.  Priority:-1 extents:1 across:2103292k 
[   11.990600] device-mapper: uevent: version 1.0.3
[   11.990749] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
[   12.373813] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[   14.402537] microcode: CPU0 sig=0x20652, pf=0x10, revision=0x9
[   14.406219] microcode: CPU1 sig=0x20652, pf=0x10, revision=0x9
[   14.407566] microcode: CPU2 sig=0x20652, pf=0x10, revision=0x9
[   14.408754] microcode: CPU3 sig=0x20652, pf=0x10, revision=0x9
[   14.409977] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   14.799378] microcode: CPU0 updated to revision 0xc, date = 2010-06-10
[   14.799899] microcode: CPU1 updated to revision 0xc, date = 2010-06-10
[   14.800382] microcode: CPU2 updated to revision 0xc, date = 2010-06-10
[   14.800925] microcode: CPU3 updated to revision 0xc, date = 2010-06-10
[   15.606341] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   15.719447] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   15.771477] ip_tables: (C) 2000-2006 Netfilter Core Team
[   17.007777] BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
[   19.412401] tg3 0000:02:00.0: irq 44 for MSI/MSI-X
[   20.171382] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   20.359932] tg3 0000:02:00.0: eth0: Link is down
[   20.517332] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   20.729577] NET: Registered protocol family 17
[   23.370597] tg3 0000:02:00.0: eth0: Link is up at 1000 Mbps, full duplex
[   23.370604] tg3 0000:02:00.0: eth0: Flow control is on for TX and on for RX
[   23.371015] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   23.942707] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   23.942935] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   30.536090] fuse init (API version 7.16)
[   32.431417] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12285 DF PROTO=TCP SPT=57519 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CCBFD0000000001030306) 
[   34.250958] eth0: no IPv6 routers present
[   42.699766] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr,commit=0
[   43.472545] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   44.375141] EXT4-fs (sda3): re-mounted. Opts: acl,user_xattr,commit=0
[   55.637057] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=34692 DF PROTO=TCP SPT=57527 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CE2A80000000001030306) 

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

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-29  8:31     ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:31 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

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

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Details can be found in:
> Documentation/acpi/initrd_table_override.txt
> 
> Additional dmesg output of a booted system with
> FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> tables overridden (with ### marked comments):
> 
> ### ACPI tables found glued to initrd
> DSDT ACPI table found in initrd - size: 16234
> FACP ACPI table found in initrd - size: 116
> SSDT ACPI table found in initrd - size: 334
> ### Re-printed e820 map via e820_update() with additionally created
> ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> ### initrd where copied to
> modified physical RAM map:
> ...
>   ### New ACPI data section:
>   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
>   ### BIOS e820 provided ACPI data section:
>   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> ...
> ### Total size of all ACPI tables glued to initrd
> ### The address is initrd_start which gets updated to
> ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> Found acpi tables of size: 16684 at 0xffff8800374c4000
> 
> Disabling lock debugging due to kernel taint
> ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> ...
> ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> ### loaded ACPI table matches and gets overridden:
> ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ACPI: Dynamic OEM Table Load:
> ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ...
> 
> If the initrd does not start with a valid ACPI table signature or the ACPI
> table's checksum is wrong, there is no functional change.
> 
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: linux-acpi@vger.kernel.org
> CC: lenb@kernel.org
> CC: linux-kernel@vger.kernel.org
> CC: x86@kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.
I added a debug message to _BCM method in DSDT then override it in
initrd by follow initrd_table_override.txt.

The attached is my dmesg log.

> +3) How does it work
> +-------------------
> +
> +# Extract the machine's ACPI tables:
> +acpidump >acpidump
> +acpixtract -a acpidump
> +# Disassemble, modify and recompile them:
> +iasl -d *.dat
> +# For example add this statement into a _PRT (PCI Routing Table) function
> +# of the DSDT:
> +Store("Hello World", debug)
> +iasl -sa *.dsl
> +# glue them together with the initrd. ACPI tables go first, original initrd
> +# goes on top:
> +cat TBL1.dat >>instrumented_initrd
> +cat TBL2.dat >>instrumented_initrd
> +cat TBL3.dat >>instrumented_initrd

I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
because iasl -sa default generate out *.aml file but not *.dat file, my
iasl version is Intel 20110112-64 [Feb 27 2011].
That will be more clear for the first time user to understand need cat
*.aml file.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's
Joey Lee


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

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.0-0.7-desktop+ (linux@linux-cr4d.site) (gcc version 4.5.1 20101208 [gcc-4_5-branch revision 167585] (SUSE Linux) ) #1 SMP PREEMPT Thu Aug 25 04:01:42 CST 2011
[    0.000000] Command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009c400 (usable)
[    0.000000]  BIOS-e820: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  BIOS-e820: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  BIOS-e820: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  BIOS-e820: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  BIOS-e820: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  BIOS-e820: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  BIOS-e820: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  BIOS-e820: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f79f000 - 000000006f7df000 (usable)
[    0.000000]  BIOS-e820: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  BIOS-e820: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  BIOS-e820: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  BIOS-e820: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI present.
[    0.000000] DMI: Acer             S2.TXN03.002     /BAP50-CP        , BIOS V1.27   04/25/2011
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x6f800 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-DFFFF uncachable
[    0.000000]   E0000-FFFFF write-through
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 disabled
[    0.000000]   1 base 070000000 mask FF0000000 uncachable
[    0.000000]   2 base 000000000 mask F80000000 write-back
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] found SMP MP-table at [ffff8800000f6d40] f6d40
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 20480
[    0.000000] init_memory_mapping: 0000000000000000-000000006f800000
[    0.000000]  0000000000 - 006f800000 page 2M
[    0.000000] kernel direct mapping tables up to 6f800000 @ 6f7dc000-6f7df000
[    0.000000] RAMDISK: 36b48000 - 37ff0000
[    0.000000] DSDT ACPI table found in initrd - size: 56678
[    0.000000] modified physical RAM map:
[    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
[    0.000000]  modified: 0000000000010000 - 000000000009c400 (usable)
[    0.000000]  modified: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  modified: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  modified: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  modified: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  modified: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  modified: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  modified: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  modified: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  modified: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  modified: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  modified: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  modified: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  modified: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  modified: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  modified: 000000006f79f000 - 000000006f7ce000 (usable)
[    0.000000]  modified: 000000006f7ce000 - 000000006f7dbd66 (ACPI data)
[    0.000000]  modified: 000000006f7dbd66 - 000000006f7df000 (usable)
[    0.000000]  modified: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  modified: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  modified: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  modified: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  modified: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  modified: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  modified: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  modified: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  modified: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  modified: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  modified: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] Found acpi tables of size: 56678 at 0xffff880036b48000
[    0.000000] ACPI: RSDP 00000000000f6c80 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 000000006f7f0d89 00064 (v01 ACRSYS ACRPRDCT 06040000  LTP 00000000)
[    0.000000] ACPI: FACP 000000006f7e1000 000F4 (v03 INTEL  CRESTLNE 06040000 ALAN 00000001)
[    0.000000] Disabling lock debugging due to kernel taint
[    0.000000] ACPI: DSDT @ 0x000000006f7e2000 Phys table override, replaced with:
[    0.000000] ACPI: DSDT 000000006f7ce000 0DD4E (v02 ACRSYS CALPELLA 06040000 INTL 20060912)
[    0.000000] ACPI: FACS 000000006f79bfc0 00040
[    0.000000] ACPI: HPET 000000006f7fecdb 00038 (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: MCFG 000000006f7fed13 0003C (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: APIC 000000006f7fed4f 00084 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: BOOT 000000006f7fedd3 00028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SLIC 000000006f7fedfb 00176 (v01 ACRSYS ACRPRDCT 06040000 acer 00000000)
[    0.000000] ACPI: ASF! 000000006f7fef71 0008F (v16   CETP     CETP 06040000 PTL  00000001)
[    0.000000] ACPI: SSDT 000000006f7e0000 009F1 (v01  PmRef    CpuPm 00003000 INTL 20060912)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-000000006f800000
[    0.000000] Initmem setup node 0 0000000000000000-000000006f800000
[    0.000000]   NODE_DATA [000000006f7ba000 - 000000006f7cdfff]
[    0.000000]  [ffffea0000000000-ffffea00019fffff] PMD -> [ffff88006ce00000-ffff88006e7fffff] on node 0
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   empty
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[8] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009c
[    0.000000]     0: 0x00000100 -> 0x0006f27c
[    0.000000]     0: 0x0006f282 -> 0x0006f3ee
[    0.000000]     0: 0x0006f40f -> 0x0006f46f
[    0.000000]     0: 0x0006f70f -> 0x0006f717
[    0.000000]     0: 0x0006f71f -> 0x0006f76f
[    0.000000]     0: 0x0006f79f -> 0x0006f7df
[    0.000000]     0: 0x0006f7ff -> 0x0006f800
[    0.000000] On node 0 totalpages: 455789
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 5 pages reserved
[    0.000000]   DMA zone: 3919 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 6188 pages used for memmap
[    0.000000]   DMA32 zone: 445621 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    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: 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 high edge)
[    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: IRQ2 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] SMP: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009c000 - 000000000009d000
[    0.000000] PM: Registered nosave memory: 000000000009d000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 000000006f27c000 - 000000006f282000
[    0.000000] PM: Registered nosave memory: 000000006f3ee000 - 000000006f40f000
[    0.000000] PM: Registered nosave memory: 000000006f46f000 - 000000006f470000
[    0.000000] PM: Registered nosave memory: 000000006f470000 - 000000006f4f1000
[    0.000000] PM: Registered nosave memory: 000000006f4f1000 - 000000006f70f000
[    0.000000] PM: Registered nosave memory: 000000006f717000 - 000000006f71f000
[    0.000000] PM: Registered nosave memory: 000000006f76f000 - 000000006f79f000
[    0.000000] PM: Registered nosave memory: 000000006f7ce000 - 000000006f7db000
[    0.000000] PM: Registered nosave memory: 000000006f7db000 - 000000006f7dc000
[    0.000000] PM: Registered nosave memory: 000000006f7df000 - 000000006f7ff000
[    0.000000] Allocating PCI resources starting at 7c000000 (gap: 7c000000:64000000)
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] PERCPU: Embedded 26 pages/cpu @ffff88006f000000 s74240 r8192 d24064 u524288
[    0.000000] pcpu-alloc: s74240 r8192 d24064 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 449540
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 1760592k/1826816k available (5255k kernel code, 3660k absent, 62564k reserved, 6208k data, 936k init)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:33024 nr_irqs:712 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 14680064 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] Fast TSC calibration using PIT
[    0.001000] Detected 2128.025 MHz processor.
[    0.000003] Calibrating delay loop (skipped), value calculated using timer frequency.. 4256.05 BogoMIPS (lpj=2128025)
[    0.000007] pid_max: default: 32768 minimum: 301
[    0.000094] Security Framework initialized
[    0.000111] AppArmor: AppArmor initialized
[    0.000348] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000855] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.001104] Mount-cache hash table entries: 256
[    0.001232] Initializing cgroup subsys cpuacct
[    0.001236] Initializing cgroup subsys memory
[    0.001251] Initializing cgroup subsys devices
[    0.001254] Initializing cgroup subsys freezer
[    0.001256] Initializing cgroup subsys net_cls
[    0.001258] Initializing cgroup subsys blkio
[    0.001296] CPU: Physical Processor ID: 0
[    0.001298] CPU: Processor Core ID: 0
[    0.001303] mce: CPU supports 9 MCE banks
[    0.001315] CPU0: Thermal monitoring enabled (TM1)
[    0.001323] using mwait in idle threads.
[    0.002139] ACPI: Core revision 20110413
[    0.002274] ACPI Warning: Incorrect checksum in table [DSDT] - 0x95, should be 0x24 (20110413/tbutils-314)
[    0.020582] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.030582] CPU0: Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz stepping 02
[    0.132027] Performance Events: PEBS fmt1+, Westmere events, Intel PMU driver.
[    0.132034] ... version:                3
[    0.132035] ... bit width:              48
[    0.132036] ... generic registers:      4
[    0.132038] ... value mask:             0000ffffffffffff
[    0.132040] ... max period:             000000007fffffff
[    0.132041] ... fixed-purpose events:   3
[    0.132042] ... event mask:             000000070000000f
[    0.138133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.146046] Booting Node   0, Processors  #1
[    0.146052] smpboot cpu 1: start_ip = 97000
[    0.237133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.243014]  #2
[    0.243018] smpboot cpu 2: start_ip = 97000
[    0.334068] NMI watchdog enabled, takes one hw-pmu counter.
[    0.339970]  #3 Ok.
[    0.339974] smpboot cpu 3: start_ip = 97000
[    0.431058] NMI watchdog enabled, takes one hw-pmu counter.
[    0.432892] Brought up 4 CPUs
[    0.432897] Total of 4 processors activated (17023.39 BogoMIPS).
[    0.435127] devtmpfs: initialized
[    0.436139] PM: Registering ACPI NVS region at 6f470000 (528384 bytes)
[    0.436169] PM: Registering ACPI NVS region at 6f76f000 (196608 bytes)
[    0.436326] print_constraints: dummy: 
[    0.436358] Time: 16:11:19  Date: 08/29/11
[    0.436412] NET: Registered protocol family 16
[    0.436602] ACPI: bus type pci registered
[    0.436682] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.436685] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    0.501131] PCI: Using configuration type 1 for base access
[    0.502059] bio: create slab <bio-0> at 0
[    0.504909] ACPI: EC: Look up EC in DSDT
[    0.521923] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.523045] ACPI: SSDT 000000006f71ac18 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523728] ACPI: Dynamic OEM Table Load:
[    0.523731] ACPI: SSDT           (null) 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523990] ACPI: SSDT 000000006f718018 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.524639] ACPI: Dynamic OEM Table Load:
[    0.524642] ACPI: SSDT           (null) 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.530287] ACPI: SSDT 000000006f719a98 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.531042] ACPI: Dynamic OEM Table Load:
[    0.531045] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.535043] ACPI: SSDT 000000006f717d98 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.535744] ACPI: Dynamic OEM Table Load:
[    0.535747] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.539173] ACPI: Interpreter enabled
[    0.539176] ACPI: (supports S0 S3 S4 S5)
[    0.539204] ACPI: Using IOAPIC for interrupt routing
[    0.545359] ACPI: EC: GPE = 0x16, I/O: command/status = 0x66, data = 0x62
[    0.545605] ACPI: No dock devices found.
[    0.545607] HEST: Table not found.
[    0.545610] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.546201] \_SB_.PCI0:_OSC invalid UUID
[    0.546203] _OSC request data:1 8 1f 
[    0.546207] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.547164] pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7]
[    0.547167] pci_root PNP0A08:00: host bridge window [io  0x0d00-0xffff]
[    0.547169] pci_root PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff]
[    0.547172] pci_root PNP0A08:00: host bridge window [mem 0x000d4000-0x000d7fff]
[    0.547174] pci_root PNP0A08:00: host bridge window [mem 0x000d8000-0x000dbfff]
[    0.547176] pci_root PNP0A08:00: host bridge window [mem 0x000dc000-0x000dffff]
[    0.547179] pci_root PNP0A08:00: host bridge window [mem 0x7c000000-0xfebfffff]
[    0.547193] pci 0000:00:00.0: [8086:0044] type 0 class 0x000600
[    0.547213] DMAR: BIOS has allocated no shadow GTT; disabling IOMMU for graphics
[    0.547234] pci 0000:00:02.0: [8086:0046] type 0 class 0x000300
[    0.547246] pci 0000:00:02.0: reg 10: [mem 0xf0000000-0xf03fffff 64bit]
[    0.547253] pci 0000:00:02.0: reg 18: [mem 0xd0000000-0xdfffffff 64bit pref]
[    0.547259] pci 0000:00:02.0: reg 20: [io  0x1800-0x1807]
[    0.547325] pci 0000:00:16.0: [8086:3b64] type 0 class 0x000780
[    0.547355] pci 0000:00:16.0: reg 10: [mem 0xf0805800-0xf080580f 64bit]
[    0.547435] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.547440] pci 0000:00:16.0: PME# disabled
[    0.547484] pci 0000:00:1a.0: [8086:3b3c] type 0 class 0x000c03
[    0.547511] pci 0000:00:1a.0: reg 10: [mem 0xf0806000-0xf08063ff]
[    0.547602] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.547607] pci 0000:00:1a.0: PME# disabled
[    0.547639] pci 0000:00:1b.0: [8086:3b56] type 0 class 0x000403
[    0.547661] pci 0000:00:1b.0: reg 10: [mem 0xf0600000-0xf0603fff 64bit]
[    0.547741] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.547746] pci 0000:00:1b.0: PME# disabled
[    0.547774] pci 0000:00:1c.0: [8086:3b42] type 1 class 0x000604
[    0.547859] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.547864] pci 0000:00:1c.0: PME# disabled
[    0.547900] pci 0000:00:1c.5: [8086:3b4c] type 1 class 0x000604
[    0.547983] pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
[    0.547988] pci 0000:00:1c.5: PME# disabled
[    0.548026] pci 0000:00:1d.0: [8086:3b34] type 0 class 0x000c03
[    0.548052] pci 0000:00:1d.0: reg 10: [mem 0xf0806400-0xf08067ff]
[    0.548144] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.548148] pci 0000:00:1d.0: PME# disabled
[    0.548175] pci 0000:00:1e.0: [8086:2448] type 1 class 0x000604
[    0.548255] pci 0000:00:1f.0: [8086:3b09] type 0 class 0x000601
[    0.548379] pci 0000:00:1f.2: [8086:3b29] type 0 class 0x000106
[    0.548407] pci 0000:00:1f.2: reg 10: [io  0x1818-0x181f]
[    0.548418] pci 0000:00:1f.2: reg 14: [io  0x180c-0x180f]
[    0.548430] pci 0000:00:1f.2: reg 18: [io  0x1810-0x1817]
[    0.548442] pci 0000:00:1f.2: reg 1c: [io  0x1808-0x180b]
[    0.548453] pci 0000:00:1f.2: reg 20: [io  0x1820-0x183f]
[    0.548465] pci 0000:00:1f.2: reg 24: [mem 0xf0805000-0xf08057ff]
[    0.548514] pci 0000:00:1f.2: PME# supported from D3hot
[    0.548519] pci 0000:00:1f.2: PME# disabled
[    0.548543] pci 0000:00:1f.3: [8086:3b30] type 0 class 0x000c05
[    0.548564] pci 0000:00:1f.3: reg 10: [mem 0xf0806800-0xf08068ff 64bit]
[    0.548595] pci 0000:00:1f.3: reg 20: [io  0x1840-0x185f]
[    0.548644] pci 0000:00:1f.6: [8086:3b32] type 0 class 0x001180
[    0.548673] pci 0000:00:1f.6: reg 10: [mem 0xf0604000-0xf0604fff 64bit]
[    0.548887] pci 0000:02:00.0: [14e4:1690] type 0 class 0x000200
[    0.548930] pci 0000:02:00.0: reg 10: [mem 0xf0400000-0xf040ffff 64bit]
[    0.549105] pci 0000:02:00.0: PME# supported from D3hot D3cold
[    0.549113] pci 0000:02:00.0: PME# disabled
[    0.550892] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.550902] pci 0000:00:1c.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.550911] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.550926] pci 0000:00:1c.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551079] pci 0000:09:00.0: [8086:422c] type 0 class 0x000280
[    0.551138] pci 0000:09:00.0: reg 10: [mem 0xf0500000-0xf0501fff 64bit]
[    0.551335] pci 0000:09:00.0: PME# supported from D0 D3hot D3cold
[    0.551362] pci 0000:09:00.0: PME# disabled
[    0.551496] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.551501] pci 0000:00:1c.5:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551507] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.551515] pci 0000:00:1c.5:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551591] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c] (subtractive decode)
[    0.551597] pci 0000:00:1e.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551602] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff] (disabled)
[    0.551610] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551613] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
[    0.551615] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff] (subtractive decode)
[    0.551618] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[    0.551620] pci 0000:00:1e.0:   bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode)
[    0.551623] pci 0000:00:1e.0:   bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode)
[    0.551625] pci 0000:00:1e.0:   bridge window [mem 0x000dc000-0x000dffff] (subtractive decode)
[    0.551628] pci 0000:00:1e.0:   bridge window [mem 0x7c000000-0xfebfffff] (subtractive decode)
[    0.551652] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.551969] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.552136] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.552230] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP06._PRT]
[    0.552365] \_SB_.PCI0:_OSC invalid UUID
[    0.552367] _OSC request data:1 1f 1f 
[    0.552371]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.552426] \_SB_.PCI0:_OSC invalid UUID
[    0.552428] _OSC request data:1 0 1d 
[    0.552431]  pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d
[    0.552433] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558205] ACPI: PCI Root Bridge [CPBG] (domain 0000 [bus ff])
[    0.558250] pci 0000:ff:00.0: [8086:2c62] type 0 class 0x000600
[    0.558271] pci 0000:ff:00.1: [8086:2d01] type 0 class 0x000600
[    0.558294] pci 0000:ff:02.0: [8086:2d10] type 0 class 0x000600
[    0.558314] pci 0000:ff:02.1: [8086:2d11] type 0 class 0x000600
[    0.558332] pci 0000:ff:02.2: [8086:2d12] type 0 class 0x000600
[    0.558351] pci 0000:ff:02.3: [8086:2d13] type 0 class 0x000600
[    0.558387]  pci0000:ff: Requesting ACPI _OSC control (0x1d)
[    0.558390]  pci0000:ff: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[    0.558392] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558684] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 *5 6 7 10 12 14 15)
[    0.558753] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 *7 11 12 14 15)
[    0.558826] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.558894] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.558964] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.559031] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    0.559098] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.559166] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.559254] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.559265] vgaarb: loaded
[    0.559267] vgaarb: bridge control possible 0000:00:02.0
[    0.559448] SCSI subsystem initialized
[    0.559506] libata version 3.00 loaded.
[    0.559553] usbcore: registered new interface driver usbfs
[    0.559567] usbcore: registered new interface driver hub
[    0.559595] usbcore: registered new device driver usb
[    0.559665] PCI: Using ACPI for IRQ routing
[    0.569722] PCI: pci_cache_line_size set to 64 bytes
[    0.569912] reserve RAM buffer: 000000000009c400 - 000000000009ffff 
[    0.569914] reserve RAM buffer: 000000006f27c000 - 000000006fffffff 
[    0.569921] reserve RAM buffer: 000000006f3ee000 - 000000006fffffff 
[    0.569926] reserve RAM buffer: 000000006f46f000 - 000000006fffffff 
[    0.569932] reserve RAM buffer: 000000006f717000 - 000000006fffffff 
[    0.569936] reserve RAM buffer: 000000006f76f000 - 000000006fffffff 
[    0.569940] reserve RAM buffer: 000000006f7ce000 - 000000006fffffff 
[    0.569943] reserve RAM buffer: 000000006f7df000 - 000000006fffffff 
[    0.569945] reserve RAM buffer: 000000006f800000 - 000000006fffffff 
[    0.570046] NetLabel: Initializing
[    0.570048] NetLabel:  domain hash size = 128
[    0.570049] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.570063] NetLabel:  unlabeled traffic allowed by default
[    0.570079] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.570085] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.572111] Switching to clocksource hpet
[    0.572827] Switched to NOHz mode on CPU #0
[    0.572939] Switched to NOHz mode on CPU #2
[    0.572956] Switched to NOHz mode on CPU #1
[    0.572974] Switched to NOHz mode on CPU #3
[    0.573634] AppArmor: AppArmor Filesystem Enabled
[    0.573655] pnp: PnP ACPI init
[    0.573669] ACPI: bus type pnp registered
[    0.574216] pnp 00:00: [bus 00-fe]
[    0.574220] pnp 00:00: [io  0x0000-0x0cf7 window]
[    0.574222] pnp 00:00: [io  0x0cf8-0x0cff]
[    0.574224] pnp 00:00: [io  0x0d00-0xffff window]
[    0.574226] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    0.574229] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
[    0.574231] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
[    0.574233] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
[    0.574235] pnp 00:00: [mem 0x000cc000-0x000cffff window]
[    0.574237] pnp 00:00: [mem 0x000d0000-0x000d3fff window]
[    0.574239] pnp 00:00: [mem 0x000d4000-0x000d7fff window]
[    0.574241] pnp 00:00: [mem 0x000d8000-0x000dbfff window]
[    0.574243] pnp 00:00: [mem 0x000dc000-0x000dffff window]
[    0.574246] pnp 00:00: [mem 0x000e0000-0x000e3fff window]
[    0.574249] pnp 00:00: [mem 0x000e4000-0x000e7fff window]
[    0.574251] pnp 00:00: [mem 0x000e8000-0x000ebfff window]
[    0.574253] pnp 00:00: [mem 0x000ec000-0x000effff window]
[    0.574255] pnp 00:00: [mem 0x000f0000-0x000fffff window]
[    0.574257] pnp 00:00: [mem 0x7c000000-0xfebfffff window]
[    0.574259] pnp 00:00: [mem 0xfed40000-0xfed44fff window]
[    0.574322] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.574393] pnp 00:01: [io  0x0000-0x001f]
[    0.574395] pnp 00:01: [io  0x0081-0x0091]
[    0.574397] pnp 00:01: [io  0x0093-0x009f]
[    0.574399] pnp 00:01: [io  0x00c0-0x00df]
[    0.574401] pnp 00:01: [dma 4]
[    0.574431] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.574442] pnp 00:02: [mem 0xff000000-0xffffffff]
[    0.574471] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
[    0.574578] pnp 00:03: [irq 0 disabled]
[    0.574589] pnp 00:03: [irq 8]
[    0.574591] pnp 00:03: [mem 0xfed00000-0xfed003ff]
[    0.574621] pnp 00:03: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.574635] pnp 00:04: [io  0x00f0]
[    0.574641] pnp 00:04: [irq 13]
[    0.574669] pnp 00:04: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.574683] pnp 00:05: [io  0x002e-0x002f]
[    0.574685] pnp 00:05: [io  0x004e-0x004f]
[    0.574687] pnp 00:05: [io  0x0061]
[    0.574689] pnp 00:05: [io  0x0063]
[    0.574691] pnp 00:05: [io  0x0065]
[    0.574692] pnp 00:05: [io  0x0067]
[    0.574694] pnp 00:05: [io  0x0070]
[    0.574696] pnp 00:05: [io  0x0080]
[    0.574697] pnp 00:05: [io  0x0092]
[    0.574699] pnp 00:05: [io  0x00b2-0x00b3]
[    0.574701] pnp 00:05: [io  0x0680-0x069f]
[    0.574703] pnp 00:05: [io  0x0500-0x050f]
[    0.574706] pnp 00:05: [io  0xffff]
[    0.574707] pnp 00:05: [io  0xffff]
[    0.574709] pnp 00:05: [io  0x0400-0x047f]
[    0.574711] pnp 00:05: [io  0x1180-0x11ff]
[    0.574713] pnp 00:05: [io  0x164e-0x164f]
[    0.574715] pnp 00:05: [io  0xfe00]
[    0.574770] system 00:05: [io  0x0680-0x069f] has been reserved
[    0.574773] system 00:05: [io  0x0500-0x050f] has been reserved
[    0.574776] system 00:05: [io  0xffff] has been reserved
[    0.574778] system 00:05: [io  0xffff] has been reserved
[    0.574782] system 00:05: [io  0x0400-0x047f] has been reserved
[    0.574784] system 00:05: [io  0x1180-0x11ff] has been reserved
[    0.574787] system 00:05: [io  0x164e-0x164f] has been reserved
[    0.574790] system 00:05: [io  0xfe00] has been reserved
[    0.574793] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574838] pnp 00:06: [io  0x06a0-0x06af]
[    0.574840] pnp 00:06: [io  0x06b0-0x06ff]
[    0.574887] system 00:06: [io  0x06a0-0x06af] has been reserved
[    0.574890] system 00:06: [io  0x06b0-0x06ff] has been reserved
[    0.574892] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574938] pnp 00:07: [io  0x0070-0x0077]
[    0.574971] pnp 00:07: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.574989] pnp 00:08: [irq 12]
[    0.575021] pnp 00:08: Plug and Play ACPI device, IDs SYN1b20 SYN1b00 SYN0002 PNP0f13 (active)
[    0.575033] pnp 00:09: [io  0x0060]
[    0.575035] pnp 00:09: [io  0x0064]
[    0.575040] pnp 00:09: [irq 1]
[    0.575070] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.575510] pnp 00:0a: [mem 0xfed1c000-0xfed1ffff]
[    0.575512] pnp 00:0a: [mem 0xfed10000-0xfed13fff]
[    0.575514] pnp 00:0a: [mem 0xfed18000-0xfed18fff]
[    0.575516] pnp 00:0a: [mem 0xfed19000-0xfed19fff]
[    0.575518] pnp 00:0a: [mem 0xe0000000-0xefffffff]
[    0.575520] pnp 00:0a: [mem 0x00000000-0xffffffffffffffff disabled]
[    0.575523] pnp 00:0a: [mem 0xfeaff000-0xfeafffff]
[    0.575524] pnp 00:0a: [mem 0xfed20000-0xfed3ffff]
[    0.575526] pnp 00:0a: [mem 0xfed90000-0xfed8ffff disabled]
[    0.575529] pnp 00:0a: [mem 0xfed40000-0xfed44fff]
[    0.575530] pnp 00:0a: [mem 0xfed45000-0xfed8ffff]
[    0.575532] pnp 00:0a: [mem 0xff000000-0xffffffff]
[    0.575534] pnp 00:0a: [mem 0xfee00000-0xfeefffff]
[    0.575603] system 00:0a: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.575606] system 00:0a: [mem 0xfed10000-0xfed13fff] has been reserved
[    0.575609] system 00:0a: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.575612] system 00:0a: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.575615] system 00:0a: [mem 0xe0000000-0xefffffff] has been reserved
[    0.575618] system 00:0a: [mem 0xfeaff000-0xfeafffff] has been reserved
[    0.575621] system 00:0a: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.575624] system 00:0a: [mem 0xfed40000-0xfed44fff] has been reserved
[    0.575627] system 00:0a: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.575630] system 00:0a: [mem 0xff000000-0xffffffff] has been reserved
[    0.575633] system 00:0a: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.575636] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.575809] pnp 00:0b: [bus ff]
[    0.575856] pnp 00:0b: Plug and Play ACPI device, IDs PNP0a03 (active)
[    0.575869] pnp: PnP ACPI: found 12 devices
[    0.575870] ACPI: ACPI bus type pnp unregistered
[    0.581990] PCI: max bus depth: 1 pci_try_num: 2
[    0.582029] pci 0000:00:1c.5: BAR 15: assigned [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582033] pci 0000:00:1c.5: BAR 13: assigned [io  0x2000-0x2fff]
[    0.582036] pci 0000:00:1c.0: BAR 15: assigned [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582040] pci 0000:00:1c.0: BAR 13: assigned [io  0x3000-0x3fff]
[    0.582042] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.582046] pci 0000:00:1c.0:   bridge window [io  0x3000-0x3fff]
[    0.582052] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.582058] pci 0000:00:1c.0:   bridge window [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582066] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.582069] pci 0000:00:1c.5:   bridge window [io  0x2000-0x2fff]
[    0.582076] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.582081] pci 0000:00:1c.5:   bridge window [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582090] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c]
[    0.582091] pci 0000:00:1e.0:   bridge window [io  disabled]
[    0.582098] pci 0000:00:1e.0:   bridge window [mem disabled]
[    0.582102] pci 0000:00:1e.0:   bridge window [mem pref disabled]
[    0.582125] pci 0000:00:1c.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.582131] pci 0000:00:1c.0: setting latency timer to 64
[    0.582143] pci 0000:00:1c.5: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    0.582148] pci 0000:00:1c.5: setting latency timer to 64
[    0.582157] pci 0000:00:1e.0: setting latency timer to 64
[    0.582162] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.582164] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.582166] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582168] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582179] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582181] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582183] pci_bus 0000:00: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582186] pci_bus 0000:02: resource 0 [io  0x3000-0x3fff]
[    0.582188] pci_bus 0000:02: resource 1 [mem 0xf0400000-0xf04fffff]
[    0.582190] pci_bus 0000:02: resource 2 [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582192] pci_bus 0000:09: resource 0 [io  0x2000-0x2fff]
[    0.582194] pci_bus 0000:09: resource 1 [mem 0xf0500000-0xf05fffff]
[    0.582197] pci_bus 0000:09: resource 2 [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582199] pci_bus 0000:0c: resource 4 [io  0x0000-0x0cf7]
[    0.582201] pci_bus 0000:0c: resource 5 [io  0x0d00-0xffff]
[    0.582203] pci_bus 0000:0c: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582206] pci_bus 0000:0c: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582208] pci_bus 0000:0c: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582210] pci_bus 0000:0c: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582212] pci_bus 0000:0c: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582309] NET: Registered protocol family 2
[    0.582435] IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.583111] TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
[    0.584672] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.585024] TCP: Hash tables configured (established 262144 bind 65536)
[    0.585026] TCP reno registered
[    0.585036] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585057] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585233] NET: Registered protocol family 1
[    0.585250] pci 0000:00:02.0: Boot video device
[    0.585393] PCI: CLS 64 bytes, default 64
[    0.585444] Unpacking initramfs...
[    1.021678] Freeing initrd memory: 21152k freed
[    1.026475] Simple Boot Flag at 0x36 set to 0x1
[    1.027164] audit: initializing netlink socket (disabled)
[    1.027179] type=2000 audit(1314634279.859:1): initialized
[    1.048261] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.048632] VFS: Disk quotas dquot_6.5.2
[    1.048673] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.048897] msgmni has been set to 3479
[    1.049176] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    1.049211] io scheduler noop registered
[    1.049213] io scheduler deadline registered
[    1.049242] io scheduler cfq registered (default)
[    1.049564] vesafb: mode is 1024x768x16, linelength=2048, pages=84
[    1.049566] vesafb: scrolling: redraw
[    1.049569] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    1.050408] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90010980000, using 3072k, total 131008k
[    1.114201] Console: switching to colour frame buffer device 128x48
[    1.177848] fb0: VESA VGA frame buffer device
[    1.177859] intel_idle: MWAIT substates: 0x1120
[    1.177861] intel_idle: v0.4 model 0x25
[    1.177862] intel_idle: lapic_timer_reliable_states 0xffffffff
[    1.177898] ERST: Table is not found!
[    1.177968] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    1.299341] Non-volatile memory driver v1.3
[    1.299343] Linux agpgart interface v0.103
[    1.299424] agpgart-intel 0000:00:00.0: Intel HD Graphics Chipset
[    1.299577] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[    1.300615] agpgart-intel 0000:00:00.0: detected 131072K stolen memory
[    1.300769] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
[    1.300936] ahci 0000:00:1f.2: version 3.0
[    1.300962] ahci 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    1.301013] ahci 0000:00:1f.2: irq 40 for MSI/MSI-X
[    1.301045] ahci: SSS flag set, parallel bus scan disabled
[    1.301083] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 3 Gbps 0x3 impl SATA mode
[    1.301087] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck stag pm led clo pio slum part ems apst 
[    1.301093] ahci 0000:00:1f.2: setting latency timer to 64
[    1.303296] scsi0 : ahci
[    1.303409] scsi1 : ahci
[    1.303483] scsi2 : ahci
[    1.303554] scsi3 : ahci
[    1.303606] ata1: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805100 irq 40
[    1.303609] ata2: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805180 irq 40
[    1.303611] ata3: DUMMY
[    1.303612] ata4: DUMMY
[    1.303712] Fixed MDIO Bus: probed
[    1.303717] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.303736] ehci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.303754] ehci_hcd 0000:00:1a.0: setting latency timer to 64
[    1.303758] ehci_hcd 0000:00:1a.0: EHCI Host Controller
[    1.303784] ehci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    1.303819] ehci_hcd 0000:00:1a.0: debug port 2
[    1.307725] ehci_hcd 0000:00:1a.0: cache line size of 64 is not supported
[    1.307742] ehci_hcd 0000:00:1a.0: irq 16, io mem 0xf0806000
[    1.316885] ehci_hcd 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    1.316932] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.316938] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.316943] usb usb1: Product: EHCI Host Controller
[    1.316948] usb usb1: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.316952] usb usb1: SerialNumber: 0000:00:1a.0
[    1.317064] hub 1-0:1.0: USB hub found
[    1.317068] hub 1-0:1.0: 3 ports detected
[    1.317149] ehci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    1.317162] ehci_hcd 0000:00:1d.0: setting latency timer to 64
[    1.317166] ehci_hcd 0000:00:1d.0: EHCI Host Controller
[    1.317174] ehci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    1.317203] ehci_hcd 0000:00:1d.0: debug port 2
[    1.321193] ehci_hcd 0000:00:1d.0: cache line size of 64 is not supported
[    1.321209] ehci_hcd 0000:00:1d.0: irq 23, io mem 0xf0806400
[    1.330875] ehci_hcd 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    1.330913] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.330918] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.330923] usb usb2: Product: EHCI Host Controller
[    1.330928] usb usb2: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.330932] usb usb2: SerialNumber: 0000:00:1d.0
[    1.331036] hub 2-0:1.0: USB hub found
[    1.331040] hub 2-0:1.0: 3 ports detected
[    1.331112] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.331123] uhci_hcd: USB Universal Host Controller Interface driver
[    1.331157] Initializing USB Mass Storage driver...
[    1.331178] usbcore: registered new interface driver usb-storage
[    1.331180] USB Mass Storage support registered.
[    1.331189] usbcore: registered new interface driver ums-alauda
[    1.331197] usbcore: registered new interface driver ums-cypress
[    1.331206] usbcore: registered new interface driver ums-datafab
[    1.331215] usbcore: registered new interface driver ums-freecom
[    1.331224] usbcore: registered new interface driver ums-isd200
[    1.331232] usbcore: registered new interface driver ums-jumpshot
[    1.331240] usbcore: registered new interface driver ums-karma
[    1.331250] usbcore: registered new interface driver ums-onetouch
[    1.331258] usbcore: registered new interface driver ums-sddr09
[    1.331267] usbcore: registered new interface driver ums-sddr55
[    1.331275] usbcore: registered new interface driver ums-usbat
[    1.331326] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    1.337272] i8042: Detected active multiplexing controller, rev 1.1
[    1.340968] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.340998] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    1.341017] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    1.341037] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    1.341056] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    1.341136] mousedev: PS/2 mouse device common for all mice
[    1.341260] rtc_cmos 00:07: RTC can wake from S4
[    1.341373] rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0
[    1.341404] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    1.341514] cpuidle: using governor ladder
[    1.341668] cpuidle: using governor menu
[    1.341670] EFI Variables Facility v0.08 2004-May-17
[    1.341911] usbcore: registered new interface driver usbhid
[    1.341912] usbhid: USB HID core driver
[    1.342135] TCP cubic registered
[    1.342315] NET: Registered protocol family 10
[    1.342943] lib80211: common routines for IEEE802.11 drivers
[    1.342946] lib80211_crypt: registered algorithm 'NULL'
[    1.342948] Registering the dns_resolver key type
[    1.342964] libceph: loaded (mon/osd proto 15/24, osdmap 5/6 5/6)
[    1.343052] PM: Checking hibernation image partition /dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1
[    1.362464] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.609820] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.611083] ata1.00: ATA-8: Hitachi HTS545025B9A300, PB2OC60F, max UDMA/133
[    1.611088] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.612661] ata1.00: configured for UDMA/133
[    1.613025] scsi 0:0:0:0: Direct-Access     ATA      Hitachi HTS54502 PB2O PQ: 0 ANSI: 5
[    1.613371] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    1.613564] sd 0:0:0:0: [sda] Write Protect is off
[    1.613571] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.613645] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.618820] usb 1-1: new high speed USB device number 2 using ehci_hcd
[    1.646308]  sda: sda1 sda2 sda3
[    1.647037] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.733439] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[    1.733446] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.733774] hub 1-1:1.0: USB hub found
[    1.734007] hub 1-1:1.0: 6 ports detected
[    1.836710] usb 2-1: new high speed USB device number 2 using ehci_hcd
[    1.917691] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    1.918092] ata2.00: ATAPI: Optiarc DVD RW AD-7585H, KX04, max UDMA/100
[    1.920844] ata2.00: configured for UDMA/100
[    1.924098] scsi 1:0:0:0: CD-ROM            Optiarc  DVD RW AD-7585H  KX04 PQ: 0 ANSI: 5
[    1.951108] usb 2-1: New USB device found, idVendor=8087, idProduct=0020
[    1.951116] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.951396] hub 2-1:1.0: USB hub found
[    1.951593] hub 2-1:1.0: 8 ports detected
[    2.015911] usb 1-1.1: new high speed USB device number 3 using ehci_hcd
[    2.026624] Refined TSC clocksource calibration: 2127.999 MHz.
[    2.026633] Switching to clocksource tsc
[    2.133130] usb 1-1.1: New USB device found, idVendor=04f2, idProduct=b1d8
[    2.133137] usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[    2.133143] usb 1-1.1: Product: 1.3M WebCam
[    2.133147] usb 1-1.1: Manufacturer: Sonix Technology Co., Ltd.
[    2.210776] usb 1-1.3: new high speed USB device number 4 using ehci_hcd
[    2.230675] Synaptics Touchpad, model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd04733/0xa44000/0xa0000
[    2.281343] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio2/input/input1
[    2.286227] PM: Hibernation image not present or could not be loaded.
[    2.286295] registered taskstats version 1
[    2.286836]   Magic number: 7:505:187
[    2.287014] rtc_cmos 00:07: setting system clock to 2011-08-29 16:11:21 UTC (1314634281)
[    2.291271] Freeing unused kernel memory: 936k freed
[    2.291536] Write protecting the kernel read-only data: 10240k
[    2.297540] usb 1-1.3: New USB device found, idVendor=12d1, idProduct=140c
[    2.297547] usb 1-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[    2.297553] usb 1-1.3: Product: HUAWEI Mobile
[    2.297557] usb 1-1.3: Manufacturer: HUAWEI Technology
[    2.298524] Freeing unused kernel memory: 872k freed
[    2.310556] Freeing unused kernel memory: 1708k freed
[    2.363000] thermal LNXTHERM:00: registered as thermal_zone0
[    2.363006] ACPI: Thermal Zone [THRM] (39 C)
[    2.367748] ACPI: acpi_idle yielding to intel_idle
[    2.373635] usb 1-1.4: new high speed USB device number 5 using ehci_hcd
[    2.380961] udev[90]: starting version 166
[    2.400806] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
[    2.400957] ACPI: Lid Switch [LID]
[    2.401023] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
[    2.401067] ACPI: Power Button [PWRB]
[    2.401122] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
[    2.401162] ACPI: Sleep Button [SLPB]
[    2.401248] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input5
[    2.401291] ACPI: Power Button [PWRF]
[    2.431733] [drm] Initialized drm 1.1.0 20060810
[    2.459323] usb 1-1.4: New USB device found, idVendor=1c7a, idProduct=0801
[    2.459327] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.459331] usb 1-1.4: Product: FingerPrinter Reader
[    2.459333] usb 1-1.4: Manufacturer: Generic
[    2.459335] usb 1-1.4: SerialNumber: 00000000000006
[    2.459653] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    2.459665] i915 0000:00:02.0: setting latency timer to 64
[    2.625680] i915 0000:00:02.0: irq 41 for MSI/MSI-X
[    2.625691] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    2.625695] [drm] Driver supports precise vblank timestamp query.
[    2.625766] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.904268] checking generic (d0000000 7ff0000) vs hw (d0000000 10000000)
[    2.904272] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
[    2.904291] Console: switching to colour dummy device 80x25
[    2.904911] fbcon: inteldrmfb (fb0) is primary device
[    3.062972] Console: switching to colour frame buffer device 170x48
[    3.065834] fb0: inteldrmfb frame buffer device
[    3.065836] drm: registered panic notifier
[    3.076332] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076471] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076642] acpi device:04: registered as cooling_device4
[    3.076979] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input6
[    3.077028] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    3.077070] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.165172] PM: Marking nosave pages: 000000000009c000 - 0000000000100000
[    3.165183] PM: Marking nosave pages: 000000006f27c000 - 000000006f282000
[    3.165188] PM: Marking nosave pages: 000000006f3ee000 - 000000006f40f000
[    3.165193] PM: Marking nosave pages: 000000006f46f000 - 000000006f70f000
[    3.165218] PM: Marking nosave pages: 000000006f717000 - 000000006f71f000
[    3.165222] PM: Marking nosave pages: 000000006f76f000 - 000000006f79f000
[    3.165228] PM: Marking nosave pages: 000000006f7ce000 - 000000006f7dc000
[    3.165232] PM: Marking nosave pages: 000000006f7df000 - 000000006f7ff000
[    3.165237] PM: Basic memory bitmaps created
[    3.173517] PM: Basic memory bitmaps freed
[    3.173522] video LNXVIDEO:00: Restoring backlight state
[    3.173556] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.237134] PM: Starting manual resume from disk
[    3.237138] PM: Hibernation image partition 8:1 present
[    3.237139] PM: Looking for hibernation image.
[    3.237395] PM: Image not found (code -22)
[    3.237401] PM: Hibernation image not present or could not be loaded.
[    3.388592] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[    3.538397] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr
[    7.485249] udev[396]: starting version 166
[    7.945311] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.945325] ACPI: Battery Slot [BAT1] (battery present)
[    7.995510] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.995770] ACPI: AC Adapter [ACAD] (on-line)
[    8.468740] i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.673497] input: PC Speaker as /devices/platform/pcspkr/input/input7
[    8.782379] iTCO_vendor_support: vendor-support=0
[    8.815035] wmi: Mapper loaded
[    8.846429] cfg80211: Calling CRDA to update world regulatory domain
[    8.924291] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.06
[    8.924384] iTCO_wdt: Found a HM55 TCO device (Version=2, TCOBASE=0x0460)
[    8.924459] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[    8.982243] intel ips 0000:00:1f.6: CPU TDP doesn't match expected value (found 25, expected 29)
[    8.982273] intel ips 0000:00:1f.6: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.982554] intel ips 0000:00:1f.6: IPS driver initialized, MCP temp limit 90
[    8.997225] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    8.997310] scsi 1:0:0:0: Attached scsi generic sg1 type 5
[    9.140625] usbcore: registered new interface driver usbserial
[    9.140640] USB Serial support registered for generic
[    9.140728] usbcore: registered new interface driver usbserial_generic
[    9.140731] usbserial: USB Serial Driver core
[    9.235437] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    9.235445] cdrom: Uniform CD-ROM driver Revision: 3.20
[    9.235679] sr 1:0:0:0: Attached scsi CD-ROM sr0
[    9.273248] tg3.c:v3.119 (May 18, 2011)
[    9.273303] tg3 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    9.273319] tg3 0000:02:00.0: setting latency timer to 64
[    9.335627] tg3 mdio bus: probed
[    9.384181] tg3 0000:02:00.0: eth0: Tigon3 [partno(BCM957760) rev 57780001] (PCI Express) MAC address c8:0a:a9:55:1b:22
[    9.384185] tg3 0000:02:00.0: eth0: attached PHY driver [Broadcom BCM57780] (mii_bus:phy_addr=200:01)
[    9.384189] tg3 0000:02:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    9.384191] tg3 0000:02:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[    9.601697] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[    9.601833] HDA Intel 0000:00:1b.0: irq 42 for MSI/MSI-X
[    9.601900] HDA Intel 0000:00:1b.0: setting latency timer to 64
[    9.865339] Linux video capture interface: v2.00
[   10.091904] acer_wmi: Acer Laptop ACPI-WMI Extras
[   10.092579] acer_wmi: Function bitmap for Communication Button: 0x841
[   10.092596] acer_wmi: Brightness must be controlled by generic video driver
[   10.092856] input: Acer WMI hotkeys as /devices/virtual/input/input8
[   10.115244] cfg80211: World regulatory domain updated:
[   10.115247] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.115250] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115252] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115255] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115257] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115259] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.150648] uvcvideo: Found UVC 1.00 device 1.3M WebCam (04f2:b1d8)
[   10.160463] input: 1.3M WebCam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input9
[   10.160672] usbcore: registered new interface driver uvcvideo
[   10.160677] USB Video Class driver (v1.1.0)
[   10.735532] USB Serial support registered for GSM modem (1-port)
[   10.735656] option 1-1.3:1.0: GSM modem (1-port) converter detected
[   10.735899] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[   10.735918] option 1-1.3:1.1: GSM modem (1-port) converter detected
[   10.736083] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[   10.736107] option 1-1.3:1.2: GSM modem (1-port) converter detected
[   10.736211] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[   10.736233] option 1-1.3:1.3: GSM modem (1-port) converter detected
[   10.736326] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[   10.736364] usbcore: registered new interface driver option
[   10.736368] option: v0.7.2:USB Driver for GSM modems
[   10.817709] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input10
[   10.915929] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
[   10.915936] iwlagn: Copyright(c) 2003-2011 Intel Corporation
[   10.916069] iwlagn 0000:09:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[   10.916125] iwlagn 0000:09:00.0: setting latency timer to 64
[   10.916217] iwlagn 0000:09:00.0: Detected Intel(R) Centrino(R) Advanced-N 6200 AGN, REV=0x74
[   10.932864] iwlagn 0000:09:00.0: device EEPROM VER=0x434, CALIB=0x6
[   10.932870] iwlagn 0000:09:00.0: Device SKU: 0Xb
[   10.932900] iwlagn 0000:09:00.0: Tunable channels: 13 802.11bg, 24 802.11a channels
[   10.933243] iwlagn 0000:09:00.0: irq 43 for MSI/MSI-X
[   11.003702] iwlagn 0000:09:00.0: loaded firmware version 9.193.4.1 build 19710
[   11.004064] Registered led device: phy0-led
[   11.063390] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   11.455858] Adding 2103292k swap on /dev/sda1.  Priority:-1 extents:1 across:2103292k 
[   11.990600] device-mapper: uevent: version 1.0.3
[   11.990749] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
[   12.373813] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[   14.402537] microcode: CPU0 sig=0x20652, pf=0x10, revision=0x9
[   14.406219] microcode: CPU1 sig=0x20652, pf=0x10, revision=0x9
[   14.407566] microcode: CPU2 sig=0x20652, pf=0x10, revision=0x9
[   14.408754] microcode: CPU3 sig=0x20652, pf=0x10, revision=0x9
[   14.409977] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   14.799378] microcode: CPU0 updated to revision 0xc, date = 2010-06-10
[   14.799899] microcode: CPU1 updated to revision 0xc, date = 2010-06-10
[   14.800382] microcode: CPU2 updated to revision 0xc, date = 2010-06-10
[   14.800925] microcode: CPU3 updated to revision 0xc, date = 2010-06-10
[   15.606341] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   15.719447] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   15.771477] ip_tables: (C) 2000-2006 Netfilter Core Team
[   17.007777] BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
[   19.412401] tg3 0000:02:00.0: irq 44 for MSI/MSI-X
[   20.171382] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   20.359932] tg3 0000:02:00.0: eth0: Link is down
[   20.517332] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   20.729577] NET: Registered protocol family 17
[   23.370597] tg3 0000:02:00.0: eth0: Link is up at 1000 Mbps, full duplex
[   23.370604] tg3 0000:02:00.0: eth0: Flow control is on for TX and on for RX
[   23.371015] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   23.942707] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   23.942935] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   30.536090] fuse init (API version 7.16)
[   32.431417] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12285 DF PROTO=TCP SPT=57519 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CCBFD0000000001030306) 
[   34.250958] eth0: no IPv6 routers present
[   42.699766] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr,commit=0
[   43.472545] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   44.375141] EXT4-fs (sda3): re-mounted. Opts: acl,user_xattr,commit=0
[   55.637057] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=34692 DF PROTO=TCP SPT=57527 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CE2A80000000001030306) 

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

* Re: [Devel] [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-29  8:31     ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:31 UTC (permalink / raw)
  To: devel

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

於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> Details can be found in:
> Documentation/acpi/initrd_table_override.txt
> 
> Additional dmesg output of a booted system with
> FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> tables overridden (with ### marked comments):
> 
> ### ACPI tables found glued to initrd
> DSDT ACPI table found in initrd - size: 16234
> FACP ACPI table found in initrd - size: 116
> SSDT ACPI table found in initrd - size: 334
> ### Re-printed e820 map via e820_update() with additionally created
> ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> ### initrd where copied to
> modified physical RAM map:
> ...
>   ### New ACPI data section:
>   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
>   ### BIOS e820 provided ACPI data section:
>   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> ...
> ### Total size of all ACPI tables glued to initrd
> ### The address is initrd_start which gets updated to
> ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> Found acpi tables of size: 16684 at 0xffff8800374c4000
> 
> Disabling lock debugging due to kernel taint
> ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> ...
> ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> ### loaded ACPI table matches and gets overridden:
> ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ACPI: Dynamic OEM Table Load:
> ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> ...
> 
> If the initrd does not start with a valid ACPI table signature or the ACPI
> table's checksum is wrong, there is no functional change.
> 
> Signed-off-by: Thomas Renninger <trenn(a)suse.de>
> CC: linux-acpi(a)vger.kernel.org
> CC: lenb(a)kernel.org
> CC: linux-kernel(a)vger.kernel.org
> CC: x86(a)kernel.org
> ---

This patch works fine to me on Acer TravelMate 8572.
I added a debug message to _BCM method in DSDT then override it in
initrd by follow initrd_table_override.txt.

The attached is my dmesg log.

> +3) How does it work
> +-------------------
> +
> +# Extract the machine's ACPI tables:
> +acpidump >acpidump
> +acpixtract -a acpidump
> +# Disassemble, modify and recompile them:
> +iasl -d *.dat
> +# For example add this statement into a _PRT (PCI Routing Table) function
> +# of the DSDT:
> +Store("Hello World", debug)
> +iasl -sa *.dsl
> +# glue them together with the initrd. ACPI tables go first, original initrd
> +# goes on top:
> +cat TBL1.dat >>instrumented_initrd
> +cat TBL2.dat >>instrumented_initrd
> +cat TBL3.dat >>instrumented_initrd

I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
because iasl -sa default generate out *.aml file but not *.dat file, my
iasl version is Intel 20110112-64 [Feb 27 2011].
That will be more clear for the first time user to understand need cat
*.aml file.

Tested-by: Lee, Chun-Yi <jlee(a)suse.com>


Thank's
Joey Lee


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

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.0-0.7-desktop+ (linux@linux-cr4d.site) (gcc version 4.5.1 20101208 [gcc-4_5-branch revision 167585] (SUSE Linux) ) #1 SMP PREEMPT Thu Aug 25 04:01:42 CST 2011
[    0.000000] Command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009c400 (usable)
[    0.000000]  BIOS-e820: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  BIOS-e820: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  BIOS-e820: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  BIOS-e820: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  BIOS-e820: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  BIOS-e820: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  BIOS-e820: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  BIOS-e820: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  BIOS-e820: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000006f79f000 - 000000006f7df000 (usable)
[    0.000000]  BIOS-e820: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  BIOS-e820: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  BIOS-e820: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  BIOS-e820: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI present.
[    0.000000] DMI: Acer             S2.TXN03.002     /BAP50-CP        , BIOS V1.27   04/25/2011
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x6f800 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-DFFFF uncachable
[    0.000000]   E0000-FFFFF write-through
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 disabled
[    0.000000]   1 base 070000000 mask FF0000000 uncachable
[    0.000000]   2 base 000000000 mask F80000000 write-back
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] found SMP MP-table at [ffff8800000f6d40] f6d40
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 20480
[    0.000000] init_memory_mapping: 0000000000000000-000000006f800000
[    0.000000]  0000000000 - 006f800000 page 2M
[    0.000000] kernel direct mapping tables up to 6f800000 @ 6f7dc000-6f7df000
[    0.000000] RAMDISK: 36b48000 - 37ff0000
[    0.000000] DSDT ACPI table found in initrd - size: 56678
[    0.000000] modified physical RAM map:
[    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
[    0.000000]  modified: 0000000000010000 - 000000000009c400 (usable)
[    0.000000]  modified: 000000000009c400 - 00000000000a0000 (reserved)
[    0.000000]  modified: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  modified: 0000000000100000 - 000000006f27c000 (usable)
[    0.000000]  modified: 000000006f27c000 - 000000006f282000 (reserved)
[    0.000000]  modified: 000000006f282000 - 000000006f3ee000 (usable)
[    0.000000]  modified: 000000006f3ee000 - 000000006f40f000 (reserved)
[    0.000000]  modified: 000000006f40f000 - 000000006f46f000 (usable)
[    0.000000]  modified: 000000006f46f000 - 000000006f470000 (reserved)
[    0.000000]  modified: 000000006f470000 - 000000006f4f1000 (ACPI NVS)
[    0.000000]  modified: 000000006f4f1000 - 000000006f70f000 (reserved)
[    0.000000]  modified: 000000006f70f000 - 000000006f717000 (usable)
[    0.000000]  modified: 000000006f717000 - 000000006f71f000 (reserved)
[    0.000000]  modified: 000000006f71f000 - 000000006f76f000 (usable)
[    0.000000]  modified: 000000006f76f000 - 000000006f79f000 (ACPI NVS)
[    0.000000]  modified: 000000006f79f000 - 000000006f7ce000 (usable)
[    0.000000]  modified: 000000006f7ce000 - 000000006f7dbd66 (ACPI data)
[    0.000000]  modified: 000000006f7dbd66 - 000000006f7df000 (usable)
[    0.000000]  modified: 000000006f7df000 - 000000006f7ff000 (ACPI data)
[    0.000000]  modified: 000000006f7ff000 - 000000006f800000 (usable)
[    0.000000]  modified: 000000006f800000 - 000000007c000000 (reserved)
[    0.000000]  modified: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  modified: 00000000f0604000 - 00000000f0605000 (reserved)
[    0.000000]  modified: 00000000feaff000 - 00000000feb00000 (reserved)
[    0.000000]  modified: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  modified: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  modified: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  modified: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  modified: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000] Found acpi tables of size: 56678 at 0xffff880036b48000
[    0.000000] ACPI: RSDP 00000000000f6c80 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 000000006f7f0d89 00064 (v01 ACRSYS ACRPRDCT 06040000  LTP 00000000)
[    0.000000] ACPI: FACP 000000006f7e1000 000F4 (v03 INTEL  CRESTLNE 06040000 ALAN 00000001)
[    0.000000] Disabling lock debugging due to kernel taint
[    0.000000] ACPI: DSDT @ 0x000000006f7e2000 Phys table override, replaced with:
[    0.000000] ACPI: DSDT 000000006f7ce000 0DD4E (v02 ACRSYS CALPELLA 06040000 INTL 20060912)
[    0.000000] ACPI: FACS 000000006f79bfc0 00040
[    0.000000] ACPI: HPET 000000006f7fecdb 00038 (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: MCFG 000000006f7fed13 0003C (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: APIC 000000006f7fed4f 00084 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: BOOT 000000006f7fedd3 00028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SLIC 000000006f7fedfb 00176 (v01 ACRSYS ACRPRDCT 06040000 acer 00000000)
[    0.000000] ACPI: ASF! 000000006f7fef71 0008F (v16   CETP     CETP 06040000 PTL  00000001)
[    0.000000] ACPI: SSDT 000000006f7e0000 009F1 (v01  PmRef    CpuPm 00003000 INTL 20060912)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-000000006f800000
[    0.000000] Initmem setup node 0 0000000000000000-000000006f800000
[    0.000000]   NODE_DATA [000000006f7ba000 - 000000006f7cdfff]
[    0.000000]  [ffffea0000000000-ffffea00019fffff] PMD -> [ffff88006ce00000-ffff88006e7fffff] on node 0
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   empty
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[8] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009c
[    0.000000]     0: 0x00000100 -> 0x0006f27c
[    0.000000]     0: 0x0006f282 -> 0x0006f3ee
[    0.000000]     0: 0x0006f40f -> 0x0006f46f
[    0.000000]     0: 0x0006f70f -> 0x0006f717
[    0.000000]     0: 0x0006f71f -> 0x0006f76f
[    0.000000]     0: 0x0006f79f -> 0x0006f7df
[    0.000000]     0: 0x0006f7ff -> 0x0006f800
[    0.000000] On node 0 totalpages: 455789
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 5 pages reserved
[    0.000000]   DMA zone: 3919 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 6188 pages used for memmap
[    0.000000]   DMA32 zone: 445621 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    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: 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 high edge)
[    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: IRQ2 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] SMP: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009c000 - 000000000009d000
[    0.000000] PM: Registered nosave memory: 000000000009d000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 000000006f27c000 - 000000006f282000
[    0.000000] PM: Registered nosave memory: 000000006f3ee000 - 000000006f40f000
[    0.000000] PM: Registered nosave memory: 000000006f46f000 - 000000006f470000
[    0.000000] PM: Registered nosave memory: 000000006f470000 - 000000006f4f1000
[    0.000000] PM: Registered nosave memory: 000000006f4f1000 - 000000006f70f000
[    0.000000] PM: Registered nosave memory: 000000006f717000 - 000000006f71f000
[    0.000000] PM: Registered nosave memory: 000000006f76f000 - 000000006f79f000
[    0.000000] PM: Registered nosave memory: 000000006f7ce000 - 000000006f7db000
[    0.000000] PM: Registered nosave memory: 000000006f7db000 - 000000006f7dc000
[    0.000000] PM: Registered nosave memory: 000000006f7df000 - 000000006f7ff000
[    0.000000] Allocating PCI resources starting at 7c000000 (gap: 7c000000:64000000)
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] PERCPU: Embedded 26 pages/cpu @ffff88006f000000 s74240 r8192 d24064 u524288
[    0.000000] pcpu-alloc: s74240 r8192 d24064 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 449540
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: root=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part2 resume=/dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1 splash=silent quiet vga=0x317 acpi.debug_level=0x2 acpi.debug_layer=0xFFFFFFFF
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 1760592k/1826816k available (5255k kernel code, 3660k absent, 62564k reserved, 6208k data, 936k init)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:33024 nr_irqs:712 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 14680064 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] Fast TSC calibration using PIT
[    0.001000] Detected 2128.025 MHz processor.
[    0.000003] Calibrating delay loop (skipped), value calculated using timer frequency.. 4256.05 BogoMIPS (lpj=2128025)
[    0.000007] pid_max: default: 32768 minimum: 301
[    0.000094] Security Framework initialized
[    0.000111] AppArmor: AppArmor initialized
[    0.000348] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000855] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.001104] Mount-cache hash table entries: 256
[    0.001232] Initializing cgroup subsys cpuacct
[    0.001236] Initializing cgroup subsys memory
[    0.001251] Initializing cgroup subsys devices
[    0.001254] Initializing cgroup subsys freezer
[    0.001256] Initializing cgroup subsys net_cls
[    0.001258] Initializing cgroup subsys blkio
[    0.001296] CPU: Physical Processor ID: 0
[    0.001298] CPU: Processor Core ID: 0
[    0.001303] mce: CPU supports 9 MCE banks
[    0.001315] CPU0: Thermal monitoring enabled (TM1)
[    0.001323] using mwait in idle threads.
[    0.002139] ACPI: Core revision 20110413
[    0.002274] ACPI Warning: Incorrect checksum in table [DSDT] - 0x95, should be 0x24 (20110413/tbutils-314)
[    0.020582] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.030582] CPU0: Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz stepping 02
[    0.132027] Performance Events: PEBS fmt1+, Westmere events, Intel PMU driver.
[    0.132034] ... version:                3
[    0.132035] ... bit width:              48
[    0.132036] ... generic registers:      4
[    0.132038] ... value mask:             0000ffffffffffff
[    0.132040] ... max period:             000000007fffffff
[    0.132041] ... fixed-purpose events:   3
[    0.132042] ... event mask:             000000070000000f
[    0.138133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.146046] Booting Node   0, Processors  #1
[    0.146052] smpboot cpu 1: start_ip = 97000
[    0.237133] NMI watchdog enabled, takes one hw-pmu counter.
[    0.243014]  #2
[    0.243018] smpboot cpu 2: start_ip = 97000
[    0.334068] NMI watchdog enabled, takes one hw-pmu counter.
[    0.339970]  #3 Ok.
[    0.339974] smpboot cpu 3: start_ip = 97000
[    0.431058] NMI watchdog enabled, takes one hw-pmu counter.
[    0.432892] Brought up 4 CPUs
[    0.432897] Total of 4 processors activated (17023.39 BogoMIPS).
[    0.435127] devtmpfs: initialized
[    0.436139] PM: Registering ACPI NVS region at 6f470000 (528384 bytes)
[    0.436169] PM: Registering ACPI NVS region at 6f76f000 (196608 bytes)
[    0.436326] print_constraints: dummy: 
[    0.436358] Time: 16:11:19  Date: 08/29/11
[    0.436412] NET: Registered protocol family 16
[    0.436602] ACPI: bus type pci registered
[    0.436682] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.436685] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    0.501131] PCI: Using configuration type 1 for base access
[    0.502059] bio: create slab <bio-0> at 0
[    0.504909] ACPI: EC: Look up EC in DSDT
[    0.521923] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.523045] ACPI: SSDT 000000006f71ac18 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523728] ACPI: Dynamic OEM Table Load:
[    0.523731] ACPI: SSDT           (null) 003AE (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.523990] ACPI: SSDT 000000006f718018 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.524639] ACPI: Dynamic OEM Table Load:
[    0.524642] ACPI: SSDT           (null) 008FB (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.530287] ACPI: SSDT 000000006f719a98 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.531042] ACPI: Dynamic OEM Table Load:
[    0.531045] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.535043] ACPI: SSDT 000000006f717d98 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.535744] ACPI: Dynamic OEM Table Load:
[    0.535747] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.539173] ACPI: Interpreter enabled
[    0.539176] ACPI: (supports S0 S3 S4 S5)
[    0.539204] ACPI: Using IOAPIC for interrupt routing
[    0.545359] ACPI: EC: GPE = 0x16, I/O: command/status = 0x66, data = 0x62
[    0.545605] ACPI: No dock devices found.
[    0.545607] HEST: Table not found.
[    0.545610] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.546201] \_SB_.PCI0:_OSC invalid UUID
[    0.546203] _OSC request data:1 8 1f 
[    0.546207] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.547164] pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7]
[    0.547167] pci_root PNP0A08:00: host bridge window [io  0x0d00-0xffff]
[    0.547169] pci_root PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff]
[    0.547172] pci_root PNP0A08:00: host bridge window [mem 0x000d4000-0x000d7fff]
[    0.547174] pci_root PNP0A08:00: host bridge window [mem 0x000d8000-0x000dbfff]
[    0.547176] pci_root PNP0A08:00: host bridge window [mem 0x000dc000-0x000dffff]
[    0.547179] pci_root PNP0A08:00: host bridge window [mem 0x7c000000-0xfebfffff]
[    0.547193] pci 0000:00:00.0: [8086:0044] type 0 class 0x000600
[    0.547213] DMAR: BIOS has allocated no shadow GTT; disabling IOMMU for graphics
[    0.547234] pci 0000:00:02.0: [8086:0046] type 0 class 0x000300
[    0.547246] pci 0000:00:02.0: reg 10: [mem 0xf0000000-0xf03fffff 64bit]
[    0.547253] pci 0000:00:02.0: reg 18: [mem 0xd0000000-0xdfffffff 64bit pref]
[    0.547259] pci 0000:00:02.0: reg 20: [io  0x1800-0x1807]
[    0.547325] pci 0000:00:16.0: [8086:3b64] type 0 class 0x000780
[    0.547355] pci 0000:00:16.0: reg 10: [mem 0xf0805800-0xf080580f 64bit]
[    0.547435] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.547440] pci 0000:00:16.0: PME# disabled
[    0.547484] pci 0000:00:1a.0: [8086:3b3c] type 0 class 0x000c03
[    0.547511] pci 0000:00:1a.0: reg 10: [mem 0xf0806000-0xf08063ff]
[    0.547602] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.547607] pci 0000:00:1a.0: PME# disabled
[    0.547639] pci 0000:00:1b.0: [8086:3b56] type 0 class 0x000403
[    0.547661] pci 0000:00:1b.0: reg 10: [mem 0xf0600000-0xf0603fff 64bit]
[    0.547741] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.547746] pci 0000:00:1b.0: PME# disabled
[    0.547774] pci 0000:00:1c.0: [8086:3b42] type 1 class 0x000604
[    0.547859] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.547864] pci 0000:00:1c.0: PME# disabled
[    0.547900] pci 0000:00:1c.5: [8086:3b4c] type 1 class 0x000604
[    0.547983] pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
[    0.547988] pci 0000:00:1c.5: PME# disabled
[    0.548026] pci 0000:00:1d.0: [8086:3b34] type 0 class 0x000c03
[    0.548052] pci 0000:00:1d.0: reg 10: [mem 0xf0806400-0xf08067ff]
[    0.548144] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.548148] pci 0000:00:1d.0: PME# disabled
[    0.548175] pci 0000:00:1e.0: [8086:2448] type 1 class 0x000604
[    0.548255] pci 0000:00:1f.0: [8086:3b09] type 0 class 0x000601
[    0.548379] pci 0000:00:1f.2: [8086:3b29] type 0 class 0x000106
[    0.548407] pci 0000:00:1f.2: reg 10: [io  0x1818-0x181f]
[    0.548418] pci 0000:00:1f.2: reg 14: [io  0x180c-0x180f]
[    0.548430] pci 0000:00:1f.2: reg 18: [io  0x1810-0x1817]
[    0.548442] pci 0000:00:1f.2: reg 1c: [io  0x1808-0x180b]
[    0.548453] pci 0000:00:1f.2: reg 20: [io  0x1820-0x183f]
[    0.548465] pci 0000:00:1f.2: reg 24: [mem 0xf0805000-0xf08057ff]
[    0.548514] pci 0000:00:1f.2: PME# supported from D3hot
[    0.548519] pci 0000:00:1f.2: PME# disabled
[    0.548543] pci 0000:00:1f.3: [8086:3b30] type 0 class 0x000c05
[    0.548564] pci 0000:00:1f.3: reg 10: [mem 0xf0806800-0xf08068ff 64bit]
[    0.548595] pci 0000:00:1f.3: reg 20: [io  0x1840-0x185f]
[    0.548644] pci 0000:00:1f.6: [8086:3b32] type 0 class 0x001180
[    0.548673] pci 0000:00:1f.6: reg 10: [mem 0xf0604000-0xf0604fff 64bit]
[    0.548887] pci 0000:02:00.0: [14e4:1690] type 0 class 0x000200
[    0.548930] pci 0000:02:00.0: reg 10: [mem 0xf0400000-0xf040ffff 64bit]
[    0.549105] pci 0000:02:00.0: PME# supported from D3hot D3cold
[    0.549113] pci 0000:02:00.0: PME# disabled
[    0.550892] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.550902] pci 0000:00:1c.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.550911] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.550926] pci 0000:00:1c.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551079] pci 0000:09:00.0: [8086:422c] type 0 class 0x000280
[    0.551138] pci 0000:09:00.0: reg 10: [mem 0xf0500000-0xf0501fff 64bit]
[    0.551335] pci 0000:09:00.0: PME# supported from D0 D3hot D3cold
[    0.551362] pci 0000:09:00.0: PME# disabled
[    0.551496] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.551501] pci 0000:00:1c.5:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551507] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.551515] pci 0000:00:1c.5:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551591] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c] (subtractive decode)
[    0.551597] pci 0000:00:1e.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.551602] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff] (disabled)
[    0.551610] pci 0000:00:1e.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.551613] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
[    0.551615] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff] (subtractive decode)
[    0.551618] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[    0.551620] pci 0000:00:1e.0:   bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode)
[    0.551623] pci 0000:00:1e.0:   bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode)
[    0.551625] pci 0000:00:1e.0:   bridge window [mem 0x000dc000-0x000dffff] (subtractive decode)
[    0.551628] pci 0000:00:1e.0:   bridge window [mem 0x7c000000-0xfebfffff] (subtractive decode)
[    0.551652] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.551969] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.552136] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.552230] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP06._PRT]
[    0.552365] \_SB_.PCI0:_OSC invalid UUID
[    0.552367] _OSC request data:1 1f 1f 
[    0.552371]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.552426] \_SB_.PCI0:_OSC invalid UUID
[    0.552428] _OSC request data:1 0 1d 
[    0.552431]  pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d
[    0.552433] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558205] ACPI: PCI Root Bridge [CPBG] (domain 0000 [bus ff])
[    0.558250] pci 0000:ff:00.0: [8086:2c62] type 0 class 0x000600
[    0.558271] pci 0000:ff:00.1: [8086:2d01] type 0 class 0x000600
[    0.558294] pci 0000:ff:02.0: [8086:2d10] type 0 class 0x000600
[    0.558314] pci 0000:ff:02.1: [8086:2d11] type 0 class 0x000600
[    0.558332] pci 0000:ff:02.2: [8086:2d12] type 0 class 0x000600
[    0.558351] pci 0000:ff:02.3: [8086:2d13] type 0 class 0x000600
[    0.558387]  pci0000:ff: Requesting ACPI _OSC control (0x1d)
[    0.558390]  pci0000:ff: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[    0.558392] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.558684] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 *5 6 7 10 12 14 15)
[    0.558753] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 *7 11 12 14 15)
[    0.558826] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.558894] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.558964] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.559031] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    0.559098] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.559166] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.559254] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.559265] vgaarb: loaded
[    0.559267] vgaarb: bridge control possible 0000:00:02.0
[    0.559448] SCSI subsystem initialized
[    0.559506] libata version 3.00 loaded.
[    0.559553] usbcore: registered new interface driver usbfs
[    0.559567] usbcore: registered new interface driver hub
[    0.559595] usbcore: registered new device driver usb
[    0.559665] PCI: Using ACPI for IRQ routing
[    0.569722] PCI: pci_cache_line_size set to 64 bytes
[    0.569912] reserve RAM buffer: 000000000009c400 - 000000000009ffff 
[    0.569914] reserve RAM buffer: 000000006f27c000 - 000000006fffffff 
[    0.569921] reserve RAM buffer: 000000006f3ee000 - 000000006fffffff 
[    0.569926] reserve RAM buffer: 000000006f46f000 - 000000006fffffff 
[    0.569932] reserve RAM buffer: 000000006f717000 - 000000006fffffff 
[    0.569936] reserve RAM buffer: 000000006f76f000 - 000000006fffffff 
[    0.569940] reserve RAM buffer: 000000006f7ce000 - 000000006fffffff 
[    0.569943] reserve RAM buffer: 000000006f7df000 - 000000006fffffff 
[    0.569945] reserve RAM buffer: 000000006f800000 - 000000006fffffff 
[    0.570046] NetLabel: Initializing
[    0.570048] NetLabel:  domain hash size = 128
[    0.570049] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.570063] NetLabel:  unlabeled traffic allowed by default
[    0.570079] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.570085] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.572111] Switching to clocksource hpet
[    0.572827] Switched to NOHz mode on CPU #0
[    0.572939] Switched to NOHz mode on CPU #2
[    0.572956] Switched to NOHz mode on CPU #1
[    0.572974] Switched to NOHz mode on CPU #3
[    0.573634] AppArmor: AppArmor Filesystem Enabled
[    0.573655] pnp: PnP ACPI init
[    0.573669] ACPI: bus type pnp registered
[    0.574216] pnp 00:00: [bus 00-fe]
[    0.574220] pnp 00:00: [io  0x0000-0x0cf7 window]
[    0.574222] pnp 00:00: [io  0x0cf8-0x0cff]
[    0.574224] pnp 00:00: [io  0x0d00-0xffff window]
[    0.574226] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    0.574229] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
[    0.574231] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
[    0.574233] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
[    0.574235] pnp 00:00: [mem 0x000cc000-0x000cffff window]
[    0.574237] pnp 00:00: [mem 0x000d0000-0x000d3fff window]
[    0.574239] pnp 00:00: [mem 0x000d4000-0x000d7fff window]
[    0.574241] pnp 00:00: [mem 0x000d8000-0x000dbfff window]
[    0.574243] pnp 00:00: [mem 0x000dc000-0x000dffff window]
[    0.574246] pnp 00:00: [mem 0x000e0000-0x000e3fff window]
[    0.574249] pnp 00:00: [mem 0x000e4000-0x000e7fff window]
[    0.574251] pnp 00:00: [mem 0x000e8000-0x000ebfff window]
[    0.574253] pnp 00:00: [mem 0x000ec000-0x000effff window]
[    0.574255] pnp 00:00: [mem 0x000f0000-0x000fffff window]
[    0.574257] pnp 00:00: [mem 0x7c000000-0xfebfffff window]
[    0.574259] pnp 00:00: [mem 0xfed40000-0xfed44fff window]
[    0.574322] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.574393] pnp 00:01: [io  0x0000-0x001f]
[    0.574395] pnp 00:01: [io  0x0081-0x0091]
[    0.574397] pnp 00:01: [io  0x0093-0x009f]
[    0.574399] pnp 00:01: [io  0x00c0-0x00df]
[    0.574401] pnp 00:01: [dma 4]
[    0.574431] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.574442] pnp 00:02: [mem 0xff000000-0xffffffff]
[    0.574471] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
[    0.574578] pnp 00:03: [irq 0 disabled]
[    0.574589] pnp 00:03: [irq 8]
[    0.574591] pnp 00:03: [mem 0xfed00000-0xfed003ff]
[    0.574621] pnp 00:03: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.574635] pnp 00:04: [io  0x00f0]
[    0.574641] pnp 00:04: [irq 13]
[    0.574669] pnp 00:04: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.574683] pnp 00:05: [io  0x002e-0x002f]
[    0.574685] pnp 00:05: [io  0x004e-0x004f]
[    0.574687] pnp 00:05: [io  0x0061]
[    0.574689] pnp 00:05: [io  0x0063]
[    0.574691] pnp 00:05: [io  0x0065]
[    0.574692] pnp 00:05: [io  0x0067]
[    0.574694] pnp 00:05: [io  0x0070]
[    0.574696] pnp 00:05: [io  0x0080]
[    0.574697] pnp 00:05: [io  0x0092]
[    0.574699] pnp 00:05: [io  0x00b2-0x00b3]
[    0.574701] pnp 00:05: [io  0x0680-0x069f]
[    0.574703] pnp 00:05: [io  0x0500-0x050f]
[    0.574706] pnp 00:05: [io  0xffff]
[    0.574707] pnp 00:05: [io  0xffff]
[    0.574709] pnp 00:05: [io  0x0400-0x047f]
[    0.574711] pnp 00:05: [io  0x1180-0x11ff]
[    0.574713] pnp 00:05: [io  0x164e-0x164f]
[    0.574715] pnp 00:05: [io  0xfe00]
[    0.574770] system 00:05: [io  0x0680-0x069f] has been reserved
[    0.574773] system 00:05: [io  0x0500-0x050f] has been reserved
[    0.574776] system 00:05: [io  0xffff] has been reserved
[    0.574778] system 00:05: [io  0xffff] has been reserved
[    0.574782] system 00:05: [io  0x0400-0x047f] has been reserved
[    0.574784] system 00:05: [io  0x1180-0x11ff] has been reserved
[    0.574787] system 00:05: [io  0x164e-0x164f] has been reserved
[    0.574790] system 00:05: [io  0xfe00] has been reserved
[    0.574793] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574838] pnp 00:06: [io  0x06a0-0x06af]
[    0.574840] pnp 00:06: [io  0x06b0-0x06ff]
[    0.574887] system 00:06: [io  0x06a0-0x06af] has been reserved
[    0.574890] system 00:06: [io  0x06b0-0x06ff] has been reserved
[    0.574892] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.574938] pnp 00:07: [io  0x0070-0x0077]
[    0.574971] pnp 00:07: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.574989] pnp 00:08: [irq 12]
[    0.575021] pnp 00:08: Plug and Play ACPI device, IDs SYN1b20 SYN1b00 SYN0002 PNP0f13 (active)
[    0.575033] pnp 00:09: [io  0x0060]
[    0.575035] pnp 00:09: [io  0x0064]
[    0.575040] pnp 00:09: [irq 1]
[    0.575070] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.575510] pnp 00:0a: [mem 0xfed1c000-0xfed1ffff]
[    0.575512] pnp 00:0a: [mem 0xfed10000-0xfed13fff]
[    0.575514] pnp 00:0a: [mem 0xfed18000-0xfed18fff]
[    0.575516] pnp 00:0a: [mem 0xfed19000-0xfed19fff]
[    0.575518] pnp 00:0a: [mem 0xe0000000-0xefffffff]
[    0.575520] pnp 00:0a: [mem 0x00000000-0xffffffffffffffff disabled]
[    0.575523] pnp 00:0a: [mem 0xfeaff000-0xfeafffff]
[    0.575524] pnp 00:0a: [mem 0xfed20000-0xfed3ffff]
[    0.575526] pnp 00:0a: [mem 0xfed90000-0xfed8ffff disabled]
[    0.575529] pnp 00:0a: [mem 0xfed40000-0xfed44fff]
[    0.575530] pnp 00:0a: [mem 0xfed45000-0xfed8ffff]
[    0.575532] pnp 00:0a: [mem 0xff000000-0xffffffff]
[    0.575534] pnp 00:0a: [mem 0xfee00000-0xfeefffff]
[    0.575603] system 00:0a: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.575606] system 00:0a: [mem 0xfed10000-0xfed13fff] has been reserved
[    0.575609] system 00:0a: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.575612] system 00:0a: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.575615] system 00:0a: [mem 0xe0000000-0xefffffff] has been reserved
[    0.575618] system 00:0a: [mem 0xfeaff000-0xfeafffff] has been reserved
[    0.575621] system 00:0a: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.575624] system 00:0a: [mem 0xfed40000-0xfed44fff] has been reserved
[    0.575627] system 00:0a: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.575630] system 00:0a: [mem 0xff000000-0xffffffff] has been reserved
[    0.575633] system 00:0a: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.575636] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.575809] pnp 00:0b: [bus ff]
[    0.575856] pnp 00:0b: Plug and Play ACPI device, IDs PNP0a03 (active)
[    0.575869] pnp: PnP ACPI: found 12 devices
[    0.575870] ACPI: ACPI bus type pnp unregistered
[    0.581990] PCI: max bus depth: 1 pci_try_num: 2
[    0.582029] pci 0000:00:1c.5: BAR 15: assigned [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582033] pci 0000:00:1c.5: BAR 13: assigned [io  0x2000-0x2fff]
[    0.582036] pci 0000:00:1c.0: BAR 15: assigned [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582040] pci 0000:00:1c.0: BAR 13: assigned [io  0x3000-0x3fff]
[    0.582042] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.582046] pci 0000:00:1c.0:   bridge window [io  0x3000-0x3fff]
[    0.582052] pci 0000:00:1c.0:   bridge window [mem 0xf0400000-0xf04fffff]
[    0.582058] pci 0000:00:1c.0:   bridge window [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582066] pci 0000:00:1c.5: PCI bridge to [bus 09-09]
[    0.582069] pci 0000:00:1c.5:   bridge window [io  0x2000-0x2fff]
[    0.582076] pci 0000:00:1c.5:   bridge window [mem 0xf0500000-0xf05fffff]
[    0.582081] pci 0000:00:1c.5:   bridge window [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582090] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c]
[    0.582091] pci 0000:00:1e.0:   bridge window [io  disabled]
[    0.582098] pci 0000:00:1e.0:   bridge window [mem disabled]
[    0.582102] pci 0000:00:1e.0:   bridge window [mem pref disabled]
[    0.582125] pci 0000:00:1c.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.582131] pci 0000:00:1c.0: setting latency timer to 64
[    0.582143] pci 0000:00:1c.5: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    0.582148] pci 0000:00:1c.5: setting latency timer to 64
[    0.582157] pci 0000:00:1e.0: setting latency timer to 64
[    0.582162] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.582164] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.582166] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582168] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582179] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582181] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582183] pci_bus 0000:00: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582186] pci_bus 0000:02: resource 0 [io  0x3000-0x3fff]
[    0.582188] pci_bus 0000:02: resource 1 [mem 0xf0400000-0xf04fffff]
[    0.582190] pci_bus 0000:02: resource 2 [mem 0x7c200000-0x7c3fffff 64bit pref]
[    0.582192] pci_bus 0000:09: resource 0 [io  0x2000-0x2fff]
[    0.582194] pci_bus 0000:09: resource 1 [mem 0xf0500000-0xf05fffff]
[    0.582197] pci_bus 0000:09: resource 2 [mem 0x7c000000-0x7c1fffff 64bit pref]
[    0.582199] pci_bus 0000:0c: resource 4 [io  0x0000-0x0cf7]
[    0.582201] pci_bus 0000:0c: resource 5 [io  0x0d00-0xffff]
[    0.582203] pci_bus 0000:0c: resource 6 [mem 0x000a0000-0x000bffff]
[    0.582206] pci_bus 0000:0c: resource 7 [mem 0x000d4000-0x000d7fff]
[    0.582208] pci_bus 0000:0c: resource 8 [mem 0x000d8000-0x000dbfff]
[    0.582210] pci_bus 0000:0c: resource 9 [mem 0x000dc000-0x000dffff]
[    0.582212] pci_bus 0000:0c: resource 10 [mem 0x7c000000-0xfebfffff]
[    0.582309] NET: Registered protocol family 2
[    0.582435] IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.583111] TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
[    0.584672] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.585024] TCP: Hash tables configured (established 262144 bind 65536)
[    0.585026] TCP reno registered
[    0.585036] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585057] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.585233] NET: Registered protocol family 1
[    0.585250] pci 0000:00:02.0: Boot video device
[    0.585393] PCI: CLS 64 bytes, default 64
[    0.585444] Unpacking initramfs...
[    1.021678] Freeing initrd memory: 21152k freed
[    1.026475] Simple Boot Flag at 0x36 set to 0x1
[    1.027164] audit: initializing netlink socket (disabled)
[    1.027179] type=2000 audit(1314634279.859:1): initialized
[    1.048261] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.048632] VFS: Disk quotas dquot_6.5.2
[    1.048673] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.048897] msgmni has been set to 3479
[    1.049176] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    1.049211] io scheduler noop registered
[    1.049213] io scheduler deadline registered
[    1.049242] io scheduler cfq registered (default)
[    1.049564] vesafb: mode is 1024x768x16, linelength=2048, pages=84
[    1.049566] vesafb: scrolling: redraw
[    1.049569] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    1.050408] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90010980000, using 3072k, total 131008k
[    1.114201] Console: switching to colour frame buffer device 128x48
[    1.177848] fb0: VESA VGA frame buffer device
[    1.177859] intel_idle: MWAIT substates: 0x1120
[    1.177861] intel_idle: v0.4 model 0x25
[    1.177862] intel_idle: lapic_timer_reliable_states 0xffffffff
[    1.177898] ERST: Table is not found!
[    1.177968] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    1.299341] Non-volatile memory driver v1.3
[    1.299343] Linux agpgart interface v0.103
[    1.299424] agpgart-intel 0000:00:00.0: Intel HD Graphics Chipset
[    1.299577] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[    1.300615] agpgart-intel 0000:00:00.0: detected 131072K stolen memory
[    1.300769] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
[    1.300936] ahci 0000:00:1f.2: version 3.0
[    1.300962] ahci 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    1.301013] ahci 0000:00:1f.2: irq 40 for MSI/MSI-X
[    1.301045] ahci: SSS flag set, parallel bus scan disabled
[    1.301083] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 3 Gbps 0x3 impl SATA mode
[    1.301087] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck stag pm led clo pio slum part ems apst 
[    1.301093] ahci 0000:00:1f.2: setting latency timer to 64
[    1.303296] scsi0 : ahci
[    1.303409] scsi1 : ahci
[    1.303483] scsi2 : ahci
[    1.303554] scsi3 : ahci
[    1.303606] ata1: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805100 irq 40
[    1.303609] ata2: SATA max UDMA/133 abar m2048@0xf0805000 port 0xf0805180 irq 40
[    1.303611] ata3: DUMMY
[    1.303612] ata4: DUMMY
[    1.303712] Fixed MDIO Bus: probed
[    1.303717] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.303736] ehci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.303754] ehci_hcd 0000:00:1a.0: setting latency timer to 64
[    1.303758] ehci_hcd 0000:00:1a.0: EHCI Host Controller
[    1.303784] ehci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    1.303819] ehci_hcd 0000:00:1a.0: debug port 2
[    1.307725] ehci_hcd 0000:00:1a.0: cache line size of 64 is not supported
[    1.307742] ehci_hcd 0000:00:1a.0: irq 16, io mem 0xf0806000
[    1.316885] ehci_hcd 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    1.316932] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.316938] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.316943] usb usb1: Product: EHCI Host Controller
[    1.316948] usb usb1: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.316952] usb usb1: SerialNumber: 0000:00:1a.0
[    1.317064] hub 1-0:1.0: USB hub found
[    1.317068] hub 1-0:1.0: 3 ports detected
[    1.317149] ehci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    1.317162] ehci_hcd 0000:00:1d.0: setting latency timer to 64
[    1.317166] ehci_hcd 0000:00:1d.0: EHCI Host Controller
[    1.317174] ehci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    1.317203] ehci_hcd 0000:00:1d.0: debug port 2
[    1.321193] ehci_hcd 0000:00:1d.0: cache line size of 64 is not supported
[    1.321209] ehci_hcd 0000:00:1d.0: irq 23, io mem 0xf0806400
[    1.330875] ehci_hcd 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    1.330913] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.330918] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.330923] usb usb2: Product: EHCI Host Controller
[    1.330928] usb usb2: Manufacturer: Linux 3.0.0-0.7-desktop+ ehci_hcd
[    1.330932] usb usb2: SerialNumber: 0000:00:1d.0
[    1.331036] hub 2-0:1.0: USB hub found
[    1.331040] hub 2-0:1.0: 3 ports detected
[    1.331112] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.331123] uhci_hcd: USB Universal Host Controller Interface driver
[    1.331157] Initializing USB Mass Storage driver...
[    1.331178] usbcore: registered new interface driver usb-storage
[    1.331180] USB Mass Storage support registered.
[    1.331189] usbcore: registered new interface driver ums-alauda
[    1.331197] usbcore: registered new interface driver ums-cypress
[    1.331206] usbcore: registered new interface driver ums-datafab
[    1.331215] usbcore: registered new interface driver ums-freecom
[    1.331224] usbcore: registered new interface driver ums-isd200
[    1.331232] usbcore: registered new interface driver ums-jumpshot
[    1.331240] usbcore: registered new interface driver ums-karma
[    1.331250] usbcore: registered new interface driver ums-onetouch
[    1.331258] usbcore: registered new interface driver ums-sddr09
[    1.331267] usbcore: registered new interface driver ums-sddr55
[    1.331275] usbcore: registered new interface driver ums-usbat
[    1.331326] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    1.337272] i8042: Detected active multiplexing controller, rev 1.1
[    1.340968] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.340998] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    1.341017] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    1.341037] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    1.341056] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    1.341136] mousedev: PS/2 mouse device common for all mice
[    1.341260] rtc_cmos 00:07: RTC can wake from S4
[    1.341373] rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0
[    1.341404] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    1.341514] cpuidle: using governor ladder
[    1.341668] cpuidle: using governor menu
[    1.341670] EFI Variables Facility v0.08 2004-May-17
[    1.341911] usbcore: registered new interface driver usbhid
[    1.341912] usbhid: USB HID core driver
[    1.342135] TCP cubic registered
[    1.342315] NET: Registered protocol family 10
[    1.342943] lib80211: common routines for IEEE802.11 drivers
[    1.342946] lib80211_crypt: registered algorithm 'NULL'
[    1.342948] Registering the dns_resolver key type
[    1.342964] libceph: loaded (mon/osd proto 15/24, osdmap 5/6 5/6)
[    1.343052] PM: Checking hibernation image partition /dev/disk/by-id/ata-Hitachi_HTS545025B9A300_100305PBN206ASC35GYL-part1
[    1.362464] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.609820] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.611083] ata1.00: ATA-8: Hitachi HTS545025B9A300, PB2OC60F, max UDMA/133
[    1.611088] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.612661] ata1.00: configured for UDMA/133
[    1.613025] scsi 0:0:0:0: Direct-Access     ATA      Hitachi HTS54502 PB2O PQ: 0 ANSI: 5
[    1.613371] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    1.613564] sd 0:0:0:0: [sda] Write Protect is off
[    1.613571] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.613645] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.618820] usb 1-1: new high speed USB device number 2 using ehci_hcd
[    1.646308]  sda: sda1 sda2 sda3
[    1.647037] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.733439] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[    1.733446] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.733774] hub 1-1:1.0: USB hub found
[    1.734007] hub 1-1:1.0: 6 ports detected
[    1.836710] usb 2-1: new high speed USB device number 2 using ehci_hcd
[    1.917691] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    1.918092] ata2.00: ATAPI: Optiarc DVD RW AD-7585H, KX04, max UDMA/100
[    1.920844] ata2.00: configured for UDMA/100
[    1.924098] scsi 1:0:0:0: CD-ROM            Optiarc  DVD RW AD-7585H  KX04 PQ: 0 ANSI: 5
[    1.951108] usb 2-1: New USB device found, idVendor=8087, idProduct=0020
[    1.951116] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.951396] hub 2-1:1.0: USB hub found
[    1.951593] hub 2-1:1.0: 8 ports detected
[    2.015911] usb 1-1.1: new high speed USB device number 3 using ehci_hcd
[    2.026624] Refined TSC clocksource calibration: 2127.999 MHz.
[    2.026633] Switching to clocksource tsc
[    2.133130] usb 1-1.1: New USB device found, idVendor=04f2, idProduct=b1d8
[    2.133137] usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[    2.133143] usb 1-1.1: Product: 1.3M WebCam
[    2.133147] usb 1-1.1: Manufacturer: Sonix Technology Co., Ltd.
[    2.210776] usb 1-1.3: new high speed USB device number 4 using ehci_hcd
[    2.230675] Synaptics Touchpad, model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd04733/0xa44000/0xa0000
[    2.281343] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio2/input/input1
[    2.286227] PM: Hibernation image not present or could not be loaded.
[    2.286295] registered taskstats version 1
[    2.286836]   Magic number: 7:505:187
[    2.287014] rtc_cmos 00:07: setting system clock to 2011-08-29 16:11:21 UTC (1314634281)
[    2.291271] Freeing unused kernel memory: 936k freed
[    2.291536] Write protecting the kernel read-only data: 10240k
[    2.297540] usb 1-1.3: New USB device found, idVendor=12d1, idProduct=140c
[    2.297547] usb 1-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[    2.297553] usb 1-1.3: Product: HUAWEI Mobile
[    2.297557] usb 1-1.3: Manufacturer: HUAWEI Technology
[    2.298524] Freeing unused kernel memory: 872k freed
[    2.310556] Freeing unused kernel memory: 1708k freed
[    2.363000] thermal LNXTHERM:00: registered as thermal_zone0
[    2.363006] ACPI: Thermal Zone [THRM] (39 C)
[    2.367748] ACPI: acpi_idle yielding to intel_idle
[    2.373635] usb 1-1.4: new high speed USB device number 5 using ehci_hcd
[    2.380961] udev[90]: starting version 166
[    2.400806] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
[    2.400957] ACPI: Lid Switch [LID]
[    2.401023] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
[    2.401067] ACPI: Power Button [PWRB]
[    2.401122] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
[    2.401162] ACPI: Sleep Button [SLPB]
[    2.401248] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input5
[    2.401291] ACPI: Power Button [PWRF]
[    2.431733] [drm] Initialized drm 1.1.0 20060810
[    2.459323] usb 1-1.4: New USB device found, idVendor=1c7a, idProduct=0801
[    2.459327] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.459331] usb 1-1.4: Product: FingerPrinter Reader
[    2.459333] usb 1-1.4: Manufacturer: Generic
[    2.459335] usb 1-1.4: SerialNumber: 00000000000006
[    2.459653] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    2.459665] i915 0000:00:02.0: setting latency timer to 64
[    2.625680] i915 0000:00:02.0: irq 41 for MSI/MSI-X
[    2.625691] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    2.625695] [drm] Driver supports precise vblank timestamp query.
[    2.625766] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.904268] checking generic (d0000000 7ff0000) vs hw (d0000000 10000000)
[    2.904272] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
[    2.904291] Console: switching to colour dummy device 80x25
[    2.904911] fbcon: inteldrmfb (fb0) is primary device
[    3.062972] Console: switching to colour frame buffer device 170x48
[    3.065834] fb0: inteldrmfb frame buffer device
[    3.065836] drm: registered panic notifier
[    3.076332] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076471] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.076642] acpi device:04: registered as cooling_device4
[    3.076979] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input6
[    3.077028] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    3.077070] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.165172] PM: Marking nosave pages: 000000000009c000 - 0000000000100000
[    3.165183] PM: Marking nosave pages: 000000006f27c000 - 000000006f282000
[    3.165188] PM: Marking nosave pages: 000000006f3ee000 - 000000006f40f000
[    3.165193] PM: Marking nosave pages: 000000006f46f000 - 000000006f70f000
[    3.165218] PM: Marking nosave pages: 000000006f717000 - 000000006f71f000
[    3.165222] PM: Marking nosave pages: 000000006f76f000 - 000000006f79f000
[    3.165228] PM: Marking nosave pages: 000000006f7ce000 - 000000006f7dc000
[    3.165232] PM: Marking nosave pages: 000000006f7df000 - 000000006f7ff000
[    3.165237] PM: Basic memory bitmaps created
[    3.173517] PM: Basic memory bitmaps freed
[    3.173522] video LNXVIDEO:00: Restoring backlight state
[    3.173556] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[    3.237134] PM: Starting manual resume from disk
[    3.237138] PM: Hibernation image partition 8:1 present
[    3.237139] PM: Looking for hibernation image.
[    3.237395] PM: Image not found (code -22)
[    3.237401] PM: Hibernation image not present or could not be loaded.
[    3.388592] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[    3.538397] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr
[    7.485249] udev[396]: starting version 166
[    7.945311] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.945325] ACPI: Battery Slot [BAT1] (battery present)
[    7.995510] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    7.995770] ACPI: AC Adapter [ACAD] (on-line)
[    8.468740] i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.673497] input: PC Speaker as /devices/platform/pcspkr/input/input7
[    8.782379] iTCO_vendor_support: vendor-support=0
[    8.815035] wmi: Mapper loaded
[    8.846429] cfg80211: Calling CRDA to update world regulatory domain
[    8.924291] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.06
[    8.924384] iTCO_wdt: Found a HM55 TCO device (Version=2, TCOBASE=0x0460)
[    8.924459] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[    8.982243] intel ips 0000:00:1f.6: CPU TDP doesn't match expected value (found 25, expected 29)
[    8.982273] intel ips 0000:00:1f.6: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    8.982554] intel ips 0000:00:1f.6: IPS driver initialized, MCP temp limit 90
[    8.997225] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    8.997310] scsi 1:0:0:0: Attached scsi generic sg1 type 5
[    9.140625] usbcore: registered new interface driver usbserial
[    9.140640] USB Serial support registered for generic
[    9.140728] usbcore: registered new interface driver usbserial_generic
[    9.140731] usbserial: USB Serial Driver core
[    9.235437] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    9.235445] cdrom: Uniform CD-ROM driver Revision: 3.20
[    9.235679] sr 1:0:0:0: Attached scsi CD-ROM sr0
[    9.273248] tg3.c:v3.119 (May 18, 2011)
[    9.273303] tg3 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    9.273319] tg3 0000:02:00.0: setting latency timer to 64
[    9.335627] tg3 mdio bus: probed
[    9.384181] tg3 0000:02:00.0: eth0: Tigon3 [partno(BCM957760) rev 57780001] (PCI Express) MAC address c8:0a:a9:55:1b:22
[    9.384185] tg3 0000:02:00.0: eth0: attached PHY driver [Broadcom BCM57780] (mii_bus:phy_addr=200:01)
[    9.384189] tg3 0000:02:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    9.384191] tg3 0000:02:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[    9.601697] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[    9.601833] HDA Intel 0000:00:1b.0: irq 42 for MSI/MSI-X
[    9.601900] HDA Intel 0000:00:1b.0: setting latency timer to 64
[    9.865339] Linux video capture interface: v2.00
[   10.091904] acer_wmi: Acer Laptop ACPI-WMI Extras
[   10.092579] acer_wmi: Function bitmap for Communication Button: 0x841
[   10.092596] acer_wmi: Brightness must be controlled by generic video driver
[   10.092856] input: Acer WMI hotkeys as /devices/virtual/input/input8
[   10.115244] cfg80211: World regulatory domain updated:
[   10.115247] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.115250] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115252] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115255] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.115257] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.115259] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.150648] uvcvideo: Found UVC 1.00 device 1.3M WebCam (04f2:b1d8)
[   10.160463] input: 1.3M WebCam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input9
[   10.160672] usbcore: registered new interface driver uvcvideo
[   10.160677] USB Video Class driver (v1.1.0)
[   10.735532] USB Serial support registered for GSM modem (1-port)
[   10.735656] option 1-1.3:1.0: GSM modem (1-port) converter detected
[   10.735899] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[   10.735918] option 1-1.3:1.1: GSM modem (1-port) converter detected
[   10.736083] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[   10.736107] option 1-1.3:1.2: GSM modem (1-port) converter detected
[   10.736211] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[   10.736233] option 1-1.3:1.3: GSM modem (1-port) converter detected
[   10.736326] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[   10.736364] usbcore: registered new interface driver option
[   10.736368] option: v0.7.2:USB Driver for GSM modems
[   10.817709] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input10
[   10.915929] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
[   10.915936] iwlagn: Copyright(c) 2003-2011 Intel Corporation
[   10.916069] iwlagn 0000:09:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[   10.916125] iwlagn 0000:09:00.0: setting latency timer to 64
[   10.916217] iwlagn 0000:09:00.0: Detected Intel(R) Centrino(R) Advanced-N 6200 AGN, REV=0x74
[   10.932864] iwlagn 0000:09:00.0: device EEPROM VER=0x434, CALIB=0x6
[   10.932870] iwlagn 0000:09:00.0: Device SKU: 0Xb
[   10.932900] iwlagn 0000:09:00.0: Tunable channels: 13 802.11bg, 24 802.11a channels
[   10.933243] iwlagn 0000:09:00.0: irq 43 for MSI/MSI-X
[   11.003702] iwlagn 0000:09:00.0: loaded firmware version 9.193.4.1 build 19710
[   11.004064] Registered led device: phy0-led
[   11.063390] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   11.455858] Adding 2103292k swap on /dev/sda1.  Priority:-1 extents:1 across:2103292k 
[   11.990600] device-mapper: uevent: version 1.0.3
[   11.990749] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
[   12.373813] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: acl,user_xattr
[   14.402537] microcode: CPU0 sig=0x20652, pf=0x10, revision=0x9
[   14.406219] microcode: CPU1 sig=0x20652, pf=0x10, revision=0x9
[   14.407566] microcode: CPU2 sig=0x20652, pf=0x10, revision=0x9
[   14.408754] microcode: CPU3 sig=0x20652, pf=0x10, revision=0x9
[   14.409977] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   14.799378] microcode: CPU0 updated to revision 0xc, date = 2010-06-10
[   14.799899] microcode: CPU1 updated to revision 0xc, date = 2010-06-10
[   14.800382] microcode: CPU2 updated to revision 0xc, date = 2010-06-10
[   14.800925] microcode: CPU3 updated to revision 0xc, date = 2010-06-10
[   15.606341] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   15.719447] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   15.771477] ip_tables: (C) 2000-2006 Netfilter Core Team
[   17.007777] BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
[   19.412401] tg3 0000:02:00.0: irq 44 for MSI/MSI-X
[   20.171382] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   20.359932] tg3 0000:02:00.0: eth0: Link is down
[   20.517332] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   20.729577] NET: Registered protocol family 17
[   23.370597] tg3 0000:02:00.0: eth0: Link is up at 1000 Mbps, full duplex
[   23.370604] tg3 0000:02:00.0: eth0: Flow control is on for TX and on for RX
[   23.371015] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   23.942707] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   23.942935] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   30.536090] fuse init (API version 7.16)
[   32.431417] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12285 DF PROTO=TCP SPT=57519 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CCBFD0000000001030306) 
[   34.250958] eth0: no IPv6 routers present
[   42.699766] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr,commit=0
[   43.472545] [ACPI Debug]  String [0x1A] "TEST initrd table override"
[   44.375141] EXT4-fs (sda3): re-mounted. Opts: acl,user_xattr,commit=0
[   55.637057] SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=c8:0a:a9:55:1b:22:00:1d:72:9c:cd:ad:08:00 SRC=147.2.211.175 DST=147.2.211.58 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=34692 DF PROTO=TCP SPT=57527 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A015CE2A80000000001030306) 

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

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
  2011-08-29  8:31     ` Joey Lee
  (?)
@ 2011-08-29  8:39       ` Joey Lee
  -1 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:39 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > Details can be found in:
> > Documentation/acpi/initrd_table_override.txt
> > 
> > Additional dmesg output of a booted system with
> > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > tables overridden (with ### marked comments):
> > 
> > ### ACPI tables found glued to initrd
> > DSDT ACPI table found in initrd - size: 16234
> > FACP ACPI table found in initrd - size: 116
> > SSDT ACPI table found in initrd - size: 334
> > ### Re-printed e820 map via e820_update() with additionally created
> > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > ### initrd where copied to
> > modified physical RAM map:
> > ...
> >   ### New ACPI data section:
> >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> >   ### BIOS e820 provided ACPI data section:
> >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > ...
> > ### Total size of all ACPI tables glued to initrd
> > ### The address is initrd_start which gets updated to
> > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > 
> > Disabling lock debugging due to kernel taint
> > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > ...
> > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > ### loaded ACPI table matches and gets overridden:
> > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ACPI: Dynamic OEM Table Load:
> > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ...
> > 
> > If the initrd does not start with a valid ACPI table signature or the ACPI
> > table's checksum is wrong, there is no functional change.
> > 
> > Signed-off-by: Thomas Renninger <trenn@suse.de>
> > CC: linux-acpi@vger.kernel.org
> > CC: lenb@kernel.org
> > CC: linux-kernel@vger.kernel.org
> > CC: x86@kernel.org
> > ---
> 
> This patch works fine to me on Acer TravelMate 8572.
> I added a debug message to _BCM method in DSDT then override it in
> initrd by follow initrd_table_override.txt.
> 
> The attached is my dmesg log.
> 
> > +3) How does it work
> > +-------------------
> > +
> > +# Extract the machine's ACPI tables:
> > +acpidump >acpidump
> > +acpixtract -a acpidump
> > +# Disassemble, modify and recompile them:
> > +iasl -d *.dat
> > +# For example add this statement into a _PRT (PCI Routing Table) function
> > +# of the DSDT:
> > +Store("Hello World", debug)
> > +iasl -sa *.dsl
> > +# glue them together with the initrd. ACPI tables go first, original initrd
> > +# goes on top:
> > +cat TBL1.dat >>instrumented_initrd
> > +cat TBL2.dat >>instrumented_initrd
> > +cat TBL3.dat >>instrumented_initrd
> 
> I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> because iasl -sa default generate out *.aml file but not *.dat file, my
> iasl version is Intel 20110112-64 [Feb 27 2011].
> That will be more clear for the first time user to understand need cat
> *.aml file.
> 
> Tested-by: Lee, Chun-Yi <jlee@suse.com>
> 
> 
> Thank's
> Joey Lee
> 

I applied the 2 patches on linux v3.0 kernel but not on the latest
linux-acpi-2.6 branch.

I will also test it on linux-acpi-2.6.


Thank's
Joey Lee


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" 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] 28+ messages in thread

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-29  8:39       ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:39 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > Details can be found in:
> > Documentation/acpi/initrd_table_override.txt
> > 
> > Additional dmesg output of a booted system with
> > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > tables overridden (with ### marked comments):
> > 
> > ### ACPI tables found glued to initrd
> > DSDT ACPI table found in initrd - size: 16234
> > FACP ACPI table found in initrd - size: 116
> > SSDT ACPI table found in initrd - size: 334
> > ### Re-printed e820 map via e820_update() with additionally created
> > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > ### initrd where copied to
> > modified physical RAM map:
> > ...
> >   ### New ACPI data section:
> >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> >   ### BIOS e820 provided ACPI data section:
> >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > ...
> > ### Total size of all ACPI tables glued to initrd
> > ### The address is initrd_start which gets updated to
> > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > 
> > Disabling lock debugging due to kernel taint
> > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > ...
> > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > ### loaded ACPI table matches and gets overridden:
> > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ACPI: Dynamic OEM Table Load:
> > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ...
> > 
> > If the initrd does not start with a valid ACPI table signature or the ACPI
> > table's checksum is wrong, there is no functional change.
> > 
> > Signed-off-by: Thomas Renninger <trenn@suse.de>
> > CC: linux-acpi@vger.kernel.org
> > CC: lenb@kernel.org
> > CC: linux-kernel@vger.kernel.org
> > CC: x86@kernel.org
> > ---
> 
> This patch works fine to me on Acer TravelMate 8572.
> I added a debug message to _BCM method in DSDT then override it in
> initrd by follow initrd_table_override.txt.
> 
> The attached is my dmesg log.
> 
> > +3) How does it work
> > +-------------------
> > +
> > +# Extract the machine's ACPI tables:
> > +acpidump >acpidump
> > +acpixtract -a acpidump
> > +# Disassemble, modify and recompile them:
> > +iasl -d *.dat
> > +# For example add this statement into a _PRT (PCI Routing Table) function
> > +# of the DSDT:
> > +Store("Hello World", debug)
> > +iasl -sa *.dsl
> > +# glue them together with the initrd. ACPI tables go first, original initrd
> > +# goes on top:
> > +cat TBL1.dat >>instrumented_initrd
> > +cat TBL2.dat >>instrumented_initrd
> > +cat TBL3.dat >>instrumented_initrd
> 
> I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> because iasl -sa default generate out *.aml file but not *.dat file, my
> iasl version is Intel 20110112-64 [Feb 27 2011].
> That will be more clear for the first time user to understand need cat
> *.aml file.
> 
> Tested-by: Lee, Chun-Yi <jlee@suse.com>
> 
> 
> Thank's
> Joey Lee
> 

I applied the 2 patches on linux v3.0 kernel but not on the latest
linux-acpi-2.6 branch.

I will also test it on linux-acpi-2.6.


Thank's
Joey Lee



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

* Re: [Devel] [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-29  8:39       ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-29  8:39 UTC (permalink / raw)
  To: devel

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

於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > Details can be found in:
> > Documentation/acpi/initrd_table_override.txt
> > 
> > Additional dmesg output of a booted system with
> > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > tables overridden (with ### marked comments):
> > 
> > ### ACPI tables found glued to initrd
> > DSDT ACPI table found in initrd - size: 16234
> > FACP ACPI table found in initrd - size: 116
> > SSDT ACPI table found in initrd - size: 334
> > ### Re-printed e820 map via e820_update() with additionally created
> > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > ### initrd where copied to
> > modified physical RAM map:
> > ...
> >   ### New ACPI data section:
> >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> >   ### BIOS e820 provided ACPI data section:
> >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > ...
> > ### Total size of all ACPI tables glued to initrd
> > ### The address is initrd_start which gets updated to
> > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > 
> > Disabling lock debugging due to kernel taint
> > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > ...
> > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > ### loaded ACPI table matches and gets overridden:
> > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ACPI: Dynamic OEM Table Load:
> > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > ...
> > 
> > If the initrd does not start with a valid ACPI table signature or the ACPI
> > table's checksum is wrong, there is no functional change.
> > 
> > Signed-off-by: Thomas Renninger <trenn(a)suse.de>
> > CC: linux-acpi(a)vger.kernel.org
> > CC: lenb(a)kernel.org
> > CC: linux-kernel(a)vger.kernel.org
> > CC: x86(a)kernel.org
> > ---
> 
> This patch works fine to me on Acer TravelMate 8572.
> I added a debug message to _BCM method in DSDT then override it in
> initrd by follow initrd_table_override.txt.
> 
> The attached is my dmesg log.
> 
> > +3) How does it work
> > +-------------------
> > +
> > +# Extract the machine's ACPI tables:
> > +acpidump >acpidump
> > +acpixtract -a acpidump
> > +# Disassemble, modify and recompile them:
> > +iasl -d *.dat
> > +# For example add this statement into a _PRT (PCI Routing Table) function
> > +# of the DSDT:
> > +Store("Hello World", debug)
> > +iasl -sa *.dsl
> > +# glue them together with the initrd. ACPI tables go first, original initrd
> > +# goes on top:
> > +cat TBL1.dat >>instrumented_initrd
> > +cat TBL2.dat >>instrumented_initrd
> > +cat TBL3.dat >>instrumented_initrd
> 
> I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> because iasl -sa default generate out *.aml file but not *.dat file, my
> iasl version is Intel 20110112-64 [Feb 27 2011].
> That will be more clear for the first time user to understand need cat
> *.aml file.
> 
> Tested-by: Lee, Chun-Yi <jlee(a)suse.com>
> 
> 
> Thank's
> Joey Lee
> 

I applied the 2 patches on linux v3.0 kernel but not on the latest
linux-acpi-2.6 branch.

I will also test it on linux-acpi-2.6.


Thank's
Joey Lee



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

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
  2011-08-29  8:39       ` Joey Lee
  (?)
@ 2011-08-30  7:32         ` Joey Lee
  -1 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-30  7:32 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 一,2011-08-29 於 02:39 -0600,Joey Lee 提到:
> 於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> > 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > > Details can be found in:
> > > Documentation/acpi/initrd_table_override.txt
> > > 
> > > Additional dmesg output of a booted system with
> > > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > > tables overridden (with ### marked comments):
> > > 
> > > ### ACPI tables found glued to initrd
> > > DSDT ACPI table found in initrd - size: 16234
> > > FACP ACPI table found in initrd - size: 116
> > > SSDT ACPI table found in initrd - size: 334
> > > ### Re-printed e820 map via e820_update() with additionally created
> > > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > > ### initrd where copied to
> > > modified physical RAM map:
> > > ...
> > >   ### New ACPI data section:
> > >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> > >   ### BIOS e820 provided ACPI data section:
> > >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > > ...
> > > ### Total size of all ACPI tables glued to initrd
> > > ### The address is initrd_start which gets updated to
> > > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > > 
> > > Disabling lock debugging due to kernel taint
> > > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > > ...
> > > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > > ### loaded ACPI table matches and gets overridden:
> > > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ACPI: Dynamic OEM Table Load:
> > > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ...
> > > 
> > > If the initrd does not start with a valid ACPI table signature or the ACPI
> > > table's checksum is wrong, there is no functional change.
> > > 
> > > Signed-off-by: Thomas Renninger <trenn@suse.de>
> > > CC: linux-acpi@vger.kernel.org
> > > CC: lenb@kernel.org
> > > CC: linux-kernel@vger.kernel.org
> > > CC: x86@kernel.org
> > > ---
> > 
> > This patch works fine to me on Acer TravelMate 8572.
> > I added a debug message to _BCM method in DSDT then override it in
> > initrd by follow initrd_table_override.txt.
> > 
> > The attached is my dmesg log.
> > 
> > > +3) How does it work
> > > +-------------------
> > > +
> > > +# Extract the machine's ACPI tables:
> > > +acpidump >acpidump
> > > +acpixtract -a acpidump
> > > +# Disassemble, modify and recompile them:
> > > +iasl -d *.dat
> > > +# For example add this statement into a _PRT (PCI Routing Table) function
> > > +# of the DSDT:
> > > +Store("Hello World", debug)
> > > +iasl -sa *.dsl
> > > +# glue them together with the initrd. ACPI tables go first, original initrd
> > > +# goes on top:
> > > +cat TBL1.dat >>instrumented_initrd
> > > +cat TBL2.dat >>instrumented_initrd
> > > +cat TBL3.dat >>instrumented_initrd
> > 
> > I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> > because iasl -sa default generate out *.aml file but not *.dat file, my
> > iasl version is Intel 20110112-64 [Feb 27 2011].
> > That will be more clear for the first time user to understand need cat
> > *.aml file.
> > 
> > Tested-by: Lee, Chun-Yi <jlee@suse.com>
> > 
> > 
> > Thank's
> > Joey Lee
> > 
> 
> I applied the 2 patches on linux v3.0 kernel but not on the latest
> linux-acpi-2.6 branch.
> 
> I will also test it on linux-acpi-2.6.
> 
I applied the 2 initrd acpi table override patches on the newest
linux-acpi-2.6 branch, those patches works fine on my Acer TravelMate
8572.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's a lot!
Joey Lee

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" 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] 28+ messages in thread

* Re: [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30  7:32         ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-30  7:32 UTC (permalink / raw)
  To: trenn
  Cc: devel, jnelson-suse, lenb, x86, eric.piel, linux-acpi, linux-kernel, hpa

於 一,2011-08-29 於 02:39 -0600,Joey Lee 提到:
> 於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> > 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > > Details can be found in:
> > > Documentation/acpi/initrd_table_override.txt
> > > 
> > > Additional dmesg output of a booted system with
> > > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > > tables overridden (with ### marked comments):
> > > 
> > > ### ACPI tables found glued to initrd
> > > DSDT ACPI table found in initrd - size: 16234
> > > FACP ACPI table found in initrd - size: 116
> > > SSDT ACPI table found in initrd - size: 334
> > > ### Re-printed e820 map via e820_update() with additionally created
> > > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > > ### initrd where copied to
> > > modified physical RAM map:
> > > ...
> > >   ### New ACPI data section:
> > >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> > >   ### BIOS e820 provided ACPI data section:
> > >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > > ...
> > > ### Total size of all ACPI tables glued to initrd
> > > ### The address is initrd_start which gets updated to
> > > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > > 
> > > Disabling lock debugging due to kernel taint
> > > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > > ...
> > > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > > ### loaded ACPI table matches and gets overridden:
> > > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ACPI: Dynamic OEM Table Load:
> > > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ...
> > > 
> > > If the initrd does not start with a valid ACPI table signature or the ACPI
> > > table's checksum is wrong, there is no functional change.
> > > 
> > > Signed-off-by: Thomas Renninger <trenn@suse.de>
> > > CC: linux-acpi@vger.kernel.org
> > > CC: lenb@kernel.org
> > > CC: linux-kernel@vger.kernel.org
> > > CC: x86@kernel.org
> > > ---
> > 
> > This patch works fine to me on Acer TravelMate 8572.
> > I added a debug message to _BCM method in DSDT then override it in
> > initrd by follow initrd_table_override.txt.
> > 
> > The attached is my dmesg log.
> > 
> > > +3) How does it work
> > > +-------------------
> > > +
> > > +# Extract the machine's ACPI tables:
> > > +acpidump >acpidump
> > > +acpixtract -a acpidump
> > > +# Disassemble, modify and recompile them:
> > > +iasl -d *.dat
> > > +# For example add this statement into a _PRT (PCI Routing Table) function
> > > +# of the DSDT:
> > > +Store("Hello World", debug)
> > > +iasl -sa *.dsl
> > > +# glue them together with the initrd. ACPI tables go first, original initrd
> > > +# goes on top:
> > > +cat TBL1.dat >>instrumented_initrd
> > > +cat TBL2.dat >>instrumented_initrd
> > > +cat TBL3.dat >>instrumented_initrd
> > 
> > I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> > because iasl -sa default generate out *.aml file but not *.dat file, my
> > iasl version is Intel 20110112-64 [Feb 27 2011].
> > That will be more clear for the first time user to understand need cat
> > *.aml file.
> > 
> > Tested-by: Lee, Chun-Yi <jlee@suse.com>
> > 
> > 
> > Thank's
> > Joey Lee
> > 
> 
> I applied the 2 patches on linux v3.0 kernel but not on the latest
> linux-acpi-2.6 branch.
> 
> I will also test it on linux-acpi-2.6.
> 
I applied the 2 initrd acpi table override patches on the newest
linux-acpi-2.6 branch, those patches works fine on my Acer TravelMate
8572.

Tested-by: Lee, Chun-Yi <jlee@suse.com>


Thank's a lot!
Joey Lee


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

* Re: [Devel] [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30  7:32         ` Joey Lee
  0 siblings, 0 replies; 28+ messages in thread
From: Joey Lee @ 2011-08-30  7:32 UTC (permalink / raw)
  To: devel

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

於 一,2011-08-29 於 02:39 -0600,Joey Lee 提到:
> 於 一,2011-08-29 於 02:31 -0600,Joey Lee 提到:
> > 於 三,2011-08-24 於 11:48 +0200,Thomas Renninger 提到:
> > > Details can be found in:
> > > Documentation/acpi/initrd_table_override.txt
> > > 
> > > Additional dmesg output of a booted system with
> > > FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
> > > tables overridden (with ### marked comments):
> > > 
> > > ### ACPI tables found glued to initrd
> > > DSDT ACPI table found in initrd - size: 16234
> > > FACP ACPI table found in initrd - size: 116
> > > SSDT ACPI table found in initrd - size: 334
> > > ### Re-printed e820 map via e820_update() with additionally created
> > > ### ACPI data section at 0xcff55000 where the ACPI tables passed via
> > > ### initrd where copied to
> > > modified physical RAM map:
> > > ...
> > >   ### New ACPI data section:
> > >   modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
> > >   ### BIOS e820 provided ACPI data section:
> > >   modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
> > > ...
> > > ### Total size of all ACPI tables glued to initrd
> > > ### The address is initrd_start which gets updated to
> > > ### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
> > > Found acpi tables of size: 16684 at 0xffff8800374c4000
> > > 
> > > Disabling lock debugging due to kernel taint
> > > ### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
> > > ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
> > > ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL  TUMWATER 06040000 PTL  00000003)
> > > ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
> > > ACPI: DSDT 00000000cff55000 04404 (v01  Intel BLAKFORD 06040000 MSFT 0100000E)
> > > ...
> > > ### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
> > > ### loaded ACPI table matches and gets overridden:
> > > ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
> > > ACPI: SSDT 00000000cff58fde 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ACPI: Dynamic OEM Table Load:
> > > ACPI: SSDT           (null) 0014E (v01  PmRef  Cpu7Ist 00003000 INTL 20110316)
> > > ...
> > > 
> > > If the initrd does not start with a valid ACPI table signature or the ACPI
> > > table's checksum is wrong, there is no functional change.
> > > 
> > > Signed-off-by: Thomas Renninger <trenn(a)suse.de>
> > > CC: linux-acpi(a)vger.kernel.org
> > > CC: lenb(a)kernel.org
> > > CC: linux-kernel(a)vger.kernel.org
> > > CC: x86(a)kernel.org
> > > ---
> > 
> > This patch works fine to me on Acer TravelMate 8572.
> > I added a debug message to _BCM method in DSDT then override it in
> > initrd by follow initrd_table_override.txt.
> > 
> > The attached is my dmesg log.
> > 
> > > +3) How does it work
> > > +-------------------
> > > +
> > > +# Extract the machine's ACPI tables:
> > > +acpidump >acpidump
> > > +acpixtract -a acpidump
> > > +# Disassemble, modify and recompile them:
> > > +iasl -d *.dat
> > > +# For example add this statement into a _PRT (PCI Routing Table) function
> > > +# of the DSDT:
> > > +Store("Hello World", debug)
> > > +iasl -sa *.dsl
> > > +# glue them together with the initrd. ACPI tables go first, original initrd
> > > +# goes on top:
> > > +cat TBL1.dat >>instrumented_initrd
> > > +cat TBL2.dat >>instrumented_initrd
> > > +cat TBL3.dat >>instrumented_initrd
> > 
> > I suggest use TBL1.aml to replace TBL1.dat in initrd_table_override.txt,
> > because iasl -sa default generate out *.aml file but not *.dat file, my
> > iasl version is Intel 20110112-64 [Feb 27 2011].
> > That will be more clear for the first time user to understand need cat
> > *.aml file.
> > 
> > Tested-by: Lee, Chun-Yi <jlee(a)suse.com>
> > 
> > 
> > Thank's
> > Joey Lee
> > 
> 
> I applied the 2 patches on linux v3.0 kernel but not on the latest
> linux-acpi-2.6 branch.
> 
> I will also test it on linux-acpi-2.6.
> 
I applied the 2 initrd acpi table override patches on the newest
linux-acpi-2.6 branch, those patches works fine on my Acer TravelMate
8572.

Tested-by: Lee, Chun-Yi <jlee(a)suse.com>


Thank's a lot!
Joey Lee


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

* [PATCH] ACPICA: Fix wrongly mapped acpi table header when overriding via initrd
@ 2011-08-30 11:30     ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-30 11:30 UTC (permalink / raw)
  To: lenb
  Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86,
	hpa, mchang

From: Michael Chang <mchang@suse.com>

Fix the overriding ACPI table header do not override the existing ACPI
header thus the existing one is still in use. This caused a discrepency
of header and body, which would introdce a serios side effect that when
overriding DSDT, system might have error with "Unable to load the System
Description Tables" due to DSDT table verified failed.

Most field in ACPI table is static, but the length field is dyamically
changed and corresponds the new assembled *.aml size. We reserve the
ACPI data region using the overridden table size but attemps to map it
with existing ACPI table size introduced by above discrepency. It
would lead to remap fail during verifying DSDT able if length difference
cross a page boundary.

Signed-off-by: Michael Chang <mchang@suse.com>
---
 drivers/acpi/acpica/tbutils.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index df85afe..2e797d9 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -511,9 +511,9 @@ acpi_tb_install_table(acpi_physical_address address,
 				   ACPI_CAST_PTR(void, address)));
 			acpi_os_unmap_memory(mapped_table,
 					     sizeof(struct acpi_table_header));
+			address = tmp_addr;
 			mapped_table = acpi_os_map_memory(address,
 					  sizeof(struct acpi_table_header));
-			address = tmp_addr;
 		}
 		flags = ACPI_TABLE_ORIGIN_MAPPED;
 		table_to_install = mapped_table;
-- 
1.7.3.4


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

* [Devel] [PATCH] ACPICA: Fix wrongly mapped acpi table header when overriding via initrd
@ 2011-08-30 11:30     ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-30 11:30 UTC (permalink / raw)
  To: devel

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

From: Michael Chang <mchang(a)suse.com>

Fix the overriding ACPI table header do not override the existing ACPI
header thus the existing one is still in use. This caused a discrepency
of header and body, which would introdce a serios side effect that when
overriding DSDT, system might have error with "Unable to load the System
Description Tables" due to DSDT table verified failed.

Most field in ACPI table is static, but the length field is dyamically
changed and corresponds the new assembled *.aml size. We reserve the
ACPI data region using the overridden table size but attemps to map it
with existing ACPI table size introduced by above discrepency. It
would lead to remap fail during verifying DSDT able if length difference
cross a page boundary.

Signed-off-by: Michael Chang <mchang(a)suse.com>
---
 drivers/acpi/acpica/tbutils.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index df85afe..2e797d9 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -511,9 +511,9 @@ acpi_tb_install_table(acpi_physical_address address,
 				   ACPI_CAST_PTR(void, address)));
 			acpi_os_unmap_memory(mapped_table,
 					     sizeof(struct acpi_table_header));
+			address = tmp_addr;
 			mapped_table = acpi_os_map_memory(address,
 					  sizeof(struct acpi_table_header));
-			address = tmp_addr;
 		}
 		flags = ACPI_TABLE_ORIGIN_MAPPED;
 		table_to_install = mapped_table;
-- 
1.7.3.4


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

* Re: [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30 11:41   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-30 11:41 UTC (permalink / raw)
  To: lenb, hpa, Lin Ming, Robert Moore
  Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86

Hi Len, Hi Robert, hi Lin,

what's your opinion about these patches?
I just sent a tiny bug fix which slipped in when I did
last minute cleanups.

Is the additional acpi_os_phys_table_override() function which
would be needed in ACPICA sources acceptable?

I'd appreciate if the acpica adoption can be made by
acpica people, but if you give green light, I can also
re-write the first patch against acpica sources.

As this needs syncing with acpica it would be great if the first
steps can be made, so that this can show up in 3.2 release.

Thanks,

   Thomas

On Wednesday, August 24, 2011 11:48:08 AM Thomas Renninger wrote:
> This patch series got some basic testing already (see patch 2 changelog) and
> is based on latest 3.1-rc2 Linus kernel.
> 
> The patches are separated into ACPICA parts (patch 1) and kernel parts (patch 2).
> 
> They are ready for integeration (if now objections should show up in a review
> discussion) and it would be great if they can be added in Len's latest acpi-test
> tree for broader testing.
> 
> Thanks,
> 
>    Thomas
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" 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] 28+ messages in thread

* Re: [Devel] [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30 11:41   ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-30 11:41 UTC (permalink / raw)
  To: devel

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

Hi Len, Hi Robert, hi Lin,

what's your opinion about these patches?
I just sent a tiny bug fix which slipped in when I did
last minute cleanups.

Is the additional acpi_os_phys_table_override() function which
would be needed in ACPICA sources acceptable?

I'd appreciate if the acpica adoption can be made by
acpica people, but if you give green light, I can also
re-write the first patch against acpica sources.

As this needs syncing with acpica it would be great if the first
steps can be made, so that this can show up in 3.2 release.

Thanks,

   Thomas

On Wednesday, August 24, 2011 11:48:08 AM Thomas Renninger wrote:
> This patch series got some basic testing already (see patch 2 changelog) and
> is based on latest 3.1-rc2 Linus kernel.
> 
> The patches are separated into ACPICA parts (patch 1) and kernel parts (patch 2).
> 
> They are ready for integeration (if now objections should show up in a review
> discussion) and it would be great if they can be added in Len's latest acpi-test
> tree for broader testing.
> 
> Thanks,
> 
>    Thomas
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo(a)vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


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

* RE: [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30 14:55     ` Moore, Robert
  0 siblings, 0 replies; 28+ messages in thread
From: Moore, Robert @ 2011-08-30 14:55 UTC (permalink / raw)
  To: Thomas Renninger, lenb, hpa, Lin, Ming M
  Cc: eric.piel, jnelson-suse, devel, linux-acpi, linux-kernel, x86

Lin Ming is looking at this now and will report soon.
Bob


> -----Original Message-----
> From: Thomas Renninger [mailto:trenn@suse.de]
> Sent: Tuesday, August 30, 2011 4:42 AM
> To: lenb@kernel.org; hpa@zytor.com; Lin, Ming M; Moore, Robert
> Cc: eric.piel@tremplin-utc.net; jnelson-suse@jamponi.net;
> devel@acpica.org; linux-acpi@vger.kernel.org; linux-
> kernel@vger.kernel.org; x86@kernel.org
> Subject: Re: [PATCH 0/2] Implement overriding of arbitrary ACPI tables
> via initrd
> 
> Hi Len, Hi Robert, hi Lin,
> 
> what's your opinion about these patches?
> I just sent a tiny bug fix which slipped in when I did
> last minute cleanups.
> 
> Is the additional acpi_os_phys_table_override() function which
> would be needed in ACPICA sources acceptable?
> 
> I'd appreciate if the acpica adoption can be made by
> acpica people, but if you give green light, I can also
> re-write the first patch against acpica sources.
> 
> As this needs syncing with acpica it would be great if the first
> steps can be made, so that this can show up in 3.2 release.
> 
> Thanks,
> 
>    Thomas
> 
> On Wednesday, August 24, 2011 11:48:08 AM Thomas Renninger wrote:
> > This patch series got some basic testing already (see patch 2
> changelog) and
> > is based on latest 3.1-rc2 Linus kernel.
> >
> > The patches are separated into ACPICA parts (patch 1) and kernel
> parts (patch 2).
> >
> > They are ready for integeration (if now objections should show up in
> a review
> > discussion) and it would be great if they can be added in Len's
> latest acpi-test
> > tree for broader testing.
> >
> > Thanks,
> >
> >    Thomas
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> 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] 28+ messages in thread

* Re: [Devel] [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd
@ 2011-08-30 14:55     ` Moore, Robert
  0 siblings, 0 replies; 28+ messages in thread
From: Moore, Robert @ 2011-08-30 14:55 UTC (permalink / raw)
  To: devel

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

Lin Ming is looking at this now and will report soon.
Bob


> -----Original Message-----
> From: Thomas Renninger [mailto:trenn(a)suse.de]
> Sent: Tuesday, August 30, 2011 4:42 AM
> To: lenb(a)kernel.org; hpa(a)zytor.com; Lin, Ming M; Moore, Robert
> Cc: eric.piel(a)tremplin-utc.net; jnelson-suse(a)jamponi.net;
> devel(a)acpica.org; linux-acpi(a)vger.kernel.org; linux-
> kernel(a)vger.kernel.org; x86(a)kernel.org
> Subject: Re: [PATCH 0/2] Implement overriding of arbitrary ACPI tables
> via initrd
> 
> Hi Len, Hi Robert, hi Lin,
> 
> what's your opinion about these patches?
> I just sent a tiny bug fix which slipped in when I did
> last minute cleanups.
> 
> Is the additional acpi_os_phys_table_override() function which
> would be needed in ACPICA sources acceptable?
> 
> I'd appreciate if the acpica adoption can be made by
> acpica people, but if you give green light, I can also
> re-write the first patch against acpica sources.
> 
> As this needs syncing with acpica it would be great if the first
> steps can be made, so that this can show up in 3.2 release.
> 
> Thanks,
> 
>    Thomas
> 
> On Wednesday, August 24, 2011 11:48:08 AM Thomas Renninger wrote:
> > This patch series got some basic testing already (see patch 2
> changelog) and
> > is based on latest 3.1-rc2 Linus kernel.
> >
> > The patches are separated into ACPICA parts (patch 1) and kernel
> parts (patch 2).
> >
> > They are ready for integeration (if now objections should show up in
> a review
> > discussion) and it would be great if they can be added in Len's
> latest acpi-test
> > tree for broader testing.
> >
> > Thanks,
> >
> >    Thomas
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> in
> > the body of a message to majordomo(a)vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >


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

* Re: [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-31  2:43     ` Lin Ming
  0 siblings, 0 replies; 28+ messages in thread
From: Lin Ming @ 2011-08-31  2:43 UTC (permalink / raw)
  To: Thomas Renninger
  Cc: lenb, eric.piel, jnelson-suse, x86, linux-kernel, linux-acpi, hpa, devel

On Wed, 2011-08-24 at 17:48 +0800, Thomas Renninger wrote:
> Currently it's only possible to feed acpica with virtual
> address for table overriding.
> This patch introduces a function which allows the OS to
> pass physical addresses for table overriding.
> 
> This is necessary to allow early table overridings of
> arbitrary ACPI tables.
> 
> An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
> because physical address overriding is rather transparent
> (the same way acpica expects to get tables from reserved
> memory BIOS regions which is the normal way).
> 
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: devel@acpica.org
> CC: linux-acpi@vger.kernel.org
> CC: lenb@kernel.org
> ---
>  drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
>  drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
>  drivers/acpi/osl.c             |   11 +++++++++++
>  include/acpi/acpiosxf.h        |    4 ++++
>  4 files changed, 47 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
> index 62365f6..b9b9d2a 100644
> --- a/drivers/acpi/acpica/tbinstal.c
> +++ b/drivers/acpi/acpica/tbinstal.c
> @@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
>  		table_desc->pointer = override_table;
>  		table_desc->length = override_table->length;
>  		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
> +	} else {
> +		acpi_physical_address address = 0;
> +		u32 table_len = 0;
> +		status = acpi_os_phys_table_override(table_desc->pointer,
> +						     &address, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && address) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   table_desc->pointer->signature,
> +				   ACPI_CAST_PTR(void, table_desc->address)));
> +			table_desc->address = address;
> +			table_desc->pointer = acpi_os_map_memory(address,
> +								 table_len);
> +			table_desc->length = table_len;
> +		}
>  	}
>  
>  	/* Add the table to the global root table list */
> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
> index 0f2d395..df85afe 100644
> --- a/drivers/acpi/acpica/tbutils.c
> +++ b/drivers/acpi/acpica/tbutils.c
> @@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
>  		table_to_install = override_table;
>  		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
>  	} else {
> -		table_to_install = mapped_table;
> +		u32 table_len = 0;
> +		acpi_physical_address tmp_addr = 0;
> +
> +		status = acpi_os_phys_table_override(mapped_table,
> +						     &tmp_addr, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   mapped_table->signature,
> +				   ACPI_CAST_PTR(void, address)));
> +			acpi_os_unmap_memory(mapped_table,
> +					     sizeof(struct acpi_table_header));
> +			mapped_table = acpi_os_map_memory(address,
> +					  sizeof(struct acpi_table_header));
> +			address = tmp_addr;
> +		}
>  		flags = ACPI_TABLE_ORIGIN_MAPPED;
> +		table_to_install = mapped_table;
>  	}
>  
>  	/* Initialize the table entry */
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fa32f58..49b5fa6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
>  	return AE_OK;
>  }
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length)
> +{
> +	if (!existing_table)
> +		return AE_BAD_PARAMETER;
> +
> +	table_length = 0;
> +	return AE_OK;
> +}
> +
>  static irqreturn_t acpi_irq(int irq, void *dev_id)
>  {
>  	u32 handled;
> diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
> index 4543b6f..0bef969 100644
> --- a/include/acpi/acpiosxf.h
> +++ b/include/acpi/acpiosxf.h
> @@ -95,6 +95,10 @@ acpi_status
>  acpi_os_table_override(struct acpi_table_header *existing_table,
>  		       struct acpi_table_header **new_table);
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length);

You add a new interface.
Can we just extend the existing interface: acpi_os_table_override?

Thanks,
Lin Ming

> +
>  /*
>   * Spinlock primitives
>   */
> -- 
> 1.7.3.4
> 
> _______________________________________________
> Devel mailing list
> Devel@acpica.org
> http://lists.acpica.org/listinfo/devel

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

* Re: [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-31  2:43     ` Lin Ming
  0 siblings, 0 replies; 28+ messages in thread
From: Lin Ming @ 2011-08-31  2:43 UTC (permalink / raw)
  To: devel

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

On Wed, 2011-08-24 at 17:48 +0800, Thomas Renninger wrote:
> Currently it's only possible to feed acpica with virtual
> address for table overriding.
> This patch introduces a function which allows the OS to
> pass physical addresses for table overriding.
> 
> This is necessary to allow early table overridings of
> arbitrary ACPI tables.
> 
> An extra flag like ACPI_TABLE_ORIGIN_OVERRIDE is not used,
> because physical address overriding is rather transparent
> (the same way acpica expects to get tables from reserved
> memory BIOS regions which is the normal way).
> 
> Signed-off-by: Thomas Renninger <trenn(a)suse.de>
> CC: devel(a)acpica.org
> CC: linux-acpi(a)vger.kernel.org
> CC: lenb(a)kernel.org
> ---
>  drivers/acpi/acpica/tbinstal.c |   15 +++++++++++++++
>  drivers/acpi/acpica/tbutils.c  |   18 +++++++++++++++++-
>  drivers/acpi/osl.c             |   11 +++++++++++
>  include/acpi/acpiosxf.h        |    4 ++++
>  4 files changed, 47 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinstal.c
> index 62365f6..b9b9d2a 100644
> --- a/drivers/acpi/acpica/tbinstal.c
> +++ b/drivers/acpi/acpica/tbinstal.c
> @@ -242,6 +242,21 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
>  		table_desc->pointer = override_table;
>  		table_desc->length = override_table->length;
>  		table_desc->flags = ACPI_TABLE_ORIGIN_OVERRIDE;
> +	} else {
> +		acpi_physical_address address = 0;
> +		u32 table_len = 0;
> +		status = acpi_os_phys_table_override(table_desc->pointer,
> +						     &address, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && address) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   table_desc->pointer->signature,
> +				   ACPI_CAST_PTR(void, table_desc->address)));
> +			table_desc->address = address;
> +			table_desc->pointer = acpi_os_map_memory(address,
> +								 table_len);
> +			table_desc->length = table_len;
> +		}
>  	}
>  
>  	/* Add the table to the global root table list */
> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
> index 0f2d395..df85afe 100644
> --- a/drivers/acpi/acpica/tbutils.c
> +++ b/drivers/acpi/acpica/tbutils.c
> @@ -499,8 +499,24 @@ acpi_tb_install_table(acpi_physical_address address,
>  		table_to_install = override_table;
>  		flags = ACPI_TABLE_ORIGIN_OVERRIDE;
>  	} else {
> -		table_to_install = mapped_table;
> +		u32 table_len = 0;
> +		acpi_physical_address tmp_addr = 0;
> +
> +		status = acpi_os_phys_table_override(mapped_table,
> +						     &tmp_addr, &table_len);
> +		if (ACPI_SUCCESS(status) && table_len && tmp_addr) {
> +			ACPI_INFO((AE_INFO, "%4.4s @ 0x%p "
> +				   "Phys table override, replaced with:",
> +				   mapped_table->signature,
> +				   ACPI_CAST_PTR(void, address)));
> +			acpi_os_unmap_memory(mapped_table,
> +					     sizeof(struct acpi_table_header));
> +			mapped_table = acpi_os_map_memory(address,
> +					  sizeof(struct acpi_table_header));
> +			address = tmp_addr;
> +		}
>  		flags = ACPI_TABLE_ORIGIN_MAPPED;
> +		table_to_install = mapped_table;
>  	}
>  
>  	/* Initialize the table entry */
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fa32f58..49b5fa6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -522,6 +522,17 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
>  	return AE_OK;
>  }
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length)
> +{
> +	if (!existing_table)
> +		return AE_BAD_PARAMETER;
> +
> +	table_length = 0;
> +	return AE_OK;
> +}
> +
>  static irqreturn_t acpi_irq(int irq, void *dev_id)
>  {
>  	u32 handled;
> diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
> index 4543b6f..0bef969 100644
> --- a/include/acpi/acpiosxf.h
> +++ b/include/acpi/acpiosxf.h
> @@ -95,6 +95,10 @@ acpi_status
>  acpi_os_table_override(struct acpi_table_header *existing_table,
>  		       struct acpi_table_header **new_table);
>  
> +acpi_status
> +acpi_os_phys_table_override(struct acpi_table_header *existing_table,
> +			    acpi_physical_address *address, u32 *table_length);

You add a new interface.
Can we just extend the existing interface: acpi_os_table_override?

Thanks,
Lin Ming

> +
>  /*
>   * Spinlock primitives
>   */
> -- 
> 1.7.3.4
> 
> _______________________________________________
> Devel mailing list
> Devel(a)acpica.org
> http://lists.acpica.org/listinfo/devel



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

* Re: [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-31  9:28       ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-31  9:28 UTC (permalink / raw)
  To: Lin Ming
  Cc: lenb, eric.piel, jnelson-suse, x86, linux-kernel, linux-acpi, hpa, devel

On Wednesday, August 31, 2011 04:43:42 AM Lin Ming wrote:
> On Wed, 2011-08-24 at 17:48 +0800, Thomas Renninger wrote:
...
> You add a new interface.
Yes, is this a bigger problem?

> Can we just extend the existing interface: acpi_os_table_override?
Not sure how to do that without OS/ACPICA API changes.
The virtual address handling is nasty. You have to differ
early mappings (early_ioremap) and later mappings (io/memremap).
Re-mapping later is not possible because the physical address is
lost with the current overriding interface.
The physical address usage is transparent and from what I can
see the only way to provide proper table overriding.

If it's ok to add more paramters to acpi_os_table_override and
either pass the virtual (as before) or the physical address,
this would work:
acpi_os_table_override(struct acpi_table_header *existing_table,
                      struct acpi_table_header **new_table,
                      acpi_physical_address *address, u32 *table_length);

This would be an interface change which looked even worse to me, than 
adding a new function.

   Thomas

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

* Re: [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function
@ 2011-08-31  9:28       ` Thomas Renninger
  0 siblings, 0 replies; 28+ messages in thread
From: Thomas Renninger @ 2011-08-31  9:28 UTC (permalink / raw)
  To: devel

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

On Wednesday, August 31, 2011 04:43:42 AM Lin Ming wrote:
> On Wed, 2011-08-24 at 17:48 +0800, Thomas Renninger wrote:
...
> You add a new interface.
Yes, is this a bigger problem?

> Can we just extend the existing interface: acpi_os_table_override?
Not sure how to do that without OS/ACPICA API changes.
The virtual address handling is nasty. You have to differ
early mappings (early_ioremap) and later mappings (io/memremap).
Re-mapping later is not possible because the physical address is
lost with the current overriding interface.
The physical address usage is transparent and from what I can
see the only way to provide proper table overriding.

If it's ok to add more paramters to acpi_os_table_override and
either pass the virtual (as before) or the physical address,
this would work:
acpi_os_table_override(struct acpi_table_header *existing_table,
                      struct acpi_table_header **new_table,
                      acpi_physical_address *address, u32 *table_length);

This would be an interface change which looked even worse to me, than 
adding a new function.

   Thomas

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

end of thread, other threads:[~2011-08-31  9:28 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-24  9:48 [PATCH 0/2] Implement overriding of arbitrary ACPI tables via initrd Thomas Renninger
2011-08-24  9:48 ` [Devel] " Thomas Renninger
2011-08-24  9:48 ` [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function Thomas Renninger
2011-08-24  9:48   ` [Devel] " Thomas Renninger
2011-08-29  8:24   ` Joey Lee
2011-08-29  8:24     ` [Devel] " Joey Lee
2011-08-29  8:24     ` Joey Lee
2011-08-30 11:30   ` [PATCH] ACPICA: Fix wrongly mapped acpi table header when overriding via initrd Thomas Renninger
2011-08-30 11:30     ` [Devel] " Thomas Renninger
2011-08-31  2:43   ` [Devel] [PATCH 1/2] ACPICA: Introduce acpi_os_phys_table_override function Lin Ming
2011-08-31  2:43     ` Lin Ming
2011-08-31  9:28     ` Thomas Renninger
2011-08-31  9:28       ` Thomas Renninger
2011-08-24  9:48 ` [PATCH 2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd Thomas Renninger
2011-08-24  9:48   ` [Devel] " Thomas Renninger
2011-08-29  8:31   ` Joey Lee
2011-08-29  8:31     ` [Devel] " Joey Lee
2011-08-29  8:31     ` Joey Lee
2011-08-29  8:39     ` Joey Lee
2011-08-29  8:39       ` [Devel] " Joey Lee
2011-08-29  8:39       ` Joey Lee
2011-08-30  7:32       ` Joey Lee
2011-08-30  7:32         ` [Devel] " Joey Lee
2011-08-30  7:32         ` Joey Lee
2011-08-30 11:41 ` [PATCH 0/2] " Thomas Renninger
2011-08-30 11:41   ` [Devel] " Thomas Renninger
2011-08-30 14:55   ` Moore, Robert
2011-08-30 14:55     ` [Devel] " Moore, Robert

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.