On Wed, Aug 10, 2016 at 07:03:58AM -0600, Trammell Hudson wrote:
The Linux 4.7 kernel payload crashes early in the boot process with CoreBoot 4.4. [...]
The recently released 4.9 kernel does not require any patches to boot as coreboot's payload. The diffs in head_64.S appear to be related to the efi config values and I'm not sure if this is the actual change the fixed it:
--- build/linux-4.7/arch/x86/boot/compressed/head_64.S 2016-12-12 10:21:20.934784655 -0500 +++ build/linux-4.9/arch/x86/boot/compressed/head_64.S 2016-12-11 14:17:54.000000000 -0500 @@ -265,7 +265,7 @@ /* * Relocate efi_config->call(). */ - addq %rbp, efi64_config+88(%rip) + addq %rbp, efi64_config+32(%rip)
movq %rax, %rdi call make_boot_params @@ -285,7 +285,7 @@ * Relocate efi_config->call(). */ movq efi_config(%rip), %rax - addq %rbp, 88(%rax) + addq %rbp, 32(%rax) 2: movq efi_config(%rip), %rdi call efi_main @@ -463,14 +457,14 @@ #ifdef CONFIG_EFI_MIXED .global efi32_config efi32_config: - .fill 11,8,0 + .fill 4,8,0 .quad efi64_thunk .byte 0 #endif
.global efi64_config efi64_config: - .fill 11,8,0 + .fill 4,8,0 .quad efi_call .byte 1 #endif /* CONFIG_EFI_STUB */