Is it possible to boot Linux on a x86 machine with U-Boot?

7,816

Yes. Linux can boot directly from a variety of firmware implementations including U-Boot.

As for loading an OS, U-Boot supports directly booting a 32-bit or 64-bit Linux kernel as part of a FIT image. It also supports a compressed zImage. U-Boot supports loading an x86 VxWorks kernel. Please check README.vxworks for more details.

https://github.com/qemu/u-boot/blob/v2019.07/doc/README.x86

U-Boot on x86 (Updated 15-May-15)

U-Boot supports running as a Coreboot payload on x86. So far only link (Chromebook pixel), Minnowboard, qmemu, broadwell CRB and a few others have been tested, but it should work with minimal adjustments on other x86 boards since Coreboot deals with most of the low-level details.

x86 has been converted to use driver model for serial, GPIO, CPU, PCI and SPI.

U-Boot also supports directly booting a 32-bit or 64-bit kernel, as part of a FIT image. It also supports a compressed zImage.

U-Boot also supports running 'raw' without Coreboot on x86. So far ivybridge, tunnel creek (Atom), Baytrail (Minnowboard Max), Galileo and qemu are supported.

Finally you can run U-Boot on EFI as either an application (which uses EFI services and allows return to EFI) or a payload (where U-Boot takes over the machine and boot from there).

Full instructions are in the source tree at doc/README.x86.

https://www.denx.de/wiki/U-Boot/X86

Currently Chromebooks on x86 uses U-Boot to load coreboot

Share:
7,816

Related videos on Youtube

Manohar
Author by

Manohar

Updated on September 18, 2022

Comments

  • Manohar
    Manohar over 1 year

    This is my understanding: BIOS does the basic initialization of the chipset and starts the boot loader which fires up the OS. And most advanced OS like Linux doesn't use BIOS. Also, embedded platforms based on ARM and other architectures use U-Boot for bootstraping the OS.

    Given all this: is it possible to bring up Linux on an x86 machine with U-Boot and no BIOS? Do the IBM PC/x86 based machines have an architectural dependency on BIOS to boot up?

    • user55325
      user55325 about 10 years
      In theory, it's possible. U-Boot does support x86. However, you will probably have a hard time getting it to work on an arbitrary x86 box. (Also, I'm not sure why you'd want to. Maybe look into coreboot instead?)
    • 0andriy
      0andriy over 7 years
      There is even platforms that run U-Boot, like Intel Edison.