Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add guide for address discovery #152

Merged
merged 22 commits into from
Nov 2, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 40 additions & 2 deletions docs/device_support_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@ There are two main methods to get your MSI laptop supported: the recommended met

# Table of contents

+ FW naming and WMI versioning explanation
+ [Windows](#windows-method-recommended)
+ [RWE guide](#windows-method-recommended)
+ [MsiEcRamEditor](https://github.com/timschneeb/MsiEcRamEditor) (WMI2 only)
+ [Linux](#linux-method)
+ [`msi-ec`](#msi-ec-debug-mode)
+ [`ec-sys`](#ec-sys-method)
+ [dd from `/dev/mem`](#reading-the-ec-ram-mapped-to-system-memory)
+ Known addresses
+ [Contribution](#contribution)
+ [Firmware naming and generations](#firmware-naming)
+ [Firmware generations](#firmware-generations)
+ [Common addresses](#common-addresses)

# Windows method (recommended):

Expand Down Expand Up @@ -163,3 +165,39 @@ To read EC memory in text form run:
To save EC memory in text form run:

+ `sudo dd if=/dev/mem bs=1 skip=4227860480 count=256 | hexdump -C > ec_dump.txt`

# Contribution

## Firmware naming
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a solid explanation , but it's better to put it in another documentation

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably don't need more then 1 guide now

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should probably be in a separate guide.

Some people have been requesting a guide on adding a config to the code and I think it also doesn't belong in this file.

We can make a file with a "Contribution" guide that:

  1. refers people to this guide if they want to contribute by discovering their laptops' configs (this is a separate file because it is big)
  2. provides some specific info like FW naming and generations
  3. explains how to add a config to the code


| EC | BIOS | Series |
|:-------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------:|:-----------------------:|
| ${\color{red}xxxx}{\color{orange}b}{MS}{\color{yellow}n}{.}{\color{WildStrawberry}y}{\color{YellowOrange}zz}$ | ${E}{\color{red}xxxx}{\color{orange}b}{MS.}{\color{WildStrawberry}y}{\color{YellowOrange}zz}$ | Business/Creator/Gaming |
| ${\color{red}xxxx}{\color{orange}b}{WS}{\color{yellow}n}{.}{\color{WildStrawberry}y}{\color{YellowOrange}zz}$ | ${E}{\color{red}xxxx}{\color{orange}b}{WS.}{\color{WildStrawberry}y}{\color{YellowOrange}zz}$ | Workstation/CreatorPRO |

+ ${\color{red}xxxx}$ - model code
+ ${\color{orange}b}$ - CPU/EC vendor
+ For BIOS:
+ A - AMD CPU
+ I - Intel CPU
+ For EC:
+ E - ENE
+ I - ITE
+ ${\color{yellow}n}$ - EC / board(?) model
+ ${\color{WildStrawberry}y}{\color{YellowOrange}zz}$ - version
+ ${\color{WildStrawberry}y}$ - board generation; firmware is incompatible if different
+ ${\color{YellowOrange}zz}$ - firmware version

## Firmware generations
mutchiko marked this conversation as resolved.
Show resolved Hide resolved

Now we know about 2 firmware generations, which we call `WMI1` and `WMI2`. `WMI` is Windows component,
but MSI used `WMI2` name for the part that interacts with hardware via the Windows ACPI-WMI subsystem.

+ `WMI1`
+ Intel CPU Gen 10 based and older
+ All AMD based laptops, except Gaming series with 7 Gen CPU
+ `WMI2`
+ Intel CPU Gen 11 based and newer
+ Gaming series with AMD 7 Gen CPU and newer

## Common addresses