Applied, thanks! Damien Zammit, le jeu. 24 oct. 2024 00:11:04 +0000, a ecrit: > This change forces multiboot loader to provide video mode info > and also sets the preferred video mode to EGA text to ensure > existing console behaviour still works. > > When support for graphical consoles is provided, we can change > the preferred mode to linear framebuffer. > > --- > i386/i386at/boothdr.S | 24 ++++++++++++++++++------ > i386/include/mach/i386/multiboot.h | 8 ++++++-- > 2 files changed, 24 insertions(+), 8 deletions(-) > > diff --git a/i386/i386at/boothdr.S b/i386/i386at/boothdr.S > index daaf57db..ff055746 100644 > --- a/i386/i386at/boothdr.S > +++ b/i386/i386at/boothdr.S > @@ -1,9 +1,17 @@ > > #include <mach/machine/asm.h> > +#include <mach/machine/multiboot.h> > #include <i386/apic.h> > #include <i386/seg.h> > #include <i386/i386asm.h> > > +#ifdef __ELF__ > +#define AOUT_KLUDGE 0 > +#else > +#define AOUT_KLUDGE MULTIBOOT_AOUT_KLUDGE > +#endif /* __ELF__ */ > +#define MULTIBOOT_FLAGS MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | > MULTIBOOT_VIDEO_MODE | AOUT_KLUDGE > + > /* > * This section will be put first into .text. See also i386/ldscript. > */ > @@ -16,12 +24,6 @@ _start: > jmp boot_entry > > /* MultiBoot header - see multiboot.h. */ > -#define MULTIBOOT_MAGIC 0x1BADB002 > -#ifdef __ELF__ > -#define MULTIBOOT_FLAGS 0x00000003 > -#else /* __ELF__ */ > -#define MULTIBOOT_FLAGS 0x00010003 > -#endif /* __ELF__ */ > P2ALIGN(2) > boot_hdr: > .long MULTIBOOT_MAGIC > @@ -37,7 +39,17 @@ boot_hdr: > .long _edata /* load_end_addr */ > .long _end /* bss_end_addr */ > .long boot_entry /* entry */ > +#else > + .long 0 > + .long 0 > + .long 0 > + .long 0 > + .long 0 > #endif /* __ELF__ */ > + .long MULTIBOOT_VIDEO_MODE_TYPE_EGA_TEXT > + .long 80 > + .long 25 > + .long MULTIBOOT_VIDEO_PARAM_NO_PREFERENCE > > boot_entry: > movl $percpu_array - KERNELBASE, %eax > diff --git a/i386/include/mach/i386/multiboot.h > b/i386/include/mach/i386/multiboot.h > index 87bcd595..8df5261f 100644 > --- a/i386/include/mach/i386/multiboot.h > +++ b/i386/include/mach/i386/multiboot.h > @@ -23,8 +23,6 @@ > #ifndef _MACH_I386_MULTIBOOT_H_ > #define _MACH_I386_MULTIBOOT_H_ > > -#include <mach/machine/vm_types.h> > - > /* The entire multiboot_header must be contained > within the first MULTIBOOT_SEARCH bytes of the kernel image. */ > #define MULTIBOOT_SEARCH 8192 > @@ -74,6 +72,10 @@ > > #define MULTIBOOT_VIDEO_PARAM_NO_PREFERENCE 0 > > +#ifndef __ASSEMBLER__ > + > +#include <mach/machine/vm_types.h> > + > /* The mods_addr field above contains the physical address of the first > of 'mods_count' multiboot_module structures. */ > struct multiboot_module > @@ -277,4 +279,6 @@ struct multiboot_os_info { > uint32_t mods_count; > }; > > +#endif /* __ASSEMBLER__ */ > + > #endif /* _MACH_I386_MULTIBOOT_H_ */ > -- > 2.45.2 > > >
-- Samuel > Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me > disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que > vous teniez vous même la tronçonneuse" (traduction libre) NC in Guide du linuxien pervers : "Bien configurer sa tronçonneuse."