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."

Reply via email to