Mate Kukri
Mate is a software engineer passionate about building a more secure and reliable computing experience by bringing free and open source to the lowest levels of the software stack.
He has been a contributor to the coreboot project for the last few years, working on retrofitting coreboot to various pieces of existing hardware.
He is currently a maintainer of the bootloader stack and UEFI Secure Boot support in a major Linux distribution.
Teaching an Old SoC New Tricks: Native raminit for Bay Trail
There has been a long-term urban legend around the difficulty of implementing native DRAM initialization in coreboot.
Firmware code running at this stage has no main memory available, and must grapple with a
small amount of CPU cache as data storage.
DRAM initialization entails retrieving memory chip characteristics for each channel, calculating common parameters, programming a large set of memory controller registers, and then DDR PHY registers.
Afterwards a set of SoC-specific and JEDEC-standard training algorithms must be performed to empirically derive a set of delays based on limited hardware-level signal feedback.
And all this has lived in proprietary "MRC" blobs with hardly any documentation for a long time,
deterring most coreboot developers from even attempting to produce open source code for this task.
This talk takes the 10+ year-old Intel Bay Trail platform, which has lived in coreboot ever since
Chromebooks were released with this SoC.
Instead of focusing on the low-level details of this specific platform, this talk will use it as a
case study for modern techniques for reverse engineering and then implementing open source code
for this DRAM initialization step.
It will showcase the use of SerialICE modernized with the Unicorn Engine to trace the operation of binary blobs, and how it can also be repurposed and combined with new harnesses to allow the rapid prototyping of the core algorithms. It will then show how careful, skeptical use of modern LLM-based tooling accelerated the conversion of this into a working, prototype-quality coreboot implementation capable of booting on multiple real boards.