diff --git a/arch/x86/boot/boot.S b/arch/x86/boot/boot.S index 1df4bf9e..404c0885 100644 --- a/arch/x86/boot/boot.S +++ b/arch/x86/boot/boot.S @@ -33,7 +33,7 @@ SECTION(.multiboot, "a", 4) #define MULTIBOOT_VIDEO_MODE_GFX 0 #define MULTIBOOT_VIDEO_MODE_TEXT 1 -#define MULTIBOOT_MODE_TYPE MULTIBOOT_VIDEO_MODE_TEXT +#define MULTIBOOT_MODE_TYPE MULTIBOOT_VIDEO_MODE_GFX #define MULTIBOOT_HEADER_ADDR 0 #define MULTIBOOT_LOAD_ADDRESS 0 diff --git a/common/setup.c b/common/setup.c index 6a13239b..4eb74006 100644 --- a/common/setup.c +++ b/common/setup.c @@ -50,6 +50,7 @@ #include #include +#include #include #include #include @@ -137,6 +138,8 @@ static void display_cpu_info(void) { printk("Frequency: %lu MHz\n", freq / MHZ(1)); } +static void display_banner(void) { draw_logo(); } + static void __text_init init_vga_console(void) { if (!boot_flags.vga) return; @@ -194,6 +197,11 @@ void __noreturn __text_init kernel_start(uint32_t multiboot_magic, if (opt_debug) dump_pagetables(); + if (init_framebuffer(mbi)) + display_banner(); + else + init_vga_console(); + init_percpu(); init_traps(get_bsp_cpu_id()); @@ -213,8 +221,6 @@ void __noreturn __text_init kernel_start(uint32_t multiboot_magic, BUG(); } - init_vga_console(); - init_apic(get_bsp_cpu_id(), APIC_MODE_XAPIC); init_tasks(); diff --git a/grub/boot/grub/grub.cfg b/grub/boot/grub/grub.cfg index 42e15b36..0944dd50 100644 --- a/grub/boot/grub/grub.cfg +++ b/grub/boot/grub/grub.cfg @@ -1,6 +1,8 @@ set timeout=0 set default=0 +insmod all_video + serial --speed=115200 --word=8 --parity=no --stop=1 terminal_input --append serial terminal_output --append serial