Hacker News new | ask | show | jobs
by reynhout 3731 days ago
Parts of the factory firmware are open, including coreboot and SeaBIOS (where applicable) -- but not the whole ROM, and none of the build configurations are published, as far as I know.

I'd love to be wrong though, so I'd appreciate pointers to any sources.

1 comments

Except for files that cannot be redistributed (because silicon vendor silliness), everything is open: scripts, ebuilds, configurations, sources. GalliumOS can't be more open than that (hence my "just as open" qualifier).

When it comes to coreboot and libpayload (same tree, really), everything on ChromeOS' main development branches is pushed upstream. depthcharge is a Chrome OS project, so it is its own upstream. Same for ChromeEC.

There are boards that never make it to the main branches - but that doesn't mean that stuff is kept secret, it's just that for firmware, Chrome OS uses separate branches (because things shouldn't change too much in firmware that's in the field). So at some point when the reference design stabilized, a firmware branch is created. Any support for spin-off devices happens in that branch only (because who knows what happened to master in the meantime?).

In general, the branch naming scheme is {firmware,factory}-$board_name-$some_version_number.

For coreboot on veyron (ARM, Rockchip RK3288, firmware all open source with _no_ blobs), the configuration is in https://chromium.googlesource.com/chromiumos/third_party/cor..., for example. Compared to the master branch, they're at a different location - but that's because things moved in master in the meantime (third_party/coreboot/configs used to be the canonical location).

If stuff seems missing, a good place to ask for pointers is #chromium-os on Freenode (but it's a low-volume channel, so please wait for an answer, and maybe repeat the question after a couple of hours).

Disclosure: I work on upstream coreboot and Chrome OS firmware.

Thank you for the info.

The work on third-party firmware is not directly a part of GalliumOS, but the projects are symbiotic. You've probably encountered the folks who focus on firmware in other venues as well.

I know booting arbitrary Linux distros is not a goal of factory firmware builds, but often it's almost there -- just not fully implemented, or not fully tested. If you're in any way involved in keeping that functionality alive, we appreciate it.