[RESPONDED] Coreboot on the Framework Laptop

This brings me a lot of hope for the future of Coreboot, MSI Z790-P is a modern motherboard!

4 Likes

Was randomly trawling the Framework forums this morning and stumbled across this thread about enabling Resizable BAR. It was originally opened about a year ago. Whilst the participants in there have found some workarounds to enable ReBAR, there’s never been any official Framework assistance or response to this matter.

I think this is a great example of why we need something like coreboot. ReBAR didn’t matter so much a couple of years ago (though I do remember messing with it years ago whilst trying to get GPU passthrough working under Xen…), but it matters more today with the mainstream release of Arc GPUs.

Looks like coreboot supports ReBAR enablement: https://github.com/coreboot/coreboot/blob/master/src/device/Kconfig#L668

So, pretending that we already had coreboot firmware shipped when this thread was first opened, I can imagine a scenario where someone from the community says “huh, let me try a build of coreboot with PCIEXP_SUPPORT_RESIZABLE_BARS enabled…”, produces said build, and it’s available for testing the next day, and in a stable release the next week/month.

3 Likes

It’s great that coreboot now has official targets for the absolute latest chipsets, but FWIW we were already at the point that it could be considered to run on “modern motherboards” last year: https://www.phoronix.com/review/coreboot-adl-dream

I’d be curious how much work from that Z690 enablement was useful for the Z790 bring-up. If the answer is “alot” then likely we’d see the same re-use if the bring-up is done for 11th gen and then that work is carried forwards for 12th gen + 13th gen bring-up.

2 Likes

Are there different implementations of Coreboot?

As a System 76 GALP5 owner, I’m not all that fond of Coreboot’s options. Granted I’m not a developer so maybe you need to be one to be able to configure it to your heart’s content. But from my POV, the firmware is stripped down and doesn’t give me access to settings I’d need from something like Phoenix.

To this day, no idea how to switch to legacy mode (it doesn’t seem to have that), configure TPM, memory timing/speeds, edit boot entries (requires knowledge of bcdedit or efi cmd line tools), etc.

Again, probably have OS-level config tools, but System76 doesn’t have an all-in-one firmware settings app (nothing like a GUI that exposes traditional firmware/BIOS settings). They have command line packages for various things like power management, battery charging limitation setting, etc.

Coreboot is amazing for some people who has a handle on that kind of access, but not everyone does. There are still people who complain about System76 use of Coreboot. Yes it’s faster because it’s stripped down, but not everyone wants it stripped down. Most people are just used to a traditional firmware.

If Framework can offer two different firmwares you can swap between easily, then sure.

System76 offers a way to get the proprietary firmware back on the laptop but I believe it requires special tools most people don’t have.

I’m personally having issues with dual booting PopOS and Windows 11 on my GALP5 and Coreboot left a very nasty taste in my mouth right now. Waiting on System76 to fix the issues turned it into a Linux only laptop for me (which isnfine for those whomuust want Linux) . They didn’t release a new firmware until my laptop was 2 generations old. And it still didn’t fix the issue.

I don’t want this to happen to my Framework laptop.

Here’s a video of mine showing System76 Coreboot.

3 Likes

Are there different implementations of Coreboot?

Coreboot is kinda like the Linux kernel. It’s a low level codebase that handles the super early initialization (from cold power-on) of the various bits of silicon in your computer. It’s the software that is initializing your DDR memory controllers, pulling the CPU up from 16bit real mode thru to 64 bit, etc.

I think the Linux kernel analogy is especially apt when you think about something like a BIOS configuration screen. You wouldn’t expect the Linux kernel to present a GUI on a screen. It provides the low level DRI stuff. But then you need something like Mesa to implement 2D/3D rasterization APIs, a Wayland display server implementation (e.g Weston), and then finally a window manager (like Mutter) to handle drawing pretty UI elements and such.

So yeah, coreboot isn’t really for someone who just wants to press F1 and configure some settings graphically before booting into Windows or a vanilla Ubuntu installation. It’s for power users, system integrators, and such. Of course, there’s nothing stopping someone from implementing a fancy GUI payload on top of coreboot that functions similar to what you typically expect from a proprietary BIOS blob.

To this day, no idea how to switch to legacy mode

Someone with more experience can speak specifically to this, but if you’re referring to CSM mode I dunno if coreboot would ever bother supporting that.

As mentioned, Coreboot is very low level. It configures memory controllers, uploads FSP blob to your Intel CPU, and then it hands over to a “payload”. The typical payloads you’d be using are either SeaBIOS (for the legacy BIOS you’re probably looking for) or TianoCore (for a UEFI boot environment).

Coreboot is very niche. As noted in this thread, you can count the number of standard mainstream ATX/ITX mainboards produced in the last decade supported by coreboot on one hand. It has a lot more adoption in the netbook world because Google chose it for Chromebooks. But Google doesn’t want you to configure a Chromebook any further than the cart customization you do every 3 months in their checkout page so that we can all drown in e-waste.

I can imagine that coreboot gains a lot more traction over the next few years, which attracts more vendor interest and demand for end-user-friendly GUI configuration tools, either at F1 on boot, or from userland in a booted OS.

In summary, I wouldn’t expect Framework to completely drop the current InsydeH2O payload shipping on their laptops today. In fact, I would expect a consumer-focused company like Framework to continue shipping that BIOS (or something like it) by default indefinitely.

As I’ve noted earlier, it’s more about what happens 5 years from now when Framework stop supporting their old 11th gen laptops. It’s also about enabling folks to do whatever they want to do with their Framework mainboards once a laptop has reached its end of life. Or put differently, preventing an item from ending up as e-waste.

10 Likes

Also just to complicate things further, the boundaries of what is handled by BIOS have blurred over the last few years. Especially in portable devices. Nowadays, those things are handled by the “embedded controller”, which is distinct hardware independent(…ish?) of the software that executes on the CPU once it powers up.

Framework allows you to configure the things you mentioned (battery charging limits and fan curves for example) from the F1 (er, well, F2 on Framework laptops!) BIOS screen, but you can also configure them with a command-line tool: Exploring the Embedded Controller

2 Likes

I see. That makes sense. Then yeah, I personally am not equipped mentally for Coreboot, lol. Too barebones. If someone develops a GUI to go on top and replicates all the settings that the stock proprietary firmware interface exposes and more (that’s what I was hoping for when I bought my System76), then great.

Currently I’m having boot entry issues with mine, AND it has a nasty bug where after a few edits using efi tools in either Windows or Linux, the boot entries in the firmware won’t save. The System 76 team wrote me a custom firmware to flash to clear all settings and used me as a tester to see if they fixed the read only issues (it goes read only after a few efi changes). I eventually just gave up. It’s now a single boot laptop for PopOS and I vowed never to go Coreboot for my next machine.

See my video I posted earlier.

Also this one showing boot entry issues.

3 Likes

Windows 11 installed was using DISM so I bypassed the TPM and Secure Boot requirements. But System76 didn’t offer any solutions to that even now. I’m running their latest firmware release which is pretty old.

There are branches that have various fixes but nothing released yet. If I want, I could compile to try, but what normie wants to do that? Plus have potential for other bugs on an unreleased branch that’s just being tested.

And that’s my issue with Coreboot (at least this implimentation). I remembered I tried my hand at fixing the fan curves. I found the part where you can edit it in the source code and did it. Someone did it better eventually. But the issue was I had to download the entire thing, edit, compile, then flash. Nerve-racking. And I can see how most people won’t or can’t do this.

And if you don’t like what the community pushed curves, good luck.

That’s what I mean it’s probably great for a certain kind of person. You can customize everything if you k ow how to and have the tenacity. Most people don’t.

Framework is trying to be for everyone, including PC enthusiasts. Most PC enthusiasts are not developers who understand GitHub, C++, or Rust. You need these skills to “customize to your heart’s content” competently.

When I bought my System76, I thought Coreboot being open source is an awesome idea, but didn’t know what I was getting myself into. I thought it would have more options. Thought it was like open source firewall where it’s still easy to use but with a lot more options. Turns out it’s barely any options unless you do things in the source code.

Until System76 develop a standard GUI to expose all the settings an enthusiast expects, it’s more of a developer’s wet dream than for an enthusiast like me.

I’ve gone pretty far to mess with the code but it’s not something I want to keep doing just to adjust memory timings and fan curves.

The only exposed setting is boot order. You don’t even have access to edit boot entries in the firmware interface. As you see in my video, I did everything with command line in an OS. If you don’t even have the option to boot into an OS, you might be borked.

So if Framework does eventually go Coreboot, either make it so it’s a direct 1 to 1 replacement feature wise to the InsydeH2O bios or offer Coreboot as a (non-default) option.

6 Likes

this is why I want a coreboot capable machine and be able to change the code aswell. I want to see if I can develop such menu and configuration options. or see if there is a payload that allows such thing. (a small linux kernel and init that does exactly this would be a way, but does take more space next to for example UEFI and Seabios payloads). ( I have a few boards and a older laptop that might be compatible already. just not my main Framework (yet))

just coreboot that I cant change on a FW laptop would be cool, but just as usefull as InsydeH20. I trust the code a bit more tho, being opensourced. but I see your experience and many folks should be aware of what youve experienced. thank you for sharing your experience. hope it helps warn some of us to be sure what we are getting ourselves into.

2 Likes

Definitely not for me, and definitely for you. :+1:

I’d love to see what you end up making!

1 Like

I didn’t know that. My impression was that there was a GUI comparable to at least the old school BIOS present similar to present Framework BIOS. That sucks.

2 Likes

I don’t know how feature complete it is compared to H2O or AMI but Starlabs employs CFR to enable user-facing coreboot configuration, but it seems to offer more options than the System76 configurator.

5 Likes

I suspect quite a few people who have said they’d like to have coreboot don’t realize. I want it to be an option on Framework only because I want coreboot to grow and get better, I wouldn’t likely use it myself at this point.

8 Likes

I have seen various coreboot screens online that have a GUI, albeit similar to desktop systems BIOSes from years back. That formed my impression of how coreboot looked like. But thinking again, I guess it makes sense because a GUI frontend doesn’t have to be part of coreboot considering the open source nature.

1 Like

I’ll freely admit I’m one of them. If Coreboot is ported to the Framework, it needs to offer at least as much functionality as current Insyde BIOS. It doesn’t need to be pretty, the Grey/Blue BIOS is fine as it is perfectly serviceable even if it isn’t as attractive to look at as the 13th gen BIOS.

I think we should make a Matrix chat for the coreboot discussion.

2 Likes

Feel free to join Dasharo Matrix Community.

2 Likes

It looks like the CoreBoot team is looking for input on the fediverse.

It might be good to get a few more replies in for framework. :slight_smile:

12 Likes

Progress? https://chaos.social/@migy/111236977994924741

1 Like

That link doesn’t work for me

4 Likes