* [ACPICA] EmbeddedControl region handling bug in PNP0C14 @ 2007-11-28 3:50 Carlos Corbacho 2007-11-28 18:08 ` Moore, Robert 0 siblings, 1 reply; 7+ messages in thread From: Carlos Corbacho @ 2007-11-28 3:50 UTC (permalink / raw) To: Linux-acpi, Len Brown, Moore, Robert The following is, I think, a bug in ACPICA (so CC'ing Robert Moore). (The full DSDT for the laptop in question (Acer Aspire 5040) is available here - I'm just going to selectively quote from it in this e-mail: http://aceracpi.googlecode.com/svn/trunk/dsdt/acer/aspire/5040.dsl ) ACPI is choking on the second of two OperationRegion's in different parts of the DSDT, with the same name, and that both operate on the Embedded Controller. This hasn't cropped up before on the laptop in question (an Acer Aspire 5040 - based on the DSDTs I've collected so far for Acer laptops, I suspect a few others will have the same problem), as the second OperationRegion, in this case, is found in \_SB.AMW0 (aka WMI-ACPI or PNP0C14); and in acer_acpi, I've only just started poking at this (the first time by accident, the second time by more closely studying the DSDT - unfortunately, I don't have the hardware in question). So, on the DSDT in question, we are trying to call \_SB.AMW0.WMCA In ACPI land, it takes three arguments: 1) Instance (ACPI_TYPE_INTEGER) 2) Method ID (ACPI_TYPE_INTEGER) 3) Buffer (u32 in this case) When we call it (we already know what the correct values to pass are, both from reverse engineering, and from visual inspection of the DSDT), we always get the following result (this is from a user with a 2.6.22 kernel): [ 699.477048] ACPI Error (evregion-0316): No handler for Region [RAM_] (ffff8100012b7ac0) [EmbeddedControl] [20070126] [ 699.477055] ACPI Error (exfldio-0289): Region EmbeddedControl(3) has no handler [20070126] [ 699.477060] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While resolving operands for [OpcodeName unavailable] [20070126] [ 699.477066] ACPI Error (psparse-0551): Method parse/execution failed [\_SB_.AMW0.WMCA] (Node ffff810035e55400), AE_NOT_EXIST The part of the DSDT we appear to be choking on is in \_SB.AMW0 (_HID PNP0C14): OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) (Followed by lots of Field() bits, which depend on the region RAM being defined). Of course, in \_SB.PCI0.LPC0.EC0 (PNP0C09) we have exactly the same line, which works just fine: OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) So, I suspect either: 1) ACPICA does not handle EmbeddedControl outside of PNP0C09 (or, at least, can't handle it properly in PNP0C14, or in this case, *pnp0c14) or 2) ACPICA is having a namespace clash with two identically named regions both trying to access EmbeddedControl? (But given that EC0 works fine, I'm not sure how likely this is). Of course, if this bug is already known and has been fixed in something newer than 2.6.22, please let me know - I don't have the hardware in question, so cannot confirm this myself. -Carlos -- E-Mail: carlos@strangeworlds.co.uk Web: strangeworlds.co.uk GPG Key ID: 0x23EE722D ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-11-28 3:50 [ACPICA] EmbeddedControl region handling bug in PNP0C14 Carlos Corbacho @ 2007-11-28 18:08 ` Moore, Robert 2007-12-12 14:10 ` Carlos Corbacho 0 siblings, 1 reply; 7+ messages in thread From: Moore, Robert @ 2007-11-28 18:08 UTC (permalink / raw) To: Carlos Corbacho, Linux-acpi, Len Brown; +Cc: Alexey Starikovskiy This will probably require a trace. Also, Alexey may have something to add. >-----Original Message----- >From: Carlos Corbacho [mailto:carlos@strangeworlds.co.uk] >Sent: Tuesday, November 27, 2007 7:50 PM >To: Linux-acpi@vger.kernel.org; Len Brown; Moore, Robert >Subject: [ACPICA] EmbeddedControl region handling bug in PNP0C14 > >The following is, I think, a bug in ACPICA (so CC'ing Robert Moore). > >(The full DSDT for the laptop in question (Acer Aspire 5040) is available >here - I'm just going to selectively quote from it in this e-mail: >http://aceracpi.googlecode.com/svn/trunk/dsdt/acer/aspire/5040.dsl >) > >ACPI is choking on the second of two OperationRegion's in different parts >of >the DSDT, with the same name, and that both operate on the Embedded >Controller. > >This hasn't cropped up before on the laptop in question (an Acer Aspire >5040 - >based on the DSDTs I've collected so far for Acer laptops, I suspect a few >others will have the same problem), as the second OperationRegion, in this >case, is found in \_SB.AMW0 (aka WMI-ACPI or PNP0C14); and in acer_acpi, >I've >only just started poking at this (the first time by accident, the second >time >by more closely studying the DSDT - unfortunately, I don't have the >hardware >in question). > >So, on the DSDT in question, we are trying to call \_SB.AMW0.WMCA > >In ACPI land, it takes three arguments: > >1) Instance (ACPI_TYPE_INTEGER) >2) Method ID (ACPI_TYPE_INTEGER) >3) Buffer (u32 in this case) > >When we call it (we already know what the correct values to pass are, both >from reverse engineering, and from visual inspection of the DSDT), we >always >get the following result (this is from a user with a 2.6.22 kernel): > >[ 699.477048] ACPI Error (evregion-0316): No handler for Region [RAM_] >(ffff8100012b7ac0) [EmbeddedControl] [20070126] >[ 699.477055] ACPI Error (exfldio-0289): Region EmbeddedControl(3) has >no handler [20070126] >[ 699.477060] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While >resolving operands for [OpcodeName unavailable] [20070126] >[ 699.477066] ACPI Error (psparse-0551): Method parse/execution failed >[\_SB_.AMW0.WMCA] (Node ffff810035e55400), AE_NOT_EXIST > >The part of the DSDT we appear to be choking on is in \_SB.AMW0 (_HID >PNP0C14): > >OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) > >(Followed by lots of Field() bits, which depend on the region RAM being >defined). > >Of course, in \_SB.PCI0.LPC0.EC0 (PNP0C09) we have exactly the same line, >which works just fine: > >OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) > >So, I suspect either: > >1) ACPICA does not handle EmbeddedControl outside of PNP0C09 (or, at least, >can't handle it properly in PNP0C14, or in this case, *pnp0c14) > >or > >2) ACPICA is having a namespace clash with two identically named regions >both >trying to access EmbeddedControl? (But given that EC0 works fine, I'm not >sure how likely this is). > >Of course, if this bug is already known and has been fixed in something >newer >than 2.6.22, please let me know - I don't have the hardware in question, so >cannot confirm this myself. > >-Carlos >-- >E-Mail: carlos@strangeworlds.co.uk >Web: strangeworlds.co.uk >GPG Key ID: 0x23EE722D ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-11-28 18:08 ` Moore, Robert @ 2007-12-12 14:10 ` Carlos Corbacho 2007-12-12 15:44 ` Alexey Starikovskiy 0 siblings, 1 reply; 7+ messages in thread From: Carlos Corbacho @ 2007-12-12 14:10 UTC (permalink / raw) To: Moore, Robert; +Cc: Linux-acpi, Len Brown, Alexey Starikovskiy On Wednesday 28 November 2007 18:08:44 Moore, Robert wrote: > This will probably require a trace. Here's the relevant ACPI error messages (with full ACPI debugging enabled) from acer_acpi, with some comments as to which method is being called and what arguments we're passing. This user tested this on Kubuntu Gutsy (7.10) x86-64, with a custom 2.6.23.9 kernel (basically, just the ACPI debugging enabled so we can get a better trace). So, for reference, this is the DSDT we're working with: http://files.strangeworlds.co.uk/5040.dsl WMCA(1, 3, NULL): [23375.726016] ACPI Error (evregion-0316): No handler for Region [RAM_] (ffff81000132d1a0) [EmbeddedControl] [20070126] [23375.726246] ACPI Error (exfldio-0289): Region EmbeddedControl(3) has no handler [20070126] [23375.726475] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While resolving operands for [Store] [20070126] [23375.726708] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.AMW0.WMCA] (Node ffff8100013315f0), AE_NOT_EXIST WMCA(1, 6, BUF(4 bytes) = 1): [23444.490213] ACPI Error (evregion-0316): No handler for Region [RAM_] (ffff81000132d1a0) [EmbeddedControl] [20070126] [23444.490218] ACPI Error (exfldio-0289): Region EmbeddedControl(3) has no handler [20070126] [23444.490223] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While resolving operands for [LGreater] [20070126] [23444.490228] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.AMW0.WMCA] (Node ffff8100013315f0), AE_NOT_EXIST [23444.490263] acer_acpi: In: 0x00000001 -Carlos -- E-Mail: carlos@strangeworlds.co.uk Web: strangeworlds.co.uk GPG Key ID: 0x23EE722D - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-12-12 14:10 ` Carlos Corbacho @ 2007-12-12 15:44 ` Alexey Starikovskiy 2007-12-12 17:26 ` Carlos Corbacho 0 siblings, 1 reply; 7+ messages in thread From: Alexey Starikovskiy @ 2007-12-12 15:44 UTC (permalink / raw) To: Carlos Corbacho; +Cc: Moore, Robert, Linux-acpi, Len Brown, Alexey Starikovskiy _STA for EC is not needed -- might be worth trying to remove it AnyAcc is not right -- should be ByteAcc. OperationRegion EC01, EC02 also seem to be good recipe for trouble... Carlos Corbacho wrote: > On Wednesday 28 November 2007 18:08:44 Moore, Robert wrote: > >> This will probably require a trace. >> > > Here's the relevant ACPI error messages (with full ACPI debugging enabled) > from acer_acpi, with some comments as to which method is > being called and what arguments we're passing. > > This user tested this on Kubuntu Gutsy (7.10) x86-64, with a custom 2.6.23.9 > kernel (basically, just the ACPI debugging enabled so we can get a better > trace). > > So, for reference, this is the DSDT we're working with: > http://files.strangeworlds.co.uk/5040.dsl > > WMCA(1, 3, NULL): > [23375.726016] ACPI Error (evregion-0316): No handler for Region > [RAM_] (ffff81000132d1a0) [EmbeddedControl] [20070126] > [23375.726246] ACPI Error (exfldio-0289): Region EmbeddedControl(3) > has no handler [20070126] > [23375.726475] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While > resolving operands for [Store] [20070126] > [23375.726708] ACPI Error (psparse-0537): Method parse/execution > failed [\_SB_.AMW0.WMCA] (Node ffff8100013315f0), AE_NOT_EXIST > > WMCA(1, 6, BUF(4 bytes) = 1): > [23444.490213] ACPI Error (evregion-0316): No handler for Region > [RAM_] (ffff81000132d1a0) [EmbeddedControl] [20070126] > [23444.490218] ACPI Error (exfldio-0289): Region EmbeddedControl(3) > has no handler [20070126] > [23444.490223] ACPI Exception (dswexec-0462): AE_NOT_EXIST, While > resolving operands for [LGreater] [20070126] > [23444.490228] ACPI Error (psparse-0537): Method parse/execution > failed [\_SB_.AMW0.WMCA] (Node ffff8100013315f0), AE_NOT_EXIST > [23444.490263] acer_acpi: In: 0x00000001 > > -Carlos > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-12-12 15:44 ` Alexey Starikovskiy @ 2007-12-12 17:26 ` Carlos Corbacho 2007-12-12 18:13 ` Alexey Starikovskiy 0 siblings, 1 reply; 7+ messages in thread From: Carlos Corbacho @ 2007-12-12 17:26 UTC (permalink / raw) To: Alexey Starikovskiy Cc: Moore, Robert, Linux-acpi, Len Brown, Alexey Starikovskiy Alexey, Is the code in EC0 interfering then with the EC access code in AMW0? (See lines 962 onwards for the AMW0 EmbeddedControl region bits)? Because AFAICT, the EC0 code is fine (my 5020 has the same AML for EC0 and doesn't have any problem, and the user didn't report any other EC problems - we only see this problem when we try to use the EmbeddedControl region in AMW0). -Carlos -- E-Mail: carlos@strangeworlds.co.uk Web: strangeworlds.co.uk GPG Key ID: 0x23EE722D ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-12-12 17:26 ` Carlos Corbacho @ 2007-12-12 18:13 ` Alexey Starikovskiy 2007-12-16 3:42 ` Carlos Corbacho 0 siblings, 1 reply; 7+ messages in thread From: Alexey Starikovskiy @ 2007-12-12 18:13 UTC (permalink / raw) To: Carlos Corbacho; +Cc: Moore, Robert, Linux-acpi, Len Brown, Alexey Starikovskiy [-- Attachment #1: Type: text/plain, Size: 519 bytes --] Carlos Corbacho wrote: > Alexey, > > Is the code in EC0 interfering then with the EC access code in AMW0? (See > lines 962 onwards for the AMW0 EmbeddedControl region bits)? > > Because AFAICT, the EC0 code is fine (my 5020 has the same AML for EC0 and > doesn't have any problem, and the user didn't report any other EC problems - > we only see this problem when we try to use the EmbeddedControl region in > AMW0). > > -Carlos > > Please check if making AMW0' RAM an alias to EC0 one helps... See attachment. [-- Attachment #2: a.diff --] [-- Type: text/x-patch, Size: 3438 bytes --] --- 5040.dsl 2007-12-12 21:03:04.000000000 +0300 +++ 5040a.dsl 2007-12-12 21:02:54.000000000 +0300 @@ -721,7 +721,7 @@ Device (AMW0) { - Name (_HID, "*pnp0c14") + Name (_HID, "PNP0C14") Name (_UID, 0x00) Name (WLMP, 0x00) Name (B0ED, Buffer (0x04) @@ -959,7 +959,8 @@ CreateDWordField (CBE0, 0x00, BER4) CreateWordField (CBE0, 0x00, BUF0) CreateWordField (CBE0, 0x02, BER2) - OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) +// OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) + Alias(\_SB.PCI0.LPC0.EC0.RAM, RAM) Field (RAM, ByteAcc, Lock, Preserve) { CMD0, 8, @@ -3614,7 +3615,7 @@ } OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF) - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x0A), , 1, @@ -3637,7 +3638,7 @@ BL2W, 1 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x01), TIID, 8, @@ -3664,19 +3665,19 @@ THS7, 8 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x92), KTAF, 8 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x92), THSL, 4 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0xD0), TSP0, 8, @@ -3985,7 +3986,7 @@ Notify (\_TZ.TZS1, 0x80) } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x02), NBID, 8, @@ -3997,14 +3998,14 @@ NB1A, 1 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0x88), NB0S, 8, NB1S, 8 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0xE0), BSRC, 16, @@ -4018,7 +4019,7 @@ BSBS, 8 } - Field (RAM, AnyAcc, Lock, Preserve) + Field (RAM, ByteAcc, Lock, Preserve) { Offset (0xE0), BSDC, 16, ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ACPICA] EmbeddedControl region handling bug in PNP0C14 2007-12-12 18:13 ` Alexey Starikovskiy @ 2007-12-16 3:42 ` Carlos Corbacho 0 siblings, 0 replies; 7+ messages in thread From: Carlos Corbacho @ 2007-12-16 3:42 UTC (permalink / raw) To: Alexey Starikovskiy Cc: Moore, Robert, Linux-acpi, Len Brown, Alexey Starikovskiy Actually, a bit of further reading suggests that this is my fault :( The original ACPI error was quite correct - there is no EC region handler installed - because the EC handler is only installed for the EC device (PNP0C09), not WMI (PNP0C14). Had I read through the EC code earlier I would have spotted that one. So, my apologies for wasting your time with this. So, what I need to do is update WMI to install a handler for the EmbeddedControl region in PNP0C14. Alexey - I suspect the easiest way would be to make such a handler just call ec_read & ec_write, and let the EC driver do the real work, rather than trying to do anything more complicated in WMI? -Carlos (Hoping WMI doesn't keep throwing up more "surprises"...) -- E-Mail: carlos@strangeworlds.co.uk Web: strangeworlds.co.uk GPG Key ID: 0x23EE722D ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-12-16 3:44 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-11-28 3:50 [ACPICA] EmbeddedControl region handling bug in PNP0C14 Carlos Corbacho 2007-11-28 18:08 ` Moore, Robert 2007-12-12 14:10 ` Carlos Corbacho 2007-12-12 15:44 ` Alexey Starikovskiy 2007-12-12 17:26 ` Carlos Corbacho 2007-12-12 18:13 ` Alexey Starikovskiy 2007-12-16 3:42 ` Carlos Corbacho
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox