-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
For my future reference: <lynxis> francis7: on x201 it doesn't generate any acpi event. <francis7> on X200 it doesn't, either. <lynxis> francis7: in dsdt, bit 7 of 0x30 is named HMUT <francis7> HMUT = hardware mute? <lynxis> it's bit6, if you count from 0. yes. acpi variables names are limited to 4 bytes. <francis7> lynxis, please assume that I will be counting from the right-most bit (^0) <francis7> and assume that I will count from 0 <francis7> If you say bit 7, I'll think you mean the one that equals 128 or 0x80 when set to 1 <francis7> when really you meant 64 or 0x40 <lynxis> francis7: me too, but I miscounted it this time. please forgive me ;) <francis7> :) <francis7> this is what causes "off by one" errors in programming <lynxis> it was more reading it. because it says 6 bit are empty, nextbit is HMUT
On 22/08/15 19:37, Francis Rowe wrote:
Please disregard this thread. from the #coreboot IRC channel:
<francis7> lynxis, hi * redpill has quit (Ping timeout: 264 seconds) * redpill (~redpill@unaffiliated/redpill) has joined #coreboot <lynxis> 0x30 does volumecontrol. I've also written that down in http://www.coreboot.org/EC:lenovo/x201 <francis7> oh <lynxis> try to play with that using ectool -w <> -z <> <francis7> Yes, to see if that changes volume. <lynxis> you can try to read the disassemlbed acpi code. take a look on the dsdt. acpi asm is very easy to read. * siro has quit (Quit: Leaving.) <francis7> lynxis, confirmed <francis7> lynxis, I have this running: <francis7> sudo watch -n .1 ./ectool -i <francis7> When I mute (factory bios), 0x30 changes from 0x03 to 0x43 <francis7> When unmuting, it changes back to 0x03 <lynxis> on x201: it's 0x40 or 0x00 <francis7> The same also happens in coreboot. <francis7> However, on coreboot, no actual muting occurs. <lynxis> x201: the speaker got muted. <francis7> ok, wtf <francis7> I tested it on another X200 with coreboot <francis7> mute works <francis7> wtf <lynxis> francis7: can you send me a dump of the acpi with OEM bios? <francis7> lynxis, "acpidump > acpidump.log" ? <lynxis> acpidump -b dump_dir <francis7> -b outputs nothing <lynxis> it should dump everything into a directory <lynxis> sudo acpidump -b . <francis7> ok now it works <lynxis> francis7: 0x84 should be the fan speed <francis7> seems I already have your GPG key <francis7> (public one) <lynxis> 0xA0DF8604 fp: 390D CF78 8BF9 AA50 4F8F F1E2 C29E 9DA6 A0DF 8604 <francis7> yep * tlaurion (~tlaurion@dsl-154-8.b2b2c.ca) has joined #coreboot <francis7> lynxis, weird though <francis7> the mute didn't seem to work earlier. <francis7> maybe I was only testing it on headphones <francis7> even in factory bios, the mute only mutes the internal speakers built into the laptop <francis7> external speakers/headphones are not muted via that button <francis7> I apologize for wasting your time....
On 22/08/15 18:40, Francis Rowe wrote:
On 22/08/15 18:13, Alexander Couzens wrote:
Would it help if I include logs here? If so, which logs?
ectool will also show some timers, which are counting upwards in the dump. Last time I've looked at the ECDT (x201) it doesn't contain any additional information. There are multiple ways to provide the information saved in the ECDT. Coreboot is using the DSDT for that.
Let's say you know which byte is changing in the EC ram, what would you do than?
Best, lynxis
Here is the diff (from factory BIOS):
user@user-ThinkPad-X200:~/Desktop$ diff -u ectool.log ectool.mute.log --- ectool.log 2015-08-22 16:14:32.602441403 +0100 +++ ectool.mute.log 2015-08-22 16:14:38.780364169 +0100 @@ -2,13 +2,13 @@
00: a6 05 a0 00 fe 96 00 00 1f 02 47 00 00 00 80 00 10: 00 00 ff ff f4 3c 87 09 5b ff 83 04 ff ff 2d 00 -20: 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 80 -30: 07 00 02 00 30 04 00 00 00 00 20 10 00 50 00 00 +20: 00 00 00 00 00 00 00 df 00 00 00 00 00 00 00 80 +30: 47 00 02 00 30 04 00 00 00 00 20 10 00 50 00 00 40: 00 00 00 00 00 00 14 04 40 01 00 00 00 00 00 00 50: 00 c0 02 19 df 07 08 16 0e 0a 31 04 04 d0 07 48 60: 0d d8 0e cc 10 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 12 30 80 27 32 80 2c 80 80 80 80 -80: 00 00 00 06 ce 0e 03 00 00 00 00 00 00 00 6c 00 +80: 00 00 00 06 e3 0e 03 00 00 00 00 00 00 00 6c 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x27 changes. 0x30 changes. 0x84 changes.
Here is the diff from coreboot (on another X200, though, so probably different EC version):
user@user-ThinkPad-X200:~/Desktop$ diff -u ectool.log ectool.mute.log --- ectool.log 2015-08-22 17:31:27.684144336 +0100 +++ ectool.mute.log 2015-08-22 17:31:34.775508137 +0100 @@ -2,17 +2,17 @@
00: a6 04 a0 11 fe 96 00 00 1f 02 43 00 00 00 80 00 10: 00 00 ff ff f4 3c 80 01 01 ff ff ff ff ff 00 00 -20: 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 80 -30: 03 00 00 00 30 04 00 00 00 00 70 10 00 00 00 00 +20: 00 00 00 00 00 00 00 58 00 00 00 00 00 00 00 80 +30: 43 00 00 00 30 04 00 00 00 00 70 10 00 00 00 00 40: 00 00 00 00 00 00 14 04 42 01 00 00 00 00 00 00 50: 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 12 30 80 30 2f 80 33 80 80 80 80 -80: 00 00 00 00 6c 0e 00 00 00 00 00 00 00 00 00 00 +80: 00 00 00 00 6a 0e 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 33 38 80 80 80 80 80 80 00 41 1a 00 00 00 00 00 +c0: 33 37 80 80 80 80 80 80 00 41 0d 00 00 00 00 00 d0: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 10 60 b9 06 04 2e 55 03 f0: 37 58 48 54 32 34 57 57 13 74 62 b4 13 74 61 9c
0x27 changes. 0x30 changes. 0x84 changes.
Also on this dump, 0xc1 and 0xca change.
I'm not currently sure what to make of this.
- -- Minifree Ltd, trading as Ministry of Freedom | Registered in England, No. 9361826 | VAT No. GB202190462 Registered Office: 19 Hilton Road, Canvey Island, Essex SS8 9QA, UK | Tel: +44 (0) 1268 857 837 | Web: http://minifree.org/
Use free software. Use GNU/Linux. https://www.gnu.org/philosophy/free-sw.html