Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch/amd64
Hi,
"Emmanuel Dreyfus" <manu%netbsd.org@localhost> writes:
> Module Name: src
> Committed By: manu
> Date: Sun Dec 15 02:56:40 UTC 2019
>
> Modified Files:
> src/sys/arch/amd64/amd64: locore.S
> src/sys/arch/amd64/conf: kern.ldscript
>
> Log Message:
> Restore multiboot 2 header in amd64 kernel
>
> The header must appear below 32k offset in the kernel file, but we
> have to make sure it does not load at low addresses, otherwise we
> break BIOS boot.
>
> .text section used to load at 0x200000, we just load multiboot section
> there, and have .text loaded just after.
After this change, amd64 kernel does not boot on my HP Spectre x360
13-inch ae019TU laptop with pure UEFI boot mode.
Reverting this change on 2019-12-23T08:00 (UTC) enables pure UEFI boot.
On another laptop, VAIO S13, the same kernel boots fine in UEFI mode.
I want to continue to use my HP Spectre x360.
Could you take a look at my problem?
Thank you.
> To generate a diff of this commit:
> cvs rdiff -u -r1.193 -r1.194 src/sys/arch/amd64/amd64/locore.S
> cvs rdiff -u -r1.29 -r1.30 src/sys/arch/amd64/conf/kern.ldscript
>
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
>
> Modified files:
>
> Index: src/sys/arch/amd64/amd64/locore.S
> diff -u src/sys/arch/amd64/amd64/locore.S:1.193 src/sys/arch/amd64/amd64/locore.S:1.194
> --- src/sys/arch/amd64/amd64/locore.S:1.193 Tue Dec 10 02:06:07 2019
> +++ src/sys/arch/amd64/amd64/locore.S Sun Dec 15 02:56:40 2019
> @@ -1,4 +1,4 @@
> -/* $NetBSD: locore.S,v 1.193 2019/12/10 02:06:07 manu Exp $ */
> +/* $NetBSD: locore.S,v 1.194 2019/12/15 02:56:40 manu Exp $ */
>
> /*
> * Copyright-o-rama!
> @@ -432,7 +432,7 @@ END(farjmp64)
> .space 512
> tmpstk:
>
> -.section multiboot,"ax",@progbits
> +.section multiboot,"a"
> #if defined(MULTIBOOT)
> .align 8
> .globl Multiboot2_Header
>
> Index: src/sys/arch/amd64/conf/kern.ldscript
> diff -u src/sys/arch/amd64/conf/kern.ldscript:1.29 src/sys/arch/amd64/conf/kern.ldscript:1.30
> --- src/sys/arch/amd64/conf/kern.ldscript:1.29 Wed Dec 11 02:31:44 2019
> +++ src/sys/arch/amd64/conf/kern.ldscript Sun Dec 15 02:56:40 2019
> @@ -1,4 +1,4 @@
> -/* $NetBSD: kern.ldscript,v 1.29 2019/12/11 02:31:44 manu Exp $ */
> +/* $NetBSD: kern.ldscript,v 1.30 2019/12/15 02:56:40 manu Exp $ */
>
> #include "assym.h"
>
> @@ -13,7 +13,17 @@ __LARGE_PAGE_SIZE = 0x200000 ;
> ENTRY(_start)
> SECTIONS
> {
> - .text : AT (ADDR(.text) & 0x0fffffff)
> + /*
> + * multiboot (file_offset) : AT (load_address)
> + * file_offset must be below 32k for multiboot 2 specification
> + * BIOS boot requires load_address above 0x200000
> + */
> + multiboot 0x1000 : AT (0x200000)
> + {
> + . = ALIGN(8);
> + KEEP(*(multiboot));
> + }
> + .text : AT (0x200000 + SIZEOF(multiboot))
> {
> . = ALIGN(__PAGE_SIZE);
> __text_user_start = . ;
>
--
Ryo ONODERA // ryo%tetera.org@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Home |
Main Index |
Thread Index |
Old Index