All Projects → TomatOrg → Tomatboot

TomatOrg / Tomatboot

Licence: bsd-2-clause
A UEFI 64bit Bootloader

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Tomatboot

Hekate
hekate - A GUI based Nintendo Switch Bootloader
Stars: ✭ 3,286 (+2914.68%)
Mutual labels:  uefi, bootloader
efi
Ergonomic Rust framework for writing UEFI applications.
Stars: ✭ 44 (-59.63%)
Mutual labels:  uefi, bootloader
Refind Minimal
A stunningly clean theme for the rEFInd UEFI boot manager.
Stars: ✭ 1,585 (+1354.13%)
Mutual labels:  uefi, bootloader
Veracrypt Dcs
VeraCrypt EFI Bootloader for EFI Windows system encryption (LGPL)
Stars: ✭ 81 (-25.69%)
Mutual labels:  uefi, bootloader
uefi-elf-bootloader
UEFI ELF Bootloader example
Stars: ✭ 40 (-63.3%)
Mutual labels:  uefi, bootloader
sicherboot
Unmaintained systemd-boot integration with secure boot support; consider https://github.com/Foxboron/sbctl instead.
Stars: ✭ 31 (-71.56%)
Mutual labels:  uefi, bootloader
Hackintosh-ASUS-A455LF-Notebook
EFI Folder for ASUS A455LF-WX039D Notebook Series with Clover/OpenCore Legacy or UEFI
Stars: ✭ 27 (-75.23%)
Mutual labels:  uefi, bootloader
systemboot
SystemBoot is a LinuxBoot distribution that works as a system firmware + bootloader, based on u-root
Stars: ✭ 103 (-5.5%)
Mutual labels:  uefi, bootloader
CloverEFI-4MU
Manually install Clover EFI Bootloader via Linux System on Legacy BIOS or UEFI Firmware.
Stars: ✭ 93 (-14.68%)
Mutual labels:  uefi, bootloader
MetalOS
Homebrew x64 OS written in C++ that runs Doom!
Stars: ✭ 33 (-69.72%)
Mutual labels:  uefi, bootloader
UEFI-Boot
Boot Linux directly from UEFI firmware (without any bootloader)
Stars: ✭ 38 (-65.14%)
Mutual labels:  uefi, bootloader
Aio Boot
AIO Boot is an All-in-One bootable software for USB and HDD. Is one of the best Multiboot USB Creator for Windows.
Stars: ✭ 300 (+175.23%)
Mutual labels:  uefi, bootloader
Yubikey Full Disk Encryption Secure Boot Uefi
Tutorial to create full disk encryption with YubiKey, encrypted boot partition and secure boot with UEFI
Stars: ✭ 62 (-43.12%)
Mutual labels:  uefi
Micronucleus
ATTiny usb bootloader with a strong emphasis on bootloader compactness.
Stars: ✭ 1,240 (+1037.61%)
Mutual labels:  bootloader
Oc Little
ACPI Hotpatch Samples for the OpenCore Bootloader
Stars: ✭ 1,088 (+898.17%)
Mutual labels:  bootloader
Mu plus
Microsoft Core UEFI Value
Stars: ✭ 95 (-12.84%)
Mutual labels:  uefi
Pongoos
pongoOS
Stars: ✭ 1,058 (+870.64%)
Mutual labels:  bootloader
Punchboot
Punchboot
Stars: ✭ 49 (-55.05%)
Mutual labels:  bootloader
Multibootusb
Create multiboot live Linux on a USB disk...
Stars: ✭ 1,042 (+855.96%)
Mutual labels:  uefi
Debootstick
Generate a bootable live image from any Debian/Ubuntu filesystem tree.
Stars: ✭ 48 (-55.96%)
Mutual labels:  uefi

TomatBoot for UEFI

TomatBoot is a simple kernel loader for 64bit UEFI based systems.

The gold of this bootloader is to serve as an example of how to create UEFI applications, we use the edk2 headers/libraries without the edk2 buildsystem for simplicity.

Main Menu

Features

  • Boot menu
    • change the framebuffer settings
    • change default entry and delay
  • Support for linux boot
  • Support for MB2
  • Support for Stivale/Stivale2

Future plans

  • allow to edit the configuration file on the fly

Boot Protocols

Linux Boot (linux)

With linux boot you can give TomatBoot a vmlinuz and initrd images and it will load it according to the linux boot protocol.

It supports both 32bit and a EFI Handover boot.

Multiboot 2 (mb2)

With MB2 boot you can load any mb2 compatible kernel image.

We support:

  • Command line
  • Boot Modules
  • E820 + Efi Memory Map
  • ELF32/ELF64 Images + Elf Sections
  • Framebuffer
  • New/Old ACPI tables

Stivale (stivale)

Stivale is a simple boot protocol aimed to provide everything a modern x86_64 kernel needs:

  • Direct higher half support (with 5 Level paging support)
  • Command line
  • Boot Modules
  • Memory Map
  • Framebuffer
  • ACPI tables

Stivale2 (stivale2)

Stivale2 is a simple boot protocol aimed to provide everything an advanced modern x86_64 kernel needs, it includes all provided by stivale along side:

  • More dynamic features (using a linked list of tags)
  • SMP Boot (WIP)

How to

Getting the EFI module

First of all the latest EFI module is available to download from Github Actions as an Artifact.

If you want to build from source then simply run:

git clone [email protected]:TomatOrg/TomatBoot-UEFI.git
cd TomatBoot-UEFI
make

It will create the module and place it under bin/BOOTX64.EFI

Creating an image

To create a bootable image you will need to have a GPT formatted image with one EFI FAT partition. You will need to place the UEFI module under EFI/BOOT/BOOTX64.EFI

Other than the binary, you will also need to provide a configuration file. For an example you can see the example config. The config file needs to be placed at the root of the efi partition with the name tomatboot.cfg

Example file structure inside the UEFI partition:

.
├── EFI
│   └── BOOT
│       └── BOOTX64.EFI
├── tomatboot.cfg
└── kernel.elf

Config format

Check CONFIG.md.

UEFI Library

The uefi library consists mainly of headers and source files taken directly from EDK2. The reason for that is to cut on development time and use existing headers, but not using EDK2 build system.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].