diff options
Diffstat (limited to 'debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch')
-rw-r--r-- | debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch new file mode 100644 index 000000000..d2b67f4ea --- /dev/null +++ b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch @@ -0,0 +1,236 @@ +From: Juergen Gross <jgross@suse.com> +Date: Tue, 20 Nov 2018 08:25:28 +0100 +Subject: x86/boot: Mostly revert commit ae7e1238e68f2a ("Add ACPI RSDP address + to setup_header") +Origin: https://git.kernel.org/linus/3841840449817ba6cf3e636008bc4e1061a03388 + +Peter Anvin pointed out that commit: + + ae7e1238e68f2a ("x86/boot: Add ACPI RSDP address to setup_header") + +should be reverted as setup_header should only contain items set by the +legacy BIOS. + +So revert said commit. Instead of fully reverting the dependent commit +of: + + e7b66d16fe4172 ("x86/acpi, x86/boot: Take RSDP address for boot params if available") + +just remove the setup_header reference in order to replace it by +a boot_params in a followup patch. + +Suggested-by: "H. Peter Anvin" <hpa@zytor.com> +Signed-off-by: Juergen Gross <jgross@suse.com> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: boris.ostrovsky@oracle.com +Cc: bp@alien8.de +Cc: daniel.kiper@oracle.com +Cc: sstabellini@kernel.org +Cc: xen-devel@lists.xenproject.org +Link: http://lkml.kernel.org/r/20181120072529.5489-2-jgross@suse.com +Signed-off-by: Ingo Molnar <mingo@kernel.org> +--- + Documentation/x86/boot.txt | 32 +-------------------------- + arch/x86/boot/header.S | 6 +---- + arch/x86/include/asm/x86_init.h | 2 -- + arch/x86/include/uapi/asm/bootparam.h | 4 ---- + arch/x86/kernel/acpi/boot.c | 2 +- + arch/x86/kernel/head32.c | 1 - + arch/x86/kernel/head64.c | 2 -- + arch/x86/kernel/setup.c | 17 -------------- + 8 files changed, 3 insertions(+), 63 deletions(-) + +Index: linux/Documentation/x86/boot.txt +=================================================================== +--- linux.orig/Documentation/x86/boot.txt ++++ linux/Documentation/x86/boot.txt +@@ -61,18 +61,6 @@ Protocol 2.12: (Kernel 3.8) Added the xl + to struct boot_params for loading bzImage and ramdisk + above 4G in 64bit. + +-Protocol 2.13: (Kernel 3.14) Support 32- and 64-bit flags being set in +- xloadflags to support booting a 64-bit kernel from 32-bit +- EFI +- +-Protocol 2.14: (Kernel 4.20) Added acpi_rsdp_addr holding the physical +- address of the ACPI RSDP table. +- The bootloader updates version with: +- 0x8000 | min(kernel-version, bootloader-version) +- kernel-version being the protocol version supported by +- the kernel and bootloader-version the protocol version +- supported by the bootloader. +- + **** MEMORY LAYOUT + + The traditional memory map for the kernel loader, used for Image or +@@ -209,7 +197,6 @@ Offset Proto Name Meaning + 0258/8 2.10+ pref_address Preferred loading address + 0260/4 2.10+ init_size Linear memory required during initialization + 0264/4 2.11+ handover_offset Offset of handover entry point +-0268/8 2.14+ acpi_rsdp_addr Physical address of RSDP table + + (1) For backwards compatibility, if the setup_sects field contains 0, the + real value is 4. +@@ -322,7 +309,7 @@ Protocol: 2.00+ + Contains the magic number "HdrS" (0x53726448). + + Field name: version +-Type: modify ++Type: read + Offset/size: 0x206/2 + Protocol: 2.00+ + +@@ -330,12 +317,6 @@ Protocol: 2.00+ + e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version + 10.17. + +- Up to protocol version 2.13 this information is only read by the +- bootloader. From protocol version 2.14 onwards the bootloader will +- write the used protocol version or-ed with 0x8000 to the field. The +- used protocol version will be the minimum of the supported protocol +- versions of the bootloader and the kernel. +- + Field name: realmode_swtch + Type: modify (optional) + Offset/size: 0x208/4 +@@ -763,17 +744,6 @@ Offset/size: 0x264/4 + + See EFI HANDOVER PROTOCOL below for more details. + +-Field name: acpi_rsdp_addr +-Type: write +-Offset/size: 0x268/8 +-Protocol: 2.14+ +- +- This field can be set by the boot loader to tell the kernel the +- physical address of the ACPI RSDP table. +- +- A value of 0 indicates the kernel should fall back to the standard +- methods to locate the RSDP. +- + + **** THE IMAGE CHECKSUM + +Index: linux/arch/x86/boot/header.S +=================================================================== +--- linux.orig/arch/x86/boot/header.S ++++ linux/arch/x86/boot/header.S +@@ -300,7 +300,7 @@ _start: + # Part 2 of the header, from the old setup.S + + .ascii "HdrS" # header signature +- .word 0x020e # header version number (>= 0x0105) ++ .word 0x020d # header version number (>= 0x0105) + # or else old loadlin-1.5 will fail) + .globl realmode_swtch + realmode_swtch: .word 0, 0 # default_switch, SETUPSEG +@@ -558,10 +558,6 @@ pref_address: .quad LOAD_PHYSICAL_ADDR + init_size: .long INIT_SIZE # kernel initialization size + handover_offset: .long 0 # Filled in by build.c + +-acpi_rsdp_addr: .quad 0 # 64-bit physical pointer to the +- # ACPI RSDP table, added with +- # version 2.14 +- + # End of setup header ##################################################### + + .section ".entrytext", "ax" +Index: linux/arch/x86/include/asm/x86_init.h +=================================================================== +--- linux.orig/arch/x86/include/asm/x86_init.h ++++ linux/arch/x86/include/asm/x86_init.h +@@ -303,6 +303,4 @@ extern void x86_init_noop(void); + extern void x86_init_uint_noop(unsigned int unused); + extern bool x86_pnpbios_disabled(void); + +-void x86_verify_bootdata_version(void); +- + #endif +Index: linux/arch/x86/include/uapi/asm/bootparam.h +=================================================================== +--- linux.orig/arch/x86/include/uapi/asm/bootparam.h ++++ linux/arch/x86/include/uapi/asm/bootparam.h +@@ -16,9 +16,6 @@ + #define RAMDISK_PROMPT_FLAG 0x8000 + #define RAMDISK_LOAD_FLAG 0x4000 + +-/* version flags */ +-#define VERSION_WRITTEN 0x8000 +- + /* loadflags */ + #define LOADED_HIGH (1<<0) + #define KASLR_FLAG (1<<1) +@@ -89,7 +86,6 @@ struct setup_header { + __u64 pref_address; + __u32 init_size; + __u32 handover_offset; +- __u64 acpi_rsdp_addr; + } __attribute__((packed)); + + struct sys_desc_table { +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c +@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p + + u64 x86_default_get_root_pointer(void) + { +- return boot_params.hdr.acpi_rsdp_addr; ++ return 0; + } +Index: linux/arch/x86/kernel/head32.c +=================================================================== +--- linux.orig/arch/x86/kernel/head32.c ++++ linux/arch/x86/kernel/head32.c +@@ -37,7 +37,6 @@ asmlinkage __visible void __init i386_st + cr4_init_shadow(); + + sanitize_boot_params(&boot_params); +- x86_verify_bootdata_version(); + + x86_early_init_platform_quirks(); + +Index: linux/arch/x86/kernel/head64.c +=================================================================== +--- linux.orig/arch/x86/kernel/head64.c ++++ linux/arch/x86/kernel/head64.c +@@ -477,8 +477,6 @@ void __init x86_64_start_reservations(ch + if (!boot_params.hdr.version) + copy_bootdata(__va(real_mode_data)); + +- x86_verify_bootdata_version(); +- + x86_early_init_platform_quirks(); + + switch (boot_params.hdr.hardware_subarch) { +Index: linux/arch/x86/kernel/setup.c +=================================================================== +--- linux.orig/arch/x86/kernel/setup.c ++++ linux/arch/x86/kernel/setup.c +@@ -1281,23 +1281,6 @@ void __init setup_arch(char **cmdline_p) + unwind_init(); + } + +-/* +- * From boot protocol 2.14 onwards we expect the bootloader to set the +- * version to "0x8000 | <used version>". In case we find a version >= 2.14 +- * without the 0x8000 we assume the boot loader supports 2.13 only and +- * reset the version accordingly. The 0x8000 flag is removed in any case. +- */ +-void __init x86_verify_bootdata_version(void) +-{ +- if (boot_params.hdr.version & VERSION_WRITTEN) +- boot_params.hdr.version &= ~VERSION_WRITTEN; +- else if (boot_params.hdr.version >= 0x020e) +- boot_params.hdr.version = 0x020d; +- +- if (boot_params.hdr.version < 0x020e) +- boot_params.hdr.acpi_rsdp_addr = 0; +-} +- + #ifdef CONFIG_X86_32 + + static struct resource video_ram_resource = { |