From: Ard Biesheuvel <ardb@kernel.org>
To: linux-efi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, "Ard Biesheuvel" <ardb@kernel.org>,
"Evgeniy Baskov" <baskov@ispras.ru>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Ingo Molnar" <mingo@redhat.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Peter Jones" <pjones@redhat.com>,
"Matthew Garrett" <mjg59@srcf.ucam.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Kees Cook" <keescook@chromium.org>,
"H. Peter Anvin" <hpa@zytor.com>,
"Marvin Häuser" <mhaeuser@posteo.de>
Subject: [PATCH 04/17] x86/boot: Remove the 'bugger off' message
Date: Fri, 18 Aug 2023 15:44:09 +0200 [thread overview]
Message-ID: <20230818134422.380032-5-ardb@kernel.org> (raw)
In-Reply-To: <20230818134422.380032-1-ardb@kernel.org>
Ancient (pre-2003) x86 kernels could boot from a floppy disk straight from
the BIOS, using a small real mode boot stub at the start of the image
where the BIOS would expect the boot record (or boot block) to appear.
Due to its limitations (kernel size < 1 MiB, no support for IDE, USB or
El Torito floppy emulation), this support was dropped, and a Linux aware
bootloader is now always required to boot the kernel from a legacy BIOS.
To smoothen this transition, the boot stub was not removed entirely, but
replaced with one that just prints an error message telling the user to
install a bootloader.
As it is unlikely that anyone doing direct floppy boot with such an
ancient kernel is going to upgrade to v6.5+ and expect that this boot
method still works, printing this message is kind of pointless, and so
it should be possible to remove the logic that emits it.
Let's free up this space so it can be used to expand the PE header in a
subsequent patch.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
| 49 --------------------
arch/x86/boot/setup.ld | 7 +--
2 files changed, 4 insertions(+), 52 deletions(-)
--git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 8c8148d751c6d22b..b24fa50a98986945 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -38,64 +38,15 @@ SYSSEG = 0x1000 /* historical load address >> 4 */
.code16
.section ".bstext", "ax"
-
- .global bootsect_start
-bootsect_start:
#ifdef CONFIG_EFI_STUB
# "MZ", MS-DOS header
.word MZ_MAGIC
-#endif
-
- # Normalize the start address
- ljmp $BOOTSEG, $start2
-
-start2:
- movw %cs, %ax
- movw %ax, %ds
- movw %ax, %es
- movw %ax, %ss
- xorw %sp, %sp
- sti
- cld
-
- movw $bugger_off_msg, %si
-
-msg_loop:
- lodsb
- andb %al, %al
- jz bs_die
- movb $0xe, %ah
- movw $7, %bx
- int $0x10
- jmp msg_loop
-
-bs_die:
- # Allow the user to press a key, then reboot
- xorw %ax, %ax
- int $0x16
- int $0x19
-
- # int 0x19 should never return. In case it does anyway,
- # invoke the BIOS reset code...
- ljmp $0xf000,$0xfff0
-
-#ifdef CONFIG_EFI_STUB
.org 0x38
#
# Offset to the PE header.
#
.long LINUX_PE_MAGIC
.long pe_header
-#endif /* CONFIG_EFI_STUB */
-
- .section ".bsdata", "a"
-bugger_off_msg:
- .ascii "Use a boot loader.\r\n"
- .ascii "\n"
- .ascii "Remove disk and press any key to reboot...\r\n"
- .byte 0
-
-#ifdef CONFIG_EFI_STUB
pe_header:
.long PE_MAGIC
diff --git a/arch/x86/boot/setup.ld b/arch/x86/boot/setup.ld
index 49546c247ae25e97..b11c45b9e51ed90e 100644
--- a/arch/x86/boot/setup.ld
+++ b/arch/x86/boot/setup.ld
@@ -10,10 +10,11 @@ ENTRY(_start)
SECTIONS
{
. = 0;
- .bstext : { *(.bstext) }
- .bsdata : { *(.bsdata) }
+ .bstext : {
+ *(.bstext)
+ . = 495;
+ } =0xffffffff
- . = 495;
.header : { *(.header) }
.entrytext : { *(.entrytext) }
.inittext : { *(.inittext) }
--
2.39.2
next prev parent reply other threads:[~2023-08-18 13:45 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-18 13:44 [PATCH 00/17] x86/boot: Rework PE header generation Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 01/17] x86/efi: Drop EFI stub .bss from .data section Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 02/17] x86/efi: Disregard setup header of loaded image Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 03/17] x86/efi: Drop alignment flags from PE section headers Ard Biesheuvel
2023-08-18 13:44 ` Ard Biesheuvel [this message]
2023-08-20 1:02 ` [PATCH 04/17] x86/boot: Remove the 'bugger off' message H. Peter Anvin
2023-08-18 13:44 ` [PATCH 05/17] x86/boot: Omit compression buffer from PE/COFF image memory footprint Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 06/17] x86/boot: Drop redundant code setting the root device Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 07/17] x86/boot: Grab kernel_info offset from zoffset header directly Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 08/17] x86/boot: Drop references to startup_64 Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 09/17] x86/boot: Set EFI handover offset directly in header asm Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 10/17] x86/boot: Drop workaround for binutils 2.14 in linker script ASSERTs Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 11/17] x86/boot: Use fixed size of 16k for setup block Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 12/17] x86/boot: Derive file size from _edata symbol Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 13/17] x86/boot: Construct PE/COFF .text section from assembler Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 14/17] x86/boot: Drop PE/COFF .reloc section Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 15/17] x86/boot: Split off PE/COFF .data section Ard Biesheuvel
2023-08-18 14:35 ` Marvin Häuser
2023-09-07 13:44 ` Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 16/17] x86/boot: Increase section and file alignment to 4k/512 Ard Biesheuvel
2023-08-18 13:44 ` [PATCH 17/17] x86/boot: Drop CRC-32 checksum and the build tool that generates it Ard Biesheuvel
2023-08-20 1:03 ` H. Peter Anvin
2023-08-20 12:57 ` Ard Biesheuvel
2023-08-21 0:37 ` H. Peter Anvin
2023-08-21 7:04 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230818134422.380032-5-ardb@kernel.org \
--to=ardb@kernel.org \
--cc=baskov@ispras.ru \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=kraxel@redhat.com \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhaeuser@posteo.de \
--cc=mingo@redhat.com \
--cc=mjg59@srcf.ucam.org \
--cc=pjones@redhat.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox