This is another one of those “I bet you haven’t seen this before” moments. Thanks to Matt DeVillier and Aaron Durbin for giving me a sniff at where to start. You will see from the above that’s Grub2 and it’s running on an Acer Chromebook R11 (Braswell).
- Mouse (at least on Fedora 23)
- USB booting
What doesn’t work?
- Text mode display is slow (if you have a big Grub menu like I do, it takes upwards of a minute to draw it and get the timer up).
- Sound (at least in Fedora 23)
- eMMC (the controller addresses we have are wrong and I can’t currently find out what they should be, as the cbmem output is truncated to the tune of 23kb, which means we don’t see the sdcard controller addresses, or anything to do with SeaBIOS)
- Updating the RW_LEGACY slot from within Linux (as the static version of flashrom I currently have isn’t new enough to deal with the SPI chip on the R11)
How did you do it?
As usual, it was a fudge of a few things. First of all I used the ChromiumOS SDK to build the actual RW_LEGACY slot (so it has the correct offset, etc in) “emerge-cyan –nodeps chromeos-seabios” is the pertinent command, which places the resultant RW_LEGACY CBFS at /build/cyan/firmware/seabios.cbfs.serial of the chroot. Then I made a few mods like putting the Baytrail payload in, renaming seavgabios.rom to pci8086,22b1.rom in the CBFS, and removing the links file.
Where can I find the file to try myself?
It’s at https://johnlewis.ie/Chromebook-ROMs/legacy-slots/legacy-seabios-cyan-310316.cbfs, md5sum c0effe935130bd6b53704b07a9bfc7c1 and you can apply it by running:
flashrom -w -i RW_LEGACY:legacy-seabios-cyan-310316.cbfs