diff mbox

[2/2] ACPI: Implement overriding of arbitrary ACPI tables via initrd

Message ID 1314179290-31526-3-git-send-email-trenn@suse.de (mailing list archive)
State New, archived
Headers show

Commit Message

Thomas Renninger Aug. 24, 2011, 9:48 a.m. UTC
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

Comments

joeyli Aug. 29, 2011, 8:31 a.m. UTC | #1
? ??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
[    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)
joeyli Aug. 29, 2011, 8:39 a.m. UTC | #2
? ??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
joeyli Aug. 30, 2011, 7:32 a.m. UTC | #3
? ??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
diff mbox

Patch

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;