Frenc

From coreboot
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

What is frenc

frenc is a open source embedded controller firmware for the H8s which is the embedded controller of many Lenovo Thinkpads and some Macbooks. frenc itself is a bootloader for h8s. While developing a full open source firmware for the H8s, it came to the point, a split of the firmware into two parts could speed up the development. One part is a bootloader, one part is an application. Why? Because Lenovo used several of the debug wires for other purpose. How do you do development, when you an error could end in a brick or you have to resolder 5 pins on undocumented locations. With a bootloader in place, the development can start and we can recover from broken applications.

firmware boot up

  • code executed on the reset vector
  • frenc (boot loader)
  • application (operating system)

is frenc working on $thinkpad_model ?

Atm: No. When major features of frenc are finished, the development of the application can begun. But for every model, it needs modification to fit the exact board. It may possible to support multiple boards with one firmware and detect the exact model.

remaining major tasks

  • finish xmodem support
  • implement flash hardware support
  • implement i2c master/slave hardware support
  • allow console handle i2c i/o
  • write a buspirate uart console based on i2c

blog entries

The most things are done while Google Summer of Code (GSoC) 2015 is documented in blog posts.Take a look to blogs.coreboot.org and the early steps (pre-GSoC) can be found on lunarius.fe80.eu.

naming

It's name is a combined word from Frank and ec. Frank short form Frankenstein. The board looks really like frankenstein. Lot's of modification, replaced some brain and we got electricity. But yet there is no thunderbolt.

source code

github