BeardOverflow / msi-ec

GNU General Public License v2.0
134 stars 41 forks source link

Add new/old versions for summit_e14_evo (a12m-066) #103

Closed glpnk closed 1 month ago

glpnk commented 5 months ago

Laptop model

Summit E14Evo A12M

EC firmware version

14F1EMS1.115 (#30) + new versions 114, 118; mentioned in changelog 116 #79, 117

EC memory dump

14f1ems1.114

     | _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f
-----+------------------------------------------------
0x0_ | 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x2_ | 00 00 00 00 00 00 00 00 0a 05 00 80 80 0c 08 08
0x3_ | 07 01 00 0d 00 00 50 81 c2 11 28 3c c8 01 c0 00
0x4_ | bc 11 4d 00 48 12 00 00 f8 0d d2 3f be 0b c0 44
0x5_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x6_ | 00 00 00 00 00 00 00 00 2f 00 3c 46 50 55 5a 5f
0x7_ | 64 31 31 49 5a 66 83 96 96 00 0a 08 08 03 03 03
0x8_ | 00 00 3c 46 50 55 5a 5f 59 44 44 47 50 56 64 6e
0x9_ | 78 41 0a 08 08 03 03 03 02 00 7d 06 0b 7d 2f 00
0xa_ | 31 34 46 31 45 4d 53 31 2e 31 31 34 30 37 30 34
0xb_ | 32 30 32 32 31 33 3a 34 38 3a 30 32 00 00 00 28
0xc_ | 00 00 01 25 00 00 00 00 00 a3 00 00 00 00 00 00
0xd_ | 00 00 c0 80 8d 00 05 d0 00 83 00 00 00 08 00 00
0xe_ | e2 00 00 48 12 01 00 80 00 04 00 00 00 c3 01 d0
0xf_ | 20 00 70 80 31 7f 05 00 64 00 00 00 00 00 00 00

14f1ems1.115 #30 #24

     | _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f
-----+------------------------------------------------
0x0_ | 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x2_ | 00 00 00 00 00 00 00 00 0a 05 00 00 08 0c 09 08
0x3_ | 07 09 00 05 00 00 50 81 c2 11 28 3c c8 01 e0 00
0x4_ | 00 00 5f 00 05 12 00 00 0a 11 48 43 e4 0b 00 00
0x5_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x6_ | 00 00 00 00 00 00 00 00 2d 00 3c 46 50 55 5a 5f
0x7_ | 64 2d 2d 32 3c 46 50 6e 78 00 0a 08 08 03 03 03
0x8_ | 00 00 3c 46 50 55 5a 5f 59 2d 2d 32 3c 46 50 6e
0x9_ | 78 41 0a 08 08 03 03 03 02 00 7d 06 0b 7d 2a 00
0xa_ | 31 34 46 31 45 4d 53 31 2e 31 31 35 30 39 31 33
0xb_ | 32 30 32 32 31 30 3a 30 34 3a 30 31 00 00 00 08
0xc_ | 00 00 06 22 00 00 00 00 00 00 00 00 00 00 00 00
0xd_ | 00 00 c1 83 0d 00 05 80 00 01 00 00 00 03 00 00
0xe_ | e2 00 00 05 12 01 00 81 00 04 00 00 00 c2 01 00
0xf_ | 00 00 70 00 2b 7f 05 00 64 00 00 00 00 00 00 00

14f1ems1.118

     | _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f
-----+------------------------------------------------
0x0_ | 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x2_ | 00 00 00 00 00 00 00 00 0a 05 00 00 08 2c 09 08
0x3_ | 07 03 00 0d 00 00 50 81 c2 11 28 3c c8 01 80 00
0x4_ | bc 11 4c 00 48 12 ae 05 d7 0d 64 41 c4 0b c0 44
0x5_ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x6_ | 00 00 00 00 00 00 00 00 2e 00 3c 46 50 55 5a 5f
0x7_ | 64 31 31 49 5a 66 83 96 96 57 05 08 08 12 03 03
0x8_ | 00 00 3c 46 50 55 5a 5f 64 44 44 47 50 56 64 6e
0x9_ | 78 00 05 03 08 03 03 03 06 25 7d 02 00 7d 2f 00
0xa_ | 31 34 46 31 45 4d 53 31 2e 31 31 38 30 34 31 34
0xb_ | 32 30 32 33 31 30 3a 35 35 3a 34 39 00 00 00 28
0xc_ | 00 00 06 22 00 00 00 00 00 a4 00 00 00 00 00 00
0xd_ | 00 00 c0 80 8d 00 03 80 00 01 00 00 00 07 00 00
0xe_ | e2 00 00 48 12 01 00 81 00 04 00 00 00 c0 01 00
0xf_ | 00 00 70 00 31 64 00 00 64 00 00 00 00 00 00 00

GPU

iGPU Intel

Is your keyboard RGB?

Single color

Additional context

24 #30

FW/CONF on msi-ec.c 8

Credits: @giga-bytes-dev @cpiber

glpnk commented 5 months ago

I think we need submit all version range 114..=118

@cpiber Please confirm do you have keyboard backlight?

Do you use windows on this laptop earlier/dualboot? If yes - do you set fan mode to manual (with fan curve settings)?

cpiber commented 5 months ago

@glpnk Yes, the keyboard backlight works, with 4 brightness levels (also on Linux)

MicMute LED not present

I do have a MIC mute, but the webcam is a physical switch and cannot be toggled via software I think.

Do you use windows on this laptop earlier/dualboot? If yes - do you set fan mode to manual (with fan curve settings)?

I do, I can change them, but only for "High performance", there I see two tabs for CPU and GPU

glpnk commented 5 months ago

there I see two tabs for CPU and GPU

How it look like?

the webcam is a physical switch and cannot be toggled via software I think

I now checked it on photo, thanks! Actually it can be setted from software. Also F6 button is soft toggle and this switch is lock for switch.

On photo led on mic button is missing, on audio mute is present

cpiber commented 5 months ago

there I see two tabs for CPU and GPU

How it look like?

Screenshot 2024-01-17 001127 Screenshot 2024-01-17 002517

I didn't capture a screenshot, but for the High Performance mode, I can choose the fan control between Auto, Advanced (leads to the setting shown) and Cooler Boost.

the webcam is a physical switch and cannot be toggled via software I think

I now checked it on photo, thanks! Actually it can be setted from software. Also F6 button is soft toggle and this switch is lock for switch.

The F6 key isn't a toggle, it's just a shortcut for the camera app, the switch is a physical switch on the side of the device. Even the Control Center can't toggle the webcam

Screenshot 2024-01-17 002540
glpnk commented 5 months ago

Yes, the keyboard backlight works, with 4 brightness levels

4 levels including off?

How many coolers you have? Do you have GPU or only in CPU?

Can you help to verify some values using this tool on Windows? https://github.com/ThePBone/MsiEcRamEditor Check next addresses:

If you want - try to find what is Tile and it's address, panel brightness address (this values could be not EC related)

Update:

By photo looks like your laptop has 2 coolers, but it shoot at weird angle and no photo of bottom.

cpiber commented 5 months ago

4 levels including off?

yes

How many coolers you have? Do you have GPU or only in CPU?

It claims both, but MControlCenter only ever shows the first fan to have any RPM, so not sure.

I will check the rest tomorrow, it's already quite late in my timezone

If you want - try to find what is Tile and it's address, panel brightness address (this values could be not EC related)

Tile just toggles the corresponding setting in the BIOS, for this i think: https://www.msi.com/Landing/MSIxTile/nb

cpiber commented 5 months ago

For charge limit I switched to "AI Charger" (0xd7 = 0xe4), then "Best for Mobility" (again 0xd7 = 0xe4), then "Balanced" (0xd7 = 0xd0), then "Best for Battery" (0xd7 = 0xbc).

Then tried around with the webcam. When the physical switch is off, both values are set to 0x08. When I switch it on, initially nothing happens, then both switch to 0x0a. I can now use the F6 button (you were right, there's just no indicator), when I disable then 0x2e switches to 0x08, 0x2f stays at 0x0a. Disabling using the physical switch resets both to 0x08 after some time.

I set the keyboard backlight to "Always on" (0x2c = 0x00), then back to "Auto turn off in 10 sec" (0x2c = 0x80).

0xeb is 0x00 for other modes and 0x0f for super battery.


The values above I got by manually checking the specified addresses. I tried excluding some of the randomly changing addresses and still can't seem to find a difference between "AI Charger" and "Best for Mobility" (maybe 0x4c, it seems to only change sometimes when "AI Charger" is selected).

Tile: Seems to be 0xe9, with 0x06 for ON and 0x04 for OFF (but only applies after restart, haven't checked how it looks after that, tests done with OFF).

Panel brightness: Can't seem to find it, though maybe I accidentally ignored it in the log. Note that the brightness works out of the box on linux.

By photo looks like your laptop has 2 coolers, but it shoot at weird angle and no photo of bottom.

I can get you some more photos if you need them.

glpnk commented 5 months ago

Thanks, I think it's anough. "AI" modes possibly is internal logic of program and not related to EC and BIOS.

glpnk commented 3 months ago

@cpiber Hi, are you still using this laptop? I've added results of your research, so you can test it. Also, I forgot to ask you about keyboard backlight level address, so entered default for test purpose. You can change light level with key and read current state to check if it changed. https://github.com/glpnk/msi-ec/tree/14F1EMS1

cat /sys/class/leds/msiacpi::kbd_backlight/brightness
echo <value 0-3> | sudo tee /sys/class/leds/msiacpi::kbd_backlight/brightness

To install: Download with

git clone -b 14F1EMS1 https://github.com/glpnk/msi-ec.git

Make and load

make
sudo rmmod msi-ec
sudo make load
cpiber commented 3 months ago

Yes, this laptop is my main driver, and I expect to use it for quite some time.

Keyboard backlight works fine.

I tested all the values mentioned in the Readme, and they seem to work fine (battery mode and shift mode seem reasonable, haven't tested extensively). cpu/basic_fan_speed and gpu/realtime_temperature don't seem to be available though.

For the LED subsystem, I noticed that only the mute LED is available. I have an fn lock LED on the ESC key, mute on F1, mic mute on F5 and CAPS lock (plus of course power).

Thank you for your work!

glpnk commented 3 months ago

It is only possible to control mute LEDs and keyboard backlight. In your case only audio mute and keyboard. Does keyboard backlight level is reported to Linux? Because previous maintainer say that it is not working and not add it to driver.

cpiber commented 3 months ago

It is only possible to control mute LEDs and keyboard backlight.

brightnessctl lists all 5 LEDs without msi-ec, though not all of them seem controllable. With msi-ec, the mute LED shows up from msi-ec and is controllable (the one from input15 does not work)

Does keyboard backlight level is reported to Linux?

I can control it with brightnessctl

glpnk commented 3 months ago

Fine, I PR it

teackot commented 3 months ago

I merged the PR, you can switch to the main branch