Skip to content

Conversation

@ericcurtin
Copy link
Member

When using the efi feature on aarch64 with ExternalKernel payload (direct kernel boot), the code incorrectly tried to write EFI firmware to guest memory address 0, which wasn't mapped.

ExternalKernel payload calls arch_memory_regions with firmware_size=None, so no memory region is allocated for firmware. However, with the efi feature enabled, firmware_data is always Some(EDK2_BINARY), causing the write to fail with FirmwareInvalidAddress(InvalidGuestAddress(0)).

Skip firmware writing for ExternalKernel payload since direct kernel boot doesn't use EFI firmware.

When using the efi feature on aarch64 with ExternalKernel payload
(direct kernel boot), the code incorrectly tried to write EFI
firmware to guest memory address 0, which wasn't mapped.

ExternalKernel payload calls arch_memory_regions with firmware_size=None,
so no memory region is allocated for firmware. However, with the efi
feature enabled, firmware_data is always Some(EDK2_BINARY), causing
the write to fail with FirmwareInvalidAddress(InvalidGuestAddress(0)).

Skip firmware writing for ExternalKernel payload since direct kernel
boot doesn't use EFI firmware.

Signed-off-by: Eric Curtin <eric.curtin@docker.com>
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