What EC is used?

The Intel Framework Laptop 13s use a Microchip MEC1521, and the AMD ones (13" and 16") use a Nuvoton NPCX9.

Intel

The embedded controller firmware is based on an older version of the ChromeOS EC; this is what is in the default branch (hx20-hx30). It diverges heavily from the main branch, because main tracks ChromeOS upstream.

Apart from the modifications to the core EC “OS”, all of the code is in baseboard/fwk and board/hx[23]0.

AMD

This one is based on the Zephyr port of the ChromeOS EC, and tracks mainline more closely. It is in the branch lotus-zephyr.

All of the model-specific code lives in zephyr/program/lotus.

The 13"-specific code lives in a few subdirectories off the main tree named azalea.


The EC host command API has been very stable.
The communication interface changed between the MEC1521 and NPCX9; more details are available in this Linux patch series.

If you’re looking to develop a tool for the 16" model, you’ll need to switch to the NPCX9 communication protocol with Framework’s specific modifications to the memory-mapped I/O region.

I’ve been working on porting FrameworkHacksPkg (my EC UEFI toolkit) and CrosEC (my Windows driver) for the same. :smile:

19 Likes