Opened 6 years ago

Closed 3 years ago

#14436 closed task (fixed)

UEFI: Make architecture generic

Reported by: kallisti5 Owned by: nobody
Priority: normal Milestone: R1/beta3
Component: System/Boot Loader/EFI Version: R1/Development
Keywords: uefi arm u-boot Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by kallisti5)

UEFI needs to be reworked to build for non-x86 platforms. Recent u-boot's support .efi binary booting and would let us leverage u-boot's framebuffer in our haiku_loader. (reducing the need for hacked in early SOC hardware drivers for framebuffers and other devices haiku_loader needs). This would also let us consolidate boot loader target platforms... and help us have *real* drivers attached to and FDT bus in the kernel. (we would only need early uart drivers for debugging)

https://www.cnx-software.com/2016/08/11/u-boot-now-supports-uefi-on-32-bit-and-64-bit-arm-platforms/

'bootefi' is the u-boot command to load an efi binary.

BOOTARM.EFI is the default boot choice for ARM platforms (kind of like BOOTX64.EFI is on x86_64)

Jessicah has some EFI rework in-flight (making the compiled x86 loader build both BIOS and UEFI loaders) that is a blocker to beginning this.

Change History (6)

comment:1 by kallisti5, 6 years ago

Description: modified (diff)

comment:2 by pulkomandy, 4 years ago

Component: System/Boot LoaderSystem/Boot Loader/EFI

comment:3 by korli, 3 years ago

What's the status here?

comment:4 by pulkomandy, 3 years ago

I think there is still some arch-specific code that needs to be written for ARM and RISC-V, to hand over the MMU configuration to the kernel. But the setup for this is mostly in place and it's just a matter of filling in the platform specific parts?

comment:5 by X512, 3 years ago

What's the status here?

Well, ARM and RISC-V haiku_loader.efi can compile, run and show boot menu. I think that ticket can be closed. The rest is implementing arch-specific part that is out of scope of this ticket.

comment:6 by kallisti5, 3 years ago

Milestone: UnscheduledR1/beta3
Resolution: fixed
Status: newclosed

This one is indeed resolved. I finished splitting the x86-only bootloader into architecture agnostic pieces a while ago.

Note: See TracTickets for help on using tickets.