Releases: usbarmory/go-boot
go-boot v1.6.1
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel can be executed as:
- EFI application by an existing loader (e.g. UEFI shell, systemd-boot)
- EFI boot entry
- QEMU plain or confidential KVM
- Google Compute Engine plain or confidential KVM
Documentation can be found in the README.
This release features the following performance and reliability improvements:
- bumped minimum Go version to 1.26.1, following tamago-go1.26.1 to reduce size of unikernel binaries (9db02a6)
Full Changelog: v1.6...v1.6.1
go-boot v1.6
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel can be executed as:
- EFI application by an existing loader (e.g. UEFI shell, systemd-boot)
- EFI boot entry
- QEMU plain or confidential KVM
- Google Compute Engine plain or confidential KVM
Documentation can be found in the README.
This release features the following performance and reliability improvements:
- cmd: show logs on SSH connections (2c64f1a)
- Makefile: add
go tool tamagosupport (59f995e) - Makefile: align ELF conversion for binutils 2.46 (7ebff40)
- bumped minimum Go version to 1.26.0, following tamago-go1.26.0 (f6dde5a)
Full Changelog: v1.5.1...v1.6
go-boot v1.5.1
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel can be executed as:
- EFI application by an existing loader (e.g. UEFI shell, systemd-boot)
- EFI boot entry
- QEMU plain or confidential KVM
- Google Compute Engine plain or confidential KVM
Documentation can be found in the README.
This release features the following performance and reliability improvements:
- cmd: cache AMD SEV-SNP secrets
- main: disable watchdog as early as possible (cddc6ec)
- uefi: adjust keystroke delay to prevent runtime starvation (55e0707)
Full Changelog: v1.5...v1.5.1
go-boot v1.5
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel can be executed as:
- EFI application by an existing loader (e.g. UEFI shell, systemd-boot)
- EFI boot entry
- QEMU plain or confidential KVM
- Google Compute Engine plain or confidential KVM
Documentation can be found in the README.
Major changes:
- cmd: added
sev-kdf, commands for AMD SEV-SNP key derivation (1745d18) - cmd: reduce OVMF page re-use for AMD SEV-SNP operations (bbcc457, 2e1b84c)
- Makefile: added
qemu-snptarget for Confidential VM launch under AMD SEV-SNP (92982ac) - uefi/x64: update to usbarmory/tamago@00899b0 to fix frequency detection on AMD CPUs (ad0f71c)
Full Changelog: v1.4...v1.5
go-boot v1.4
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes:
- cmd: added
sev,sev-reportcommands for AMD SEV-SNP information and attestation (#7) - cmd: added
msrcommand for model-specific register access (#7) - cmd: bundle TLS roots for any potential TLS client request (c1ebcc7)
- uefi:
(*SystemTable).LocateConfigurationnew function to locate configuration tables (#7) - uefi:
(*Services).GetSNPConfigurationnew function to support AMD SEV-SNP configuration (#7) - uefi:
(*SimpleNetwork).Transmitfix infinite loop condition onEFI_NOT_READYstatus (#8) - uefi: adopt
fs.ValidPathrequirements for UEFIfs.FSimplementation (#9) - uefi/x64: set flow control signals in
UART0for Google Compute Engine compatibility (edec516) - bumped minimum Go version to 1.25.6, following tamago-go1.25.6
Full Changelog: v1.3...v1.4
go-boot v1.3
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes (thanks to Christian Grönke):
- cmd - add
efivarcommand for EFI variable display (#4) - uefi - improved
GUIDtype, addedParseGUID,MustParseGUIDfunctions (#4) - uefi - new
(*RuntimeServices).GetVariable,(*RuntimServices).GetNextVariablefunctions (#4)
Additional changes:
- shell -
(*Interface).Paginationdisables frame buffer scrolling to improve console speed (#5) - uefi - new
(*Console).GetMode,(*Console).QueryModefunctions (0f6e7fe) - uefi - new
(*Console).EnableCursorfunction, enable console cursor (8f4a40b) - bumped minimum Go version to 1.25.4, following tamago-go1.25.4
Documentation changes:
- README - added section on Cloud deployments
Full Changelog: v1.2.1...v1.3
go-boot v1.2.1
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes:
- Makefile -
OVMFVARSbuild variable is now optional (af3b0d0) - shell - bump dependencies to fix scheduler starvation with
CONSOLE=com1due to a tamago issue (c7e22ff) - uefi/x64 - add
AllocateDMA()function for initialization of global DMA area (#2)
Full Changelog: v1.1...v1.2.1
go-boot v1.1
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes:
- uefi - add EFI Simple Network Protocol support
- cmd - add
net,dnscommands for UEFI networking configuration - cmd - fix
lspcicommand which was shadowed bylsinvalid pattern match (11d2684) - Makefile - add
NETbuild variable to enablenetcommand - Makefile - add
DEBUGbuild variable to enable stastviz whenNETis enabled - bumped minimum Go version to 1.25.2, following tamago-go1.25.2
Internal changes:
- uefi - assign separate stack for UEFI function calls (8a0eb93)
- uefi/x64, uefi - disable interrupts to avoid UEFI boot services interference (e7e8365)
- uefi/x64 - disable CPU idle time management (4046e29)
Full Changelog: v1.0...v1.1
go-boot v1.0
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes:
- bumped minimum Go version to 1.25.1, following tamago-go1.25.1
- cmd - add
lscommand
Full Changelog: v0.9...v1.0
go-boot v0.9
This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel is an UEFI application which can be executed under an existing loader (e.g. UEFI shell, systemd-boot) or as an EFI boot entry.
Documentation can be found in the README.
Major changes:
- bumped minimum Go version to 1.25.0, following tamago-go1.25.0
- cmd - add
.shortcut with default EFI image path - Makefile - allow
.shortcut EFI image path override viaDEFAULT_EFI_ENTRYvariable
Full Changelog: v0.8...v0.9