Skip to content

Add EFI support for amd64 and arm64 platforms.#5241

Open
cclerget wants to merge 1 commit intotinygo-org:releasefrom
ciq-research:uefi-amd64-arm64
Open

Add EFI support for amd64 and arm64 platforms.#5241
cclerget wants to merge 1 commit intotinygo-org:releasefrom
ciq-research:uefi-amd64-arm64

Conversation

@cclerget
Copy link

@cclerget cclerget commented Mar 5, 2026

Some decisions points:

  • no external libc dependency, builtin functions replaced by Go equivalent (runtime_minimal_libc.go)
  • assembly efi_main entrypoint as assembly stub is required for sbat and few symbols anyway
  • a default sbat section (required for Linux shim secure boot)
  • dedicated rand reader in crypto/rand for EFI as it doesn't fit well with the generic machine interface
  • the timer calibration is deliberately simple but hopefully good enough for EFI purpose
  • no heap grow support, just get the biggest memory region available

Inspired by #3996 and essentially with Claude Code assistance to be totally transparent.

@cclerget cclerget force-pushed the uefi-amd64-arm64 branch 4 times, most recently from 3d73eb1 to 6485e53 Compare March 6, 2026 15:35
Some decisions points:
- no external libc dependency, builtin functions replaced by Go equivalent (runtime_minimal_libc.go)
- assembly efi_main entrypoint as assembly stub is required for sbat and few symbols anyway
- a default sbat section (required for Linux shim secure boot)
- dedicated rand reader in crypto/rand for EFI as it doesn't fit well with the generic machine interface
- the timer calibration is deliberately simple but hopefully good enough for EFI purpose
- no heap grow support, just get the biggest memory region available
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant