Coreboot Hikes The Bay Trail To DRAM Initialization

This article is written on an open-source operating system, but not an open-source machine — the BIOS isn’t open-source, and even if it were supported by the coreboot project (formerly LinuxBIOS), there would still be a whole host of binary blobs required to get it to boot. On one vintage architecture, there’s one less blob, as coreboot can now initialize DRAM on Intel Bay Trail SOCs, as [Mate Kukri] presented in a talk at the recent Open Source Firmware Conference.

Bay Trail isn’t exactly cutting-edge hardware, to be sure — the SoCs are over a decade old at this point, and were only used in low-performance mobile applications like Chromebooks. On the other hand, coreboot has been on Chromebooks for at least as long. Getting DRAM set up is difficult because, well, you don’t have any memory to work with until you do. Traditionally, the way you did that was to call on one of the many proprietary ‘binary blobs’ provided with next to no documentation by the manufacturer. Reverse engineering that requires some serious bus-sluthing, which was done in software with the SerialICE debugger and the Unicorn Engine CPU emulator. The talk focused on that technique and how it might be applied more widely, rather than getting into the weeds of how to do DRAM init on one obsolete SOC. At some point the whole thing should be archived on the OFSC website so those of us not lucky enough to attend in person can hear what [Mate] — and all the other speakers — had to say.

Because coreboot is open, you can do a lot more with it than a proprietary UEFI firmware — for example, you can choose not to initialize RAM at all, and run entirely in the CPU’s cache. You can also — of course — run DOOM. If you want to be binary-blob-free, you’ll need to find hardware supported by the more hardcore Libreboot distribution of coreboot, which admits no binary blobs at all. When it comes to Libreboot, it might actually be easier to install than to find compatible hardware these days.

18 thoughts on “Coreboot Hikes The Bay Trail To DRAM Initialization”

    1. No,you see, that’s where the edge stopped: Bay Trail. That was it. The edge was cut, and we’re just far beyond the cutting edge now.
      Or maybe it was a typo.
      Maybe it’s even been fixed.

    2. Certainly was bleeding edge hardware, though – it was the generation of chips where Intel had forgooten about the laws of physics as they interacted with silicon circuits for a while, with the result that pretty much every interface on the chip except video would degrade with use: the USB ports have a maximum 50TB transfer life, for example.

    1. It always ran on that e-waste hardware, now it just does it with one fewer binary blob. That may sound even less exciting to you, but the key here is the techniques used to reverse engineer that blob– they seem like they’d be applicable elsewhere, which should hopefully lead to more open computing. If you don’t care about that, well, the whole thing is a waste of time. If you do care about open source firmware, though, it’s pretty neat to hear.

      1. Wake me up when they replace IME. That’s the ultimate cancer which makes every x86 system perma-backdoored and compromised no matter if it runs Windows, Linux or even MS DOS.

        Of course there are Russian Elbrus or Chinese Loongson x86-compatible CPUs without US backdoors. However due to abysmal performance they’re useless for modern gaming unless you’re into playing titles from roughly GeForce FX era.

        1. However due to abysmal performance they’re useless for modern gaming unless you’re into playing titles from roughly GeForce FX era.

          Or let’s just use sane resolutions/color depths instead.

          Super VGA in 800×600 pixel in 15-Bit or 16-Bit color depth (displays pixel perfect on 1600×1200 monitors).
          Normal Standard VGA in 640×480 pixel is fine for CRT TVs.
          But we can try 512×384 pixel for improved performance, too.
          Tomb Raider supported it, for ecample.

          I know, at first it doesn’t seem to be the yellow from the egg!
          But gameplay will be butter smooth!

          These configs were good enough when we had our Pentium MMX PCs with Voodoo cards and DOS/Windows 98SE, after all.
          – What used to be right can’t be wrong now, after all!?

  1. In a past civilised era processor manufacturers published things like a guide to writing a BIOS. What they have to gain from not doing so and forcing people into having to spend endless time figuring out how things work is something I would like to see others’ views on.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.