All of lore.kernel.org
 help / color / mirror / Atom feed
* Overriding DSDT and ignored resources
@ 2015-01-22 13:57 Antonio Ospite
  2015-01-27 14:39 ` Antonio Ospite
  2015-01-28 10:21 ` Mika Westerberg
  0 siblings, 2 replies; 4+ messages in thread
From: Antonio Ospite @ 2015-01-22 13:57 UTC (permalink / raw)
  To: linux-acpi

Hi,

it looks like linux can't use the correct PCI host resources when using
an overridden DSDT table, even with an _unmodified_ one.

I am using 3.19-rc5 rather vanilla (no acpi changes anyways) on a Bay
Trail tablet.

When I override the DSDT table I get these messages, and most of the
devices don't work anymore:

[    0.000000] DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x103c3]
[...]
[    0.000000] ACPI: Override [DSDT-  A M I ], this is unsafe: tainting kernel
[...]
[    0.000000] ACPI: DSDT 0x000000007BCF1000 Physical table override, new table: 0x00000000792E9000
[    0.000000] ACPI: DSDT 0x00000000792E9000 0103C3 (v02 ALASKA A M I    00000003 AMI  0100000D)
[...]
[    0.370871] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000a0000-0x000bffff] ignored 
[    0.370880] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000c0000-0x000dffff] ignored 
[    0.370887] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000e0000-0x000fffff] ignored 
[    0.370893] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x7d000001-0x7f000000] ignored 
[    0.370900] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x00000000-0xffffffff] ignored
[...]

Which I don't get without overriding the DSDT.

Full dmesg here:
http://ao2.it/tmp/ACPI_DSDT_override/dmesg_DSDT_override.log

The dmesg with the original DSDT here:
http://ao2.it/tmp/ACPI_DSDT_override/dmesg_original_DSDT.log

These are the steps to reproduce the issue:
  1. Extract the DSDT with acpidump;
  2. Build an initrd with the intent to override the DSDT with the very
     same extracted at 1., no modifications whatsoever.
     The initrd is built just like explained in
     Documentation/acpi/initrd_table_override.txt;
  3. Boot with the modified initrd.

I did the test with the _unmodified_ DSDT to exclude errors on my side
when decompiling, editing and recompiling the DSDT table.

Can anyone else reproduce that?

Thanks,
   Antonio

P.S. Please CC me on reply, I am not subscribed to linux-acpi.

-- 
Antonio Ospite
http://ao2.it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?

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

* Re: Overriding DSDT and ignored resources
  2015-01-22 13:57 Overriding DSDT and ignored resources Antonio Ospite
@ 2015-01-27 14:39 ` Antonio Ospite
  2015-01-28 10:21 ` Mika Westerberg
  1 sibling, 0 replies; 4+ messages in thread
From: Antonio Ospite @ 2015-01-27 14:39 UTC (permalink / raw)
  To: linux-acpi

On Thu, 22 Jan 2015 14:57:29 +0100
Antonio Ospite <ao2@ao2.it> wrote:

> Hi,
> 
> it looks like linux can't use the correct PCI host resources when using
> an overridden DSDT table, even with an _unmodified_ one.
> 
> I am using 3.19-rc5 rather vanilla (no acpi changes anyways) on a Bay
> Trail tablet.
> 

Issue still there in 3.19-rc6.
Does anyone have a clue of what is going on?

Thanks,
   Antonio

-- 
Antonio Ospite
http://ao2.it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?

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

* Re: Overriding DSDT and ignored resources
  2015-01-22 13:57 Overriding DSDT and ignored resources Antonio Ospite
  2015-01-27 14:39 ` Antonio Ospite
@ 2015-01-28 10:21 ` Mika Westerberg
  2015-01-28 16:48   ` Antonio Ospite
  1 sibling, 1 reply; 4+ messages in thread
From: Mika Westerberg @ 2015-01-28 10:21 UTC (permalink / raw)
  To: Antonio Ospite; +Cc: linux-acpi

On Thu, Jan 22, 2015 at 02:57:29PM +0100, Antonio Ospite wrote:
> Hi,
> 
> it looks like linux can't use the correct PCI host resources when using
> an overridden DSDT table, even with an _unmodified_ one.
> 
> I am using 3.19-rc5 rather vanilla (no acpi changes anyways) on a Bay
> Trail tablet.
> 
> When I override the DSDT table I get these messages, and most of the
> devices don't work anymore:
> 
> [    0.000000] DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x103c3]
> [...]
> [    0.000000] ACPI: Override [DSDT-  A M I ], this is unsafe: tainting kernel
> [...]
> [    0.000000] ACPI: DSDT 0x000000007BCF1000 Physical table override, new table: 0x00000000792E9000
> [    0.000000] ACPI: DSDT 0x00000000792E9000 0103C3 (v02 ALASKA A M I    00000003 AMI  0100000D)
> [...]
> [    0.370871] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000a0000-0x000bffff] ignored 
> [    0.370880] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000c0000-0x000dffff] ignored 
> [    0.370887] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x000e0000-0x000fffff] ignored 
> [    0.370893] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x7d000001-0x7f000000] ignored 
> [    0.370900] acpi PNP0A08:00: host bridge window expanded to [mem 0x00000000-0xffffffff]; [mem 0x00000000-0xffffffff] ignored
> [...]
> 
> Which I don't get without overriding the DSDT.
> 
> Full dmesg here:
> http://ao2.it/tmp/ACPI_DSDT_override/dmesg_DSDT_override.log
> 
> The dmesg with the original DSDT here:
> http://ao2.it/tmp/ACPI_DSDT_override/dmesg_original_DSDT.log
> 
> These are the steps to reproduce the issue:
>   1. Extract the DSDT with acpidump;
>   2. Build an initrd with the intent to override the DSDT with the very
>      same extracted at 1., no modifications whatsoever.
>      The initrd is built just like explained in
>      Documentation/acpi/initrd_table_override.txt;
>   3. Boot with the modified initrd.
> 
> I did the test with the _unmodified_ DSDT to exclude errors on my side
> when decompiling, editing and recompiling the DSDT table.

Are you using the latest ACPICA?

> Can anyone else reproduce that?

Nope, but I have done several times following:

 1) Take the DSDT dump
 2) iasl -d DSDT
 3) iasl -tc DSDT.dsl

 (the above will make .hex file)

 4) Edit your .config and add:

 CONFIG_STANDALONE=n
 CONFIG_ACPI_CUSTOM_DSDT_FILE="/path/to/your/DSDT.hex"

 5) Rebuild and reboot

That typically works for me.

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

* Re: Overriding DSDT and ignored resources
  2015-01-28 10:21 ` Mika Westerberg
@ 2015-01-28 16:48   ` Antonio Ospite
  0 siblings, 0 replies; 4+ messages in thread
From: Antonio Ospite @ 2015-01-28 16:48 UTC (permalink / raw)
  To: linux-acpi; +Cc: Mika Westerberg

On Wed, 28 Jan 2015 12:21:57 +0200
Mika Westerberg <mika.westerberg@linux.intel.com> wrote:

> On Thu, Jan 22, 2015 at 02:57:29PM +0100, Antonio Ospite wrote:
> > Hi,
> > 
> > it looks like linux can't use the correct PCI host resources when using
> > an overridden DSDT table, even with an _unmodified_ one.
> > 
> > I am using 3.19-rc5 rather vanilla (no acpi changes anyways) on a Bay
> > Trail tablet.
> > 
> > When I override the DSDT table I get these messages, and most of the
> > devices don't work anymore:
> > 
[...]

> Are you using the latest ACPICA?
>

acpica-tools 20141107

> > Can anyone else reproduce that?
> 
> Nope, but I have done several times following:
> 
>  1) Take the DSDT dump
>  2) iasl -d DSDT
>  3) iasl -tc DSDT.dsl
> 
>  (the above will make .hex file)
> 
>  4) Edit your .config and add:
> 
>  CONFIG_STANDALONE=n
>  CONFIG_ACPI_CUSTOM_DSDT_FILE="/path/to/your/DSDT.hex"
> 
>  5) Rebuild and reboot
> 
> That typically works for me.

OK, that was not necessary, the initrd method works just fine.

Once I knew you couldn't replicate it, I redid all the steps and now it
works. It was obviously something wrong on my side, the difference
between a working an a non working DSDT in my case is basically this:

-    OperationRegion (GNVS, SystemMemory, 0x7C22BA98, 0x0334)
+    OperationRegion (GNVS, SystemMemory, 0x7BEBAA98, 0x0334)

Probably I was using a dump from a firmware version different than the
one I was trying to override.

Sorry for the noise.

BTW, in my previous attempts I also ended up patching the pin numbers
in the original DSDT by hand and fixing up the checksum as an
experiment, if anyone ever needed to do that here is a trivial tool to
calculate and verify the checksum of a DSDT table:
http://git.ao2.it/experiments/ACPI.git/blob/HEAD:/acpi_table_checksum.py

Thanks,
   Antonio

-- 
Antonio Ospite
http://ao2.it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?

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

end of thread, other threads:[~2015-04-22  8:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-22 13:57 Overriding DSDT and ignored resources Antonio Ospite
2015-01-27 14:39 ` Antonio Ospite
2015-01-28 10:21 ` Mika Westerberg
2015-01-28 16:48   ` Antonio Ospite

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.