Hacker News new | past | comments | ask | show | jobs | submit login

I think Coreboot is useful for some things, but I did not like it when Chromebooks used it because using different firmware for different OSes defeats the purpose of firmware standards. I think it is possible to run UEFI as a payload in coreboot.



Prototypes exist (eg https://github.com/pgeorgi/edk2 or http://notabs.org/coreboot/duet-payload/). But UEFI just isn't that great.

And when it comes to open firmware standards, why didn't Intel go with IEEE1275 but invent its own? firmware standards really exist aplenty, defusing any claim that any single one of them "should" be implemented because it's a standard.


firmware standards really exist aplenty, defusing any claim that any single one of them "should" be implemented because it's a standard.

New Win8.x machines are required to boot using UEFI, and OF on x86 was never popular anyway. To show some of the harms this situation have caused BTW, LKML has a lot of posts about various UEFI firmware bugs, and remember that Chrome OS is based on the Linux kernel.


These UEFI firmware bugs are completely avoided by choosing an interface with a smaller footprint. As in: not much of an interface at all. This is what makes ChromeOS work while UEFI still fails at times.

No moving parts means no worries - that's a lesson the UEFI architects never understood.

So they built that living hell of runtime composable components for something that generally tries to get out of the way in as few milliseconds as possible. Some of these components survive long into the operating system's domain, messing things up there. The architecture doesn't allow for build time controls (eg. why did boot services used by runtime services, a common bug a couple of years ago, not trip up a linker? because they incapacitated the linker through this design).

And best of all, thanks to Intel relentlessly pushing that crap into the market, we'll get to "enjoy" it for the next three decades or so.

Apart from being able to check the "Windows" checkbox on marketing material, I actively avoid UEFI because of this horrid imitation of software design.

UEFI is that bad.


Yes, I know UEFI is not perfect, but the problem with PC OEMs only caring about Windows existed long before UEFI, and my point is that Chromebooks using different firmware only make the problem worse. ARM SBSA uses UEFI and ACPI BTW even though there is no Windows Server RT.


I remember reading a page that said it was because of ACPI. I will try to dig out a reference.


I heard that claim. I also heard the claim that it was due to Not Invented Here.


That kind of defeats the purpose of open source firmware, doesn't it?


Remember that TianoCore itself is open source.


The open source part of Tiano doesn't make a firmware on x86. It's missing _all_ early hardware init because Intel considers that secret.

Combining coreboot and Tianocore can build an open source x86 UEFI. But unless you need the network boot feature, UEFI is a waste of time and space.


And I also forgot to mention that OEMs don't typically ship Win8 machines booting with legacy BIOS. But they are not likely to adopt coreboot anyway.


You can boot Windows with UEFI, and it is easier to implement than legacy BIOS (which requires a lot of reverse engineering).


legacy BIOS: see www.seabios.org, written in C.

It's good enough for KVM (that Linux virtualization technology), which boots Windows all the time.


Many coreboot installs(including those on x86 chromebooks) have SeaBIOS included. you just press C-l at boot and it drops you into the standard PC BIOS. If you've gone through and removed the warranty-voiding screw(which is not warranty-voiding in europe) you can enable it by default(and also just load your kernel directly as a payload, which I think is a better idea).

There is also talk, and perhaps actual implementation, of TianoCore running on top of coreboot.

SeaBIOS is also used by VirtualBox, and probably Xen as well.


That is why I said "easier".


Which doesn't matter since both seabios and tianocore already exist.

But seabios is much, much easier to integrate because it has fewer moving parts


Most x86 chromebooks have SeaBIOS included in their coreboot payload, you can just press C-l and it'll drop you to a standard BIOS, I use this to run a PC GNU/Linux distro on my C720P.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: