Commit d1343da3 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge tag 'efi-changes-for-v5.8' of...

Merge tag 'efi-changes-for-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi

 into efi/core

More EFI changes for v5.8:

 - Rename pr_efi/pr_efi_err to efi_info/efi_err, and use them consistently
 - Simplify and unify initrd loading
 - Parse the builtin command line on x86 (if provided)
 - Implement printk() support, including support for wide character strings
 - Some fixes for issues introduced by the first batch of v5.8 changes
 - Fix a missing prototypes warning
 - Simplify GDT handling in early mixed mode thunking code
 - Some other minor fixes and cleanups

Conflicts:
	drivers/firmware/efi/libstub/efistub.h

Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents a5d8e55b 9241dfe7
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -63,4 +63,9 @@ auto
        with the highest resolution, it will choose one with the highest color
        depth.

list
        The EFI stub will list out all the display modes that are available. A
        specific mode can then be chosen using one of the above options for the
        next boot.

Edgar Hucek <gimli@dark-green.com>
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ optional_header:
		.long	__pecoff_code_size		@ SizeOfCode
		.long	__pecoff_data_size		@ SizeOfInitializedData
		.long	0				@ SizeOfUninitializedData
		.long	efi_entry - start		@ AddressOfEntryPoint
		.long	efi_pe_entry - start		@ AddressOfEntryPoint
		.long	start_offset			@ BaseOfCode
		.long	__pecoff_data_start - start	@ BaseOfData

+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@

SYM_CODE_START(efi_enter_kernel)
	/*
	 * efi_entry() will have copied the kernel image if necessary and we
	 * efi_pe_entry() will have copied the kernel image if necessary and we
	 * end up here with device tree address in x1 and the kernel entry
	 * point stored in x0. Save those values in registers which are
	 * callee preserved.
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ optional_header:
	.long	__initdata_begin - efi_header_end	// SizeOfCode
	.long	__pecoff_data_size			// SizeOfInitializedData
	.long	0					// SizeOfUninitializedData
	.long	__efistub_efi_entry - _head		// AddressOfEntryPoint
	.long	__efistub_efi_pe_entry - _head		// AddressOfEntryPoint
	.long	efi_header_end - _head			// BaseOfCode

extra_header_fields:
+3 −16
Original line number Diff line number Diff line
@@ -28,8 +28,6 @@ SYM_FUNC_START(__efi64_thunk)
	push	%rbx

	leaq	1f(%rip), %rbp
	leaq	efi_gdt64(%rip), %rbx
	movl	%ebx, 2(%rbx)		/* Fixup the gdt base address */

	movl	%ds, %eax
	push	%rax
@@ -48,7 +46,8 @@ SYM_FUNC_START(__efi64_thunk)
	movl	%r8d, 0xc(%rsp)
	movl	%r9d, 0x10(%rsp)

	sgdt	0x14(%rsp)
	leaq	0x14(%rsp), %rbx
	sgdt	(%rbx)

	/*
	 * Switch to gdt with 32-bit segments. This is the firmware GDT
@@ -68,8 +67,7 @@ SYM_FUNC_START(__efi64_thunk)
	pushq	%rax
	lretq

1:	lgdt	0x14(%rsp)
	addq	$32, %rsp
1:	addq	$32, %rsp
	movq	%rdi, %rax

	pop	%rbx
@@ -175,14 +173,3 @@ SYM_DATA_END(efi32_boot_cs)
SYM_DATA_START(efi32_boot_ds)
	.word	0
SYM_DATA_END(efi32_boot_ds)

SYM_DATA_START(efi_gdt64)
	.word	efi_gdt64_end - efi_gdt64
	.long	0			/* Filled out by user */
	.word	0
	.quad	0x0000000000000000	/* NULL descriptor */
	.quad	0x00af9a000000ffff	/* __KERNEL_CS */
	.quad	0x00cf92000000ffff	/* __KERNEL_DS */
	.quad	0x0080890000000000	/* TS descriptor */
	.quad   0x0000000000000000	/* TS continued */
SYM_DATA_END_LABEL(efi_gdt64, SYM_L_LOCAL, efi_gdt64_end)
Loading